Allgemeine Einführung
Baichuan-Audio ist ein von Baichuan Intelligence (baichuan-inc) entwickeltes Open-Source-Projekt, das auf GitHub gehostet wird und sich auf End-to-End-Sprachinteraktionstechnologie konzentriert. Das Projekt bietet ein komplettes Audioverarbeitungs-Framework, das Spracheingaben in diskrete Audio-Token umwandeln kann und dann den entsprechenden Text und die Audioausgabe durch ein großes Modell generiert, um einen qualitativ hochwertigen Dialog in Echtzeit zu erreichen. Unterstützung für Chinesisch und Englisch zweisprachig, für den Bedarf an Sprachverständnis und Erzeugung der Szene, wie intelligente Assistenten, Voice-Chat-Roboter und so weiter. Darüber hinaus werden im Rahmen des Projekts auch Baichuan-Audio-Base, ein Basismodell, und OpenAudio-Bench, ein Benchmark, als Open Source zur Verfügung gestellt, um Entwicklern eine leistungsstarke Forschungs- und Entwicklungsunterstützung zu bieten. Das Projekt unterliegt der Apache-2.0-Lizenz, die für die akademische Forschung und kommerzielle Anwendungen unter bestimmten Bedingungen geeignet ist.
Funktionsliste
- Sprache-zu-Ton-TaggingBaichuan-Audio Tokenizer: Eingesprochene Sprache wird über den Baichuan-Audio Tokenizer in diskrete Audio-Token umgewandelt, der eine Bildwiederholrate von 12,5 Hz unterstützt, um das Behalten von Informationen zu gewährleisten.
- Sprachinteraktion in EchtzeitIn Kombination mit Audio LLM unterstützt es zweisprachige Unterhaltungen in Englisch und Chinesisch und erzeugt qualitativ hochwertige Sprach- und Textantworten.
- Audio-ErzeugungMel-Spektrogramme und Wellenformen aus Audiomarkern mit dem Flow-matching Audio Decoder generieren.
- Modell für Open Source (Datenverarbeitung)Das Basismodell Baichuan-Audio-Base wird ohne Feinabstimmung der Anweisungen geliefert, und die Entwickler können das Training nach ihren Bedürfnissen anpassen.
- BenchmarksEnthält OpenAudio-Bench, ein Tool zur Bewertung von Audioverständnis und -erzeugung mit 2701 Datenpunkten.
- multimodale UnterstützungUnterstützt gemischte Text- und Audioeingabe für nahtlosen intermodalen Wechsel.
Hilfe verwenden
Ablauf der Installation
Um Baichuan-Audio lokal zu verwenden, müssen Sie die Entwicklungsumgebung einrichten und die entsprechenden Modelldateien herunterladen. Im Folgenden finden Sie die detaillierten Installationsschritte:
- Vorbereitung der Umwelt
- Stellen Sie sicher, dass Python 3.12 und Conda auf Ihrem System installiert sind.
- Erstellen und aktivieren Sie eine virtuelle Umgebung:
conda create -n baichuan_audio python=3.12 conda activate baichuan_audio
- Installieren Sie die erforderlichen Abhängigkeits-Bibliotheken:
pip install torch==2.4.0 torchvision==0.19.0 torchaudio==2.4.0 --index-url https://download.pytorch.org/whl/cu124 pip install -r anforderungen.txt pip install accelerate flash_attn==2.6.3 speechbrain==1.0.0 deepspeed==0.14.4
- Installation von Systemtools:
apt install llvm ffmpeg
- Modelle herunterladen
- Klonen Sie den Code aus dem GitHub-Repository (https://github.com/baichuan-inc/Baichuan-Audio):
git clone https://github.com/baichuan-inc/Baichuan-Audio.git cd Baichuan-Audio
- Änderungen
web_demo/constants.py
den Nagel auf den Kopf treffenMODELL_PFADE
Dies ist der Pfad zum lokalen Modell (Sie müssen es manuell herunterladen oder Hugging Face verwenden, um z. B. die Modellgewichte zu erhalten).baichuan-inc/Baichuan-Audio
).
- Klonen Sie den Code aus dem GitHub-Repository (https://github.com/baichuan-inc/Baichuan-Audio):
- Führen Sie die Demo aus
- Starten Sie die Spracherkennungsdemo:
cd web_demo python base_asr_demo.py
- Starten Sie die Sprachsynthese-Demo:
python base_tts_demo.py
- Starten Sie einen Mehrrunden-Dialog Demo:
python s2s_gradio_demo_cosy_multiturn.py
- Starten Sie die Spracherkennungsdemo:
Funktion Betriebsablauf
1. die Tokenisierung von Sprache in Audio (Baichuan-Audio Tokenizer)
- Funktionelle BeschreibungKonvertiert eingehende Sprachdateien oder Live-Mikrofoneingaben in diskrete Audiomarken für die weitere Verarbeitung.
- Verfahren::
- Bereiten Sie eine Audiodatei vor (unterstützt wird das WAV-Format) oder schließen Sie ein Mikrofongerät an.
- läuft
base_asr_demo.py
Danach fordert die Schnittstelle zum Hochladen von Audiodaten oder zum Einschalten des Mikrofons auf. - Das System ruft automatisch Flüstern Large Encoder extrahiert Merkmale und erzeugt Audio-Token durch 8 Schichten von RVQ (Residual-Vektor-Quantisierung).
- Die Ausgabe kann auf der Konsole in Form einer Folge von diskreten Markern angezeigt werden.
- caveatStellen Sie sicher, dass der Ton klar und die Hintergrundgeräusche gering sind, um die Erkennungsgenauigkeit zu verbessern.
2. sprachliche Interaktion in Echtzeit (Audio LLM)
- Funktionelle BeschreibungErmöglicht dem Benutzer einen Echtzeit-Dialog mit dem Modell in Englisch und Chinesisch durch Sprach- oder Texteingabe.
- Verfahren::
- in Bewegung sein
s2s_gradio_demo_cosy_multiturn.py
Dazu öffnen Sie die Gradio-Schnittstelle. - Klicken Sie auf die Schaltfläche "Aufnehmen", um die Spracheingabe zu starten (z. B. "Bitte sagen Sie mir das heutige Wetter auf Chinesisch").
- Das System wandelt Sprache in Tags um und Audio LLM erzeugt Text- und Sprachantworten.
- Die Antwort wird gleichzeitig in Textform angezeigt und über die Lautsprecher wiedergegeben.
- in Bewegung sein
- Gekennzeichnete Verwendung::
- Eingabe von gemischtmodalen Inhalten, z. B. Eingabe des Textes "Hallo" und anschließende Ansage "Bitte fahren Sie auf Englisch fort" mit Ihrer Stimme.
- Das System ermöglicht den Wechsel zwischen den Modi durch spezielle Markierungen, um den Dialog kohärent zu halten.
3. die Audioerzeugung (Flow-matching Audio Decoder)
- Funktionelle BeschreibungGenerieren Sie eine qualitativ hochwertige Sprachausgabe auf der Grundlage von Text- oder Audioeingaben.
- Verfahren::
- in Bewegung sein
base_tts_demo.py
rufen Sie die Text-to-Speech-Schnittstelle auf. - Geben Sie etwas in das Textfeld ein (z. B. "Hallo, heute ist Freitag").
- Wenn Sie auf die Schaltfläche "Generieren" klicken, wandelt das System den Text in Audio-Token um und erzeugt dann das Mel-Spektrogramm durch den Stream-Matching-Decoder.
- Verwenden Sie den eingebauten Vocoder, um das Spektrogramm in eine WAV-Datei zu konvertieren, die Sie automatisch abspielen oder herunterladen können.
- in Bewegung sein
- Erweiterte FunktionenUnterstützung für die Anpassung der Geschwindigkeit und der Tonhöhe der Sprache, die spezifischen Parameter können im Code geändert werden.
4. die Verwendung von Benchmarks (OpenAudio-Bench)
- Funktionelle BeschreibungBewertung der Fähigkeiten von Modellen zum Verstehen und Erzeugen von Audio.
- Verfahren::
- Laden Sie den OpenAudio-Bench-Datensatz herunter (zu finden im GitHub-Repository).
- Führen Sie das Evaluierungsskript lokal aus (Sie müssen es selbst schreiben oder in der Repository-Dokumentation nachschlagen).
- Geben Sie den Testton oder -text ein, um die Leistungswerte des Modells für die 5 Unterbewertungsgruppen zu erhalten.
- AnwendungsszenarioDie Entwickler können damit die Leistung verschiedener Modelle vergleichen und die Trainingsstrategien optimieren.
caveat
- Hardware-VoraussetzungCUDA-fähige Grafikprozessoren (z. B. NVIDIA-Karten) werden empfohlen, da die CPU langsamer arbeiten kann.
- Netzabhängigkeit: Für den ersten Lauf ist ein Internetzugang erforderlich, um die Modellgewichte herunterzuladen, danach ist eine Offline-Nutzung möglich.
- kommerzielle NutzungEr muss das Apache 2.0-Protokoll einhalten und bestätigen, dass die Zahl der täglich aktiven Nutzer (DAU) weniger als 1 Million beträgt.