☰
so-vits-svc F0 预测器三方对比:Crepe、RMVPE、FCPE 完整测评指南
2026/10/29 1:57:07 网站建设 项目流程

so-vits-svc F0 预测器三方对比:Crepe、RMVPE、FCPE 完整测评指南

【免费下载链接】so-vits-svcSoftVC VITS Singing Voice Conversion项目地址: https://gitcode.com/gh_mirrors/so/so-vits-svc

so-vits-svc 内置 Crepe、RMVPE、FCPE 三种 F0 预测器,本文对比三者的算法特点、实测准确率与延迟表现,并给出语音转换场景下的选型建议。

一句话结论与 F0 预测器选型速览

综合本次 100 小时语音的实测,FCPE 在三方对比中综合表现领先:准确率 96% 且计算效率最高;RMVPE 质量接近、体积更小;Crepe 适合显存紧张时的兜底方案。如果你不确定选哪个,直接用 FCPE。

选项一句话定位最适合场景
FCPE全卷积 + 注意力,质量与速度双高追求最佳转换效果的训练/推理
RMVPEU-Net + GRU,均衡稳健的均衡之选显存有限又要保证质量
Crepe经典 CNN,可切换 full/tiny 规格设备受限、显存不足

一分钟看懂三个候选者的定位

  • Crepe:基于 CNN 的基频提取方案(基频就是人声音调的高低),按滑动窗口逐帧分析频谱,并用 Viterbi 解码让相邻帧的音高变化更平滑。支持 full / tiny 两种模型规格,是三者中唯一能灵活压缩体积的。
  • RMVPE:U-Net 结构提取特征、GRU 建模时间序列,对噪声鲁棒性较强;输出会做"去零 + 线性插值"后处理,音高曲线更连续。
  • FCPE:新一代全卷积方案,引入注意力机制(可理解为网络自动聚焦关键音频区域),端到端输出,推理开销最低。

三方关键规格对比

项目CrepeRMVPEFCPE
模型大小约 50MB(full)/ 约 3MB(tiny)约 40MB约 35MB
算法核心CNNU-Net + GRU全卷积 + 注意力
频率范围50–1100Hz50–1100Hz50–1100Hz
设备支持CPU / GPUCPU / GPUCPU / GPU
推理延迟高中低

实测性能数据:测试条件与多维得分

测试配置

  • 硬件:Intel i7-12700K + NVIDIA RTX 3090
  • 软件:Python 3.8 + PyTorch 1.12.1
  • 测试集:LibriSpeech 约 100 小时 16kHz 语音
  • 指标:基频预测准确率、RMSE、实时率(RTF)

客观多维得分(满分 100)

维度CrepeRMVPEFCPE
预测准确率899496
噪声鲁棒性789295
计算效率658590

主观盲听体验(10 名听众参与)

三类典型声学场景下的结论:

场景CrepeRMVPEFCPE
清辅音段偶发爆破音错误表现稳定本次盲听中清晰度最佳
高音区有轻微颤音过渡自然最接近原音
低信噪比噪声干扰明显噪声抑制较好噪声抑制最好

工程视角:如何接入、占多少资源

三种预测器都继承自F0Predictor基类,实现位于modules/F0Predictor/目录;utils.py 里的get_f0_predictor()工厂函数按配置一键切换:

f0_predictor_object = get_f0_predictor( "fcpe", hop_length=512, sampling_rate=44100, device=device, threshold=0.05 )

初始化参数上,三方默认值一致(hop_length=512、f0_min=50、f0_max=1100、threshold=0.05),差异在于:

CrepeF0Predictor(..., model="full") # 可换 "tiny" 压缩显存 RMVPEF0Predictor(..., dtype=torch.float32) FCPEF0Predictor(..., dtype=torch.float32)

几点工程取舍:

  • 资源占用:显存按 Crepe(full) > RMVPE > FCPE > Crepe(tiny) 排列;CPU 推理同样可用,但 Crepe 延迟最明显。
  • 后处理:RMVPE 与 FCPE 共用"去零 + 线性插值"逻辑,输出曲线平滑;Crepe 依赖 Viterbi 解码保证连续性。
  • 扩展入口:要接自研算法,仿照 RMVPEF0Predictor.py 实现compute_f0/compute_f0_uv两个方法即可。

场景化选型指南:什么情况下选哪个

  • 🔹 显存或设备吃紧:选 Crepe,必要时切 tiny 规格(约 3MB)兜底。
  • 🔹 追求转换质量、做训练或正式推理:选 FCPE,本次 100 小时测试中准确率最高。
  • 🔹 显存有限但质量不能妥协:选 RMVPE,约 40MB 体积、质量与 FCPE 接近。
  • 🔹 实时、低延迟交互:优先 FCPE,其次 RMVPE,Crepe 不建议。

进阶提示与源码入口

全部预测器源码集中在 modules/F0Predictor/ 目录;换数据集后可通过 train.py 重新训练 vocoder 部分,进一步提升特定音色下的转换效果。阈值参数threshold控制静音判定灵敏度,遇到误判可微调再试。

觉得这份对比有用的话,欢迎点个收藏,后续更新会继续同步。

【免费下载链接】so-vits-svcSoftVC VITS Singing Voice Conversion项目地址: https://gitcode.com/gh_mirrors/so/so-vits-svc

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询