Realtime Voice Changer Client for RVC(v1.5.3.3)使用教程:从启动到实时变声全流程指南 Realtime Voice Changer Client for RVCv1.5.3.3使用教程从启动到实时变声全流程指南【免费下载链接】voice-changerリアルタイムボイスチェンジャー Realtime Voice Changer项目地址: https://gitcode.com/gh_mirrors/vo/voice-changer导读本文是 voice-changer 项目中Realtime Voice Changer Client for RVCv1.5.3.3的完整使用教程。RVCRetrieval-based-Voice-Conversion是当前主流的歌声/语音转换方案之一而本项目提供的是一个可直接运行的客户端软件能够基于各种语音转换 AIVC, Voice Conversion实现实时语音转换。读完本文你将掌握如何在不同平台Windows / macOS上启动客户端、如何在几分钟内完成从模型加载到实时变声的快速上手、如何理解并调优 GUI 中每个配置项模型槽、音调、index ratio、CHUNK/EXTRA、F0 检测器等的含义与作用以及这些配置在服务端源码中的实际实现逻辑。一、简介与术语约定本应用是用于实时语音转换的客户端软件支持 RVC、MMVCv13、MMVCv15、So-vits-svc-40 等多种模型本文档聚焦于RVCRetrieval-based-Voice-Conversion的实时语音转换使用流程。为便于表述下文沿用项目文档中的术语约定本家 RVC指原版 Retrieval-based-Voice-Conversion-WebUI 项目ddPn08RVC指 ddPn08 制作的 RVC-WebUI 项目。注意事项模型学习需要另行进行本客户端只负责加载与推理不负责训练。如需自行训练模型请在本家 RVC 或 ddPn08RVC 中完成训练若需要在浏览器中录制训练用语音可使用本项目提供的录音应用Github Pages 版并参考其解说视频本家 RVC 的 training TIPS 文档已公开训练前建议仔细阅读。二、启动客户端1. Windows 版下载 zip 压缩包并解压后直接运行start_http.bat即可。2. macOS 版解压下载文件后运行startHttp.command。如果系统提示无法验证开发者请再次按住 Control 键并点击以运行或右键点击后选择打开。3. 远程连接时的注意事项如果需要从远程连接请使用.batWindows或.commandmacOS中http 已被替换为 https的对应启动脚本并通过浏览器Chrome访问界面。4. 控制台显示运行.bat/.command文件后会弹出控制台窗口首次启动时程序需要从互联网下载各类数据模型、特征提取器等根据网络环境通常需要 12 分钟。5. GUI 显示Launcher 选择画面下载完成后会出现 Launcher 选择画面在此画面中选择RVC即可进入 RVC 专用界面。选择完成后出现 RVC 主画面即表示启动成功点击右上角的?按钮可跳转到对应版本的手册页面。三、快速上手3 步完成实时变声启动时已自动下载了演示用数据因此无需任何额外模型即可立即体验实时变声在界面 (1) 区域选择使用的麦克风与扬声器点击 (2) 区域的start按钮等待数秒数据加载后对着麦克风说话扬声器即可听到转换后的声音。建议不熟悉的用户请在 (1) 中选择client device后再选择麦克风和扬声器client device 与 server device 的区别详见 设备模式教程。四、GUI 配置项详解GUI 中可配置的项目按下图分为多个可开合的区域点击区域标题即可展开/收起下面逐一说明每个区域的作用。1. Title标题区域标题旁的图标均为链接图标链接OctocatGitHub 仓库链接问号使用手册链接扳手各类实用工具链接咖啡向开发者捐赠的链接此外标题区域还有三个操作按钮clear setting初始化重置当前所有设置reload强制刷新画面re-select vc返回 Launcher 选择画面重新选择变声类型。2. Server Control服务器控制start / stopstart启动服务器开始实时转换stop停止服务器。monitor实时转换状态监控显示实时转换的状态是判断延迟与性能的核心指标vol语音转换后的音量buf一次截取音频区间的长度ms。Input Chunk 越短该数值越小res对 Input Chunk 与 Extra Data Length 之和进行转换所需的处理时间ms。Input Chunk 或 Extra Data Length 任一缩短该数值都会变小。从发声到听到转换后声音的总延迟约为buf res秒。调整时请尽量让buf 的时间大于 res 的时间以保证转换管线不会出现数据饥饿。注意使用server device 模式时该显示不会出现在 GUI 中而是显示在控制台侧。Switch Model切换模型对已上传加载的模型进行切换。模型名称下方以[]形式标注该模型的信息共 4 项是否考虑 f0pitchf0考虑对音调敏感可做音高转换nof0不考虑不提取基频。模型训练时使用的采样率如 40000 / 48000 等模型使用的特征通道数数值越大表示携带的信息越多、模型越重典型值为 256 / 768训练所用客户端org本家 RVC 训练的模型webuiddPn08RVC 训练的模型。这些标注信息在服务端加载模型时自动写入模型槽。在 RVCModelSlotGenerator.py 中PyTorch 模型会读取 checkpoint 内的config长度、version、f0、embChannels、embedder_name等字段来自动判定模型类型Official v1 / v2、ddPn08 WebUI 模型或 VoRAS并将samplingRate、embChannels、embOutputLayer、useFinalProj、embedder、speakers等元信息写入 RVCModelSlot。Operation模型/服务器操作export onnx导出 ONNX 模型。将 PyTorch 模型转换为 ONNX 格式后推理速度通常会有提升对应服务端 RVC.export2onnx() 调用 onnxExporter 的导出流程download下载模型。主要用于获取模型合并Model Merge的结果。3. Model Setting模型设置Model Slot模型槽选择将模型放入哪一个槽位放入的模型可通过 Server Control 的 Switch Model 进行切换。设置模型时可选择从本地文件读取或从互联网下载两种方式对应的可配置项不同file选择本地文件加载模型from net从互联网下载模型。Model.onnx 或 .pth仅在从文件读取模式下显示。在此指定预训练模型文件为必填项支持两种格式ONNX 格式.onnxPyTorch 格式.pth。模型训练产物所在位置本家 RVC 训练的模型位于/logs/weightsddPn08RVC 训练的模型位于/models/checkpoints。index.index仅在从文件读取模式下显示。这是将HuBERT 提取的特征向训练数据特征靠拢的附加功能需与 feature.npy配对使用本家 RVC 训练的 index 文件以/logs/实验名/add_XXX.index形式保存ddPn08RVC 训练的 index 文件以/models/checkpoints/模型名_index/模型名.0.index形式保存。服务端在创建推理管线时通过 PipelineGenerator._loadIndex() 加载 index若文件不存在或读取失败会返回None即不使用 index 检索不会导致启动失败。Select Model仅在从互联网下载模式下显示。选择要下载的模型界面会显示对应的使用条款链接请在使用前确认。Default Tune默认音调设置声音音调的默认转换值半音数推理过程中也可以实时调整。参考设定男声 → 女声12女声 → 男声-12upload / select 按钮在从文件读取模式下配置好上述项目后点击upload模型进入可用状态在从互联网下载模式下配置好上述项目后点击select模型进入可用状态。4. Speaker Setting说话人设置Tuning调整声音的音调参考值与 Default Tune 相同男声 → 女声12女声 → 男声-12index ratio指定向训练所用特征靠拢的比率。仅在 Model Setting 中同时设置了 feature 与 index 时有效0直接使用 HuBERT 的输出特征1完全使用原始训练特征。index ratio 大于 0 时需要进行特征检索检索会消耗额外时间可能导致延迟上升。从 Pipeline.exec() 的源码可以看出当index存在且index_rate ! 0时才会执行self.index.search()的检索逻辑。Silent Threshold执行语音转换的音量阈值。当输入 RMS 小于该值时不进行转换而直接返回静音此时转换处理被跳过几乎不消耗负载。服务端对应 RVC.inference() 中的判断if vol self.settings.silentThreshold: return np.zeros(convertSize)...默认值为0.00001见 RVCSettings.py。5. Converter Setting转换器设置InputChunk Num128 sample / chunk决定一次转换截取多长的音频片段。数值越大转换效率越高但buf 值会增大即开始转换前的最大等待时间变长buf 区域会显示大致时间。GUI 中可选的 Input Chunk 数值可在 RVC.json 中查看包括 8、16、24、32、40、48、64、80、96、112、128、192、256、320、384、448、512、576、640、704、768、832、896、960、1024、2048 等档位。Extra Data Length决定转换时输入中包含多少过去的历史音频。历史音频越长转换精度越高但计算时间也会增加res 变长。由于 Transformer 是性能瓶颈计算时间大致随该长度的平方增长。其详细讨论可参考项目 issue 中的分析资料。在服务端 RVC.generate_input() 中extraConvertSize默认1024 * 4见 RVCSettings.py直接参与convertSize inputSize crossfadeSize solaSearchFrame extraConvertSize的计算并会在convertSize % 128 ! 0时向上补齐到 128 的整数倍对齐模型输出的 hop size。silenceFront参数则决定推理时是否将extraConvertSize对应的秒数作为静音前置RVC.py。GPU当机器拥有2 张及以上 GPU时可在此处选择使用哪一张 GPU 进行推理。服务端对应RVCSettings.gpu参数修改 gpu 后会自动重新初始化推理管线RVC.update_settings()。6. Device Setting设备设置Device Mode选择使用client device mode还是server device mode。仅在语音转换停止时才能更改。两种模式的详细说明见 设备模式教程client 模式利用 GUIChrome自带的降噪等功能进行麦克风输入、扬声器输出server 模式由 VC Client 直接操作麦克风与扬声器可进一步降低延迟。AudioInput选择输入设备麦克风等也支持从音频文件输入有大小上限。AudioOutput选择输出设备扬声器等。output record录音仅在client device mode下显示。按下 start 后到按下 stop 之间的声音会被录制。注意按下该按钮并不会开始实时转换实时转换请使用 Server Control 的 start。7. Lab模型合成实验室可进行**模型合并Model Merge**操作设定各个合并来源模型的成分量按成分比例生成新的模型。合并后的结果可通过 Server Control 的 download 下载。8. Quality Control质量与效果控制Noise Suppression浏览器内置降噪功能的开关。Gain Controlinput增减输入到模型的音量默认值为 1output增减模型输出的音量默认值为 1。F0Detector选择提取音高pitch的算法可选pm轻量级harvest高精度crepe使用 GPU。服务端 PitchExtractorManager.py 中注册了更完整的提取器家族dio轻量、harvest高精度、crepetorch 版 GPU、crepe_tiny/crepe_fullONNX 版 GPU、rmvpetorch 版、rmvpe_onnxONNX 版、fcpe等未匹配时默认回退到dio。在 GUI 切换 F0 检测器后服务端会通过pipeline.setPitchExtractor()热替换当前管线中的提取器RVC.py。Analyzer实验性功能在服务器侧录制输入与输出输入麦克风的声音被发送到服务器后原样录制可用于确认麦克风 ⇒ 服务器的通信链路是否正常输出模型输出的数据在服务器内录制可用于在确认输入正常的前提下确认模型的工作状态。当出现声音没有被转换等通信类问题时可结合 通信故障排查文档 与监听器monitor相关概念文档 tutorial_monitor_consept_ja.md 逐段定位问题。五、源码视角一次实时转换的完整调用链为了更深入理解上述 GUI 参数这里梳理服务端一次推理的完整链路模型槽加载GUI 上传的.pth/.onnx与.index文件经 RVCModelSlotGenerator.loadModel() 解析自动判定模型版本Official v1 / v2、WebUI 或 VoRAS、采样率、特征通道数与 embedder 类型并保存为params.json形式的模型槽配置管线创建PipelineGenerator.createPipeline() 依次创建 Inferencer推理器、Embedder特征提取器如 hubert_base、PitchExtractorF0 提取器并加载 index输入拼接与音量判断RVC.generate_input() 将新音频与历史缓冲区拼接计算convertSize并估算输出片段的 RMS 音量vol静音门控RVC.inference() 中若vol silentThreshold直接返回静音跳过整个推理管线执行Pipeline.exec() 内部按重采样到 16kHz → 提取 pitch → 提取 embedding 特征 →可选index 特征检索 → 特征插值 → 推理生成音频 → 裁剪 padding的顺序执行最终以模型的采样率输出音频输出音量恢复输出乘以sqrt(vol)恢复音量比例并返回给客户端播放。理解这条链路后再回头看 GUI 中的参数就一目了然InputChunk Num决定切多大一段Extra Data Length决定带多长的上文index ratio决定检索特征掺多少Silent Threshold决定多安静才跳过F0Detector决定基频怎么测Default Tune / Tuning决定音高移多少。六、启动与运行注意事项启动脚本.bat/.command的 http/https 版本对应本地与远程两种访问场景远程连接请使用 https 版本若启动后窗口空白或控制台出现electron: Failed to load URL: http://localhost:18888/ ... ERR_CONNECTION_REFUSED可能是病毒查杀软件导致可等待片刻或在自行承担风险的前提下将目录加入白名单若控制台出现Passthrough is not supported, GL is disabled, ANGLE is ...之类的报错属于所依赖库的输出可忽略不影响使用AMD 用户如感觉 GPU 未被使用请使用 DirectML 版本且 AMD GPU 仅在 ONNX 模型中生效可通过性能监视器观察 GPU 使用率是否上升来判断若 onnxruntime 启动报错可能是解压路径包含 Unicode 字符所致请将程序解压到仅含英数字的路径下。七、相关文档导航英文版教程tutorial_rvc_en_latest.md韩文版教程tutorial_rvc_ko_latest.md设备模式client / server device详解tutorial_device_mode_ja.md监听monitor概念说明tutorial_monitor_consept_ja.md通信故障排查trouble_shoot_communication_ja.md通过本教程你应已能够完成 RVC 客户端的启动、模型加载与实时变声并能根据buf/res等监控指标与各配置项的含义针对自己的硬件与使用场景进行延迟与音质间的调优。【免费下载链接】voice-changerリアルタイムボイスチェンジャー Realtime Voice Changer项目地址: https://gitcode.com/gh_mirrors/vo/voice-changer创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考