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.

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

 

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 :

  1. 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é).
  2. 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
      
  3. 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
      
  4. 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é de pip install mlx huggingface_hub.
  5. 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).

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

  1. 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 programme pip install audiofile.
  2. 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.

Ajouter un contexte de dialogue

  1. 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.
  2. Exécuter et tester
    • réaliser python generate_audio.pyGénérer des fichiers vocaux avec le contexte reply.wav.

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-être generate 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

  1. 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.
  2. 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.
  3. 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

  1. 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é.
  2. 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.
  3. 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

Articles connexes

Pas de commentaires

Vous devez être connecté pour participer aux commentaires !
S'inscrire maintenant
aucun
Pas de commentaires...