
最近折腾了一套本地 AI 音频平台:audio.cpp-webui。
这个项目的定位比较清晰:把常见的 AI 音频能力集中到一个本地 WebUI 里,包括文字转语音、语音识别、音色克隆、变声、歌声转换、人声分离、音效和音乐生成等。对于不想把音频素材上传到云端、又希望尽量用本机 GPU 跑模型的人来说,它是一个很值得尝试的方案。
本文记录的是一次 Windows 本地部署实战,重点面向新手:尽量不改系统环境、不污染其它项目、优先复用已经下载好的模型,并给出部署后怎么选模型、怎么操作、遇到显存不够怎么办。
项目地址:
一、适合什么人
如果你有下面这些需求,可以考虑部署:
- 想本地生成中文旁白。
- 想把录音、视频音频转成文字。
- 想尝试音色克隆、变声、歌声转换。
- 想从歌曲中分离人声和伴奏。
- 想用提示词生成音效或短音乐。
- 不想所有音频都上传到云端。
- 电脑里已经有不少模型,希望直接复用,避免重复下载。
如果你只是偶尔生成一两句语音,在线 TTS 工具可能更省事。但如果你经常处理音频,本地部署会更自由。
二、我的部署环境
这次部署环境如下:
- 系统:Windows
- 显卡:NVIDIA GeForce RTX 3060 Ti
- 显存:8GB
- 项目目录:
C:GJaudio.cpp - 模型来源:已有本地模型目录和 portable 包
- 访问方式:本机 WebUI,默认地址
http://127.0.0.1:7860
8GB 显存属于“能玩很多模型,但不能无脑上大模型”的档位。部署时要有一个基本原则:小模型优先 GPU,大模型谨慎尝试,超显存就切 CPU。
三、部署思路:尽量和系统隔开

很多 AI 项目部署失败,并不是模型本身有问题,而是 Python、CUDA、PATH、依赖版本互相污染。
所以我这次采用的原则是:
- Python 环境放在项目目录内。
- CUDA 运行时也放在项目目录内。
- 模型统一放到项目目录
models下。 - 不修改系统 PATH。
- 不覆盖其它项目的虚拟环境。
- 不把已有项目的依赖混进来。
最终目录大致是这样:
<code class="language-text">C:GJaudio.cpp ├─ run_webui.bat ├─ run_server.bat ├─ _env.bat ├─ venv ├─ cuda-runtime12 ├─ models ├─ webui ├─ cpu ├─ gpu └─ tools </code>
其中 cuda-runtime12 是项目内 CUDA 运行时,只在启动本项目时临时加入 PATH,不影响系统其它项目。
四、安装流程概览
新手可以按这个顺序理解:
- 下载官方 Windows 预编译包。
- 解压 WebUI、CPU 后端、GPU 后端。
- 准备项目内 Python 环境。
- 准备项目内 CUDA 运行时。
- 把已有模型复制到
models。 - 启动 WebUI。
- 验证 GPU 和基础模型能跑。
如果你已经下载过 portable 包,可以优先复用里面的:
venvmodelsassetsSpeakType- 其它随包资源
这样可以少下载很多东西。
五、模型怎么复用
如果你本地已经有模型,例如:
<code class="language-text">H:BaiduNetdiskDownloadaudiocpp-portable-0716models </code>
可以复制到:
<code class="language-text">C:GJaudio.cppmodels </code>
建议用 robocopy,比普通复制更适合大文件:
<code class="language-bat">robocopy "H:BaiduNetdiskDownloadaudiocpp-portable-0716models" "C:GJaudio.cppmodels" /E /MT:8 /R:2 /W:3 /XF *.downloading *.aria2 *.tmp </code>
这里要注意:
.downloading是未下载完成文件,不要当成正式模型。.aria2通常是下载临时文件。.tmp也不要复制进去。- 大模型复制完成后最好检查文件大小是否正常。
如果 WebUI 的模型目录名和你已有模型目录名不完全一致,可以在项目内建立目录联接或改成 WebUI 识别的目录名。不要改全局模型库,避免影响其它项目。
六、启动方式
进入项目目录后启动:
<code class="language-bat">cd /d C:GJaudio.cpp run_webui.bat </code>
打开浏览器访问:
<code class="language-text">http://127.0.0.1:7860 </code>
如果想强制 GPU:
<code class="language-bat">cd /d C:GJaudio.cpp set AUDIOCPP_BACKEND=cuda run_webui.bat </code>
如果显存不够,强制 CPU:
<code class="language-bat">cd /d C:GJaudio.cpp set AUDIOCPP_BACKEND=cpu run_webui.bat </code>
CPU 会慢一些,但能避免显存不足。
七、验证 GPU 是否可用
部署完成后,可以运行:
<code class="language-bat">cd /d C:GJaudio.cpp cmd /v:on /c "call _env.bat & !CLI_EXE! --list-devices" </code>
如果能看到类似:
<code class="language-text">CUDA:0 NVIDIA GeForce RTX 3060 Ti </code>
说明 GPU 后端已经识别成功。
如果只看到 CPU,常见原因有:
- 没有 NVIDIA 显卡。
- 显卡驱动太旧。
- CUDA 相关 DLL 缺失。
- GPU 后端包没有解压完整。
- 项目内 CUDA 运行时没有被加入启动 PATH。
八、8GB 显存怎么选模型
以 RTX 3060 Ti 8GB 为例,可以按下面规则选:
| 模型要求 | 建议 |
|---|---|
| 1GB 到 4GB 显存 | 很适合 GPU 跑 |
| 5GB 到 6GB 显存 | 通常可用 |
| 7GB 到 8GB 显存 | 可以试,但要关闭其它 GPU 项目 |
| 10GB 以上显存 | 不建议 8GB GPU,改 CPU 或跳过 |
不要同时开多个大模型服务。比如已经开着 Voicebox、ComfyUI、视频生成工具时,再加载 8GB 边缘模型,很容易爆显存。
九、常用模型怎么选

1. 中文文字转语音
优先推荐:
| 模型 | 适合场景 | 要求 |
|---|---|---|
qwen3-tts |
日常中文旁白、短句测试 | 约 5GB 显存 |
moss-tts-nano |
快速中文 TTS、轻量测试 | 约 2GB 显存 |
index-tts2 |
带情绪的中文/英文克隆 | 约 8GB 显存 |
qwen3-tts-1.7b |
更高质量中文旁白 | 约 8GB 显存 |
参考音频建议:
- 5 到 15 秒。
- 单人说话。
- 没有背景音乐。
- 没有明显噪声和混响。
- 最好是 WAV。
- 参考文本尽量和参考音频逐字对应。
2. 语音识别
优先推荐:
| 模型 | 适合场景 | 要求 |
|---|---|---|
qwen3-asr |
日常中文/英文识别 | 约 3GB 显存 |
qwen3-asr-1.7b |
更高准确率识别 | 约 6GB 显存 |
fun-asr-nano |
轻量识别 | 约 4GB 显存 |
voxtral-realtime |
实时/流式识别 | 约 8GB 显存 |
普通录音转文字,先试 qwen3-asr。如果识别质量不满意,再换 qwen3-asr-1.7b。
3. 变声和歌声转换
优先推荐:
| 模型 | 适合场景 | 要求 |
|---|---|---|
seed-vc |
快速语音转换 | 约 4GB 显存 |
vevo2 |
高质量语音转换 | 约 6GB 显存 |
rvc |
使用已有 RVC 音色模型 | 约 4GB 显存 |
seed-vc-svc |
歌声转换 | 约 4GB 显存 |
vevo2-svc |
更高质量歌声转换 | 约 6GB 显存 |
变声一般需要两个音频:
- 源音频:决定说什么或唱什么。
- 目标参考音频:决定变成谁的声音。
4. 人声分离和预处理
常用模型:
| 模型 | 功能 | 要求 |
|---|---|---|
mel-band-roformer |
人声/伴奏分离 | 约 3GB 显存 |
silero-vad |
语音活动检测 | 约 1GB 显存 |
marblenet-vad |
语音活动检测 | 约 1GB 显存 |
sortformer-diar |
说话人分离 | 约 2GB 显存 |
如果要做长录音识别,VAD 可以先帮你找出有人声的片段。如果要做歌声转换,人声分离可以先把伴奏压下去。
5. 音乐和音效生成
常用模型:
| 模型 | 功能 | 要求 |
|---|---|---|
stable-audio-small-sfx |
文本生成音效 | 约 4GB 显存 |
stable-audio-small-music |
文本生成短音乐 | 约 4GB 显存 |
ace-step |
音乐生成、编辑、翻唱 | 约 8GB 显存 |
音乐和音效提示词建议用英文,先生成短片段,满意后再加长。
十、WebUI 日常操作
使用流程通常是:
- 打开 WebUI。
- 进入对应任务页。
- 选择模型。
- 加载模型。
- 填文本或上传音频。
- 设置参考音频、语言、说话人、采样参数等。
- 点击生成。
- 到
webuioutput找结果。
输出通常保存在:
<code class="language-text">C:GJaudio.cppwebuioutput </code>
保存的参考音色通常在:
<code class="language-text">C:GJaudio.cppwebuivoice </code>
十一、单模型 API 服务
除了 WebUI,也可以启动单模型服务。
例如启动 ASR:
<code class="language-bat">cd /d C:GJaudio.cpp run_server.bat qwen3-asr 8081 </code>
例如启动 TTS:
<code class="language-bat">cd /d C:GJaudio.cpp run_server.bat qwen3-tts 8088 </code>
这类服务一般会提供类似 OpenAI 的接口:
<code class="language-text">/v1/audio/speech /v1/audio/transcriptions </code>
如果只是手动生成音频,用 WebUI 更方便。如果要接入脚本或其它工具,再考虑 API 服务。
十二、是否开放局域网访问
默认建议只监听本机:
<code class="language-text">127.0.0.1 </code>
如果确实要给局域网其它电脑访问,可以临时设置:
<code class="language-bat">cd /d C:GJaudio.cpp set AUDIOCPP_HOST=0.0.0.0 run_webui.bat </code>
但要注意:很多本地 WebUI 默认没有严格登录鉴权,不建议暴露到公网,也不建议在不可信网络里开放。
十三、常见问题
1. 模型下载好了,但 WebUI 不识别
检查目录名是否和 WebUI catalog 需要的名字一致。
可以改目录名,也可以在项目内建立目录联接。不要去改其它项目共用的模型库。
2. GPU 后端启动失败
重点检查:
- NVIDIA 驱动是否正常。
- GPU 后端包是否完整。
- 项目内 CUDA 运行时是否存在。
_env.bat是否把cuda-runtime12加入 PATH。
3. 生成时报显存不足
处理顺序:
- 关闭其它占 GPU 的程序。
- 重启 WebUI。
- 换更小模型。
- 强制 CPU 后端。
4. 大模型复制后加载失败
检查是否有这些残留文件:
<code class="language-text">*.downloading *.aria2 *.tmp </code>
这些都不是完整模型文件。
5. TTS 克隆不像
优先改善参考音频:
- 不要用带音乐的素材。
- 不要用多人对话。
- 不要用太短或太长的参考音。
- 参考文本要准确。
- 先用 5 到 15 秒干净素材测试。
十四、我的新手建议

如果你刚开始用,不要一上来就追最大模型。
建议按下面路线:
- 先跑通 WebUI。
- 再验证 GPU 能识别。
- 用
pocket-tts或moss-tts-nano做一个小测试。 - 用
qwen3-asr识别一段短音频。 - 确认输出目录正常。
- 再尝试
qwen3-tts、index-tts2、vevo2这类更实用的模型。 - 最后再考虑 8GB 边缘模型或 10GB 以上模型。
部署本地 AI 音频工具,最重要的不是一次装全,而是先把基础链路跑通:
<code class="language-text">WebUI 能打开 GPU 能识别 小模型能生成 ASR 能转写 输出文件能找到 </code>
这五步通了,后面补模型、调音色、接 API 都只是增量工作。
十五、总结
audio.cpp-webui 很适合做本地 AI 音频工作台。它的优势不是某一个单点功能,而是把 TTS、ASR、变声、分离、音乐音效生成整合到一个本地环境里。
对新手来说,最推荐的部署方式是:
- 项目单独放一个目录。
- Python、CUDA、模型都尽量项目内隔离。
- 已有模型直接复制复用。
- 优先跑小模型验证。
- 8GB 显存机器不要硬上 10GB 以上模型。
- 需要质量时再逐步换大模型。
这样部署下来,不会轻易污染系统环境,也不容易影响其它 AI 项目。后续即使要迁移、备份或删除,也只需要处理这一个项目目录,维护成本会低很多。
