恒美微站
首页
关于我们
建站服务
主题模板
案例展示
资讯中心
联系我们
Realtime Voice Changer 客户端 RVC 模型实时变声完整教程(v1.5.3.1):从启动、模型加载到调参实战
首页
资讯中心
/
Realtime Voice Changer 客户端 RVC 模型实时变声完整教程(v1.5.3.1):从启动、模型加载到调参实战
Realtime Voice Changer 客户端 RVC 模型实时变声完整教程(v1.5.3.1):从启动、模型加载到调参实战
发布时间:2026/9/20 6:40:06
Realtime Voice Changer 客户端 RVC 模型实时变声完整教程v1.5.3.1从启动、模型加载到调参实战【免费下载链接】voice-changerリアルタイムボイスチェンジャー Realtime Voice Changer项目地址: https://gitcode.com/gh_mirrors/vo/voice-changer导读本文以 tutorials/tutorial_rvc_en_1_5_3_1.md 为主体完整讲解如何使用 Realtime Voice Changerリアルタイムボイスチェンジャー客户端软件以 RVCRetrieval-based-Voice-Conversion模型完成实时语音变声。内容覆盖软件启动方式、GUI 各功能区操作、模型文件的上传与切换、变声参数调优变调、Index 检索、静音阈值、CHUNK/EXTRA 延迟权衡、GPU 选择以及设备模式选择与模型合并Lab等实战环节并补充了仓库源码层server/voice_changer/RVC 目录的实现依据。读完本文你将能够独立完成从解压运行到加载 RVC 模型并实时变声的全流程并能根据延迟与音质要求理性调整各项参数。说明v1.5.3.1 版本属于较早的 GUI 布局Server Control / Model Setting / Speaker Setting / Converter Setting / Device Setting / Lab / Quality Control 分区式布局与后续版本的Main Control Configuration布局不同。本文以该版本文档为准并在关键处对照当前仓库源码补充底层实现细节。一、软件定位与前提说明Realtime Voice Changer 是一款支持多种变声模型的实时语音转换客户端软件RVCRetrieval-based-Voice-Conversion是其中被重点支持的模型之一。本文档讲解的变声流程仅限于 RVC 模型。需要先明确的两个外部项目命名约定原文约定original-RVC指原始 [Retrieval-based-Voice-Conversion-WebUI]即 RVC-Project 维护的官方 WebUIddPn08-RVC指 ddPn08 创建的 [rvc-webui]。必须注意的前提模型训练需要另行完成本客户端只负责加载训练好的模型做实时推理不承担训练任务。若想自行训练 RVC 模型请参考 original-RVC 或 ddPn08-RVC 项目准备训练用语音时可使用部署在 GitHub Pages 上的录音应用即本仓库 recorder 子应用在浏览器中录制参考配套讲解视频训练技巧可参考 original-RVC 的training_tips_en.md文档。这一训练与推理分离的设计也体现在仓库结构中训练相关资源放在 trainer 与 docker_trainer而推理运行时完全围绕 server/voice_changer/RVC 实现。二、启动步骤2.1 Windows 版解压下载的 zip 文件后运行start_http.bat即可启动。2.2 Mac 版解压下载文件后执行startHttp.command。如果系统提示无法验证开发者按住 Control 键再次点击执行或右键点击执行即可。2.3 远程连接时的注意事项当通过远程方式连接时请改用将http替换为https的.batWindows和.commandMac文件即使用start_https.bat/startHttps.command启动。2.4 控制台Console运行.batWindows或.commandMac文件后会弹出控制台窗口。首次启动时会从互联网下载运行所需的各类数据多数环境下可能需要 12 分钟。2.5 GUI 启动所需数据下载完成后会显示 Launcher启动器界面在此界面中选择RVC即可进入变声主界面。与后续版本的区别较新版本如 v1.5.3.13的 Launcher 流程已调整为显示欢迎对话框 → 按 Start 进入且 Mac 版需要先单独运行MMVCServerSIO再运行startHTTP.commandv1.5.3.1 则以 Launcher 选择模型类型为入口两者本质一致都是先由服务端拉起 Web GUI。三、快速开始几分钟内完成第一次变声启动完成后使用随包下载的数据即可立即进行变声在界面1区域选择麦克风与扬声器按下2区域的start按钮等待数秒数据加载变声即开始。对于不熟悉操作的用户建议在1处选择client device客户端设备模式来指定麦克风与扬声器——client device 与 server device 的区别会在后文设备模式章节详述。四、GUI 分区总览GUI 中可设置的项按区块划分每个区块点击标题即可展开/收起v1.5.3.1 包含以下主要区块区块作用Title标题栏图标链接、clear setting、reload、re-select vcServer Control服务器控制start/stop、monitor 实时状态、模型切换、模型操作Model Setting模型设置模型槽位、模型文件/特征/索引的加载与上传Speaker Setting说话人设置Tuning 变调、Index Ratio、Silent ThresholdConverter Setting转换器设置InputChunk、Extra Data Length、GPU 选择Device Setting设备设置client/server 设备模式、音频输入输出Lab模型合并Quality Control质量控制噪声抑制、增益控制、F0 检测器、Analyzer下面按区块逐一展开。五、Title标题栏详解标题栏中的图标均为链接图标跳转目标OctocatGitHub 仓库question问号使用手册spanner扳手工具coffee咖啡杯捐赠其余按钮功能clear setting初始化重置全部配置reload重新加载窗口re-select vc返回 Launcher重新选择变声模型类型。六、Server Control服务器控制6.1 start / stopstart启动服务器stop停止服务器。实时变声在服务器启动后开始工作。6.2 monitor实时状态监视monitor 显示实时转换的状态。从发声到听到转换后声音的总延迟约为buf res秒调参时应尽量使buf大于res。注意如果使用server device 模式该监视画面不会显示在 GUI 上而是显示在**控制台console**一侧。monitor 中三个指标的含义vol变声后的音量buf一次截取音频的分段长度毫秒。缩短 Input Chunk 即可减小该值res转换Input Chunk Extra Data Length之和的数据所需时间。同时缩短 Input Chunk 与 Extra Data Length 可以减小该值。6.3 Switch Model切换模型可切换已上传的模型。模型名称下方的[]内显示模型信息是否考虑 f0基频/音高f0表示考虑音高nof0表示不考虑音高训练模型时使用的采样率模型使用的特征通道数embChannels训练所用的客户端org表示由 original-RVC 训练webui表示由 ddPn08-RVC 训练。这些字段与仓库中 server/data/ModelSlot.py 定义的RVCModelSlot数据类一一对应f0: bool True、samplingRate: int -1、embChannels: int 256、modelTypepyTorchRVC/pyTorchWebUI等枚举见 server/const.py 的EnumInferenceTypes、versionv1/v2。以 PyTorch 模型为例加载时 RVCModelSlotGenerator._setInfoByPytorch 会解析 checkpoint 中的config长度与version字段来判定模型类型config长度为 18 且 version 为v1original-RVC v1embChannels256、embOutputLayer9、useFinalProjTrue、embedder 为hubert_baseconfig长度为 18 且 version 为v2original-RVC v2embChannels768、embOutputLayer12、useFinalProjFalse其他情况按 ddPn08-RVCwebui模型处理从 checkpoint 的config[17]、embedder_name、speaker_info等字段解析。6.4 Operation模型/服务器操作export onnx将模型导出为 ONNX 格式。把 PyTorch 模型转为 ONNX 有时可加快推理速度例如 ONNX Runtime 的优化与 DirectML/onnx 加速后端支持。导出实现见 server/voice_changer/RVC/onnxExporter/export2onnx.py根据modelSlot.modelType选择对应的 ONNX 包装器256/768 通道、f0/nof0、webui 变体将模型权重复制后以 opset 17 导出再用onnxsim简化并把metadatasamplingRate、f0、embChannels、embedder、embOutputLayer、useFinalProj 等写入 ONNX 元数据供下次加载时识别download下载模型主要用于获取模型合并Lab的结果。七、Model Setting模型设置7.1 Model Slot模型槽位选择把模型放入哪个槽位slot。设置好的模型可通过 Server Control 中的 Switch Model 进行切换。在设置模型时可以选择从本地文件加载或从互联网下载不同选择会显示不同的可设置项file选择本地文件加载模型from net从互联网下载模型。从源码角度看槽位机制由 server/voice_changer/ModelSlotManager.py 与 server/data/ModelSlot.py 支撑每个槽位对应model_dir/slotIndex/目录槽位描述信息模型文件、索引文件、默认调参等序列化为该目录下的params.json见saveSlotInfo/loadSlotInfo函数。7.2 Model.onnx 或 .pth选择从文件加载时显示。这里指定训练好的模型文件为必填项支持ONNX.onnx与PyTorch.pth两种格式。模型文件在不同训练项目中的位置original-RVC 训练位于/logs/weightsddPn08-RVC 训练位于/models/checkpoints。7.3 feature.npy选择从文件加载时显示。这是附加功能将 HuBERT 提取的特征向训练数据靠拢与 index.index成对使用。original-RVC位于/logs/your-experiment-name/total_fea.npyddPn08-RVC位于/models/checkpoints/your-model-name_index/your-model-name.0.big.npy。注意原文此处两处路径均写成total_fea.npy结合官方 RVC 约定index 文件实际应位于/logs/your-experiment-name/add_XXX.index一类位置使用时应以你训练输出的实际文件名/路径为准。7.4 index.index选择从文件加载时显示。同样是附加功能将 HuBERT 提取的特征向训练数据靠拢与 feature.npy成对使用。从源码看index 文件在 PipelineGenerator.createPipeline 中被加载如果槽位指定了 indexFile 且文件存在则通过faiss.read_index(indexPath)读取加载失败或文件不存在时返回None即不使用 Index 检索。Index 在 Pipeline.exec 中的实际作用如下当index 不为 None且indexRatio ! 0时开启检索search_index用 faiss 对 HuBERT 特征做最近邻搜索k1即取最相似训练特征将检索到的训练特征与原始特征按feats npy * index_rate (1 - index_rate) * feats进行加权融合当protect 0.5时还会把 f0 预测失败pitchf0的帧替换为检索前特征以保护音质。7.5 Select Model从网络下载选择从互联网下载时显示可下载的模型列表。使用前请务必阅读模型的许可条款链接termsOfUseUrl确认允许使用。7.6 Default Tune默认变调量输入音高转换量的默认值推理过程中也可再调整。参考基准男声 → 女声12女声 → 男声-12单位为半音。每次升降 12 个半音即一个八度。7.7 upload / selectupload设置完上述各项后按下模型即准备就绪可用本地文件方式select选择从互联网下载时设置完上述各项后按下激活模型。八、Speaker Setting说话人设置8.1 Tuning变调调整音高转换量参考基准同上男声 → 女声12女声 → 男声-12在源码中对应 RVCSettings.tran默认 12推理时作为f0_up_key传给 Pipeline见 RVC.inference由 PitchExtractor 在提取基频时直接移调。模型槽位加载后tran会自动初始化为槽位的defaultTune见 RVC.initialize。8.2 index ratioIndex 检索比例指定向训练所用特征偏移的比例。仅当 Model Setting 中同时设置了 feature 与 index 时生效0直接使用 HuBERT 的原始输出1全部替换为训练原始特征01 之间的值按比例融合。注意index ratio 大于 0 时特征检索可能耗时较长每帧都要执行 faiss 搜索会增大res延迟。8.3 Silent Threshold静音阈值音频转换的音量阈值。当音频的RMS均方根音量小于该值时不进行变声转换直接返回静音。这种情况下转换流程被跳过因此计算负载更小省电、降延迟。源码佐证见 RVC.inferenceif vol self.settings.silentThreshold: return np.zeros(convertSize)...其中vol由 RVC.generate_input 计算对裁剪片段求平方均值再开方。默认值为0.00001见 RVCSettings.silentThreshold。九、Converter Setting转换器设置9.1 InputChunk Num128 sample / chunk决定一次转换切取并转换多长的音频。取值越大转换效率越高但buf值越大开始转换前的最大等待时间越长。界面会以buff:形式显示大致耗时。调试提示来自较新版本文档的 FAQ同样适用于本版本若变声出现断断续续/卡顿可尝试增大 CHUNK例如 1024并将 F0 检测器改为更轻量的dio通常能改善实时性。9.2 Extra Data Length决定转换时输入中纳入多少过去的音频。过去的语音越长转换精度越高但res越大、计算耗时越长。由于 Transformer 是瓶颈计算时间大致随该长度呈平方级增长。该参数在源码中对应 RVCSettings.extraConvertSize默认1024*4 4096采样点。在 RVC.generate_input 中实际转换长度 inputSize crossfadeSize solaSearchFrame extraConvertSize并向上补齐到 128 的整数倍模型输出的 hop size随后通过 buffer 拼接历史音频再截取转换区间。extraConvertSize还通过silenceFront控制推理时是否跳过开头静音段见 RVC.inference。9.3 GPU如果机器有2 块及以上 GPU可在此选择推理所用 GPU。对应 RVCSettings.gpu默认 -9999即自动。在 RVC.update_settings 中修改gpu会触发DeviceManager.setForceTensor(False)并重新initialize()重建 Pipeline因此切换 GPU 会重建整个推理管线。十、Device Setting设备设置选择client device 模式或server device 模式。只能在变声停止时更改。两种模式的详细说明可参考 tutorials/tutorial_device_mode_ja.md。两种模式的权衡依据 tutorials/tutorial_device_mode_ja.md 与原文模式优点缺点client device mode客户端设备模式Chrome 接管麦克风/扬声器的复杂处理可使用 Chrome 自带的 Web 会议功能如降噪延迟略有增加server device mode服务器设备模式VC Client 直接控制麦克风/扬声器延迟更低部分麦克风/扬声器可能无法使用无法使用 Chrome 的便利功能如降噪v1.5.2.9 之前的版本只有 client device 模式浏览器控制麦克风/扬声器v1.5.2.9 之后新增了 server device 模式VC Client 直接控制接在 PC 上的麦克风/扬声器。10.1 Audio Input音频输入选择输入设备麦克风等。10.2 Audio Output音频输出选择输出终端扬声器等。10.3 output record输出录音仅在 client device 模式下显示。从按下 start 到按下 stop 期间录制音频。注意按下此按钮并不会启动实时变声——实时变声需要按下 Server Control 中的 start。十一、Lab模型合并可进行模型合并。为每个源模型设置成分量component amounts即强度 strength按成分量比例合成新模型。合并实现见 server/voice_changer/RVC/modelMerger/MergeModel.py对每个参与合并的模型槽位按其strength加载权重跳过enc_q层其余权重进入合并字典将所有 strength 归一化alphas [x / sum(alphas) for x in alphas]校验各模型权重键集合一致不一致则报错Failed to merge models.按权重逐 key 加权求和生成合并后的weight附带写入config、params、version、sr、f0、info、embedder_name、embedder_output_layer等元数据输出为新的.pth模型。合并结果可通过 Server Control 的download下载。十二、Quality Control质量控制12.1 Noise Suppression噪声抑制浏览器内置降噪功能的开/关。该功能属于 Chrome Web 会议相关能力仅 client device 模式可用。12.2 Gain Control增益控制input调节输入到模型的音频音量默认值为 1output调节模型输出音频的音量默认值为 1。12.3 F0Detector基频检测算法选择提取音高的算法v1.5.3.1 提供以下两种pmlightweight轻量级轻量、速度快harvesthighly accurate高精度精度高、计算量大。版本差异提示较新版本v1.5.3.13 等已扩展出更丰富的 F0 检测器列表dio / harvest / crepe / crepe full / crepe tiny / rmvpe 等。从当前仓库的 PitchExtractorManager.loadPitchExtractor 看已注册的实现包括harvest、dio、crepe、crepe_tiny、crepe_full、rmvpe、rmvpe_onnx、fcpe其中dio轻量、harvest高精度其余多为 GPU/ONNX 加速的高精度或轻量方案。本文所述 v1.5.3.1 的 GUI 仅暴露 pm/harvest 两项但底层抽取框架是一致的均通过PitchExtractor接口见 server/voice_changer/RVC/pitchExtractor/PitchExtractor.py在 Pipeline.extractPitch 中调用并按f0_up_key即 Tuning 值完成移调。12.4 Analyzer实验性功能在服务器端录制输入与输出输入侧把麦克风声音发送到服务器并原样录制可用于检查从麦克风到服务器的通信链路是否正常输出侧把模型输出的数据录制在服务器端可用于确认模型的行为在确认输入无误之后。十三、附延迟模型与调参思路总结综合以上各节可以将 v1.5.3.1 的实时变声调参归纳为以下要点总延迟 ≈ buf resbuf由 Input Chunk 决定res由 Input Chunk Extra Data Length 共同决定追求低延迟缩小 Input Chunk 与 Extra Data Length同时保持buf res使用轻量 F0 检测pm与较小的 index ratio或 0追求高音质增大 Extra Data Length历史音频更多、使用 harvest 高精度基频、配合 index 与 feature 检索但需接受res增大与搜索耗时静音阈值适当调高 Silent Threshold 可让静音段跳过转换降低平均负载多 GPU在 Converter Setting 中指定推理 GPU卡顿排查优先尝试增大 CHUNK 并将 F0 检测器切换为轻量算法dio/pm。常见问题快速定位结合较新版本 FAQ 与本版本结构现象建议声音断续卡顿增大 Input Chunk如 1024F0 检测器改用 pm/dio检查 PC 性能声音未被转换按 tutorials/trouble_shoot_communication_ja.md 定位通信链路问题麦克风→服务器→模型→输出音高不对调整 Tuning±12 为一个八度需要更低的延迟改用 server device 模式减小 Input Chunk 与 Extra Data Length十四、进一步阅读设备模式详解tutorials/tutorial_device_mode_ja.md通信故障排查tutorials/trouble_shoot_communication_ja.md监控monitor概念tutorials/tutorial_monitor_consept_ja.mdRVC 推理实现RVC 主类 server/voice_changer/RVC/RVC.py、推理管线 server/voice_changer/RVC/pipeline/Pipeline.pyRVC 模型槽位数据结构server/data/ModelSlot.pyRVC 可调参数定义server/voice_changer/RVC/RVCSettings.py模型导出 ONNXserver/voice_changer/RVC/onnxExporter/export2onnx.py模型合并server/voice_changer/RVC/modelMerger/MergeModel.py【免费下载链接】voice-changerリアルタイムボイスチェンジャー Realtime Voice Changer项目地址: https://gitcode.com/gh_mirrors/vo/voice-changer创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考