Startseite / Artikel / audio.cpp: Plattformübergreifende Spracherkennung und TTS in reinem C++

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.

833 Wörter

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: vad findet Sprachaktivität, spk kümmert sich um Sprecher-Embeddings und Sprechererkennung, align übernimmt das Forced Alignment und diar trennt die Sprecher.
  • Kernfunktionen für Sprache: asr transkribiert, tts synthetisiert, clon klont Stimmen und vdes entwirft sie.
  • Umwandlung: vc wandelt Stimmen um, s2s macht aus Sprache wieder Sprache, svc wandelt Gesangsstimmen um und sep trennt Quellen.
  • Generierung und Transkription: gen erzeugt Musik oder Klang aus Text- oder Audiovorgaben, und midi macht 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.