audio.cpp 基于 ggml 构建的全功能纯 C++ 音频模型推理引擎
audio.cpp 详细部署教程
1. 项目简介
audio.cpp 是一个基于 ggml 构建的全功能纯 C++ 音频模型推理引擎,支持文本转语音(TTS)、语音识别(ASR)、语音活动检测(VAD)、声音转换、音乐生成等多种音频任务 。该项目最大的特点是完全无需 Python 依赖,通过 CUDA、HIP/ROCm、Vulkan、Metal 和 CPU 等多种后端实现跨平台部署 。
核心特性:
- 多模型支持:截至 Release 0.7,已覆盖 62 个模型系列和 85+ 模型变体,包括 Higgs Audio、Fish Audio、Chatterbox、Supertonic 3、ACE-Step 等
- 多任务覆盖:支持 TTS、语音克隆、语音转换、ASR、说话人日志、VAD、音源分离、音乐生成等
- 性能优化:CUDA 优化显著,部分 TTS 路径比 Python 参考实现快 1.8x 至 10x
- GGUF 支持:所有已发布模型系列均支持 GGUF 加载,Q8 量化可减少约 37% 的显存占用
- WebUI 界面:提供 Gradio 网页界面,支持模型加载、语音上传、参数调节等功能
系统要求:
| 组件 | 要求 |
|---|---|
| 操作系统 | Windows、Linux、macOS |
| GPU(可选) | NVIDIA(CUDA)、AMD(HIP/ROCm)、Apple Silicon(Metal)、支持 Vulkan 的设备 |
| 构建工具 | CMake、Ninja、C++ 编译器(MSVC/GCC/Clang) |
2. 安装方式概览
audio.cpp 提供多种安装方式,根据使用场景选择:
| 安装方式 | 适用场景 | 优势 |
|---|---|---|
| Windows 预编译包 | Windows 用户快速上手 | 无需编译,开箱即用 |
| Homebrew 安装 | macOS 用户 | 一行命令完成安装 |
| 源码编译 | 开发者定制 | 完全可控,支持所有后端 |
| Nix 构建 | NixOS 用户 | 声明式配置,可复现构建 |
3. 方式一:Windows 预编译包(推荐)
这是 Windows 用户最简单的部署方式,无需编译。
3.1 下载预编译包
根据你的硬件配置选择合适的包 :
CPU 版本(自包含):
audiocpp-windows-cpu-fast.zip— 针对本机 CPU 优化,速度最快audiocpp-windows-cpu-balance.zip— 平衡兼容性与性能(推荐大多数用户)audiocpp-windows-cpu-portable.zip— 最大兼容性,适合老旧 CPU
CUDA 版本(需先下载运行时包):
audiocpp-windows-cuda-runtime.zip— CUDA 运行时 DLL(必需)audiocpp-windows-cuda-fast.zip/balance.zip/portable.zip— 选择其一
推荐组合:
- NVIDIA GPU 用户:
audiocpp-windows-cuda-runtime.zip+audiocpp-windows-cuda-balance.zip - 仅 CPU 用户:
audiocpp-windows-cpu-balance.zip
3.2 解压与运行
将下载的 zip 文件解压到任意目录,然后通过命令行运行:
1 | # 查看帮助信息 |
3.3 使用 WebUI
预编译包中可能包含 webui/run_webui.bat 脚本,双击运行即可启动 Gradio 网页界面,浏览器访问 http://127.0.0.1:7860 。
4. 方式二:macOS Homebrew 安装
macOS 用户可以通过 Homebrew 快速安装 :
1 | # 添加 tap |
安装完成后,验证:
1 | audiocpp_cli --help |
5. 方式三:源码编译(推荐开发者)
5.1 通用前置依赖
无论哪个平台,都需要以下工具:
1 | # CMake 3.20+ |
5.2 Windows 编译
前置要求 :
- Visual Studio Build Tools 2022 或更新版本(含 C++ 桌面工作负载)
- MSVC x64 编译器、Windows SDK、CMake、Ninja、MSVC OpenMP 组件
- NVIDIA CUDA Toolkit(CUDA 构建)
- LunarG Vulkan SDK(Vulkan 构建)
使用 PowerShell 构建:
1 | # CPU 版本 |
构建产物输出到 build\windows-cpu-release\bin\audiocpp_cli.exe 。
CPU 架构配置 :
| 配置 | 构建标志 | 适用场景 |
|---|---|---|
| Fast | -CpuArch native |
本机使用,速度最快 |
| Balance | -CpuArch avx2 |
大多数现代 PC(推荐) |
| Portable | -CpuArch baseline |
最大兼容性 |
5.3 Linux / macOS 编译
1 | # 克隆仓库 |
5.4 Nix 构建
NixOS 用户可以使用项目提供的 flake.nix :
1 | # 启用 flake |
6. 模型管理
audio.cpp 提供模型管理器用于下载和管理模型。
6.1 下载模型
模型托管在 HuggingFace 上 :
1 | # 列出可用模型 |
6.2 使用 GGUF 模型
所有模型系列均支持 GGUF 格式加载,推荐使用 Q8_0 量化以平衡性能和精度 :
1 | # 使用 GGUF 模型运行 |
7. 配置与使用
7.1 命令行使用
1 | # TTS 文本转语音 |
7.2 服务器模式
启动 API 服务器,提供 OpenAI 兼容接口 :
1 | # 启动服务器 |
7.3 WebUI 使用
WebUI 提供图形化操作界面 :
1 | # 启动 WebUI |
浏览器访问 http://127.0.0.1:7860。
WebUI 功能:
- 按需加载模型(选择模型后点击“加载”)
- 上传参考语音进行语音克隆
- 下载未安装的模型
- 动态生成模型专属参数控件
7.4 高级参数配置
WebUI 的高级参数由 configs/model_params.json 驱动,选择模型后会自动生成匹配的滑块、数字框、开关等控件 。也可以在“其他参数(JSON)”折叠框中手动传入未列出的参数。
8. 创建 Systemd 服务(Linux)
对于生产环境部署,建议创建 systemd 服务 :
1 | # 创建服务文件 |
内容如下:
1 | [Unit] |
启用并启动服务:
1 | sudo systemctl daemon-reload |
9. 性能优化建议
9.1 CUDA 优化
- 使用 CUDA 后端可显著提升推理速度,部分 TTS 路径比 Python 快 1.8x 至 10x
- CUDA 构建同时包含 CPU 后端,可通过
--backend cpu切换
9.2 GGUF 量化
- Q8_0 量化可减少约 37% 的显存占用,同时保持较好精度
- 对于显存受限的设备,推荐使用 GGUF Q8 模型
9.3 CPU 线程配置
CPU 模式下,线程数会自动根据物理核心数设置(不计算超线程),超过 4 核时保留一个核心空闲 。如需手动设置:
1 | export AUDIOCPP_THREADS=N |
10. 常见问题与解决方案
10.1 构建失败
问题:CMake 配置或编译报错。
解决方案:
- 确保 CMake 版本 ≥ 3.20
- Windows 用户确保使用 MSVC 编译器
- CUDA 构建需安装 CUDA Toolkit 并确保
nvcc在 PATH 中
10.2 WebUI 无法连接
问题:WebUI 启动后无法连接后端。
解决方案:
- WebUI 会自动检测后端(优先 GPU,否则 CPU)
- 可通过
AUDIOCPP_BACKEND=gpu|cpu强制指定后端 - 检查端口 8080 是否被占用
10.3 模型加载失败
问题:模型文件无法加载。
解决方案:
- 确认模型格式受支持(safetensors 或 GGUF)
- 检查模型路径是否正确
- 对于 GGUF 模型,确认量化版本与运行时匹配
10.4 CUDA 显存不足
问题:运行时报显存不足错误。
解决方案:
- 使用 GGUF Q8 量化模型减少显存占用
- 尝试
--backend cpu切换到 CPU 推理 - 减少批处理大小或使用更小的模型变体
11. 部署架构总结
| 部署方式 | 适用场景 | 安装命令 | 特点 |
|---|---|---|---|
| Windows 预编译包 | Windows 用户 | 下载解压即用 | 无需编译,开箱即用 |
| Homebrew | macOS 用户 | brew install audio-cpp |
一行命令完成 |
| 源码编译 | 开发者 | cmake + ninja |
支持所有后端,完全可控 |
| Nix 构建 | NixOS 用户 | nix build |
声明式配置,可复现 |
audio.cpp 作为一个纯 C++ 的音频推理引擎,通过预编译包或源码编译可以快速完成部署。Windows 用户建议使用预编译包,macOS 用户可通过 Homebrew 安装,开发者和 Linux 用户则推荐源码编译以获得最佳性能和硬件支持。部署完成后,可通过 CLI、服务器 API 或 WebUI 三种方式使用,支持 TTS、ASR、语音克隆、音乐生成等多种音频任务。













