RVC:基于检索的语音克隆AI
RVC(基于检索的语音转换)是AI驱动的语音转换器,大约可以学习使用 10 高质量的语音转换实现了分钟的短音频样本。 传统的语音转换器需要两组数据:自己的声音和要转换的目标声音,这就带来了准备个人语音数据集的挑战。RVC 使用一个名字 HuBERT 多功能特征提取模型克服了这个问题,它实现了从任何声音到特定目标声音的转换。 推荐NSDT工具。: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器 - REVIT导出3D模型插件 - 3D模型语义搜索引擎 - 在线查看AI模型 - Three.js虚拟轴开发包装 - 3D模型在线减面 - 在线切割STL模型 。 RVC 使用两种模型: 。 HuBERT 它是一种多功能特征提取模型。它就像 BERT 音频版,用于自然语言处理。HuBERT 训练后每帧都可以提取 MFCC(梅尔频率倒谱系数)预测隐蔽后 MFCC。基于该模型的架构 Transformer。 :从处理后的数据生成 PCM。 2.1 音调引导。 在语音合成过程中,将提供额外的语音输入基频 (f0)。 提取输入语音的方法有很多种。 f0,包括 WORLD 声码器和基础 CNN 模型,例如,我们在本文中介绍的 Crepe。f0 提取方法的选择不需要与训练中使用的方法相匹配,推理时可以随意选择。 通过使用 f0,能反映原始语音的语调(例如,音调),适用于需要保持原始旋律或音调模式的唱歌和其他应用。 2.2 Faiss。 RVC 利用名为 Faiss 向量搜索库可以提高其与原始语音的紧密匹配能力。该功能通过从训练数据集中选择和选择 Hubert 从最近的特征向量中提取输入语音特征向量。通过输入语音 HuBERT 特征加权平均,该系统可以更接近原始语音的特征。 3、使用RVC的方法。 官方 RVC 可以作为 Web UI 启动。 首先,克隆存储和安装依赖库。写这篇文章,依赖库与 Python 3.11 不兼容,因此使用 Python 3.10。 这里描述了完整的设置过程,适用于 Windows 和 Mac,以及 NVidia / AMD / Intel 硬件。您还可以直接下载完整的zip包 文件。 3.1 推理。 在音调变化设置中指定指定音调变化 +12。 3.2 训练。 选项卡。 目录中。 将要训练的音频文件存储在文件夹中,并在 UI 本文件夹路径设置在中间。然后单击“处理数据”、“特征提取”,最后单击“训练模型”: 界面版本更新为 1006v2。 3.3 RVC v1 和 v2。 3.4 转换为 ONNX。 文件作为 ONNX 输出路径,然后按下导出按钮。这个功能在支持上很方便 ONNX 在各种环境和平台上使用 RVC 模型,提高语音转换模型的通用性。 模型尺寸为 110.2MB。2、RVC模型架构。
Hubert。
用于特征提取 。net_g。
用于音频生成。HuBERT。
的输入是 PCM(脉冲编码调制),它输出特征向量。当输入大小为 。(1, 156736)。
的 PCM 时,HuBERT 产生的特征向量为 。(1, 489, 256)。
。net_g。
输入是特征向量,它输出 PCM。RVC 中有 4 种 。net_g。
变体,具体取决于版本(1 或 2)用于音高引导 。if_f0。
是否存在(下一节将详细介绍#xff09;。self.if_f0 = cpt.get("f0", 1)self.version = cpt.get("version", "v1")if self.version == "v1": if self.if_f0 == 1: self.net_g = Synthesizertrnms256NSFsidid( *cpt["config"], is_half=config.is_half ) else: self.net_g = Synthesizertrnms256NSFsid_nono(*cpt["config"])elif self.version == "v2": if self.if_f0 == 1: self.net_g = SynthesizerTrnMs768NSFsid( *cpt["config"], is_half=config.is_half ) else: self.net_g = Synthesizertrnms768NSFsid_nono(*cpt["config"])。
net_g。
net_g。 内部结构由几个组件组成:
Embedding。:对 HuBERT 编码中间的特征向量。
TextEncoder。:编码音调。
PosteriorEncoder。:生成 z,即潜在表示或特征向量,用于捕获输入音频信号的基本特征。
ResidualCouplingBlock。:计算 z_p(后验编码向量),该向量反映了产生所需输出语音所需的修改特征,#xff0结合目标语音的各个方面c;同时保留原始输入的语言内容。
GeneratorNSF。这些组件按顺序工作c;将编码的音频特征转换为 PCM 音频格式有效改变语音特征,同时保持输入的原始音调和节奏。
RVC 其中一项称为音调引导(pitch guidance)功能,由名为 。
if_f0。 内部管理标志。当 。
if_f0。 设置为 True 时,在 。
net_g。在对话应用中c;为了减少处理负荷无需使用即可使用 f0 的模型。这种灵活性允许在性能和计算效率之间取得平衡c;这取决于用例的具体要求。
使用 Faiss 时,启用 Protect 模式将基于基频 (f0) 调整流程。如果 f0 小于 1,认为这个片段是无声的,#xff0c;而原始语音特征的反映程度也会增加。这种方法更容易反映合成语音中呼吸声的细微差异c;从而增强语音转换的自然性和表现力。
对于 macOS,由于与某些层的兼容性问题,必须在 CPU 上运行。通过使用以下命令,可以实现:
export PYTORCH_ENABLE_MPS_FALLBACK=1。
启动 Web UI 后,输入指定模型的音频文件,然后按转换按钮。假如您使用的模型包含模型 F0 希望从男声转变为女声,请在 UI 中名为 。
Transpose。界面版本更新为 1006v2。
训练,请使用 。
Train。从hugingface下载初始权重文件 。
f0G40k.pth。,并将其放在 。
pretrained_v2。必要时,要获取 Faiss 特点,单击“训练特征索引”。训练结果将存储在“权重”文件夹中。大约需要训练 5 分钟,音频长度为 7 分钟。
训练 RVC 时,你可以在版本中 v1 和 v2 两者之间的选择。在 v1 中,HuBERT 的输出和 net_g 的输入为 256 维。在 v2 中,这些变为 756 维。这种维度差异会影响语音转换的细节和质量,由于 v2 具有更高维度的特征空间,因此,可以提供更详细的语音转换。
RVC 正式支持将 。
net_g。 模型转换为 ONNX 格式。转换请选择导出 ONNX 选项卡,指定 。
.pth。 文件作为 RVC 模型路径指定 。
.onnx。关于HUBERT,torch可以使用 Nightly版本通过修改RVC的源代码将其转换为ONNX。由于Hubert与音频源无关,常用,因此,您可以直接使用我们已经转换的ONNX文件。
hubert_base。 模型尺寸为 293.5MB, 。
net_g。
- 最近发表
- 随机阅读
-
- 【MySQL】事务是个啥?(一文带你了解 为什么要有事务、事务在mysql中的出现情况以及事务的四大特性)
- 江南,远洋集团总会计师,上任半年 公司今年被执行标的51.22亿元
- 深入理解 Java 的 Classpath 环境变量:多种配置方法和实战案例
- SpringBoot实现图形验证码
- 小米Xiaomi 15 京东超值优惠5G手机大容量版
- 明凡UN125迷你主机英特尔i5
- 20日短剧热度榜:《妈妈,你在哪里》第一,市场6416万
- 数据结构-lesson13排序计数排序
- 单线剧情游戏哪个受欢迎? 最新的单线剧情游戏排行榜
- IINE良值PS5手柄充电线3米长线快速充电60W天猫85折优惠优惠
- 小米小爱大模型即将全面升级:全部免费!本月底手机、平板电脑、电视全力支持!
- 韩国想改国名和我们有关系吗?
- 最新研究揭示了伊朗黄土沉积发育记录的气候和环境进化记录
- SpringBoot @DS注解 和 DynamicDataSource自定义实现多数据源的2种实现方式
- 探索 建造 策略!9月6日将推出Yggdrasil游戏
- Web 前端知识体系精简,从零基础到精通,收藏这篇就够了!
- 推箱游戏哪个最好玩? 有趣的推箱游戏排行榜
- Python和下划线(5)私有属性和双下划线的使用技巧
- 腾讯云返利:挖掘云计算价值的新机遇
- 说一不二!海尔小红花让年轻人做家务更容易
- 搜索
-
- 友情链接
-