audio.cpp: Plattformübergreifende Spracherkennung und TTS in reinem C++
audio.cpp mit Metal, Vulkan oder CUDA bauen, Modelle installieren und Parakeet-Transkription sowie VoxCPM2-Stimmklonen ohne Python-Laufzeit ausführen.
Python-Bibliotheken für Sprachverarbeitung auf dem Mac sind gut, bis derselbe Code woanders laufen soll. mlx-audio ist ein gutes Beispiel. Die Bibliothek baut auf Apples MLX-Framework auf, macht Inferenz auf Apple Silicon schnell und unterstützt von Haus aus Dutzende Modelle für Spracherkennung und Sprachsynthese. Ihre Grenze ist die Portabilität: Sie ist für den Mac gemacht. audio.cpp geht den umgekehrten Weg. Es ist eine quelloffene Inferenz-Engine für Sprache, geschrieben in schlichtem C++ auf der ggml-Laufzeit, mit Backends für Metal, Vulkan und CUDA für schnelle Inferenz auf der GPU.
Was es bietet
- Es führt eine lange Liste beliebter quelloffener ASR- und TTS-Modelle aus.
- Es läuft unter Windows, macOS und Linux.
- Es nutzt den ggml-Stack, sodass Sie zwischen CUDA, HIP/ROCm, Vulkan, Metal oder reiner CPU wählen können.
- Es unterstützt JSON-Pipelines, um Schritte zu größeren Abläufen zu verketten.
- Es bringt Werkzeuge für Rauschunterdrückung, Klangverbesserung, Resampling und STFT/ISTFT mit.
Welche Modelle laufen
Bei der Sprachsynthese sind unter anderem Qwen3-TTS, VibeVoice, VoxCPM2, Fun-CosyVoice3, die IndexTTS-2-Familie, Higgs Audio v3, Fish Audio S2 Pro, Kokoro 82M, OmniVoice, Chatterbox, BreezeTTS 2 und Supertonic 3 dabei.
Zur Spracherkennung gehören zwei Größen von Qwen3-ASR (0.6B und 1.7B), Fun-ASR-Nano, Higgs Audio v3 STT, VibeVoice ASR in normaler und Streaming-Variante, Nemotron 3.5 ASR Streaming und Voxtral-Mini-4B-Realtime.
Für die Musikgenerierung gibt es MiniMax Music 3, ACE-Step 1.5 Turbo, die Versionen Small und Medium von Stable Audio 3 und weitere.
Lokal bauen
Holen Sie zuerst den Code:
git clone https://github.com/0xShug0/audio.cpp.git
cd audio.cpp
Kompilieren Sie dann für das Backend, das zu Ihrer Hardware passt. Unter Linux mit Vulkan:
scripts/build_linux.sh --backend vulkan --target audiocpp_cli --target audiocpp_server
Unter Linux mit einer NVIDIA-GPU nehmen Sie stattdessen CUDA und lassen die Architektur entweder automatisch erkennen oder geben bestimmte an:
scripts/build_linux.sh --backend cuda --cuda-arch native --target audiocpp_cli --target audiocpp_server
scripts/build_linux.sh --backend cuda --cuda-arch "86;89" --target audiocpp_cli --target audiocpp_server
Auf dem Mac verwenden Sie das Metal-Skript:
scripts/build_metal.sh --target audiocpp_cli
Ist der Metal-Build fertig, liegt die Binärdatei audiocpp_cli in build/macos-metal-release/bin. Diese eine CLI erledigt eine breite Palette von Aufgaben, die per Name ausgewählt werden:
- Erkennung und Analyse:
vadfindet Sprachaktivität,spkkümmert sich um Sprecher-Embeddings und Sprechererkennung,alignübernimmt das Forced Alignment unddiartrennt die Sprecher. - Kernfunktionen für Sprache:
asrtranskribiert,ttssynthetisiert,clonklont Stimmen undvdesentwirft sie. - Umwandlung:
vcwandelt Stimmen um,s2smacht aus Sprache wieder Sprache,svcwandelt Gesangsstimmen um undseptrennt Quellen. - Generierung und Transkription:
generzeugt Musik oder Klang aus Text- oder Audiovorgaben, undmidimacht aus Audio symbolische MIDI-Ereignisse.
Modelle besorgen
Um die Downloads kümmert sich ein mitgelieferter Model Manager, der diese Befehle versteht:
list list installable packages
info show one package or family default
sizes check package download sizes without downloading files
installed report locally installed packages without network access
uninstall remove only the files belonging to one installed package
clean-partial remove abandoned staging downloads for one package
install install one Hugging Face or ModelScope snapshot package
Lassen Sie sich zuerst anzeigen, was verfügbar ist:
python3 tools/model_manager_v2.py list
Die Konsole listet die installierbaren Pakete auf. Um beide Richtungen auszuprobieren, installieren Sie Parakeet-TDT-0.6B-v3 für die Erkennung und VoxCPM2 für die Synthese:
# ASR
python3 tools/model_manager_v2.py install parakeet_tdt_q8_0
# TTS
python3 tools/model_manager_v2.py install voxcpm2_q8_0
Ausprobieren
Für die Erkennung übergeben Sie der CLI die GGUF-Datei von Parakeet und eine WAV-Datei:
build/macos-metal-release/bin/audiocpp_cli \
--task asr \
--model models/Parakeet-TDT-0.6B-v3-GGUF/parakeet-tdt-0.6b-v3-q8_0.gguf \
--audio lisa.wav
Die Konsole antwortet mit Modellfamilie, Aufgabe, Modus, Zeitstempeln auf Wortebene mit Sample-Positionen und Konfidenz sowie dem fertigen Transkript:
family=parakeet_tdt
task=asr
mode=offline
word_timestamps=[{"start_sample":0,"end_sample":14080,"word":"Breeze","confidence":0}, ...]
text_output=Breeze TTS2 is an open-weight text-to-speech model built for real-time interaction.
Für die Synthese mit VoxCPM2 braucht ein einfacher Stimmklon einen Text und eine Referenzaufnahme:
build/macos-metal-release/bin/audiocpp_cli \
--task tts \
--model models/VoxCPM2-GGUF \
--text "audio.cpp is running VoxCPM2 locally." \
--voice-ref lisa.wav \
--out voxcpm2.wav
Ein genauerer "ultimate"-Klon bekommt zusätzlich das Transkript des Referenzclips, was dem Modell hilft, die Stimme noch näher zu treffen:
build/macos-metal-release/bin/audiocpp_cli \
--task tts \
--model models/VoxCPM2-GGUF \
--text "audio.cpp is running VoxCPM2 locally." \
--voice-ref lisa.wav \
--reference-text "Breeze TTS 2 is an open-weight text-to-speech model built for real-time interaction." \
--out voxcpm2.wav
Lohnt sich ein Blick?
Im Vergleich zu mlx-audio ist audio.cpp schlanker. Es braucht weder eine Python-Laufzeit noch einen Haufen Fremdpakete. Wenn Sie plattformübergreifende KI-Funktionen bauen, die auf Spracherkennung oder Sprachsynthese angewiesen sind, sollten Sie es testen. Wenn Sie nur Transkription brauchen, sehen Sie sich transcribe.cpp an, ein verwandtes Projekt mit 16 beliebten quelloffenen ASR-Modellen und über 60 Varianten.