☰
VCClient 实时 AI 变声完整指南:选型、部署、API 调用与故障定位
2026/11/3 2:23:05 网站建设 项目流程

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 模型不一样,这是下载二进制包前最关键的判断依据。对应关系如下:

发行版可用平台支持的模型适用场景选型建议
stdWindows / mac(m1) / linux(x86-64) / linux(aarch64)BeatriceCPU 环境、轻量运行只用 Beatrice 就选它,包最小
cudaWindowsBeatrice、RVC有 NVIDIA 显卡的机器想用 RVC 且有独显时的首选
onnxWindows / mac(m1)Beatrice、RVC无 NVIDIA 显卡或 Apple 芯片RVC 需求下没有独显时的替代方案

三条明确建议:

  1. 只用 Beatrice:任何平台直接下 std 版即可;
  2. 需要 RVC:NVIDIA 显卡选 cuda 版,其余选 onnx 版(注意 onnx 版不支持 Linux);
  3. 版本与发行版并非一一对应:某个版本号未必发布所有发行版,下载前以该版本实际发布的包为准。

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 模型v2v1许可来源
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():

参数默认值作用备注
-p18888监听端口网络部署时保持两端一致
--host127.0.0.1HTTP 监听地址设为0.0.0.0才允许外部访问
--httpsFalse启用 HTTPS布尔型
--httpsSelfSignedTrue自动生成自签名证书为 0 时需自备证书
--httpsKey/--httpsCertssl.key / ssl.cert自有证书路径仅自签关闭时生效
--model_dirmodel_dir模型存放目录示例模型也下载到这里
--sample_modeproduction示例模型下载模式另有 testAll、testOfficial 等
--content_vec_500等pretrain/...各预训练模型路径覆盖 embedder、音高提取器等
--allowed-origins空跨域来源白名单默认已放行本机 127.0.0.1/localhost 对应端口
--logLevelerror日志级别可选 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),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询