RVC 咬字插件
RVC 咬字插件

🍑 项目概述
- RVC
咬字算法是针对实时 RVC 变声场景设计的一项辅助优化功能,主要用于改善连续重复词语时可能出现的声母发虚、字音粘连、咬字逐渐模糊等问题。例如,连续说出「凤凰、凤凰、凤凰」时,原版实时推理在某些环境下可能出现后续字音不够清晰、发音衔接不自然的情况。 - 该算法并没有重新制作一套声码器,也不是专门修改
「凤」「凰」等汉字的发音规则,而是调整实时推理过程中送入 HuBERT 特征提取环节的音频上下文。它使用用户提前录制的一小段未变声干声,构建固定的上下文锚点,让推理窗口左侧持续保留真实人声信息,降低音素因上下文不足或静音截断而出现不稳定的概率。 - 算法采用轻量的音频缓冲区处理方式,与原有 RVC 推理流程配合使用。固定前缀只参与特征提取上下文,不作为额外音频直接播放,因此正常情况下,预先录制的干声不会因为固定前缀机制而被直接播放出来。该机制改变的是推理时的上下文条件,而不是将干声与变声结果进行简单混音。不会有意将录制的干声混入最终变声输出。实际改善程度取决于原始人声、降噪情况、模型质量和实时推理参数。
⭐ 工作原理
1. 原版实时 RVC 为什么可能出现口胡?
- 实时 RVC 并不是只分析当前刚刚输入的一小段声音,而是使用包含额外推理上下文、交叉淡化区域、SOLA 搜索区域和当前音频块的滑动缓冲区。
- 在原版实现中,缓冲区初始化时可能填充零值。随着实时音频持续输入,缓冲区不断移动,较早的音频逐渐被新输入覆盖。当刚开始说话,或者两个词之间存在很轻的停顿时,推理窗口左侧可能缺少足够的连续人声信息。
- 如果降噪门限又将轻微的气口或弱音清成静音,后续音节就可能在不够理想的上下文中进行特征提取。对于某些较短、较轻的声母,这种情况可能表现为发音不清晰、字音衔接异常或连续叠词越说越糊。
2. 咬字算法如何改善?
- 该算法使用用户提前录制的干声建立固定上下文锚点,并在每一帧正式推理之前,将指定的干声前缀重新固定到缓冲区左侧。
- 固定前缀主要占据额外推理上下文的前半部分,后半部分仍保留最近输入的真实语音信息。这样既能为 HuBERT 提供稳定的左侧人声参考,又能让当前正在说出的字继续参与本帧的特征提取。
🛠️ 使用说明
下载好之后解压出来的文件直接放进RVC的根目录里面,提示替换文件替换即可
- 准备干声录音: 直接在RVC界面咬字算法中录制一段清晰、未经过 RVC 变声的真人声音。建议录音约 5 秒,避免严重削波、长时间静音和过重的降噪处理。
- 启用咬字算法: 在 RVC-GUI 中勾选「启用咬字算法」。
- 开始实时变声: 使用相同的模型和音频设备,分别测试算法关闭与开启时的连续叠词效果。
- 根据结果调整: 如果改善不明显,可以检查干声录音质量、降噪门限、缓冲区长度和实时推理配置,不建议仅凭单个词语的表现判断整体效果。
⚠️ 使用限制
- 不能保证完全消除口胡: 该算法主要改善推理上下文不足可能造成的发音不稳定,不能保证所有模型、所有词语都能获得相同改善。
- 不能修复模型本身的发音缺陷: 如果模型没有学好某个音素,或模型训练数据存在明显缺陷,固定上下文不能代替重新训练或更换模型。
- 干声长度必须满足要求: 录音过短时可能无法形成有效上下文;如果录音短于实现规定的最低帧长,算法应拒绝使用该录音。
- 存在缓冲区长度限制: 如果额外上下文、交叉淡化、SOLA 搜索和当前音频块等参数超出上游 F0 缓冲区的容量,固定前缀可能被截断,导致算法效果失效或明显下降。
- 不会直接修复基频错误: 该机制针对的是送入 HuBERT 的音频上下文,不是专门修正 F0 或音高估计。音高异常仍需要从基频算法、模型和相关参数等方面排查。
- 效果取决于实际环境: 不同麦克风、降噪设置、采样率、模型及实时缓冲配置都可能影响最终表现。
支持与分享
如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!
桃桃瑾