Allgemeine Einführung
csm-mlx basiert auf dem von Apple entwickelten MLX-Framework und ist für das Sprachdialogmodell CSM (Conversation Speech Model) speziell für das Apple Silicon optimiert. Dieses Projekt ermöglicht es Benutzern, auf einfache Weise effiziente Spracherzeugungs- und Dialogfunktionen auf Apple-Geräten auszuführen. Der Entwickler senstella veröffentlichte dieses Projekt am 15. März 2025 mit dem Ziel, mehr Menschen dazu zu bringen, die Leistungsfähigkeit von Apple-Geräten zu nutzen und die Sprachtechnologie zu erforschen. Der Kern des Projekts ist es, ein leichtgewichtiges, einfach zu bedienendes Werkzeug zur Verfügung zu stellen, das die Erzeugung natürlicher Sprache und die Verarbeitung von Dialogszenarien unterstützt.
Funktionsliste
- Spracherzeugung: Erzeugen Sie nach der Texteingabe natürliche menschliche Sprachaufnahmen.
- Unterstützung des Gesprächskontexts: Generieren Sie kohärente Sprachantworten auf der Grundlage des Inhalts früherer Gespräche.
- Optimierung von Apple-Geräten: effiziente Ausführung von Modellen auf Apple-Silizium unter Verwendung des MLX-Frameworks.
- Laden von Open-Source-Modellen: Unterstützung für das Herunterladen von vortrainierten Modellen von Hugging Face (z.B. csm-1b).
- Einstellbare Parameter: ermöglicht die Einstellung von Sampler-Parametern wie Temperatur (temp) und Mindestwahrscheinlichkeit (min_p) zur Steuerung des Erzeugungseffekts.
Hilfe verwenden
Ablauf der Installation
Um csm-mlx lokal zu verwenden, müssen Sie zunächst einige abhängige Werkzeuge und Umgebungen installieren. Nachfolgend finden Sie die detaillierten Schritte:
- Vorbereiten der Umgebung
- Vergewissern Sie sich, dass Sie macOS verwenden und dass das Gerät mit Apple-Silizium betrieben wird (z. B. mit M1- oder M2-Chips).
- Installieren Sie Python 3.10 oder höher. Sie können Python mit dem folgenden Befehl installieren
brew install python@3.10
Installation über Homebrew. - Git installieren, ausführen
brew install git
(kann übersprungen werden, wenn bereits installiert).
- Klonprojekt
- Öffnen Sie ein Terminal und geben Sie den folgenden Befehl ein, um das csm-mlx-Projekt herunterzuladen:
git clone https://github.com/senstella/csm-mlx.git
- Wechseln Sie in den Projektordner:
cd csm-mlx
- Öffnen Sie ein Terminal und geben Sie den folgenden Befehl ein, um das csm-mlx-Projekt herunterzuladen:
- Erstellen einer virtuellen Umgebung
- Erstellen Sie eine virtuelle Python-Umgebung im Projektverzeichnis:
python3.10 -m venv .venv
- Aktivieren Sie die virtuelle Umgebung:
Quelle .venv/bin/activate
- Erstellen Sie eine virtuelle Python-Umgebung im Projektverzeichnis:
- Installation von Abhängigkeiten
- Installieren Sie die für das Projekt benötigten Python-Pakete und führen Sie es aus:
pip install -r anforderungen.txt
- Hinweis: Sie müssen sicherstellen, dass das MLX-Framework und Hugging Face installiert sind.
huggingface_hub
Bibliothek. Wenn Sie auf Probleme stoßen, können Sie eine separatepip install mlx huggingface_hub
.
- Installieren Sie die für das Projekt benötigten Python-Pakete und führen Sie es aus:
- Modelle herunterladen
- csm-mlx mit vortrainierten Modellen
csm-1b-mlx
. Führen Sie den folgenden Code aus, um automatisch herunterzuladen:python -c "from huggingface_hub import hf_hub_download; hf_hub_download(repo_id='senstella/csm-1b-mlx', filename='ckpt.safetensors')"
- Die Modelldateien werden im lokalen Cache-Verzeichnis gespeichert (normalerweise im
~/.cache/huggingface/hub
).
- csm-mlx mit vortrainierten Modellen
Wie zu verwenden
Nach der Installation können Sie die Spracherzeugungsfunktion von csm-mlx mit einem Python-Skript ausführen. Hier sind die Schritte, um dies zu tun:
Grundlegende Spracherzeugung
- Drehbücher schreiben
- Erstellen Sie eine Datei im Projektverzeichnis, z. B.
generate_audio.py
geben Sie den folgenden Code ein:von csm_mlx importieren CSM, csm_1b, generieren from mlx_lm.sample_utils import make_sampler von huggingface_hub importieren hf_hub_download # Initialisierungsmodell csm = CSM(csm_1b()) weights = hf_hub_download(repo_id="senstella/csm-1b-mlx", filename="ckpt.safetensors") csm.load_weights(gewicht) # Audio generieren audio = erzeugen( csm. text="Hallo, hier ist csm-mlx.", speaker=0, context=[], max_audio_length_ms=10000, # max_audio_length 10 Sekunden sampler=make_sampler(temp=0.5, min_p=0.1) ) # Audio speichern importiere audiofile audiofile.write("output.wav", audio, 22050) # 22050 ist die Abtastrate
- Hinweis: Das Speichern von Audio erfordert die Installation von
Audiodatei
Bibliothek, führen Sie diepip install audiofile
.
- Erstellen Sie eine Datei im Projektverzeichnis, z. B.
- Laufende Skripte
- Geben Sie ihn in das Terminal ein:
python generate_audio.py
- Wenn Sie es ausführen, wird im aktuellen Verzeichnis Folgendes erzeugt
Ausgabe.wav
Datei, doppelklicken Sie auf sie, um sie abzuspielen.
- Geben Sie ihn in das Terminal ein:
Hinzufügen von Dialogkontext
- Ändern des Skriptunterstützungskontexts
- Wenn Sie möchten, dass das Modell Antworten auf der Grundlage früherer Dialoge generiert, können Sie die Option
Kontext
Parameter. Der Änderungscode lautet wie folgt:from csm_mlx import CSM, csm_1b, generate, Segment import mlx.core as mx from huggingface_hub import hf_hub_download # Initialisierung des Modells csm = CSM(csm_1b()) weights = hf_hub_download(repo_id="senstella/csm-1b-mlx", filename="ckpt.safetensors") csm.load_weights(weight) # Erstellen Sie den Dialogkontext kontext = [ Segment(speaker=0, text="Hallo, wie ist das Wetter heute?" , audio=mx.array([...])) , Segment(speaker=1, text="Es ist toll, die Sonne scheint." , audio=mx.array([...])) ] # Eine Antwort generieren audio = generieren( csm. text="Dann lass uns spazieren gehen!" , speaker=0, context=Kontext, max_audio_length_ms=5000 ) # Speichern Sie das Audio importiere audiofile audiofile.write("antwort.wav", audio, 22050)
- Achtung!
audio=mx.array([...])
Erfordert vorherige Audiodaten. Ist dies nicht der Fall, können Sie die Audiodaten zunächst mit der Basisgenerierung erzeugen und sie dann mit deren Ergebnissen füllen.
- Wenn Sie möchten, dass das Modell Antworten auf der Grundlage früherer Dialoge generiert, können Sie die Option
- Ausführen und testen
- vollziehen
python generate_audio.py
Generierung von Sprachdateien mit Kontextantworten.wav
.
- vollziehen
Parametrisierung
- Temperatur (temp)Steuert die Zufälligkeit der Sprache. Je kleiner der Wert (z. B. 0,5), desto stabiler die Sprache; je größer der Wert (z. B. 1,0), desto abwechslungsreicher die Sprache.
- Maximale Länge (max_audio_length_ms)Die Einheit ist Millisekunden, z.B. 5000 bedeutet 5 Sekunden.
- Anpassungsmethode: in
make_sampler
vielleichterzeugen
um die Parameter zu ändern und dann das Skript erneut auszuführen.
caveat
- Wenn Sie beim Erzeugen von Audiodaten Speicherprobleme haben, versuchen Sie, die Größe der Datei
max_audio_length_ms
. - Stellen Sie sicher, dass Sie über eine gute Internetverbindung verfügen, da für den ersten Durchlauf des Modells die Gewichtungsdatei heruntergeladen werden muss, die einige GB groß ist.
Anwendungsszenario
- Pädagogische Hilfsmittel
Benutzer können csm-mlx verwenden, um Spracherläuterungen für Lehrinhalte zu erzeugen. Geben Sie zum Beispiel den Text ein und erzeugen Sie natürliche Sprache für Hörübungen. - Entwicklung von virtuellen Assistenten
Entwickler können csm-mlx verwenden, um intelligente Sprachassistenten zu entwickeln. In Kombination mit der Dialogkontextfunktion kann der Assistent kohärente Antworten auf der Grundlage der Worte des Benutzers generieren. - Erstellung von Inhalten
Podcast-Produzenten können damit Skripte in Sprache umwandeln, schnell Audioclips erstellen und Aufnahmezeit sparen.
QA
- Unterstützt csm-mlx Chinesisch?
Ja, es unterstützt chinesische Eingaben und erzeugt chinesische Sprache. Die Wirkung hängt jedoch von den Trainingsdaten ab, und es wird empfohlen, bestimmte Äußerungen zu testen, um die Qualität zu bestätigen. - Wie viel Speicherplatz wird auf der Festplatte benötigt?
Die Modelldateien sind etwa 1-2 GB groß, plus 5 GB Speicherplatz für abhängige Bibliotheken und generierte Dateien. - Funktioniert es unter Windows?
Nein, csm-mlx ist für Apple-Silizium konzipiert, basiert auf dem MLX-Framework und unterstützt derzeit nur macOS.