audio.cpp

0xShug0活跃维护

纯 C++ 音频推理引擎,基于 ggml 实现,一套代码覆盖语音合成、识别、VAD、变声和音乐生成,不依赖 Python,适合边缘部署。

An all-in-one, pure C++ inference engine for audio models, powered by ggml. Supports TTS, STT, VAD, voice conversion, music generation, and more, with highly optimized performance. No Python dependency.

v0.9.4发布于 2026-11-05 06:09 UTC4,143star +38 / 7 天501fork同步于 2026-11-10 05:38 UTC

怎么上手

由 README 提炼,执行前请确认
scripts/build_linux.sh --backend cuda --target audiocpp_cli --target audiocpp_server
硬件要求按 README 说明

支持 NVIDIA、AMD、Apple Silicon 及纯 CPU 机器,覆盖 Windows、Linux、macOS;README 未给出具体显存数值要求。

纯 CPU 可运行支持 Apple Silicon需要 CUDA支持 ROCm / AMD
下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

纯 C++ 音频推理引擎,基于 ggml,统一跑 TTS、ASR、语音转换等模型,无需 Python 环境

纯 C++ 音频推理引擎,基于 ggml 实现,一套代码覆盖语音合成、识别、VAD、变声和音乐生成,不依赖 Python,适合边缘部署。

核心能力

  • 基于 ggml 构建统一原生运行时,覆盖 TTS、ASR、VAD、变声、音乐生成
  • 支持 143 个音频模型家族、250+ 变体,共用同一套 CLI 和 server API
  • 内置 WebUI,可做声音克隆、模型对比、模型与音色库管理
  • 复用会话、缓存计算图与批量离线推理,部分 TTS 路径比 Python 快 1.8–8 倍
  • 支持 CUDA、HIP/ROCm、Vulkan、Metal、WebGPU 与纯 CPU 多后端

容易踩的坑

需先装好对应后端工具链(CUDA Toolkit、Vulkan SDK 或 ROCm),否则无法编译;模型需另行从 Hugging Face 或 ModelScope 的 audio.cpp-gguf 仓库下载;CUDA 默认用可移植架构列表,构建慢,可加 --cuda-arch native 加速。

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

5 个版本v0.9.4
  1. v0.9.4最新正式版2026-11-05 · 2026-11-05 06:09 UTC

    What's Changed

  2. v0.9.32026-10-26 · 2026-10-26 20:46 UTC
    查看更新说明

    What's Changed

  3. v0.9.2-drama3-base-small2026-10-19 · 2026-10-19 00:17 UTC
    查看更新说明

    What's Changed

  4. v0.9.22026-10-15 · 2026-10-15 18:54 UTC
    查看更新说明

    What's Changed

  5. v0.9.12026-10-07 · 2026-10-07 21:58 UTC
    查看更新说明

    Recent release builds tend to target AVX-512 due to automatic CPU detection on GitHub runners. If you run into crashes, please use the portable version for broader CPU compatibility.

    What's Changed

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    audio.cpp

    0xShug0/audio.cpp | Trendshift

    audio.cpp is a high-performance C++ audio inference framework built on top of ggml, designed to make modern local audio models practical, portable, and fast.

    Tired of juggling a dozen Conda environments, hundreds of Python packages, and dependency conflicts just to try a few audio models? audio.cpp gives those paths a shared native runtime instead. Runs on Windows, Linux, and macOS, with support for NVIDIA, AMD, Apple Silicon, and CPU-only machines.

    Lost in a sea of audio model names, papers, and codebases? Explore 100+ audio models in the Audio Model Architecture Atlas to see how they're built, what they share, and where they differ, whether you're learning or building your own.

    Hugging Face ModelScope Open In Colab Open Architecture Atlas

    Supported backends: CPU CUDA HIP/ROCm Vulkan Metal WebGPU

    [!TIP]

    v0.9.4 highlights

    Experimental HIP kernels: Select --backend hip --backend-impl gfx1151_v1 to try alternative AMD kernels. On the tested Strix Halo GPU, Q8 generation time fell by 76.7% for Irodori-TTS Small MF, 30.9% for Qwen3-TTS 1.7B VoiceDesign, and 14.0% for BreezeTTS2 versus default HIP. Despite its name, gfx1151_v1 can also run on RDNA1/2, as well as RDNA3/4; available fast paths vary by architecture. Gains vary by model and hardware; the implementation is opt-in. See the HIP guide. Contributions are welcome: test other AMD GPUs, report model performance and correctness, or help improve the kernels. Thanks to AMD DevLab for providing hardware access!

    Metal optimizations: New SSM scan, convolution, and dataflow optimizations reduce RE-USE processing time by 56.5% on M4 Pro. Parakeet’s channel-contiguous subsampling and matrix projections reduce end-to-end processing time by 12.1–13.9%, with unchanged transcripts.

    Browser inference with WASM + WebGPU: Run supported models locally in the browser. On RTX 5090 in Chrome, measured throughput reaches 23.3× real time for Supertonic 3, 13.9× for Kokoro, 94.3× for SenseVoice ASR, and 25.0× for warmed LFM3-Audio ASR. See the tested models, settings, and performance table.

    Experimental streaming avatar voice chat: Talk to LFM3-Audio through the WebUI while SoulX-FlashHead animates your chosen portrait. Responses stream as text, speech, and synchronized head animation, with voice selection, adjustable speaking speed, and a customizable personality.

    audio.cpp is built for real end-to-end execution rather than one-off model demos. Its optimized, reusable building blocks support speech generation and recognition, separation, alignment, and multi-model workflows. Shared components make new models easier to integrate and let improvements benefit multiple model families while keeping inference efficient, maintainable, and portable.

    Features

    ⭐ 143 audio model families and 250+ variants. Run TTS, ASR, music generation, voice cloning, conversion, separation, and more locally through a shared CLI and server API.

    ⭐ Built-in WebUI. Generate and clone voices in Studio, compare models in Arena, manage models and voice libraries, and assemble narration with reusable speakers and passage editing in the TTS app.

    ⭐ Performance. Reusable sessions, cached graphs, and batched offline inference. Selected TTS paths run 1.8–8× faster than Python; tested Q8 packages deliver up to 1.53× speedup and 37% lower peak VRAM versus 16-bit weights (report). Supertonic 3 generates 10 hours of audio in 3 minutes on RTX 5090 (demo), while Nemotron 3.5 ASR matches WER at roughly ¼ the wall time in the TranscrIA benchmark. audio.cpp is among the fastest inference engines for streaming TTS latency on the Open TTS Leaderboard.

    ⭐ Portability. A native ggml runtime supporting CUDA, HIP/ROCm, Vulkan, Metal, WebGPU, and CPU through common CLI and server interfaces.

    ⭐ Hardware-specific optimizations. ARM NEON acceleration, Rockchip RKNN component execution, experimental HIP kernels, and CUDA, Metal, and Vulkan optimizations. Model-specific perf_mode presets expose optional fast paths for supported hardware.

    ⭐ Parity. Validation tooling for comparing model outputs against Python reference implementations.

    ⭐ Integrations and deployment. Powers speech, music, and transcription in Unsloth Studio. Fun-ASR-Nano and SenseVoice can also be deployed through the FunASR platform.

    Contributing

    audio.cpp would not be moving this quickly without generous contributors bringing in real fixes, new capabilities, and careful polish. See CONTRIBUTING.md for how to contribute and for a shout-out to the people already helping shape the project. Before starting a new model port, check the supported model table because several families are already implemented or under testing, and read the New Model PRs section in CONTRIBUTING.md. New ports should start under the community model source tree, where review is lighter than core models but still needs reproducible validation.

    News

    [!IMPORTANT] 2026-11-04 — Release v0.9.4: WebGPU support brings audio inference to the browser with WASM, and the WebUI gains streaming voice chat with animated SoulX avatars, cross-language dubbing, and voice-library export, import, and sorting. New models include Nemotron 3.5 Transcribe with CPU offload below 7 GB VRAM, LFM3-Audio, LFM D1-Omni, PocketTTS Small, SoulX-FlashHead, Real-time RE-USE, Magenta RealTime 2, Music Flamingo, Haas, and Underdog Bark 3, plus Irodori-TTS v4 Large. Experimental AMD kernel selection, new performance controls, and backend fixes improve speed, memory use, and compatibility. This release brings together community model ports, backend optimizations, and fixes shaped by real deployment reports.

    2026-10-26 — Release v0.9.3: New speech models including Drama3, Ming 3.0 TTS/Audio Tiny, XTTS v2, Plapre 3, Gradium Phonon, and Earshot VAD, plus experimental LatentSync lip sync. Highlights include LoRA across 11 models, a TTS workspace, voice-cloning and dubbing recipes, perf_mode presets, lower memory use, and expanded HIP, ARM NEON, and Rockchip NPU support. Thanks to our contributors!

    2026-10-15 — Release v0.9.2: New models include Voxtral TTS, TF-GridNet, MossFormer2, Hviske v6, FireRed VAD, AST, CED, and wake-word detection models. This release expands TTS streaming, adds multi-turn LFM2.5-Audio conversations, and improves model performance and compatibility. The WebUI gains a shared Voice Library and layout improvements. Downloadable C API libraries, Windows Vulkan portable builds, and packaged server configuration examples make integration easier. Thanks to everyone contributing code, testing, and feedback!

    2026-09-30 - Release v0.9.0: 100+ audio models, an enhancement and denoising WebUI tab, speaker-tagged ASR, and performance and memory improvements. Explore the Architecture Atlas. Thanks to our community!

    2026-06-25 to 2026-09-23 (releases 0.1 to 0.8): audio.cpp grew to 80+ model families and 120+ variants across TTS, ASR, music generation, voice conversion, separation, and speech analysis. Major additions included the native WebUI and Arena, GGUF packaging, LoRA adapters, streaming, and CUDA/Metal performance improvements, alongside Vulkan and experimental HIP support. The C ABI, Colab integration, MP3/HTTPS frontends, and models such as YuE2 and SheetSage2 expanded integration and audio-to-score workflows.

    Supported Models

    Task tags: TTS text to speech, Clone voice cloning, VC voice conversion, S2S speech-to-speech, ASR speech recognition, Classify audio classification, Wake wake-word detection, Align forced alignment, VAD voice activity detection, Diar speaker diarization, Codec audio codec, Sep source separation, MIDI audio-to-symbolic MIDI/events, Music music/song generation, SFX sound effects, Video video generation, Edit audio/music editing, Design voice design, Dialogue multi-speaker dialogue TTS, Ctrl TTS/clone voice control such as emotion, style, instruction, caption, or non-verbal tag control.

    Runtime tags summarize the supported loading paths. GGUF package precision varies by model and release; check the audio.cpp GGUF repo or docs/gguf.md for the exact package list. Bundled means the tiny runtime asset ships under assets/framework/models and needs no separate model download. Stream means the family exposes a streaming server/session path. LoRA means adapter loading is supported in audio.cpp; see the LoRA guide for supported formats and usage.

    Model weights keep the license of their original release, which is separate from audio.cpp's own license. docs/model_licenses.md lists that license per family, and whether it allows commercial use.

    Speech Generation And Conversation

    FamilyTaskLangVariantsRuntime
    breeze_ttsTTS, Clone, Design, Ctrlzh, enBreezeTTS 2 instruction-conditioned TTS and prompt-audio voice cloningGGUF BF16/Q8/Q4_0, Stream
    chatterboxTTS, Clone, VCar, da, de, el, en, es, fi, fr, hi, it, ko, ms, nl, no, pl, pt, sv, sw, trChatterbox with 0.5B backboneGGUF 16/Q8
    confucius4_ttsTTS, Clonezh, en, ja, ko, de, fr, es, id, it, th, pt, ru, ms, viConfucius4-TTS multilingual voice cloningGGUF F32, Stream
    cosyvoice3TTS, Clonezh, en, ja, ko, de, es, fr, it, ru, yueFun-CosyVoice3 zero-shot, cross-lingual, and instruction-conditioned TTSGGUF F32/Q8, LoRA
    dots_ttsTTS, Clone, Edit, CtrlmultilingualDotTTS SOARDotTTS MeanFlowDotTTS EditGGUF 16/Q8, Stream
    dramaboxTTS, CloneenDramaBox expressive TTS and voice cloningGGUF Q8
    fish_audioTTS, Clone, Ctrlauto, en, zhFish Audio S2 ProGGUF 16/Q8, Stream, LoRA
    firered_audioASR, TTS, Clone, Design, Ctrlzh, enFireRedAudio multimodal speech/audio model with ASR, understanding, cloning, design, and edit pathsGGUF original/Q8
    fireredtts3TTS, Clone, Design, Ctrl24 langs + 21 zh dialectsFireRedTTS3 BaseFireRedTTS3 Instruct/VoicedesignGGUF original/Q8
    gradium_phononTTSenGradium Phonon 31m EnglishGGUF Q8, Safetensors, Stream
    higgs_audio_ttsTTS, Clone, CtrlautoHiggs Audio v3 TTS 4BGGUF 16/Q8, Stream
    index_tts2TTS, Clone, Ctrlzh, en, ja, es, arIndexTTS-2IndexTTS-2.5GGUF 16/Q8
    kokoro_ttsTTSen-us, en-gb, es, fr, hi, it, ja, pt-br, zhKokoro 82M, 54 preset voicesSafetensors, local GGUF BF16/Q8, Stream
    kugelaudioTTSEuropean multilingualKugelAudio-0-Open, four preset voicesGGUF BF16 / Q8_0 / Q4_K, Stream
    irodori_ttsTTS, Clone, Design, CtrljaIrodori-TTS-v4.1-Small (RF and MF)Irodori-TTS-v4.1-AnimeIrodori-TTS-500M-v3Irodori-TTS-600M-v3-VoiceDesignGGUF 16/Q8
    magpie_ttsTTSar-AE, ar-MSA, ar-SA, de, en, es, fr, hi, it, ko, pt-BR, vi, zhNVIDIA MagpieTTS Multilingual 357M (v2607) with baked speaker prompts and NanoCodec decodeGGUF original/Q8
    maya1TTS, Design, CtrlenMaya1 expressive TTS with natural-language voice design, inline emotion tags, and SNAC decodingGGUF original/Q8
    ming3_ttsTTS, Clone, Design, Ctrlzh, en, ja, ko, de, fr, esMing 3.0 TTS 0.5BGGUF BF16/Q8, Stream
    miottsTTS, Cloneen, jaMioTTS-1.7BGGUF 16/Q8
    moss_tts_localTTS, Clone, Ctrlauto, optional language hintMOSS-TTS-Local-Transformer-v1.5GGUF 16/Q8
    moss_tts_nanoTTS, CloneautoMOSS-TTS-Nano-100MGGUF 16/Q8, Stream
    neuttsTTS, CtrlenNeuTTS 2E with built-in speaker prompts and emotion controlGGUF original precision, Stream
    omnivoiceTTS, Clone, Design, Ctrl646+ langsOmniVoice, Qwen3-0.6B basedVoiceTut-TTS (Egyptian Arabic fine-tune)GGUF 16/Q8, Stream
    personaplexDialogue, S2SenPersonaPlex 7B v1 speech-to-speech conversational model with packaged voice/persona promptsGGUF Q4/Q8, Stream
    plapreTTS, Clone, Ctrl, EditdaPlapre 3, five preset voicesGGUF F32/BF16, Stream
    pocket_ttsTTS, Cloneen, fr, de, it, pt, esPocketTTS-100M English/French/German/Italian/Portuguese/SpanishGGUF 16/Q8, Stream
    pocket_tts_smallTTS, CloneenPocketTTS Small 18M/7M/2M, base and ReFLGGUF F32, Stream
    qwen3_ttsTTS, Clone, Design, Ctrlzh, en, fr, de, it, ja, ko, pt, ru, esQwen3-TTS-12Hz-0.6B-BaseQwen3-TTS-12Hz-1.7B-BaseQwen3-TTS-12Hz-1.7B-CustomVoiceQwen3-TTS-12Hz-1.7B-VoiceDesignGGUF 16/Q8, Stream, LoRA
    supertonicTTSen, ko, ja, ar, bg, cs, da, de, el, es, et, fi, fr, hi, hr, hu, id, it, lt, lv, nl, pl, pt, ro, ru, sk, sl, sv, tr, uk, vi, naSupertonic 3GGUF F32, Stream
    vibevoiceTTS, Dialogueen, zhVibeVoice-1.5BVibeVoice-7BGGUF 16/Q8, Stream, LoRA
    voxcpm2TTS, Clone, Design, Ctrlar, da, de, el, en, es, fi, fr, he, hi, id, it, ja, km, ko, lo, ms, my, nl, no, pl, pt, ru, sv, sw, th, tl, tr, vi, zhVoxCPM2-2B, 48 kHzVocalRender-Pro (score-conditioned singing)GGUF 16/Q8, Stream, LoRA
    voxtral_ttsTTSen, fr, es, de, it, pt, nl, ar, hiVoxtral-4B-TTS-2603, 20 embedded preset voicesGGUF BF16/Q8, Stream

    Speech Recognition And Analysis

    FamilyTaskLangVariantsRuntime
    ast_audiosetClassifylanguage agnosticMIT AST AudioSet, 527 classesGGUF F32
    cedClassifylanguage agnosticCED TinyCED MiniCED SmallCED Base527 AudioSet classesGGUF F32
    audio_flamingoASR, Audio understandingenAudio Flamingo 3Audio Flamingo NextMusic Flamingo 2601SpotSound (LoRA temporal grounding)GGUF BF16/Q8/Q4, LoRA
    canary_asrASR, Translateen, de, es, frCanary 180M FlashGGUF F32/Q8
    citrinet_asrASRenCitrinet-256GGUF Q8
    cohere_asrASRen, fr, de, es, it, pt, nl, pl, el, ar, ja, zh, vi, koCohere Transcribe 03-2026GGUF BF16/Q8/Q4_0
    crisperwhisperASR, Align99 language codesCrisperWhisper 2.0 LargeGGUF BF16/Q8, Stream
    gigaam_asrASRru, kk, ky, uz, enGigaAM v3 CTCGigaAM v3 RNN-TGigaAM v3 E2E CTCGigaAM v3 E2E RNN-TGigaAM Multilingual CTCGigaAM Multilingual Large CTCGGUF F16/F32
    fun_asr_nanoASRauto, zh, en, jaFun-ASR-Nano-2512GGUF 16/Q8
    higgs_audio_sttASRenHiggs Audio v3 STTGGUF 16/Q8, Stream
    hviske_asrASRdaHviske v5.3GGUF Q8
    hviske_asr_v6ASRdaHviske v6GGUF BF16 / Q8
    index_echoASR, Translatezh → en, es, jaIndex-Echo-S2TT 2BIndex-Echo-S2TT 9BGGUF original/Q8_0/Q4_K
    lfm_d1_omniClassifymultilinguald1-Omni-2B calibrated audio decisions with named yes/no, choice, score, and numeric-estimate questionsGGUF Q8_0/F16/BF16
    marblenet_vadVADlang agnosticMarbleNet VADBundled
    micro_wake_wordWakemodel dependentmicroWakeWord MixedNet TFLite models converted to GGUFGGUF F32, Stream
    ming3_audioASR, Understanding, TTS, Clone, S2Szh, enMing 3.0 Audio TinyGGUF BF16/Q8_0/Q4_K
    open_wake_wordWakeenOpenWakeWord AlexaGGUF F32, Stream
    firered_vadVADlang agnosticFireRed VAD / Stream-VADGGUF F32/F16/Q8, Stream
    pulsevadVADlang agnosticPulseVAD 2.1K Student / 81K TeacherGGUF F32
    moonshine_asrASRenMoonshine Streaming Tiny/Small/MediumGGUF Q8, Stream
    moss_transcribe_diarizeASRauto, 50+ languagesMOSS-Transcribe-Diarize with speaker labels and timestampsGGUF BF16/Q8/Q4_K, Stream
    nemotron_3_diarDiarmultilingualNVIDIA Nemotron 3 Diarization with eight-speaker arrival-order diarizationGGUF BF16, Batch, Stream
    nemotron_asrASR100+ ASR prompt codes incl. autoNemotron 3.5 ASR Streaming 0.6BGGUF 16/Q8, Stream
    niagara_asrASRenNiagara 19M Batch EnglishNiagara 38M Batch EnglishGGUF F32
    owsmASR, Translate151 language codesOWSM v4 Base 102MOWSM v4 Small 370MOWSM v4 Medium 1BGGUF F32 / Q8_0 / Q4_K (Small, Medium)
    owsm_ctcASR, Translate151 language codesOWSM-CTC v4 1BGGUF F32 / Q8_0
    qwen3_asrASRzh, en, yue, ar, de, fr, es, pt, id, it, ko, ru, th, vi, ja, tr, hi, ms, nl, sv, da, fi, pl, cs, fil, fa, el, ro, hu, mkQwen3-ASR-0.6BQwen3-ASR-1.7B-hfQwenCleo-ASR (Egyptian Arabic fine-tune)GGUF 16/Q8, Stream, LoRA
    qwen3_forced_alignerAlignzh, yue, en, de, es, fr, it, pt, ru, ko, jaQwen3-ForcedAligner-0.6BGGUF 16/Q8
    samsoneAudio understandingenSAMSONE 99MSAMSONE 134MSAMSONE 356MGGUF BF16/Q8
    silero_vadVADlang agnosticSilero VADBundled, Stream
    sherpa_kwsWakemodel dependentsherpa-onnx streaming Zipformer keyword spottingGGUF F32, Stream
    smart_turnTurn detectionautoSmart Turn v3.2GGUF F32
    sortformer_diarDiarenSortformer-4spk-v1-
    vibevoice_asrASRautoVibeVoice ASRGGUF 16/Q8
    vibevoice_asr_streamingASRen, zh, es, pt, de, ja, ko, fr, ru, itVibeVoice ASR Streaming 7B/1.5B with persistent decoder state and speaker turnsGGUF BF16/Q8/Q4, Stream
    voxtral_realtimeASRautoVoxtral-Mini-4B-Realtime-2602GGUF 16/Q8/Q4, Stream

    Audio Conversion And Processing

    FamilyTaskLangVariantsRuntime
    apolloS2Slang agnosticApollo music restorationGGUF F32
    audiosrS2Slang agnosticAudioSR Basic audio super-resolution packageGGUF F32
    bs_roformerSeplang agnosticBS-RoFormer vocal separation checkpointsGGUF Q8
    builtin_audio_utilsS2Slang agnosticRNNoiseDeepFilterNet2ZipEnhancerGTCRN StreamingGTCRN DNS3GTCRN VCTKFlashSRSafetensors
    controlfoleySFXautoControlFoley 44 kHz multimodal Foley generation from text, video, and reference audio conditioningGGUF F32/Q8
    htdemucsSeplang agnosticHTDemucsHTDemucs_ftHTDemucs_6stemsGGUF 16/Q8
    meanvc2VClang agnosticMeanVC2 120 ms/40 ms zero-shot voice conversionGGUF F32/Q4, Stream
    mel_band_roformerSeplang agnosticMel-Band RoFormer MLX vocal separation variantsGGUF 16/Q8
    miocodecCodec, VClang agnosticMioCodec v2, 25 Hz, 44.1 kHzGGUF 16/Q8
    mossformer2Seplang agnosticMossFormer2 SS 16K two-speaker separationGGUF F32
    muscriptorMIDImusicMuScriptor Small/Medium/Large audio-to-symbolic transcriptionGGUF F32, Stream
    rvcVClang agnosticRVC F16 GGUF with packaged v1/v2 voices and optional retrieval blendingGGUF 16
    sam_audioS2Slang agnosticSAM Audio SmallSAM Audio BaseSAM Audio LargeGGUF F32/BF16/Q8
    seed_vcVClang agnosticSeedVC XLS-R + HiFTSeedVC Whisper-small + BigVGANGGUF 16/Q8
    sheetsage2MIDImusicSheetSage2 audio-to-ABC score transcriptionGGUF orig
    sidonS2Slang agnosticSidon v0.1 single-speaker speech restorationGGUF F32
    tf_gridnetSeplang agnosticTF-GridNet WSJ0-2mix two-speaker separationGGUF F32
    tone_color_vcVClang agnosticTone Color VCGGUF F32/F16
    universrS2Slang agnosticUniverSR Audio and Speech super-resolutionGGUF F32

    Music, Media, And Editing

    FamilyTaskLangVariantsRuntime
    ace_stepMusic, Edit50+ langsACE-Step 1.5 TurboACE-Step 1.5 BaseACE-Step 1.5 XL TurboACE-Step 1.5 XL SFTGGUF 16, LoRA
    heartmulaMusiczh, en, ja, ko, esHeartMuLa-oss-3B with HeartCodec-ossGGUF 16/Q8
    magenta_realtime_2MusicmusicMagenta RealTime 2 Small (230M)Magenta RealTime 2 Base (2.4B)GGUF F16/Q8_0, Stream
    midashenglm_genMusic, SFXautoMiDashengLM-Gen structured-prompt generation for speech, music, sound effects, and ambienceGGUF F32/Q8
    minimax_h3Video, Music, TTS/DialogueautoMiniMax-H3 Q4_K with optional INT8 ConvRot DiTGGUF Q4/INT8
    minimax_music3MusicautoMiniMax Music 3 text-to-music generation with lyrics conditioningGGUF Q4/Q8
    moss_soundeffectSFXen, zhMOSS-SoundEffect v2 text-conditioned sound effectsGGUF BF16/Q8
    mulacoverMusicmultilingualMuLaCover cover-song generation from reference audio or melody/chord MIDI, with new lyrics and styleGGUF 16/Q8
    soulx_flashheadAudio-to-videolang agnosticSoulX-FlashHead Lite audio-driven portrait video generationGGUF Q8/BF16, Stream
    stable_audioMusic, SFX, EditenStable Audio 3 Small MusicStable Audio 3 Small SFXStable Audio 3 MediumGGUF 16/Q8
    vevo2TTS, Music, VC, Editen, zhVevo2 with Qwen2.5-0.5B AR modelGGUF 16
    yue2MusicenYuE2-3B lyrics-conditioned song generation with optional ABC score planning and conditioningGGUF BF16/Q8/Q4, LoRA

    Some model families in the supported table started as outside contributions before being promoted into the core release surface. Thanks to Mirek @mirek190 for BS-RoFormer, @justinjohn0306 for MOSS-TTS-Local, and @LauraGPT from the official FunASR team for Fun-ASR-Nano.

    Community Models

    Community model ports live under community_models to make the ownership boundary clear while keeping them available through the normal audio.cpp CLI and server paths. Some community-contributed models graduate into the core model tree when they become part of the main release surface. Huge thanks to the contributors who bring these models in, test them, and keep pushing the framework into new territory. See CONTRIBUTING.md for community-model expectations.

    FamilyTaskLangRuntimeContributorWhat They Added
    audio8_asrASRen, zh, yue, ja, ko, fr, deGGUF Q8, Safetensors@gqf2008Audio8-ASR-0.1B compact multilingual autoregressive ASR reusing the Qwen3-ASR encoder with an MLP-tower adapter and an 8-layer Qwen2-style decoder (CC-BY-NC, local conversion only)
    audio8_ttsTTS, Cloneauto, yue, zh, nl, en, fr, de, it, ja, ko, pl, esGGUF Q8, Stream@jasonchen31Audio8 TTS Preview 0.6B DualAR multilingual TTS and zero-shot voice cloning with a Qwen backbone and neural codec
    aukTTS, audio editingautoGGUF F32/F16/Q8@0xShug0AuK Base and AuK-Flash instruction-guided speech generation and editing with separate generator, Qwen conditioner, and VAE components
    chatterbox_turboTTS (testing)enGGUF 16/Q8@pannagapsChatterbox Turbo distilled 350M GPT2 T3 backbone + 2-step meanflow S3Gen decoder; built-in voice
    confucius4_r2t2ASR30 languagesSafetensors, GGUF F16/Q8/Q4, Stream@davidxifengConfucius4-R2T2 streaming ASR with context and hotword prompts
    earshot_vadVADlang agnosticBundled, Stream@EtherllEarshot VAD native C++ port with offline and streaming speech detection
    echo_ttsTTS, CloneenGGUF 16/Q8@5uck1essEcho-TTS 44.1 kHz zero-shot voice cloning with EchoDiT latents and Fish S1-DAC decoding
    f5_ttsTTS, Cloneen, ar (Habibi)GGUF, LoRA@tarekoF5-TTS flow-matching DiT synthesis and voice cloning, with Habibi Arabic aliases habibi/habibi_tts
    fish_drama3TTS, Clone, Ctrl, EditautoMixed Q2_K/Q3_K/Q4_K GGUF, IQ3_XXS (small), Stream@JarodMica (base), @Th-Underscore (small)Experimental Fish Audio Drama 3 port and Drama3-small variant support
    glm_ttsTTS, Clonezh, enGGUFMirek @mirek190GLM-TTS zero-shot synthesis and voice cloning support
    granite5asrASRen, fr, de, es, pt, it, jaGGUF Q8@ampersandruIBM Granite Speech 5.0 470M TurboCTC ultra-fast Conformer-CTC ASR with Shaw relative positional embeddings and ByteLevel BPE
    haas_asrASRjaGGUF F16/Q8, StreamThird IntelligenceHaas-ja-v1.0, sharing Parakeet’s encoder and TDT decoder with a KDA predictor
    inflect_v2TTSenGGUF FP32Jan @JanWerderInflect Micro v2 and Nano v2 native offline synthesis
    kitten_ttsTTSenGGUF FP32CommunityKittenTTS Mini 0.8 native 80M-parameter synthesis with eight built-in voices and the shared eSpeak-ng frontend
    kitten_tts2TTS, Cloneen, ar, zh, fr, de, hi, it, pt, ru, es, nl, id, ja, ko, pl, trGGUF Q8/Q4@dignomeKitten TTS 2 native Qwen3/S3 synthesis, multilingual presets, and reference-audio cloning; ready-to-run GGUF
    kroko_asrASRde, en, es, fr, it, he, nl, pt, sv, trSafetensors, GGUF Q8Mirek @mirek190Kroko Community ASR native offline/streaming Zipformer2/RNN-T transcription with word timestamps
    latentsyncVideo lip synclang agnosticGGUF F32/F16/Q8, experimental@0xShug0LatentSync 1.6 audio-conditioned lip synchronization with optional DeepCache and reduced-memory execution modes
    lfm2_audioASR, TTS, S2Sen, jaGGUF F32/16/Q8/Q4, Stream@ykhrustalev / Liquid AILFM2.5-Audio English and Japanese transcription, speech and spoken chat from Liquid AI's published GGUFs: LFM2 hybrid short-conv/attention backbone with a FastConformer encoder for audio input, and a depthformer and LFM2 detokenizer for 24 kHz speech in four built-in English voices; spoken questions get replies of interleaved text and speech; offline or streamed frame by frame
    lfm3_audioASR, TTS, S2Sen, ar, da, de, el, es, fi, fr, he, it, ja, ko, nl, pl, pt, sv, tr, zhGGUF BF16/16/Q8/Q4, Safetensors, Stream, experimentalCommunityLFM3-Audio transcription, spoken-question chat (with optional thinking), speech in 38 built-in voices across 19 languages and spoken chat from Liquid AI's published LFM3-Audio-2B GGUFs: LFM2 encoder for audio input, LFM3 hybrid short-conv/attention backbone, a bidirectional MaskGIT depth decoder (12 codebooks, 12.5 Hz) and the LiquidCodec decoder for 24 kHz speech; spoken questions get replies of interleaved text and speech, with client-held multi-turn history; TTS and S2S offline or streamed frame by frame
    liveavatarAudio-to-videoautoGGUF NVFP4@0xShug0LiveAvatar audio-to-video avatar generation with Wan2.2 S2V and an optional low-VRAM denoiser path
    minimax_h3Video, Music, TTS/DialogueautoGGUF Q4/INT8@0xShug0MiniMax-H3 text-to-audio/video generation with Q4_K and optional INT8 ConvRot DiT
    minimax_music3MusicautoGGUF Q4/Q8@0xShug0, @JoeMattieMiniMax Music 3 text-to-music generation with lyrics conditioning
    mira_ttsTTS, CloneenLocal conversionMirek @mirek190MiraTTS experimental native Qwen2 + ECAPA/Perceiver zero-shot voice cloning with progressive segment streaming (CC-BY-NC-SA-4.0 weights)
    mms_forced_alignerAlignnl (nld), en (eng); pre-romanized LatinSafetensors, GGUF 16/Q8@LysanderdeJongMMS-300M-1130 Forced Aligner word-timestamp alignment from a wav2vec2 CTC checkpoint (safetensors or local GGUF)
    nemotron_transcribeASR, translation, audio Q&AautoIQ4_NL / Q4_K / Q3_K / Q2_K experts@JarodMicaNVIDIA Nemotron 3.5 Transcribe 30B-A4B experimental offline speech language model with CTC word timestamps and speaker labels
    moss_tts_v15TTS, Cloneen, zhGGUFChris @christopherthompson81MOSS-TTS-v1.5 8B delay-pattern zero-shot voice cloning; voice-attribute instructions are followed only loosely, see the limitation note
    moss_ttsdTTS, Clone, Dialogueen, zhGGUF BF16/Q8/Q4Chris @christopherthompson81MOSS-TTSD 8B dialogue TTS with speaker-tagged conversations and per-speaker voice cloning
    moss_voicegenVoice Designen, zhGGUFJoost @jrohdeMOSS-VoiceGenerator speech in a voice designed from a written instruction
    outettsTTS, Cloneen, ar, zh, nl, fr, de, it, ja, ko, lt, ru, es, pt, be, bn, ka, hu, lv, fa, pl, sw, ta, ukGGUF, LoRAMirek @mirek190Llama-OuteTTS-1.0-1B TTS and voice cloning support
    parakeet_tdtASRauto, bg, cs, da, de, el, en, es, et, fi, fr, hr, hu, it, lt, lv, mt, nl, pl, pt, ro, ru, sk, sl, sv, ukGGUF F32/16/Q8, Stream@dleiferivesParakeet-TDT 0.6B v3 offline, long-form, and buffered-streaming ASR support, plus Orukeet r3 weights
    phonon2_asrASRenGGUF F32/16/BF16/Q8, StreamMirek @mirek190Phonon-2, native hotwords and phrase-based streaming on the shared Parakeet implementation
    piper_ttsTTSenGGUF FP32CommunityPiper TTS native VITS synthesis for the Lessac medium voice with the shared eSpeak-ng frontend
    realtime_reuseS2Slang agnosticGGUF F32, Stream@0xShug0Real-time RE-USE causal speech restoration with 30 exit-layer/lookahead configurations
    reuseS2Slang agnosticGGUF F32/F16/Q8_0@0xShug0RE-USE speech restoration
    sanottsTTSen, vi, id, cs, de, es, fr, it, pt, ro, ru, tr, ne, hiGGUF FP32Ashish @voidashsanoTTS voice family eighteen voices from 294k to 2.27M parameters, native offline synthesis
    sense_asrASRauto, zh, en, yue, ja, ko, pt, ru, es, it, fr, de, nl, pl, tr, ar, hi, vi, th, id, ms, fa, nospeechGGUF Q8, StreamJason Chen @jasonchen31, @LauraGPT / FunASRSenseVoice-Small offline/streaming SAN-M + CTC transcription with event/emotion/language tags, ITN and word timestamps
    soprano_ttsTTSenGGUF Q8, Stream@drzsdrtfgSoprano-1.1-80M ultra-lightweight TTS with Qwen3 LM + Vocos decoder
    sopro_ttsTTS, Cloneen, pt, fr, deSafetensors, GGUF F16, Stream@Brioch, @samuel-vitorino (model author)Sopro V2 Turbo updated for Sopro 2.2.0: 120M zero-shot voice cloning, chunked streaming, and optional voice caching
    sortformer_diar_v2DiarmultilingualGGUF F32/mixed F16, Stream@LysanderdeJongNVIDIA Sortformer v2.1 four-speaker streaming diarization; local conversion only pending redistribution approval
    underdog_bark3ASRenGGUF F32/16/BF16/Q8, StreamMirek @mirek190Underdog Bark 3 Standard/Plus/Pro, sharing the Parakeet implementation
    vibeasrASRenGGUF I8_S + I2_S@XsquirrelC / VibeASRVibeASR fully quantized port of VibeASR.cpp: VibeVoice acoustic/semantic tokenizers on INT8 weights and INT8 activations, feeding a ternary BitNet Qwen2 decoder. Offline, CPU only
    vieneu_v3_turboTTS, Clonevi, enGGUFBảo @pnnbao97 (model author); first port by Phuoc @phuocnguyen90VieNeu-TTS v3 Turbo 48 kHz Vietnamese/English TTS and voice cloning (formerly vietneu_tts)
    voxcpm1TTS, Clonezh, en, ja, koGGUF Q8, Stream, LoRA@jasonchen31VoxCPM1 tokenizer-free 0.5B TTS with 16 kHz output, streaming, and continuation-mode voice cloning
    whistle_asrASRen, de, fr, es, it, nl, plGGUF F32, Safetensors F32@bumpyclockWhistle ASR experimental offline transcription with a GGML encoder on CPU, Metal, CUDA, or Vulkan and a host decoder; 16 kHz mono, at most 30 seconds
    xtts_v2TTS, Cloneen, es, fr, de, it, pt, pl, tr, ru, nl, cs, ar, zh-cn, hu, ko, ja, hiGGUF original/Q8_0/Q4_K_M@whoresonCoqui XTTS v2 multilingual speech generation with a reference voice and cached speaker conditioning
    zipvoiceTTS, Clonezh, enGGUF F32, StreamCommunityZipVoice k2-fsa TTSZipformer flow-matching zero-shot voice cloning with Vocos vocoder; jieba + pypinyin Chinese frontend; chunk streaming

    Prebuilt Binaries

    Official packages for every release are attached to the Releases page:

    PlatformBackends
    Windows x64CPU, Vulkan, CUDA (12.4 / 13.3), HIP/ROCm (test)
    Ubuntu x64CPU, Vulkan, HIP/ROCm (test)
    macOS (arm64 / x64)Metal

    The Windows CUDA packages ship the CUDA runtime in a separate cudart archive. Extract it next to the binaries so the CUDA backend can load ggml-cuda.dll and the CUDA runtime DLLs (cudart, cuBLAS, cuFFT).

    • HIP/ROCm (AMD GPUs): Official Windows and Ubuntu test builds are available on the Releases page. GPU compatibility and model coverage are still being validated; please report issues with your GPU, driver version, and reproduction command.
    • Older community Windows HIP packages: @IIIIIllllIIIIIlllll's fork Releases provides v0.9.0 packages with the ROCm runtime bundled, in ROCm 6.4 and 7.1 tracks. See docs/build/windows-hip-distribution.md for packaging details.

    Homebrew Install

    On macOS, audio.cpp can be installed from the Homebrew tap:

    brew tap 0xShug0/audio-cpp
    brew trust 0xShug0/audio-cpp
    brew install audio-cpp
    

    WebUI

    Maintained by contributors

    Open In Colab

    audiocpp_server includes an embedded SvelteKit/TypeScript WebUI for running local TTS, cloning, ASR, generation, conversion, separation, VAD, diarization, and alignment workflows. The production UI is compiled into the server binary, so using it requires neither Python nor separate frontend files:

    audiocpp_server --ui --ui-management --backend cuda
    

    Open http://127.0.0.1:8080. --ui-management enables catalog browsing, downloads, temporary uploads, and dynamic model switching, so this is the easiest way to try audio.cpp without writing a server config first. For a locked-down config-driven instance, start with --ui and a server config instead; in that mode the UI only offers models declared by the config unless management is enabled.

    For Docker UI downloads, mount a writable models directory at /app/models and use --ui-management. See docker.md.

    The native UI also exposes background model download/preparation, long-text split-and-merge synthesis, a browser-local saved voice library, microphone recording, and near-live ASR input. Some model preparation jobs invoke the repository's Python model manager because those packages require Hugging Face download or checkpoint conversion; model inference and the embedded UI remain Python-free. See webui/README.md for launch commands, model notes, and frontend development instructions.

    Docker

    Docker CUDA and CPU images are available for both CLI and server use. See docker.md for available images, build commands and working Docker examples.

    Model Manager and GGUF Downloads

    Use tools/model_manager_v2.py for normal model downloads. It reads model_specs/*.json and installs the default package for each family, preferring ready-to-use GGUF packages when they are available.

    Native builds configured with -DAUDIOCPP_BUILD_NATIVE_MODEL_MANAGER=ON also provide audiocpp_model_manager, a standalone headless frontend over the same reusable C++ package-management library used by the server and embedded WebUI. It supports list, info, install, clean, and remove without starting audiocpp_server; this is the preferred native path for CLI, Docker, remote provisioning, and other scripted environments. The Python v2 manager remains available as an alternative during migration. The native path uses bundled TLS by default and does not require libcurl.

    audiocpp_model_manager list
    audiocpp_model_manager install qwen3_asr_0_6b_q8_0 --models-dir models
    

    The old safetensors/converter catalog has been renamed to tools/model_manager_deprecated.py. Use it only for legacy model layouts that have not moved to spec-backed GGUF packages yet.

    GGUF downloads:

    • Official model packages: audio-cpp on Hugging Face
    • Community-hosted model packages: see the individual model guides linked in the supported model tables for repositories and download instructions.

    See the Model Manager guide for model-manager usage and package notes.

    Build yourself

    OSRequirements
    LinuxGCC 13 or newer, CMake, plus the backend toolchain for the build you want: NVIDIA CUDA Toolkit for CUDA, Vulkan SDK for Vulkan, ROCm for HIP
    WindowsVisual Studio Build Tools 2022 or newer with C++ desktop workload, MSVC x64 compiler, Windows SDK, CMake, Ninja, MSVC OpenMP components; official NVIDIA CUDA Toolkit for CUDA builds, Vulkan SDK for Vulkan builds, AMD HIP SDK for HIP builds
    macOSXcode or Xcode Command Line Tools, plus CMake. Metal builds also require the Metal compiler available through xcrun

    Composite builds let you compile only the model families you need. full is the default and is what release/Docker builds should use. custom registers only the requested loaders while still linking required internal dependencies; core builds the runtime without the optional model-family set.

    The helper scripts expose this as --model-set and --models on Linux/macOS, and -ModelSet and -Models on Windows:

    scripts/build_linux.sh --backend cuda --model-set custom --models qwen3_tts,pocket_tts,qwen3_asr --target audiocpp_cli
    

    Direct CMake builds use the same underlying variables:

    cmake -S . -B build/debug -DCMAKE_BUILD_TYPE=Debug -DAUDIOCPP_MODEL_SET=custom -DAUDIOCPP_MODELS=qwen3_tts,pocket_tts,qwen3_asr
    cmake --build build/debug --target audiocpp_cli -j 8
    

    Use the Linux helper script for CPU, CUDA, Vulkan, or HIP builds:

    scripts/build_linux.sh --backend cuda --target audiocpp_cli --target audiocpp_server
    scripts/build_linux.sh --backend vulkan --target audiocpp_cli --target audiocpp_server
    scripts/build_linux.sh --backend hip --target audiocpp_cli --target audiocpp_server
    scripts/build_linux.sh --backend cpu --target audiocpp_cli --target audiocpp_server
    

    The script writes to aligned build directories such as build/linux-cuda-release, build/linux-vulkan-release, build/linux-hip-release, and build/linux-cpu-release.

    Without --cuda-arch, CUDA builds use the portable arch list (works on many GPUs, slower to build). For a faster build targeting only the local GPU, pass --cuda-arch native (CMake >= 3.24; on older CMake this falls back to the portable list) or an explicit arch list:

    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
    

    Nothing caches compiler output by default. --ccache wires ccache up as the compiler launcher, which leaves a cold build about as slow as it already is and makes a rebuild roughly 14x faster. A CMAKE_<LANG>_COMPILER_LAUNCHER already set in the environment is left alone.

    scripts/build_linux.sh --backend cuda --cuda-arch native --ccache --target audiocpp_cli
    

    Composite examples:

    scripts/build_linux.sh --backend cuda --model-set full --target audiocpp_cli
    scripts/build_linux.sh --backend cuda --model-set custom --models qwen3_tts,pocket_tts,qwen3_asr --target audiocpp_cli
    scripts/build_linux.sh --backend cpu --model-set core --target audiocpp_cli
    

    For portable CPU kernels on machines where native ISA flags are not suitable:

    scripts/build_linux.sh --backend cuda --native-cpu OFF --target audiocpp_cli --target audiocpp_server
    

    For deployment builds with compiled package specs:

    scripts/build_linux.sh --backend cuda --deployment-build --target audiocpp_cli --target audiocpp_server
    

    For native WebUI model downloads, enable the native model manager:

    scripts/build_linux.sh --backend cuda --native-model-manager --target audiocpp_server
    

    For direct CMake commands, see docs/build/linux.md. For the opt-in Rockchip NPU (RKNN) decoder path, see docs/build/rockchip-npu.md.

    Use the Windows PowerShell build script:

    powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\scripts\build_windows.ps1
    

    Common presets:

    .\scripts\build_windows.ps1 -Preset windows-cuda-release -Target audiocpp_cli
    .\scripts\build_windows.ps1 -Preset windows-vulkan-release -Target audiocpp_cli
    .\scripts\build_windows.ps1 -Preset windows-cpu-release -Target audiocpp_cli
    .\scripts\build_windows.ps1 -Target audiocpp_server -Jobs 16
    .\scripts\build_windows.ps1 -Preset windows-cuda-release -ModelSet custom -Models "qwen3_tts,pocket_tts,qwen3_asr" -Target audiocpp_cli
    

    From cmd.exe, use the wrapper:

    scripts\build_windows.cmd
    

    For deployment builds with compiled package specs:

    .\scripts\build_windows.ps1 -DeploymentBuild -Target audiocpp_cli
    

    For native WebUI model downloads, enable the native model manager:

    .\scripts\build_windows.ps1 -NativeModelManager -Target audiocpp_server
    

    For requirements, CPU profiles, CUDA packaging, and release zips, see docs/build/windows.md.

    CPU-only Build

    Apple builds enable Metal by default. To build a CPU-only binary, disable Metal explicitly:

    cmake -S . -B build/macos-cpu-release \
      -DCMAKE_BUILD_TYPE=Release \
      -DENGINE_ENABLE_CUDA=OFF \
      -DENGINE_ENABLE_VULKAN=OFF \
      -DENGINE_ENABLE_METAL=OFF \
      -DENGINE_ENABLE_OPENMP=OFF \
      -DGGML_OPENMP=OFF
    cmake --build build/macos-cpu-release \
      --parallel "$(sysctl -n hw.logicalcpu)" \
      --target audiocpp_cli audiocpp_server audiocpp_gguf
    

    Confirm that the resulting CLI sees the host CPU backend:

    build/macos-cpu-release/bin/audiocpp_cli --list-devices
    
    Metal Build

    On macOS, use the Metal helper script to build against ggml's Metal backend:

    scripts/build_metal.sh --target audiocpp_cli
    

    The script configures build/macos-metal-release by default, enables ENGINE_ENABLE_METAL=ON, disables CUDA and Vulkan, embeds the Metal shader library, and builds static libraries plus the requested target.

    Useful variants:

    scripts/build_metal.sh --target audiocpp_server
    scripts/build_metal.sh --build-type Release --archs arm64 --target audiocpp_cli
    scripts/build_metal.sh --model-set custom --models qwen3_tts,pocket_tts --target audiocpp_cli
    scripts/build_metal.sh --with-tests --target audio_dsp_test
    scripts/build_metal.sh --openmp auto --target audiocpp_cli
    scripts/build_metal.sh --native-cpu OFF --target audiocpp_cli
    scripts/build_metal.sh --deployment-build --target audiocpp_cli
    

    The built CLI is written to:

    build/macos-metal-release/bin/audiocpp_cli
    

    On Linux and Windows, HIP builds compile ggml's CUDA backend sources as HIP code for AMD GPUs. ENGINE_ENABLE_HIP and ENGINE_ENABLE_CUDA are mutually exclusive — configure with exactly one of them.

    Linux (the helper script auto-detects ROCm via ROCM_PATH/HIP_PATH/hipconfig and local GPU targets via amdgpu-arch, falling back to rocminfo; pass --gpu-targets to build for other architectures, or when no AMD GPU is visible, e.g. in a VM or container):

    scripts/build_linux.sh --backend hip --target audiocpp_cli --target audiocpp_server
    scripts/build_linux.sh --backend hip --gpu-targets "gfx1100;gfx1103" --target audiocpp_cli
    

    Direct CMake:

    cmake -S . -B build_hip \
      -DENGINE_ENABLE_HIP=ON \
      -DGPU_TARGETS=gfx1151 \
      -DCMAKE_C_COMPILER="$(hipconfig -l)/clang" \
      -DCMAKE_CXX_COMPILER="$(hipconfig -l)/clang++" \
      -DCMAKE_BUILD_TYPE=Release
    cmake --build build_hip -j$(nproc)
    

    Windows (the helper script auto-detects ROCm, GPU targets, cmake, and ninja):

    powershell -ExecutionPolicy Bypass -File scripts\build_windows_hip.ps1
    

    Run with --backend hip (rocm is accepted as an alias). For GPU target selection, hipBLASLt GEMM notes, iGPU tuning, and known limitations, see docs/build/HIP.md.

    Native WebGPU builds use Dawn. Enable the backend explicitly and point CMake to the directory containing DawnConfig.cmake:

    cmake -S . -B build/debug \
      -DCMAKE_BUILD_TYPE=Debug \
      -DENGINE_ENABLE_WEBGPU=ON \
      -DDawn_DIR=/path/to/dawn/lib/cmake/Dawn
    cmake --build build/debug --target audiocpp_cli -j 8
    

    Run with --backend webgpu. Browser builds use Emscripten to run the C++ CLI and load GGUF models inside a Web Worker, with playable/downloadable outputs. They require a browser with WebGPU, shader-f16, and JSPI support.

    For native and browser build commands, WASM32/WASM64 memory limits, and Kokoro/eSpeak setup, see docs/build/webgpu.md.

    For Nix and NixOS builds, see the build guide.

    Optional server adapters are built from the external/audio.cpp-server-frontends submodule. They are separate from the embedded WebUI. From the repository root, fetch the package (using HTTPS here so no GitHub SSH key is required):

    git -c 'url.https://github.com/[email protected]:' submodule update --init external/audio.cpp-server-frontends
    

    For example, build a server with audio decoding and MP3 encoding adapters:

    cmake -S . -B build/debug \
      -DCMAKE_BUILD_TYPE=Debug \
      -DAUDIOCPP_BUILD_SERVER_FRONTENDS=ON \
      -DAUDIOCPP_SERVER_FRONTENDS_DIR=external/audio.cpp-server-frontends \
      -DAUDIOCPP_SERVER_FRONTEND_MODULES="audio_decode;mp3_encode"
    cmake --build build/debug --target audiocpp_server --parallel 8
    

    The example uses the default backend settings of a fresh build directory; add the backend flags from the platform build instructions when needed. Module-specific dependencies and available adapters are documented in the frontend package. See the server guide for configuration and usage.

    OptionMeaningDefault
    ENGINE_ENABLE_CUDAEnable the ggml CUDA backend. Required for --backend cuda.OFF
    ENGINE_ENABLE_HIPEnable the ggml HIP backend (AMD GPUs). Required for --backend hip; mutually exclusive with ENGINE_ENABLE_CUDA.OFF
    ENGINE_ENABLE_VULKANEnable the ggml Vulkan backend. Required for --backend vulkan.OFF
    ENGINE_ENABLE_METALEnable the ggml Metal backend. Required for --backend metal.OFF on most platforms, ON on Apple
    ENGINE_ENABLE_LLAMAFILEEnable llamafile SGEMM support in ggml CPU builds.ON
    ENGINE_ENABLE_CUDA_GRAPHSEnable ggml CUDA graphs support when CUDA is enabled.ON
    ENGINE_ENABLE_NATIVE_CPUBuild ggml CPU kernels with native host ISA flags such as -march=native. Disable this for portable CPU kernels or toolchains that reject generated CPU instructions.ON
    ENGINE_ENABLE_OPENMPEnable OpenMP for host-side parallel work.ON
    ENGINE_BUILD_EXAMPLESBuild example binaries.OFF
    AUDIOCPP_BUILD_SERVER_FRONTENDSEnable optional in-process server frontend adapters, separate from the embedded WebUI.OFF
    AUDIOCPP_SERVER_FRONTEND_MODULESSemicolon-separated adapter modules to build. Requires AUDIOCPP_BUILD_SERVER_FRONTENDS=ON and an external frontend package.empty
    AUDIOCPP_SERVER_FRONTENDS_DIRExternal frontend package directory containing server_frontends.cmake, which registers the requested modules.empty
    ENGINE_BUILD_TESTSBuild framework unit tests.OFF
    ENGINE_BUILD_EXTENDED_TESTSBuild extended non-model tests and probes, such as server/app/package-manager checks and backend graph tests.OFF
    ENGINE_BUILD_MODEL_TESTSBuild model-specific tests and probes.OFF
    ENGINE_BUILD_WARMBENCHBuild warmbench helper binaries.OFF
    AUDIOCPP_BUILD_NATIVE_MODEL_MANAGERBuild the standalone native model manager and enable server-side WebUI downloads/install management. This opt-in feature builds the HTTP/TLS dependency.OFF
    AUDIOCPP_USE_SYSTEM_OPENSSLUse system OpenSSL instead of bundled BoringSSL when native model management is enabled.OFF
    AUDIOCPP_DEPLOYMENT_BUILDCompile package specs into CLI/server binaries for standalone GGUF and package-spec fallback loading. Script builds expose this as --deployment-build on Linux/macOS and -DeploymentBuild on Windows.OFF
    Native model manager script flagBuild scripts expose AUDIOCPP_BUILD_NATIVE_MODEL_MANAGER as --native-model-manager on Linux/macOS and -NativeModelManager on Windows. --system-openssl / -SystemOpenSsl and --boringssl-archive / -BoringSslArchive configure its TLS backend.disabled
    AUDIOCPP_MODEL_SETModel composite to build: full, core, or custom. Script builds expose this as --model-set on Linux/macOS and -ModelSet on Windows.full
    AUDIOCPP_MODELSComma or semicolon separated model target names when AUDIOCPP_MODEL_SET=custom, such as qwen3_tts,pocket_tts,qwen3_asr. Script builds expose this as --models on Linux/macOS and -Models on Windows.empty

    Usage

    [!IMPORTANT] Please read your model's documentation: open the model-docs index, choose your task category, then find your model. Also read the dedicated CLI usage guide and server guide. The examples below are quick starts; model requirements, supported options, and setup details vary.

    CLI

    The main CLI binary is:

    build/bin/audiocpp_cli
    

    High-level command shape:

    audiocpp_cli --task <task> --model <path> --family <family> [--backend <backend>] [--mode <mode>] [options]
    

    Always specify --family for model commands, including model-specific help. Treat it as required; omission is supported only for backward compatibility. Automatic loader discovery without it can substantially slow startup and --model ... --help.

    Core selectors:

    • --task vad|asr|diar|sep|gen|tts|clon|vc|s2s|align|vdes|spk|svc|midi|wake|cls
    • --model <path>
    • --family <name> explicitly selects the model family
    • --backend cpu|cuda|vulkan|metal|best
    • --mode offline|streaming; streaming is available for models whose docs list streaming support

    Common interface options:

    • --load-option key=value passes model-load options, such as PocketTTS language selection
    • --session-option key=value passes session/runtime options, such as backend-specific weight controls
    • --request-option key=value passes per-request model options
    • --config <id> selects a discovered config asset
    • --weight <id> selects a discovered weight asset
    • --device <n> selects the backend device
    • --threads <n> sets backend and OpenMP worker threads

    Examples:

    Text-to-speech:

    build/bin/audiocpp_cli \
      --task tts \
      --family pocket_tts \
      --model /path/to/model \
      --backend cuda \
      --text "audio.cpp is running PocketTTS locally." \
      --voice-ref assets/resources/sample.wav \
      --out build/out/pocket_tts.wav
    

    PocketTTS with another language and a built-in voice:

    build/bin/audiocpp_cli \
      --task tts \
      --family pocket_tts \
      --model /path/to/models/pocket-tts \
      --backend cuda \
      --load-option language=spanish \
      --text "Hola, esta es una prueba corta de Pocket TTS." \
      --voice-id alba \
      --out build/out/pocket_tts_spanish.wav
    

    ASR:

    build/bin/audiocpp_cli \
      --task asr \
      --family qwen3_asr \
      --model /path/to/model \
      --backend cuda \
      --audio assets/resources/sample_16k.wav
    

    Voice conversion:

    build/bin/audiocpp_cli \
      --task vc \
      --family seed_vc \
      --model /path/to/model \
      --backend cuda \
      --audio assets/resources/a.wav \
      --voice-ref assets/resources/b.wav \
      --out build/out/seed_vc.wav
    

    Useful CLI features:

    • --help with --task shows task-oriented help
    • --help with --model <path> and --family <family> shows model-owned request, session, and load options
    • --inspect prints discovered configs, weights, and capabilities
    • --list-loaders prints registered model families (--json for the machine-readable contract)
    • --list-devices prints backend devices and the --backend/--device values that select them (--json adds PCI ids and free/total memory)
    • python tools/model_manager_v2.py list --json prints installable packages from model_specs/*.json
    • --batch-text-file <txt> runs one offline request per non-empty line
    • --batch-text-dir <dir> runs one offline request per .txt, .md, or .json file, normalizing each file as one paragraph
    • --batch-audio-dir <dir> runs one