csm-mlx: modelo de generación de voz csm para dispositivos Apple

Introducción general

csm-mlx se basa en el framework MLX desarrollado por Apple y optimizado para el modelo de diálogo de voz CSM (Conversation Speech Model) específico para Apple Silicon. Este proyecto permite a los usuarios ejecutar funciones eficientes de generación de voz y diálogo en dispositivos Apple de forma sencilla. El desarrollador senstella lanzó este proyecto el 15 de marzo de 2025 con el objetivo de que más personas aprovechen la potencia de los dispositivos Apple y exploren la tecnología del habla. El núcleo del proyecto es proporcionar una herramienta ligera y fácil de usar que permita generar habla natural y procesar escenarios de diálogo.

csm-mlx:苹果设备专用的 csm 语音生成模型

 

Lista de funciones

  • Generación de voz: Genera audio de voz humana natural después de introducir texto.
  • Compatibilidad con el contexto de la conversación: genere respuestas de voz coherentes basadas en el contenido de conversaciones anteriores.
  • Optimización de dispositivos Apple: ejecución eficiente de modelos en el silicio de Apple utilizando el marco MLX.
  • Carga de modelos de código abierto: soporte para descargar modelos preentrenados de Hugging Face (por ejemplo, csm-1b).
  • Parámetros ajustables: proporciona ajustes de los parámetros del muestreador, como la temperatura (temp) y la probabilidad mínima (min_p), para controlar el efecto de generación.

 

Utilizar la ayuda

Proceso de instalación

Para utilizar csm-mlx localmente, es necesario instalar primero algunas herramientas y entornos dependientes. A continuación se detallan los pasos a seguir:

  1. Preparar el entorno
    • Asegúrate de que utilizas macOS y de que el dispositivo funciona con silicio de Apple (por ejemplo, chips M1, M2).
    • Instale Python 3.10 o posterior. Puede instalar Python con el comando brew install python@3.10 Instalación mediante Homebrew.
    • Instala Git, ejecuta brew install git(puede omitirse si ya está instalado).
  2. proyecto de clonación
    • Abra un terminal e introduzca el siguiente comando para descargar el proyecto csm-mlx:
      git clone https://github.com/senstella/csm-mlx.git
      
    • Vaya a la carpeta del proyecto:
      cd csm-mlx
      
  3. Creación de un entorno virtual
    • Crea un entorno virtual Python en el directorio del proyecto:
      python3.10 -m venv .venv
      
    • Active el entorno virtual:
      source .venv/bin/activate
      
  4. Instalación de dependencias
    • Instala los paquetes de Python necesarios para el proyecto y ejecútalo:
      pip install -r requirements.txt
      
    • Nota: Debe asegurarse de que el marco MLX y Hugging Face están instalados. huggingface_hub biblioteca. Si tiene problemas, puede ejecutar un pip install mlx huggingface_hub.
  5. Descargar modelos
    • csm-mlx utilizando modelos preentrenados csm-1b-mlx. Ejecute el siguiente código para descargar automáticamente:
      python -c "from huggingface_hub import hf_hub_download; hf_hub_download(repo_id='senstella/csm-1b-mlx', filename='ckpt.safetensors')"
      
    • Los archivos del modelo se guardan en el directorio de caché local (normalmente el directorio ~/.cache/huggingface/hub).

Cómo utilizarlo

Una vez instalado, puede ejecutar la función de generación de voz de csm-mlx con un script de Python. Estos son los pasos para hacerlo:

Generación básica de voz

  1. Escribir guiones
    • Cree un archivo en el directorio del proyecto, como por ejemplo generate_audio.pyintroduce el siguiente código:
      from csm_mlx import CSM, csm_1b, generate
      from mlx_lm.sample_utils import make_sampler
      from huggingface_hub import hf_hub_download
      # 初始化模型
      csm = CSM(csm_1b())
      weight = hf_hub_download(repo_id="senstella/csm-1b-mlx", filename="ckpt.safetensors")
      csm.load_weights(weight)
      # 生成音频
      audio = generate(
      csm,
      text="你好,我是 csm-mlx。",
      speaker=0,
      context=[],
      max_audio_length_ms=10000,  # 最大音频长度 10 秒
      sampler=make_sampler(temp=0.5, min_p=0.1)
      )
      # 保存音频
      import audiofile
      audiofile.write("output.wav", audio, 22050)  # 22050 是采样率
      
    • Nota: Guardar audio requiere la instalación de audiofile ejecute la biblioteca pip install audiofile.
  2. Ejecución de scripts
    • Introdúcelo en el terminal:
      python generate_audio.py
      
    • Su ejecución genera lo siguiente en el directorio actual output.wav haga doble clic en él para reproducirlo.

Añadir contexto al diálogo

  1. Modificación del contexto de apoyo al script
    • Si desea que el modelo genere respuestas basadas en diálogos anteriores, puede añadir la opción context Parámetro. El código de modificación es el siguiente:
      from csm_mlx import CSM, csm_1b, generate, Segment
      import mlx.core as mx
      from huggingface_hub import hf_hub_download
      # 初始化模型
      csm = CSM(csm_1b())
      weight = hf_hub_download(repo_id="senstella/csm-1b-mlx", filename="ckpt.safetensors")
      csm.load_weights(weight)
      # 创建对话上下文
      context = [
      Segment(speaker=0, text="你好,今天天气怎么样?", audio=mx.array([...])),
      Segment(speaker=1, text="很好,阳光明媚。", audio=mx.array([...]))
      ]
      # 生成回复
      audio = generate(
      csm,
      text="那我们出去走走吧!",
      speaker=0,
      context=context,
      max_audio_length_ms=5000
      )
      # 保存音频
      import audiofile
      audiofile.write("reply.wav", audio, 22050)
      
    • Atención:audio=mx.array([...]) Requiere datos de audio previos. Si no, puede generar el audio utilizando primero la generación básica y luego rellenarlo con sus resultados.
  2. Ejecutar y probar
    • llevar a cabo python generate_audio.pyGenerar archivos de voz con contexto reply.wav.

parametrización

  • Temperatura (temp)Controla la aleatoriedad del habla. Cuanto menor sea el valor (por ejemplo, 0,5), más estable será el habla; cuanto mayor sea el valor (por ejemplo, 1,0), más variado será el habla.
  • Duración máxima (max_audio_length_ms)La unidad son milisegundos, por ejemplo 5000 significa 5 segundos.
  • Método de ajuste: en make_sampler tal vez generate para cambiar los parámetros y volver a ejecutar el script.

advertencia

  • Si tiene problemas de memoria al generar audio, pruebe a reducir el tamaño del archivo max_audio_length_ms.
  • Asegúrate de que dispones de una buena conexión a Internet, ya que la primera ejecución del modelo requiere la descarga del archivo de pesos, que ocupa unos cuantos GB.

 

escenario de aplicación

  1. Ayudas educativas
    Los usuarios pueden utilizar csm-mlx para generar explicaciones de voz para contenidos didácticos. Por ejemplo, introduzca el texto y genere un discurso natural para la práctica auditiva.
  2. Desarrollo de asistentes virtuales
    Los desarrolladores pueden utilizar csm-mlx para crear asistentes de voz inteligentes. Combinado con la función de contexto de diálogo, el asistente puede generar respuestas coherentes basadas en las palabras del usuario.
  3. creación de contenidos
    Los productores de podcasts pueden utilizarlo para convertir guiones en voz, generar rápidamente clips de audio y ahorrar tiempo de grabación.

 

CONTROL DE CALIDAD

  1. ¿Es csm-mlx compatible con chino?
    Sí, admite la entrada en chino y genera habla china. Sin embargo, el efecto depende de los datos de entrenamiento, por lo que se recomienda probar enunciados concretos para confirmar la calidad.
  2. ¿Cuánto espacio se necesita en el disco duro?
    Los archivos del modelo ocupan unos 1-2 GB, más 5 GB de espacio para las bibliotecas dependientes y los archivos generados.
  3. ¿Funcionará en Windows?
    No, csm-mlx está diseñado para el silicio de Apple, se basa en el marco MLX y actualmente sólo es compatible con macOS.
© declaración de copyright

Artículos relacionados

Sin comentarios

Debe iniciar sesión para participar en los comentarios.
Acceder ahora
ninguno
Sin comentarios...