英语 | 简体中文 | 日本语
目前发布的机型支持零镜头语音转换吗? 、零镜头实时语音转换、零镜头歌声转换。无需任何训练,给定1~30秒的参考语音即可克隆声音。
要查找演示列表以及与以前的语音转换模型的比较,请访问我们的演示页面
我们正在不断提高模型质量并添加更多功能。
我们对Seed-VC的语音转换能力进行了一系列客观的评估。为了便于再现,源音频是来自 LibriTTS-test-clean 的 100 个随机话语,参考音频是 12 个随机挑选的具有独特特征的野外声音。
源音频可以在./examples/libritts-test-clean
下找到
参考音频可以在./examples/reference
下找到
我们根据说话人嵌入余弦相似度 (SECS)、单词错误率 (WER) 和字符错误率 (CER) 来评估转换结果,并将我们的结果与两个强大的开源基线(即 OpenVoice 和 CosyVoice)进行比较。
下表中的结果表明,我们的 Seed-VC 模型在清晰度和说话人相似度方面均显着优于基线模型。
模型指标 | SECS↑ | 错误↓ | 核证减排量↓ | 信号↑ | 比克↑ | 超视距↑ |
---|---|---|---|---|---|---|
地面真相 | 1.0000 | 8.02 | 1.57 | ~ | ~ | ~ |
开放语音 | 0.7547 | 15.46 | 4.73 | 3.56 | 4.02 | 3.27 |
舒适之声 | 0.8440 | 18.98 | 7.29 | 3.51 | 4.02 | 3.21 |
种子-VC(我们的) | 0.8676 | 11.99 | 2.92 | 3.42 | 3.97 | 3.11 |
我们还与多个扬声器的非零样本语音转换模型进行了比较(基于模型可用性):
人物 | 模型指标 | SECS↑ | 错误↓ | 核证减排量↓ | 信号↑ | 比克↑ | 超视距↑ |
---|---|---|---|---|---|---|---|
~ | 地面真相 | 1.0000 | 6.43 | 1.00 | ~ | ~ | ~ |
东海定王 | 索-VITS-4.0 | 0.8637 | 21.46 | 9.63 | 3.06 | 3.66 | 2.68 |
种子-VC(我们的) | 0.8899 | 15.32 | 4.66 | 3.12 | 3.71 | 2.72 | |
乳绿色 | 索-VITS-4.0 | 0.6850 | 48.43 | 32.50 | 3.34 | 3.51 | 2.82 |
种子-VC(我们的) | 0.8072 | 7.26 | 1.32 | 3.48 | 4.07 | 3.20 | |
马蒂坎·唐华瑟 | 索-VITS-4.0 | 0.8594 | 16.25 | 8.64 | 3.25 | 3.71 | 2.84 |
种子-VC(我们的) | 0.8768 | 12.62 | 5.86 | 3.18 | 3.83 | 2.85 |
结果表明,尽管没有对目标说话人进行训练,Seed-VC 仍能够取得比非零样本模型更好的结果。然而,根据 SoVITS 模型质量的不同,这可能会有很大差异。如果您发现此比较不公平或不准确,欢迎 PR 或 Issue。
(Tokai Teio 模型来自 zomehwh/sovits-tannhauser)
(Matikane Tannhuaser 模型来自 zomehwh/sovits-tannhauser)
(乳绿色模型来自 sparanoid/milky-green-sovits-4)
由 facebook/hubert-large-ls960-ft 模型计算的英语 ASR 结果
由 resemblyzer 模型计算的说话人嵌入
您可以通过运行eval.py
脚本来重现评估。
蟒蛇评估.py --source ./examples/libritts-test-clean --目标 ./examples/reference --输出 ./examples/eval/converted --扩散步骤 25 --长度调整1.0 --inference-cfg-rate 0.7 --xvector-extractor "resemblyzer"--baseline "" # 填写 openvoice 或 cosyvoice 来计算基线结果 --max-samples 100 # 要经过的最大源话语
在此之前,如果您想运行基线评估,请确保在../OpenVoice/
和../CosyVoice/
上正确安装了 openvoice 和 cosyvoice 存储库。
在 M4Singer 数据集上进行了额外的歌声转换评估,其中有 4 个目标说话者,其音频数据可在此处获得。
说话人相似度是通过平均转换结果与各个字符数据集中所有可用样本之间的余弦相似度来计算的。
对于每个字符,选择一个随机话语作为零样本推理的提示。为了进行比较,我们为每个角色训练了各自的 RVCv2-f0-48k 模型作为基线。
每种歌手类型的 100 个随机话语用作源音频。
模型指标 | F0校正↑ | F0RMSE↓ | SECS↑ | 核证减排量↓ | 信号↑ | 比克↑ | 超视距↑ |
---|---|---|---|---|---|---|---|
右室病毒v2 | 0.9404 | 30.43 | 0.7264 | 28.46 | 3.41 | 4.05 | 3.12 |
种子-VC(我们的) | 0.9375 | 33.35 | 0.7405 | 19.70 | 3.39 | 3.96 | 3.06 |
来源歌手类型 | 人物 | 模型指标 | F0校正↑ | F0RMSE↓ | SECS↑ | 核证减排量↓ | 信号↑ | 比克↑ | 超视距↑ |
---|---|---|---|---|---|---|---|---|---|
阿尔托(女) | ~ | 地面真相 | 1.0000 | 0.00 | ~ | 8.16 | ~ | ~ | ~ |
东(女) | 右室病毒v2 | 0.9617 | 33.03 | 0.7352 | 24.70 | 3.36 | 4.07 | 3.07 | |
种子-VC(我们的) | 0.9658 | 31.64 | 0.7341 | 15.23 | 3.37 | 4.02 | 3.07 | ||
戴安娜(女) | 右室病毒v2 | 0.9626 | 32.56 | 0.7212 | 19.67 | 3.45 | 4.08 | 3.17 | |
种子-VC(我们的) | 0.9648 | 31.94 | 0.7457 | 16.81 | 3.49 | 3.99 | 3.15 | ||
丁震(男) | 右室病毒v2 | 0.9013 | 26.72 | 0.7221 | 18.53 | 3.37 | 4.03 | 3.06 | |
种子-VC(我们的) | 0.9356 | 21.87 | 0.7513 | 15.63 | 3.44 | 3.94 | 3.09 | ||
科比·布莱恩特(男) | 右室病毒v2 | 0.9215 | 23.90 | 0.7495 | 37.23 | 3.49 | 4.06 | 3.21 | |
种子-VC(我们的) | 0.9248 | 23.40 | 0.7602 | 26.98 | 3.43 | 4.02 | 3.13 | ||
贝斯 (男) | ~ | 地面真相 | 1.0000 | 0.00 | ~ | 8.62 | ~ | ~ | ~ |
东 | 右室病毒v2 | 0.9288 | 32.62 | 0.7148 | 24.88 | 3.45 | 4.10 | 3.18 | |
种子-VC(我们的) | 0.9383 | 31.57 | 0.6960 | 10.31 | 3.45 | 4.03 | 3.15 | ||
戴安娜 | 右室病毒v2 | 0.9403 | 30:00 | 0.7010 | 14.54 | 3.53 | 4.15 | 3.27 | |
种子-VC(我们的) | 0.9428 | 30.06 | 0.7299 | 9.66 | 3.53 | 4.11 | 3.25 | ||
丁震 | 右室病毒v2 | 0.9061 | 19.53 | 0.6922 | 25.99 | 3.36 | 4.09 | 3.08 | |
种子-VC(我们的) | 0.9169 | 18.15 | 0.7260 | 14.13 | 3.38 | 3.98 | 3.07 | ||
科比·布莱恩特 | 右室病毒v2 | 0.9302 | 16.37 | 0.7717 | 41.04 | 3.51 | 4.13 | 3.25 | |
种子-VC(我们的) | 0.9176 | 17.93 | 0.7798 | 24.23 | 3.42 | 4.08 | 3.17 | ||
女高音(女) | ~ | 地面真相 | 1.0000 | 0.00 | ~ | 27.92 | ~ | ~ | ~ |
东 | 右室病毒v2 | 0.9742 | 47.80 | 0.7104 | 38.70 | 3.14 | 3.85 | 2.83 | |
种子-VC(我们的) | 0.9521 | 64.00 | 0.7177 | 33.10 | 3.15 | 3.86 | 2.81 | ||
戴安娜 | 右室病毒v2 | 0.9754 | 46.59 | 0.7319 | 32.36 | 3.14 | 3.85 | 2.83 | |
种子-VC(我们的) | 0.9573 | 59.70 | 0.7317 | 30.57 | 3.11 | 3.78 | 2.74 | ||
丁震 | 右室病毒v2 | 0.9543 | 31.45 | 0.6792 | 40.80 | 3.41 | 4.08 | 3.14 | |
种子-VC(我们的) | 0.9486 | 33.37 | 0.6979 | 34.45 | 3.41 | 3.97 | 3.10 | ||
科比·布莱恩特 | 右室病毒v2 | 0.9691 | 25.50 | 0.6276 | 61.59 | 3.43 | 4.04 | 3.15 | |
种子-VC(我们的) | 0.9496 | 32.76 | 0.6683 | 39.82 | 3.32 | 3.98 | 3.04 | ||
男高音 | ~ | 地面真相 | 1.0000 | 0.00 | ~ | 5.94 | ~ | ~ | ~ |
东 | 右室病毒v2 | 0.9333 | 42.09 | 0.7832 | 16.66 | 3.46 | 4.07 | 3.18 | |
种子-VC(我们的) | 0.9162 | 48.06 | 0.7697 | 8.48 | 3.38 | 3.89 | 3.01 | ||
戴安娜 | 右室病毒v2 | 0.9467 | 36.65 | 0.7729 | 15.28 | 3.53 | 4.08 | 3.24 | |
种子-VC(我们的) | 0.9360 | 41.49 | 0.7920 | 8.55 | 3.49 | 3.93 | 3.13 | ||
丁震 | 右室病毒v2 | 0.9197 | 22.82 | 0.7591 | 12.92 | 3.40 | 4.02 | 3.09 | |
种子-VC(我们的) | 0.9247 | 22.77 | 0.7721 | 13.95 | 3.45 | 3.82 | 3.05 | ||
科比·布莱恩特 | 右室病毒v2 | 0.9415 | 19.33 | 0.7507 | 30.52 | 3.48 | 4.02 | 3.19 | |
种子-VC(我们的) | 0.9082 | 24.86 | 0.7764 | 13.35 | 3.39 | 3.93 | 3.07 |
尽管 Seed-VC 没有针对目标说话人进行训练,并且仅使用一种随机话语作为提示,但它在说话人相似度 (SECS) 和清晰度 (CER) 方面仍然不断优于特定说话人的 RVCv2 模型,这展示了优越的语音Seed-VC 的克隆能力和稳健性。
然而,据观察,Seed-VC 的音频质量 (DNSMOS) 略低于 RVCv2。我们认真对待这一缺点,并将在未来高度重视提高音频质量。
如果您发现此比较不公平或不准确,欢迎 PR 或问题。
SenseVoiceSmall 计算的中文 ASR 结果
由 resemblyzer 模型计算的说话人嵌入
我们为男到女转换设置+12半音音调,为女到男转换设置-12半音,否则0音调转换
建议在 Windows 或 Linux 上使用 python 3.10。
pip install -r 要求.txt
首次运行推理时,将自动下载最新模型版本的检查点。
命令行推理:
python inference.py --source--target --output --diffusion-steps 25 # 歌声转换推荐50~100--length-adjust 1.0 --inference-cfg-rate 0.7 --f0-condition False # 设置为 True 进行歌声转换 --auto-f0-adjust False # 设置为 True 来自动将源音高调整为目标音高,通常不用于歌声转换 --semi-tone-shift 0 # 半音音调转换用于歌声转换
在哪里:
source
是要转换为参考语音的语音文件的路径
target
是作为语音参考的语音文件的路径
output
是输出目录的路径
diffusion-steps
是要使用的扩散步数,默认为 25,使用 50-100 可获得最佳质量,使用 4-10 可获得最快推理
length-adjust
为长度调整因子,默认为1.0,设置<1.0为加速语音,>1.0为减速语音
inference-cfg-rate
输出有细微的差别,默认为 0.7
f0-condition
是用于将输出音高调节为源音频音高的标志,默认为 False,设置为 True 进行歌声转换
auto-f0-adjust
是自动调整源音高到目标音高的标志,默认为False,通常不用于歌声转换
semi-tone-shift
是用于歌声转换的半音音高变化,默认为 0
渐变网页界面:
蟒蛇应用程序.py
然后打开浏览器并访问http://localhost:7860/
以使用 Web 界面。
实时语音转换GUI:
python 实时 gui.py
重要提示:强烈建议使用 GPU 进行实时语音转换。
我们在 NVIDIA RTX 3060 笔记本电脑 GPU 上进行了一些性能测试,结果和推荐的参数设置如下:
评论 | 扩散步骤 | 推理 CFG 率 | 最大提示长度 | 出块时间(秒) | 交叉淡入淡出长度 | 额外上下文(左)(s) | 额外上下文(右)(s) | 延迟(毫秒) | 质量 | 每个块的推理时间(毫秒) |
---|---|---|---|---|---|---|---|---|---|---|
适合大多数声音 | 10 | 0.7 | 3.0 | 1.0秒 | 0.04秒 | 0.5秒 | 0.02秒 | 2070毫秒 | 中等的 | 849毫秒 |
高音女声的更好表现 | 20 | 0.7 | 3.0 | 2.0秒 | 0.04秒 | 0.5秒 | 0.02秒 | 4070毫秒 | 高的 | 1585毫秒 |
适合一些男声,音质要求较低 | 5 | 0.7 | 3.0 | 0.6秒 | 0.04秒 | 0.5秒 | 0.02秒 | 1270毫秒 | 低的 | 488毫秒 |
通过将 inference_cfg_rate 设置为 0.0 来加快推理速度,但不确定性能是否会下降... | 10 | 0.0 | 3.0 | 0.7秒 | 0.04秒 | 0.5秒 | 0.02秒 | 1470毫秒 | 中等的 | 555毫秒 |
您可以根据自己的设备性能调整GUI中的参数,只要Inference Time小于Block Time,语音转换流就应该可以正常工作。
请注意,如果您正在运行其他 GPU 密集型任务(例如游戏、观看视频),推理速度可能会下降
一般来说,延迟约为 1~2 秒,以防止质量下降(扩散模型的可悲本质......?),但我们一直在寻找减少延迟的方法。
(GUI和音频分块逻辑是从RVC修改的,感谢他们出色的实现!)
发布代码
发布 v0.1 预训练模型:
Huggingface空间演示:
HTML 演示页面(也许与其他 VC 模型进行比较):演示
流式推理
减少流推理延迟
实时语音转换的演示视频
歌声转换
源和参考音频的抗噪能力
源音频具有抗噪能力
潜在的架构改进
U-ViT 风格的跳过连接
更改了 OpenAI Whisper 的输入
自定义数据训练代码
从NVIDIA改为BigVGAN进行歌声解码
用于歌声转换的 Whisper 版本模型
与RVC/SoVITS对歌声转换的客观评价和比较
提高音频质量
更多待补充
2024年10月28日:
更新微调44k歌声转换模型,音质更好
2024年10月27日:
添加实时语音转换GUI
2024年10月25日:
添加了详尽的评估结果以及与 RVCv2 歌声转换的比较
2024年10月24日:
更新44kHz歌声转换模型,以OpenAI Whisper作为语音内容输入
2024年10月7日:
更新了 v0.3 预训练模型,将语音内容编码器更改为 OpenAI Whisper
增加了v0.3预训练模型的客观评估结果
2024年9月22日:
更新歌声转换模型,使用 NVIDIA 的 BigVGAN,对高音歌声有很大的改善
支持 Web UI 中长音频文件的分块和流式输出
2024年9月18日:
更新了用于歌声转换的 f0 条件模型
2024年9月14日:
更新了 v0.2 预训练模型,具有更小的尺寸和更少的扩散步骤来实现相同的质量,并具有额外的控制韵律保存的能力
添加了命令行推理脚本
添加安装和使用说明