VCClient 实时 AI 变声完整指南:选型、部署、API 调用与故障定位
【免费下载链接】voice-changerリアルタイムボイスチェンジャー Realtime Voice Changer项目地址: https://gitcode.com/gh_mirrors/vo/voice-changer
VCClient 是一款基于 AI 的实时语音转换工具,支持 RVC、Beatrice 等语音模型。本文覆盖发行版选型、本地与网络两种部署路径、/test接口跨语言调用,以及按数据流分段定位"声音没变"问题的方法。
它解决什么问题:边说边换的 AI 变声
VCClient 的典型用途是把你的麦克风人声实时换成 AI 角色的声音,常见场景包括游戏内变声、直播换声,以及给第三方应用搭建一台独立的推理服务器。
整个程序分两层:
- GUI 客户端(浏览器窗口或原生客户端):采集麦克风、显示延迟与缓冲监控、回放转换后的声音;
- 推理服务端:Python 进程,加载模型完成实时转换,同时对外提供 FastAPI + Socket.IO 的 Web 服务。
你只需在客户端选好模型和设备点 start,服务端就会持续处理音频。下面这张图是客户端主界面,可以看到服务器控制、模型设置、设备选择与质量控制四大区块:
如何挑选发行版:平台 × 模型矩阵
从 v2.2.1 开始,不同发行版(Edition)内置的 AI 模型不一样,这是下载二进制包前最关键的判断依据。对应关系如下:
| 发行版 | 可用平台 | 支持的模型 | 适用场景 | 选型建议 |
|---|---|---|---|---|
| std | Windows / mac(m1) / linux(x86-64) / linux(aarch64) | Beatrice | CPU 环境、轻量运行 | 只用 Beatrice 就选它,包最小 |
| cuda | Windows | Beatrice、RVC | 有 NVIDIA 显卡的机器 | 想用 RVC 且有独显时的首选 |
| onnx | Windows / mac(m1) | Beatrice、RVC | 无 NVIDIA 显卡或 Apple 芯片 | RVC 需求下没有独显时的替代方案 |
三条明确建议:
- 只用 Beatrice:任何平台直接下 std 版即可;
- 需要 RVC:NVIDIA 显卡选 cuda 版,其余选 onnx 版(注意 onnx 版不支持 Linux);
- 版本与发行版并非一一对应:某个版本号未必发布所有发行版,下载前以该版本实际发布的包为准。
v2 引擎目前登记的模型类型还包含MMVCv13、MMVCv15、so-vits-svc-40、DDSP-SVC、Diffusion-SVC、LLVC、EasyVC(见 server/const.py),其中传统模型(MMVC、so-vits-svc、DDSP-SVC、Beatrice v1)主要留在 v1 产品线。v1 与 v2 的模型支持对照:
| AI 模型 | v2 | v1 | 许可来源 |
|---|---|---|---|
| RVC | 支持 | 支持 | 遵循上游仓库 |
| Beatrice v2 | 支持 | — | 本项目自有许可 |
| Beatrice v1 | — | 支持(仅 Windows) | 本项目自有许可 |
| MMVC / so-vits-svc / DDSP-SVC | — | 支持 | 遵循上游仓库 |
每种模型在服务端都有独立实现目录,如 server/voice_changer/RVC/、server/voice_changer/Beatrice/、server/voice_changer/DiffusionSVC/,加载模型所需的预训练权重和示例模型会在服务端启动时自动下载(server/downloader/WeightDownloader.py、server/downloader/SampleDownloader.py)。
部署与运行:三种路径选一种
路径 A:本地独立(单机闭环)
Windows 与 M1 Mac 直接下载预打包二进制(经 Hugging Face 仓库分发),双击运行即可,采集与推理都在本机完成。启动后服务端会自动拉起原生客户端并指向本地地址(server/MMVCServerSIO.py)。
路径 B:网络转发(推理外置)
当变声需要和游戏等高负载程序同机运行时,可以把服务端部署到另一台机器,本机只跑轻量的音频采集,从而把 GPU/CPU 开销转移到外部。做法是 Linux 上 clone 仓库后启动服务端,并把监听地址改为对外:
git clone https://gitcode.com/gh_mirrors/vo/voice-changer # 服务端对外监听(在 server 目录下运行,端口默认 18888) python MMVCServerSIO.py --host 0.0.0.0 -p 18888然后把本机客户端指向http://<服务器IP>:18888/,或直接用浏览器访问该地址。需要跨域白名单时通过--allowed-origins追加来源 URL。
路径 C:容器化
仓库提供 Docker 部署入口,参考 docker_vcclient/README_ko.md 与 docker/Dockerfile,适合把整套服务端固定为镜像运行。
启动顺序固定为:先下载 RVC 权重与示例模型 → 按--https决定 HTTP 或 HTTPS(自签名证书由 server/mods/ssl.py 生成)→ 打印访问地址 → 拉起 Web 服务。前端页面挂载在/front、/trainer、/recorder等路径(server/restapi/MMVC_Rest.py)。Linux 原生运行时可用下面的模型启动器选择要加载的引擎:
服务端速查:启动参数与用 curl 调用转换接口
启动参数速查表
依据 server/MMVCServerSIO.py 的setupArgParser():
| 参数 | 默认值 | 作用 | 备注 |
|---|---|---|---|
-p | 18888 | 监听端口 | 网络部署时保持两端一致 |
--host | 127.0.0.1 | HTTP 监听地址 | 设为0.0.0.0才允许外部访问 |
--https | False | 启用 HTTPS | 布尔型 |
--httpsSelfSigned | True | 自动生成自签名证书 | 为 0 时需自备证书 |
--httpsKey/--httpsCert | ssl.key / ssl.cert | 自有证书路径 | 仅自签关闭时生效 |
--model_dir | model_dir | 模型存放目录 | 示例模型也下载到这里 |
--sample_mode | production | 示例模型下载模式 | 另有 testAll、testOfficial 等 |
--content_vec_500等 | pretrain/... | 各预训练模型路径 | 覆盖 embedder、音高提取器等 |
--allowed-origins | 空 | 跨域来源白名单 | 默认已放行本机 127.0.0.1/localhost 对应端口 |
--logLevel | error | 日志级别 | 可选 info / critical / error |
服务端支持的采样率为 16000 / 32000 / 44100 / 48000 / 96000 / 192000(server/const.py)。
用 curl 调用 POST /test
服务端的语音转换端点是POST /test(server/restapi/MMVC_Rest_VoiceChanger.py)。协议约定:
- 请求体:
{ "timestamp": int, "buffer": string },buffer为base64 编码的 16bit 小端 PCM; - 响应:
{ "timestamp": int, "changedVoiceBase64": string },字段里同样是 base64 PCM。
跨语言集成的最小流程:把音频(麦克风帧或文件切片)编码为 int16 PCM → base64 → POST /test → 解码changedVoiceBase64播放或写文件。例如:
# 1. 把 16bit 小端 PCM 的 wav 裸数据转成 base64(这里假设 pcm.b64 已生成) B64=$(cat pcm.b64) # 2. 调用转换接口 curl -X POST http://127.0.0.1:18888/test \ -H "Content-Type: application/json" \ -d "{\"timestamp\": $(date +%s%3N), \"buffer\": \"$B64\"}" # 3. 响应中的 changedVoiceBase64 解码后即为转换后的 PCM该端点内部用锁串行化处理请求(实现里有threading.Lock),因此它是稳定但并发的推理入口,适合做游戏语音插件、直播工具或自研客户端的对接点。
版本动态速览:只挑影响选型的条目
- v.2.2.2-beta:发布 std_win、std_mac、std_lin_aarch64 三个 std 发行版;从此各发行版支持的模型开始分化(见上表),且各版本发布的发行版组合可能不同;新增 Beatrice v2.0.0-rc0 支持。
- v.2.0.78-beta:修复 RVC 模型上传错误;支持与 v1.x 同机并行运行;扩大了可选 chunk size 范围。
- v.2.0.77-beta:仅面向 RTX 5090 的实验性构建,相关模块未经实机验证,不建议作为生产选择。
- v.2.0.76-beta:Beatrice 新增说话人合并与自动音高偏移;修复服务器模式下的设备选择问题。
- v.2.0.73-beta:支持下载编辑后的 beatrice 模型;修复 beatrice v2 的 pitch/formant 不生效,以及使用 Applio embedder 的模型无法导出 ONNX 的缺陷。
排障手册:按数据流三段定位
声音"完全没变"或"变得不对"时,不要先动模型参数,而是沿链路逐段验证。整条链路是:
你说话 → GUI 采集 → (A) 未转换人声送抵服务器 → 服务端推理 → (B) 已转换声音 → (C) GUI 收到并送扬声器第 1 步:用 Analyzer 核对 (A)(B)。开启 Analyzer 的 Sampling,试着变声,说话几秒后停止采样,in/out会出现播放按钮。in对应 GUI→服务器这段,应录到你的原始人声;out对应服务器推理之后,应听到 AI 转换后的声音。
第 2 步:用 Audio Output 核对 (C)。开启 output record 再变声,停止后下载的 .wav 就是服务器送达 GUI 的那段声音,用来确认回传与回放环节。
第 3 步:根据哪一段先出问题继续缩小范围。
- (A) 异常 —— 先换一条输入验证:用音频文件(如 JVS / JVS-MuSiC 语料样本)走一遍文件转换,把麦克风因素摘掉;仍不行就用任意录音程序确认麦克风本身工作正常。同仓库的浏览器录音工具 recorder/ 无需安装即可在浏览器里试采麦克风,处理逻辑与 VCClient 基本一致。
- (B) 异常 —— (A) 正常而 (B) 不对,问题在服务端推理:检查模型槽位是否加载成功、预训练权重是否完整、设备(GPU/CPU)选择是否正确。
- (C) 异常 —— (B) 正常而扬声器没声或失真,检查输出设备选择、音量与系统侧的虚拟设备链路。
方法论一句话:先确定声音"走到哪一段为止是对的",再集中火力查后面的环节(网络、推理、输出)。详见 tutorials/trouble_shoot_communication_ko.md。
合规提示:素材许可与运行警告
- 示例模型语音素材:Tsukuyomi-chan(CV. 夢前黎)语料禁止用于批判/攻击他人、为特定政治立场/宗教/思想拉票或反对、无分级公开刺激性表达、以允许他人二次利用的形式公开(作为鉴赏作品分发/销售除外);Amitaro 的素材允许用于制作音色模型并转换自己的声音,但必须明确标注"经过了音质转换"、让人能看出并非本人说话,且发言内容须在其规约范围内;黄琴まひろ遵循 Replicadoll 利用规约。公开发布转换声音前请逐条核对。
- 未签名运行:软件没有开发者签名,macOS 打开会触发安全警告,按住 Control 键单击图标即可运行(Apple 安全策略所致,后果自负);Windows 的 SmartScreen 提示同理。
- 免责:因使用或无法使用本软件产生的任何直接、间接、波及性、结果性或特殊损害,项目方不承担责任。
【免费下载链接】voice-changerリアルタイムボイスチェンジャー Realtime Voice Changer项目地址: https://gitcode.com/gh_mirrors/vo/voice-changer
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考