csm-mlx: modelo de generación de voz csm para dispositivos Apple
Últimos recursos sobre IAPublicado hace 5 meses Círculo de intercambio de inteligencia artificial 1.9K 00
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.

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:
- 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).
- 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
- Abra un terminal e introduzca el siguiente comando para descargar el proyecto csm-mlx:
- 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
- Crea un entorno virtual Python en el directorio del proyecto:
- 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 unpip install mlx huggingface_hub
.
- Instala los paquetes de Python necesarios para el proyecto y ejecútalo:
- 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
).
- csm-mlx utilizando modelos preentrenados
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
- Escribir guiones
- Cree un archivo en el directorio del proyecto, como por ejemplo
generate_audio.py
introduce 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 bibliotecapip install audiofile
.
- Cree un archivo en el directorio del proyecto, como por ejemplo
- 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.
- Introdúcelo en el terminal:
Añadir contexto al diálogo
- 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.
- Si desea que el modelo genere respuestas basadas en diálogos anteriores, puede añadir la opción
- Ejecutar y probar
- llevar a cabo
python generate_audio.py
Generar archivos de voz con contextoreply.wav
.
- llevar a cabo
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 vezgenerate
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
- 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. - 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. - 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
- ¿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. - ¿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. - ¿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
Derechos de autor del artículo Círculo de intercambio de inteligencia artificial Todos, por favor no reproducir sin permiso.
Artículos relacionados
Sin comentarios...