Kyutai Labs'delayed-streams-modeling
Projekt ist ein Open-Source-Rahmenwerk für die Umwandlung von Sprache in Text, dessen Kern auf der DSM-Technologie (Delayed Stream Modelling) basiert. Es unterstützt Echtzeit-Sprache-zu-Text- (STT) und Text-zu-Sprache- (TTS) Funktionen, die für den Aufbau effizienter Sprachinteraktionsanwendungen geeignet sind. Das Projekt bietet mehrere Implementierungen in PyTorch, Rust und MLX, um den Anforderungen von Forschungs-, Entwicklungs- und Produktionsumgebungen gerecht zu werden. Das Modell unterstützt Englisch und Französisch mit einer Latenzzeit von nur 0,5 Sekunden und eignet sich für Echtzeit-Dialoge, Sprachassistenten und Übersetzungsszenarien. Der Projektcode ist auf GitHub gehostet, mit klarer Dokumentation und einfach zu starten.
Funktionsliste
- Sprache-zu-Text in Echtzeit (STT)Unterstützung für Englisch und Französisch mit einer Latenzzeit von nur 0,5 Sekunden mit semantischer Voice Activity Detection (VAD).
- Text-to-Speech (TTS) in EchtzeitErzeugt natürliche Sprache mit einer Verzögerung von ca. 220 ms und unterstützt die Erzeugung von Langtext.
- SprachklonenNur 10 Sekunden Audio werden benötigt, um eine Stimme zu klonen (diese Funktion ist noch nicht vollständig freigegeben).
- Unterstützung mehrerer SprachenDie Modelle sind in Englisch und Französisch verfügbar, wobei experimentelle Funktionen in anderen Sprachen teilweise unterstützt werden.
- Effiziente StapelverarbeitungDer Rust-Server unterstützt hohe Gleichzeitigkeit mit bis zu 64 Echtzeit-Audioströmen auf der L40S GPU.
- Plattformübergreifender EinsatzUnterstützung für PyTorch (Forschung), Rust (Produktion), MLX (Apple-Geräte).
- ZeitstempelausgabeDas STT-Modell liefert Zeitstempel auf Wortebene zur einfachen Erstellung von Untertiteln oder zur interaktiven Kontrolle.
Hilfe verwenden
Einbauverfahren
delayed-streams-modeling
Das Projekt unterstützt je nach Nutzungsszenario eine Vielzahl von Bereitstellungsmethoden. Im Folgenden finden Sie eine detaillierte Anleitung zur Installation und Verwendung:
1. PyTorch (Forschung und Erprobung)
Geeignet für Forscher und Entwickler, um Modelle vor Ort zu testen.
- Vorbereitung der Umwelt::
- Stellen Sie sicher, dass Python 3.8+ und PyTorch (GPU-Version empfohlen) installiert sind.
- Klon-Lagerhaus:
git clone https://github.com/kyutai-labs/delayed-streams-modeling.git cd delayed-streams-modeling
- Installieren Sie die Abhängigkeit:
pip install -r requirements.txt
- Ausführung des STT-Modells::
- Laden Sie vortrainierte Modelle herunter, z. B.
kyutai/stt-1b-en_fr
(Hugging Face Warehouse) - Führen Sie das Argumentationsbeispiel aus:
python -m moshi_mlx.run_inference --hf-repo kyutai/stt-2.6b-en-mlx audio/sample.wav --temp 0
- Das Ergebnis ist der transkribierte Text und ein Zeitstempel.
- Laden Sie vortrainierte Modelle herunter, z. B.
- Ausführen des TTS-Modells::
- Verwenden Sie einen ähnlichen Befehl, um das TTS-Modell aufzurufen und eine Textdatei zur Audioerzeugung einzugeben.
2. Rust (Produktionsumgebung)
Geeignet für hochkomplexe Produktionsumgebungen mit überragender Leistung.
- Vorbereitung der Umwelt::
- Rust installieren (über
rustup
). - Klon (Lehnwort)
moshi
Lagerhaus:git clone https://github.com/kyutai-labs/moshi.git cd moshi
- Montage
moshi-server
::cargo install moshi-server
- Rust installieren (über
- Konfigurieren des Servers::
- Bearbeiten Sie die Konfigurationsdatei (die sich im Verzeichnis
moshi/config
), legen Sie die Stapelgröße fest (64 wird für L40S-GPUs empfohlen). - Starten Sie den Server:
cargo run --release -- --config config.toml
- Der Server bietet Streaming-Zugriff über WebSocket und unterstützt die Gleichzeitigkeit mehrerer Benutzer.
- Bearbeiten Sie die Konfigurationsdatei (die sich im Verzeichnis
- Verwendung::
- Senden Sie Audioströme über einen WebSocket-Client, empfangen Sie transkribierten Text oder erzeugen Sie Sprache.
3. MLX (Apple-Geräte)
Geeignet für die Ausführung auf dem iPhone oder Mac, optimiert für Hardware-Beschleunigung.
- Vorbereitung der Umwelt::
- Installieren Sie das MLX-Framework (das offizielle Framework für maschinelles Lernen von Apple).
- Klonen Sie das Repository und installieren Sie es
moshi-mlx
::pip install moshi-mlx
- logische Schlussfolgerung::
- Mikrofontranskription in Echtzeit:
python -m moshi_mlx.run_inference --hf-repo kyutai/stt-1b-en_fr-mlx --mic
- Transkription des Dokuments:
python -m moshi_mlx.run_inference --hf-repo kyutai/stt-2.6b-en-mlx audio/sample.mp3 --temp 0
- Das 1B-Modell läuft reibungslos auf dem iPhone 16 Pro.
- Mikrofontranskription in Echtzeit:
Funktion Betriebsablauf
Sprache-zu-Text in Echtzeit (STT)
- AudioeingangUnterstützt Echtzeit-Mikrofoneingabe oder Upload von Audiodateien (z. B. WAV, MP3).
- Auswahl des Modells::
kyutai/stt-1b-en_fr
Geeignet für Englisch und Französisch, geringe Latenz (0,5 Sekunden), mit semantischem VAD.kyutai/stt-2.6b-en
: Englischspezifisch, 2,5 Sekunden Verzögerung, höhere Genauigkeit.
- Semantisches VADAutomatische Erkennung, ob der Benutzer zu Ende gesprochen hat, und dynamische Anpassung der Pausenzeit, um Fehlentscheidungen zu vermeiden.
- AusgabeergebnisGibt transkribierten Text und Zeitstempel auf Wortebene zurück, die für die Erstellung von Untertiteln oder die Interaktionssteuerung verwendet werden können.
- Optimierung der LatenzzeitDurch den Einsatz einer "Flush-Trick"-Technik zur Beschleunigung der Verarbeitung bei Erkennung des Sprachendes wird die Latenzzeit von 500 ms auf 125 ms reduziert.
Text-to-Speech (TTS) in Echtzeit
- EingabetextUnterstützt Satz-für-Satz- oder Streaming-Eingabe, geeignet für Echtzeit-Dialoge.
- Audio generierenDas Modell erzeugt natürliche Sprache in 220 Millisekunden und unterstützt lange Texte (über 30 Sekunden).
- SprachklonenEingabe von 10 Sekunden Referenzton, um ähnliche Sprache zu erzeugen (zusätzliche Konfiguration erforderlich, nicht vollständig quelloffen).
- AusgabeformatErzeugt Audio im WAV-Format, das direkt abgespielt oder gespeichert werden kann.
Bereitstellung der Produktionsumgebung
- Rust-ServerDie H100 GPU unterstützt hohe Gleichzeitigkeit und kann bis zu 400 Echtzeit-Audioströme verarbeiten.
- Optimierung der ChargenEffiziente Stapelverarbeitung ohne zusätzlichen Code durch DSM-Architektur.
- WebSocket-SchnittstelleDer Client sendet Audio oder Text über WebSocket und der Server gibt das Ergebnis in Echtzeit zurück.
caveat
- Auswahl des ModellsAuswahl des geeigneten Modells je nach Hardware und Anforderungen (1B-Parameter für leichte Geräte, 2.6B-Parameter für hochpräzise Szenarien).
- NetzanforderungProduktionsumgebungen erfordern stabile Netzwerke zur Unterstützung von WebSocket-Streaming.
- Hinweis auf die Dokumentation: siehe das GitHub-Repository für detaillierte Konfiguration und API-Dokumentation
README.md
.
Anwendungsszenario
- Entwicklung von Sprachassistenten
- Beschreibung der SzeneEntwickler verwenden STT- und TTS-Modelle, um intelligente Sprachassistenten zu entwickeln, die Dialoge in Echtzeit unterstützen. Semantische VAD gewährleistet eine genaue Erkennung der Benutzerabsicht und eignet sich für Kundendienstroboter oder Smart-Home-Geräte.
- Erzeugung von Untertiteln in Echtzeit
- Beschreibung der SzeneDas STT-Modell erzeugt Echtzeit-Untertitel für Videokonferenzen oder Live-Streaming, mit Zeitstempeln auf Wortebene für eine einfache und präzise Ausrichtung, für die Bildungs-, Konferenz- und Medienbranche.
- Sprachübersetzung
- Beschreibung der SzeneKombinieren Sie mit dem Hibiki-Modell, um eine Echtzeit-Sprachübersetzung zu erzielen, die für sprachübergreifende Konferenz- oder Reiseszenarien geeignet ist und eine Streaming-Ausgabe der Übersetzungsergebnisse unterstützt.
- Sprachinteraktion für mobile Geräte
- Beschreibung der SzeneMLX ermöglicht es iPhone-Nutzern, Anwendungen per Sprache zu bedienen, z. B. Sprachnotizen oder Echtzeit-Transkription, die sich für mobile Büros und persönliche Assistenten eignen.
QA
- Wie wählt man die richtige Modellimplementierung?
- PyTorch für Forschung und Tests, Rust für hohe Gleichzeitigkeit in Produktionsumgebungen und MLX für Apple-Geräte. Siehe Auswahl der Hardware und des Szenarios.
- Ist die Funktion zum Klonen von Stimmen vollständig quelloffen?
- Derzeit ist die Funktion zum Klonen von Stimmen nicht vollständig quelloffen, es ist eine zusätzliche Konfiguration erforderlich, die offizielle Empfehlung lautet, sich auf die Dokumentation von Hugging Face zu beziehen.
- Wie lässt sich die Serverleistung optimieren?
- Passen Sie die Stapelgröße (z. B. 64) in der Konfigurationsdatei des Rust-Servers an, um sicherzustellen, dass der GPU-Speicher ausreicht. Der H100-GPU kann eine höhere Gleichzeitigkeit unterstützen.
- Welche Sprachen werden unterstützt?
- Unterstützt hauptsächlich Englisch und Französisch, experimentelle Unterstützung für andere Sprachen, zum Testen muss die offizielle Dokumentation herangezogen werden.
- Was sind die Vorteile der verzögerten Strommodellierung (DSM)?
- DSM reduziert die Latenzzeit durch zeitlich abgestimmte Audio- und Textströme und unterstützt eine effiziente Stapelverarbeitung, die herkömmliche Modelle wie Whisper übertrifft.