csm-mlx : modèle de génération de parole csm pour les appareils Apple
Introduction générale
csm-mlx est basé sur le framework MLX développé par Apple et optimisé pour le modèle de dialogue vocal CSM (Conversation Speech Model) spécifiquement pour l'Apple Silicon. Ce projet permet aux utilisateurs d'exécuter de manière simple des fonctions efficaces de génération de parole et de dialogue sur les appareils Apple. Le développeur senstella a lancé ce projet le 15 mars 2025 dans le but de permettre à un plus grand nombre de personnes de profiter de la puissance des appareils Apple et d'explorer la technologie vocale. Le cœur du projet est de fournir un outil léger et facile à utiliser qui permet de générer de la parole naturelle et de traiter des scénarios de dialogue.

Liste des fonctions
- Génération de la parole : génère une voix humaine naturelle après la saisie d'un texte.
- Prise en charge du contexte de la conversation : génère des réponses vocales cohérentes en fonction du contenu des conversations précédentes.
- Optimisation des appareils Apple : exécution efficace des modèles sur le silicium d'Apple à l'aide du cadre MLX.
- Chargement de modèles open source : prise en charge du téléchargement de modèles pré-entraînés à partir de Hugging Face (par exemple, csm-1b).
- Paramètres ajustables : permet d'ajuster les paramètres de l'échantillonneur, tels que la température (temp) et la probabilité minimale (min_p), afin de contrôler l'effet de génération.
Utiliser l'aide
Processus d'installation
Pour utiliser csm-mlx localement, vous devez d'abord installer certains outils et environnements dépendants. Voici les étapes détaillées :
- Préparation de l'environnement
- Assurez-vous que vous utilisez macOS et que l'appareil est alimenté par du silicium Apple (par exemple, des puces M1, M2).
- Installez Python 3.10 ou une version ultérieure. Vous pouvez installer Python avec la commande
brew install python@3.10
Installation via Homebrew. - Installez Git, exécutez
brew install git
(peut être ignoré s'il est déjà installé).
- projet de clonage
- Ouvrez un terminal et entrez la commande suivante pour télécharger le projet csm-mlx :
git clone https://github.com/senstella/csm-mlx.git
- Allez dans le dossier du projet :
cd csm-mlx
- Ouvrez un terminal et entrez la commande suivante pour télécharger le projet csm-mlx :
- Créer un environnement virtuel
- Créez un environnement virtuel Python dans le répertoire du projet :
python3.10 -m venv .venv
- Activer l'environnement virtuel :
source .venv/bin/activate
- Créez un environnement virtuel Python dans le répertoire du projet :
- Installation des dépendances
- Installez les paquets Python nécessaires au projet et exécutez-les :
pip install -r requirements.txt
- Note : Vous devez vous assurer que le framework MLX et Hugging Face sont installés.
huggingface_hub
de la bibliothèque. Si vous rencontrez des problèmes, vous pouvez lancer un programme séparé depip install mlx huggingface_hub
.
- Installez les paquets Python nécessaires au projet et exécutez-les :
- Télécharger les modèles
- csm-mlx utilisant des modèles pré-entraînés
csm-1b-mlx
. Exécutez le code suivant pour télécharger automatiquement :python -c "from huggingface_hub import hf_hub_download; hf_hub_download(repo_id='senstella/csm-1b-mlx', filename='ckpt.safetensors')"
- Les fichiers du modèle sont enregistrés dans le répertoire de cache local (généralement le répertoire
~/.cache/huggingface/hub
).
- csm-mlx utilisant des modèles pré-entraînés
Comment l'utiliser
Une fois installé, vous pouvez exécuter la fonction de génération de parole de csm-mlx avec un script Python. Voici les étapes à suivre :
Génération de discours de base
- Rédaction de scénarios
- Créez un fichier dans le répertoire du projet, tel que
generate_audio.py
, entrez le code suivant :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 是采样率
- Note : La sauvegarde des données audio nécessite l'installation du logiciel
audiofile
exécutez le programmepip install audiofile
.
- Créez un fichier dans le répertoire du projet, tel que
- Exécution de scripts
- Saisissez-le dans le terminal :
python generate_audio.py
- En l'exécutant, on obtient ce qui suit dans le répertoire courant
output.wav
double-cliquez sur le fichier pour le lire.
- Saisissez-le dans le terminal :
Ajouter un contexte de dialogue
- Modifier le contexte de support des scripts
- Si vous souhaitez que le modèle génère des réponses basées sur les dialogues précédents, vous pouvez ajouter l'option
context
Paramètre. Le code de modification est le suivant :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)
- Attention :
audio=mx.array([...])
Nécessite des données audio préalables. Si ce n'est pas le cas, vous pouvez d'abord générer l'audio à l'aide de la génération de base, puis le remplir avec ses résultats.
- Si vous souhaitez que le modèle génère des réponses basées sur les dialogues précédents, vous pouvez ajouter l'option
- Exécuter et tester
- réaliser
python generate_audio.py
Générer des fichiers vocaux avec le contextereply.wav
.
- réaliser
paramétrage
- Température (temp): Contrôle le caractère aléatoire de la parole. Plus la valeur est petite (par exemple 0,5), plus le discours est stable ; plus la valeur est grande (par exemple 1,0), plus le discours est varié.
- Durée maximale (max_audio_length_ms)L'unité est la milliseconde, par exemple 5000 signifie 5 secondes.
- Méthode d'ajustement : en
make_sampler
peut-êtregenerate
pour modifier les paramètres et réexécuter le script.
mise en garde
- Si vous rencontrez des problèmes de mémoire lors de la génération d'audio, essayez de réduire la taille du fichier
max_audio_length_ms
. - Veillez à disposer d'une bonne connexion internet, car la première exécution du modèle nécessite le téléchargement du fichier de poids, qui pèse environ quelques Go.
scénario d'application
- Aides pédagogiques
Les utilisateurs peuvent utiliser csm-mlx pour générer des explications vocales pour le contenu de l'enseignement. Par exemple, il est possible de saisir le texte et de générer un discours naturel pour la pratique de l'écoute. - Développement de l'assistant virtuel
Les développeurs peuvent utiliser csm-mlx pour créer des assistants vocaux intelligents. Combiné à la fonction de contexte de dialogue, l'assistant peut générer des réponses cohérentes basées sur les mots de l'utilisateur. - création de contenu
Les producteurs de podcasts peuvent l'utiliser pour convertir des scripts en paroles, générer rapidement des clips audio et gagner du temps lors de l'enregistrement.
QA
- Le csm-mlx prend-il en charge le chinois ?
Oui, il prend en charge la saisie en chinois et génère des paroles en chinois. Cependant, l'effet dépend des données d'entraînement et il est recommandé de tester des énoncés spécifiques pour confirmer la qualité. - Quel est l'espace requis sur le disque dur ?
Les fichiers du modèle représentent environ 1 à 2 Go, plus 5 Go d'espace pour les bibliothèques dépendantes et les fichiers générés. - Fonctionnera-t-il sous Windows ?
Non, csm-mlx est conçu pour le silicium d'Apple, s'appuie sur le framework MLX et ne prend actuellement en charge que macOS.
© déclaration de droits d'auteur
Article copyright Cercle de partage de l'IA Tous, prière de ne pas reproduire sans autorisation.
Articles connexes
Pas de commentaires...