GPT-SoVITS数据集制作全流程:UVR5人声分离、音频切片与ASR自动标注实战
2026/9/14 22:44:16 网站建设 项目流程

GPT-SoVITS数据集制作全流程:UVR5人声分离、音频切片与ASR自动标注实战

【免费下载链接】GPT-SoVITS1 min voice data can also be used to train a good TTS model! (few shot voice cloning)项目地址: https://gitcode.com/GitHub_Trending/gp/GPT-SoVITS

GPT-SoVITS 是一款强大的少样本语音克隆与文本转语音(TTS)工具,仅 1 分钟人声即可微调出高相似度模型。而微调效果好不好,80% 取决于数据集质量。本文将带你走通 GPT-SoVITS 数据集制作全流程:用 UVR5 完成人声分离、用自动切片工具切割音频、再用多语种 ASR 自动标注文字,最后校对生成训练用的 list 标注文件,新手也能一次做对。

一、为什么数据集是成功的关键

GPT-SoVITS 的核心卖点是"少样本":

  • 零样本:5 秒参考音频即可直接合成;
  • 少样本微调:1 分钟左右的干净人声,就能大幅提升音色相似度与真实感。

但这 1 分钟数据必须是纯人声、无背景音乐、无杂音、逐句切好且文字标注准确的片段。原始素材通常是带 BGM 的完整歌曲或长语音,直接喂给训练流程只会"学歪"。因此官方在 WebUI 中内置了一整套数据处理管线(见 README.md 的Finetune一节):

填写音频路径 → 切片 → 去噪(可选)→ ASR 转写 → 文本校对 → 进入下一标签页微调模型

下文就按这条管线逐步拆解。

二、第一步:UVR5 人声分离,先去掉背景音乐

如果你的素材是歌曲或带伴奏的录音,第一步必须把"人声轨"分离出来。

入口:主界面 webui.py 启动后,打开"UVR5 人声伴奏分离"标签页;对应源码为 tools/uvr5/webui.py。

操作要点:

  1. 选择模型uvr5_names列表会扫描 tools/uvr5/uvr5_weights 目录下所有.pth/.ckpt/ onnx 权重,按需选用(如 MDX-Net 分离、Roformer 分离、去混响 Dereverb 等)。若本地没有权重,安装时加--download-uvr5参数可自动下载;
  2. 填入待处理音频目录:把原始歌曲/录音放入一个文件夹,在界面上指定该目录;
  3. 输出两个结果目录:分离后的人声(vocal)伴奏(instrumental)会分别保存,我们要用的是人声目录;
  4. 等待批量处理完成,逐首试听人声轨,确认没有残留伴奏。

💡经验:若人声带混响(大厅感明显),建议额外跑一次去混响(Dereverb)模型再切片,效果更干净。

三、第二步:音频自动切片,把长音频切成短句

训练需要的是每句 3~10 秒左右的短片段。GPT-SoVITS 提供了基于能量(RMS)的静音检测切片器 tools/slicer2.py,核心逻辑是:扫描音量包络,在"低于阈值的静音段"处下刀切割。

入口:WebUI 中"训练集切割"标签页,或直接运行命令行版本 tools/slice_audio.py。

关键参数及推荐值(来自 slicer2.py 的Slicer默认配置):

参数含义默认值调参建议
threshold低于该音量(dB)视作静音备选切割点-40环境噪音大时调低(如 -45)
min_length片段最短时长(ms)5000保证每片信息量足够
min_interval两次切割的最小间隔(ms)300避免切碎一个字
hop_size扫描步长(ms)20一般不改
max_sil_kept每片保留的最长静音(ms)5000控制片段首尾留白

💡经验:切完后抽听几个片段——如果一句常被从中间切断,调大min_interval;如果开头噪音多,调低threshold并适当调小max_sil_kept

四、第三步(可选):去噪处理

对于有底噪、电流声的录音,可以在切片后使用内置去噪工具 tools/cmd-denoise.py(模型位于 tools/denoise-model 目录)。录制环境本来就比较干净的话,这一步可跳过。

五、第四步:ASR 自动标注,一键生成文字稿

切片完成后,GPT-SoVITS 内置的多语种语音识别(ASR)会逐段转写出文本,省去逐条手打。

相关源码:

  • 中文/粤语:tools/asr/funasr_asr.py,集成 Fun-ASR-Nano(多方言)、SenseVoice(快速转写)与经典 FunASR(Paraformer/UniASR);
  • 英日等语种:tools/asr/fasterwhisper_asr.py,基于 Faster Whisper,语言代码覆盖zhenjakoyue等数十种。

操作要点:

  1. 选择语种:与切片时的主语言一致(中文选 FunASR 系,英/日选 Whisper 系);
  2. 模型目录:识别模型统一放在 tools/asr/models,首次使用会自动下载,也可提前手动放入实现离线使用;
  3. 点击批量识别后,每条切片会对应生成一句文本,并汇总为标注数据(json/list)。

六、第五步:文本校对,生成训练 list 文件

ASR 转写不可能 100% 准确,专有名词、语气词最容易错。官方提供了文本校对界面 tools/subfix_webui.py:加载上一步的标注结果后,左侧播放音频、右侧逐条修改文本,按批次翻页核对,最后导出标注文件。

最终训练数据集采用.list格式,每行一条记录,以|分隔四段信息(格式定义见 README.md 的Dataset Format一节):

音频路径|说话人|语种|文本 例如: D:\GPT-SoVITS\dataset\0001.wav|myvoice|zh|今天天气真不错。

其中语种代码:zh中文 /en英文 /ja日文 /ko韩文 /yue粤语。

⚠️校对三原则

  1. 删掉没有实际内容的"嗯、啊"碎片片段(在界面中可直接删除);
  2. 文本与音频严格对应,宁缺勿错;
  3. 语种字段必须与片段实际语种一致,混合语段落可拆行标注。

七、常见坑与提速技巧

  • 切出来的片段带伴奏残留:回到第一步换更强的分离模型(Roformer 系通常更干净),分离模型需与同名.yaml配置一起放入 tools/uvr5/uvr5_weights;
  • 识别全是乱码:先确认语种选对了,再检查切片是否过短(<1 秒的片段识别质量差);
  • 批量处理慢:在 config.py 中确认 GPU 设备与半精度(is_half)已正确启用;
  • 数据量建议:1 分钟起步、5~10 分钟更稳;同一说话人的素材风格越统一(同样设备、同样语速),微调效果越好。

八、总结:五步产出高质量训练集

步骤工具核心文件
1. 人声分离UVR5tools/uvr5/webui.py
2. 音频切片Slicertools/slicer2.py、tools/slice_audio.py
3. 去噪(可选)denoisetools/cmd-denoise.py
4. ASR 标注FunASR / Whispertools/asr/funasr_asr.py、tools/asr/fasterwhisper_asr.py
5. 文本校对subfixtools/subfix_webui.py

完成以上五步,你就拥有了一份可以直接投入微调的 GPT-SoVITS 数据集。接下来回到 WebUI 的训练标签页,选择实验目录、指定.list文件,即可开始训练 GPT(s1)与 SoVITS(s2)模型,用 1 分钟声音复刻出属于你自己的 AI 音色。

【免费下载链接】GPT-SoVITS1 min voice data can also be used to train a good TTS model! (few shot voice cloning)项目地址: https://gitcode.com/GitHub_Trending/gp/GPT-SoVITS

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

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

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

立即咨询