so-vits-svc 是一个开源的歌声转换(Singing Voice Conversion, SVC)项目,由 svc-develop-team 维护。该项目与 VITS 有本质区别:它专注于歌声转换而非文本转语音(TTS),不支持 TTS 功能,且 VITS 无法执行 SVC 任务,两个项目的模型不能互换或通用。
用途:项目旨在让开发者能够使用喜爱的动漫角色进行歌唱任务,开发者意图仅关注虚构角色,避免涉及真实人物。项目完全离线运行,不收集任何用户信息或输入数据。
主要能力:
- 使用 SoftVC 内容编码器从源音频提取语音特征,直接输入 VITS,无需转换为文本中间表示,保留原始音频的音高和语调。
- 声码器替换为 NSF HiFiGAN,解决声音中断问题。
- 4.1-Stable 版本更新:特征输入改为 Content Vec Transformer 输出的第 12 层,兼容 4.0 分支;更新浅层扩散,可使用浅层扩散模型提升音质;新增 Whisper-PPG 编码器支持;新增静态/动态声音融合;新增响度嵌入;新增从 RVC 检索特征的功能。
- 支持浅层扩散(shallow diffusion)以提升音质。
- 支持多种编码器(如 vec768l12、vec256l9、hubertsoft、whisper-ppg、cnhubertlarge、wavlmbase+ 等)和 F0 预测器(如 rmvpe、crepe、fcpe 等)。
使用方式:
- 项目为框架,不附带模型,用户需自行训练模型。
- 需要准备数据集,放置在 dataset_raw 目录,文件类型必须为 WAV,命名无特定限制。
- 预处理:建议将音频切片为 5s-15s,可使用 audio-slicer-GUI 或 audio-slicer-CLI。需重采样至 44100Hz 单声道,并建议使用专业软件进行响度匹配。
- 训练:运行预处理脚本生成 hubert 和 f0,然后训练模型。可选训练扩散模型以使用浅层扩散。
- 推理:使用 inference_main.py,需指定模型路径、配置文件、wav 文件名列表、音高偏移、说话人 ID 等参数。
- 预训练模型需从指定来源下载并放置到对应目录(如 pretrain、logs/44k 等)。
- 推荐 Python 3.8.9。
适用场景:
- 学术研究和学习交流。
- 开发者用于让虚构角色(如动漫角色)进行歌唱。
- 不适用于生产环境部署。
限制:
- 项目仅作为框架,不具备语音合成功能,所有功能需用户自行训练模型。
- 不附带任何模型,二次分发项目与本项目贡献者无关。
- 不支持 TTS 功能。
- 使用非授权数据集训练需用户自行承担全部责任。
- 严禁用于非法活动、宗教和政治活动。
- 发布基于 sovits 的视频必须明确标注输入源人声和音频,并给出原始链接或说明。
- 使用其他商业人声合成软件作为输入源时,需遵守该软件规定。
- 项目已进入 Archive 状态。
- 预训练模型通常无版权问题,但建议咨询作者或查看描述以确认允许的使用方式。
- 若使用 whisper-ppg 编码器,音频片段必须短于 30 秒。
- 训练时需注意显存限制,避免过长音频导致内存溢出。