欢迎光临
我们一直在努力

从零做一个 AI 歌声模型的训练教程

目标是:从 0 → 训练出一个能唱歌的专属声库模型(类似 RVC/So-VITS ),可以拿来给 AI 音乐当“歌手”。

两条路线:

  • 路线 A:实用路线(推荐):基于 RVC / So-VITS-SVC 做“声音转换型歌声模型”,上手快,效果好。

  • 路线 B:研究路线:类似 DiffSinger 的 “Text/Note-to-Singing” 模型,真正从歌词 + 音符 → 歌声,工程量更大。


0. 先选路线:到底要哪种“AI 歌声”?

✅ 1)声音转换型(Voice Conversion,RVC / So-VITS)

输入: 已经有人唱好的干声(或 TTS/合成歌声)
输出: 换成你目标歌手的音色

特点:

  • 数据需求:10–30 分钟干净人声就能起飞

  • 训练简单:现成工具链多

  • 适用:做“虚拟歌手”、Cover、给 Suno/Udio 歌曲换人声

如果你想在 1–2 周内搞出一个能用在项目里的模型,选这个。


✅ 2)从歌词+音符直接唱:TTS-Singing(DiffSinger 类)

输入: 歌词 + 音符 + 时长 + 表情参数
输出: 直接合成歌声

特点:

  • 数据需求:大量标注好的“对齐数据”(歌词 → 音节 → 时长)

  • 难度:高,依赖音素标注、对齐、声学模型、vocoder 等整套系统

  • 适合:做科研 / 毕设 / 公司级技术储备

如果你要的是可控的歌唱合成系统,可以作为第二阶段目标。

下面的教程先用你更容易落地的路线 A(RVC / So-VITS 型),再给路线 B 的框架。


一、路线 A:基于 RVC 的歌声模型训练

步骤总览

  • 准备环境(GPU、依赖)

  • 准备数据(录音 / 切分 / 清洗)

  • 特征提取(f0 + 语音特征)

  • 训练 RVC 模型

  • 推理测试(实时/离线变声)

  • 调参和优化(音质、稳定性)


  • 1. 环境准备

    1)硬件
    • GPU:至少 8GB 显存(RTX 3060 / 4060 级别)

    • 磁盘:几 GB 即可

    • 系统:Windows / Linux 都行,Win 上有现成整合包

    2)软件工具(典型组合)
    • Anaconda / Miniconda

    • Python 3.8–3.10

    • PyTorch + CUDA

    • RVC 项目(推荐找带 GUI 的整合版,训练/推理都方便)

    可以用这种方式组织环境:

    conda create -n rvc python=3.10
    conda activate rvc
    # 安装 PyTorch(根据你 CUDA 版本选命令)
    pip install torch torchvision torchaudio
    # 克隆 RVC 项目
    git clone https://github.com/<某个RVC仓库>.git
    cd rvc
    pip install -r requirements.txt

    (具体仓库地址你可以选中文社区维护的那几个,带 WebUI 的体验更好)


    2. 数据准备:录制 & 清洗人声

    2.1 录音要求
    • 时长:

      • 最低:10 分钟干净歌声

      • 推荐:30–60 分钟(多几首歌,多种唱法)

    • 内容:

      • 有歌词、有旋律的正常歌唱(可混一点说话声,提高泛化)

      • 尽量涵盖不同音高、元音、辅音、强弱

    2.2 录音注意事项
    • 使用同一个麦克风、同一个环境

    • 避免混响太重的房间

    • 不要加混响、压缩、EQ 等效果,纯干声

    • 避免背景噪音(键盘、风扇等)

    如果暂时不录真人,也可以先用现成歌声数据(比如自己哼唱、翻唱),注意版权不要拿来商用。


    2.3 数据处理流程
  • 统一格式

    • 采样率:一般处理成 44100 Hz 或 48000 Hz

    • 单声道 mono

    • 16-bit PCM

  • 分段切片

    • 用音频编辑软件(Audacity / Adobe Audition / Reaper)

    • 每段控制在 3–20 秒之间

    • 去掉长时间空白、笑声、杂音

  • 去伴奏(如果原本是完整歌曲)

    • 你已经在用 Demucs ——非常好

    • 对有伴奏的歌曲:
      → 用 Demucs / UVR5 分离出 Vocal
      → 再清理混响过重 / 泡沫感太严重的片段

  • 筛选质量

    • 舌头打结、错误、笑场的段落删掉

    • 爆音、削顶、重混响的段落尽量不要用

  • 整理成类似结构:

    dataset/
    raw/
    song1_001.wav
    song1_002.wav

    很多 RVC 前端会提供**“自动切分+自动静音裁剪”**,可以先粗切,再回头手工删掉明显不好的段落。


    3. 特征提取(Feature Extraction)

    以 RVC 为例,典型需要:

    • f0(基频):音高轨迹,常用 rmvpe、crepe、dio 等方法

    • 语音特征 / content features:如 hubert/whisper 提取“内容向量”

    大部分 GUI 会有“特征提取”按钮,你的流程大致是:

  • 选数据集路径:dataset/raw

  • 选择提取器:

    • content encoder:Hubert-soft / whisper-ppg

    • f0 提取器:rmvpe(更稳)或 crepe

  • 等待它自动跑出:

    • .npy / .pt 特征文件

    • 对应索引文件(训练用)

  • 如果喜欢命令行,可以看 RVC 的脚本,大概是:

    python extract_features.py \\
    –data_dir dataset/raw \\
    –f0_method rmvpe \\
    –encoder hubert-soft \\
    –out_dir dataset/processed


    4. 训练 AI 歌声模型

    以 RVC 为例,一般会有一个训练脚本或 WebUI 的训练 tab。

    4.1 关键超参数
    • 采样率:44100 / 48000(需与数据一致)

    • batch size:与显存有关,8~16 通常够用

    • 训练轮数(epochs):

      • 10 分钟数据:大概 20k–40k steps

      • 30–60 分钟数据:40k–80k steps

    • 学习率:1e-4 左右,按项目默认即可

    建议策略:

  • 先跑一个 少 steps 的试训(比如 5k steps),测试模型能否正常收敛;

  • 然后再开长训练(40k+ steps),中途多导出 checkpoint 观察。


  • 4.2 训练命令

    视具体仓库而定,一般类似:

    python train.py \\
    –exp_name singer_A \\
    –data_dir dataset/processed \\
    –sample_rate 44100 \\
    –epochs 40000 \\
    –batch_size 8 \\
    –save_every 5000

    训练过程中观察:

    • loss 是否逐渐下降

    • 过拟合迹象(训练太久反而 artifact 变多)


    5. 推理测试:让模型开始“唱”

    训练完成后,你就可以用 参考音频 → 换音色 来测试:

  • 准备一段你自己唱、别人唱、或 AI 唱的干声(音高较正常)

  • 在 RVC GUI 中选择:

    • 目标模型:singer_A.pth

    • f0 模式:跟随原声 / 手动调整

    • 防破音参数:一些 GUI 会有浅显的名称(如“避免电音感”)

  • 进行转换 → 导出 wav

  • 如果是命令行,一般类似:

    python infer.py \\
    –input test_src.wav \\
    –model_path logs/singer_A.pth \\
    –output out_singer_A.wav \\
    –f0_method rmvpe \\
    –transpose 0 # 升降调


    6. 如何调优音质与表现?

    几个常见技巧:

  • 数据多样性

    • 录更多不同情绪、强弱、元音的样本

    • 不要全是小声哼唱,适当有大声、真音、气声

  • 去掉糟糕段落

    • 内容含糊、乱喊、爆麦的样本删掉重新提取特征再训练

  • 音高 f0 选择

    • 歌声建议用 rmvpe / crepe,稳定性远好于老的 dio/harvest

  • 分多次训练 + 微调

    • 先在较大多说话/歌唱数据上预训练一个 base 模型

    • 再用你的小数据进行 finetune,会更加稳健(类似 TTS 的 speaker adaptation)

  • 推理时控制升降调

    • 目标声音不擅长的极高/极低音区,会出现 artifact

    • 可以少升/降几个半音,效果会明显变好


  • 二、路线 B:从歌词+音符直接唱(DiffSinger 思路速览)

    如果未来要做“完整歌唱合成系统”,可以从 DiffSinger / N-Singer 等论文入手。一个典型的歌唱 TTS 系统包含:

  • 前端(Linguistic Frontend)

    • 文本 → 音素序列(zh pinyin + 声调 → 音素)

    • 歌词与音符对齐(音素时长、停顿)

  • 时长/音高预测模型

    • 给定音素与乐谱,预测每个音素持续时长、F0 曲线

  • 声学模型(Acoustic Model)

    • 输入:音素嵌入 + F0 + 时长 + 其他控制(情感、力度)

    • 输出:声学特征(mel-spectrogram)

  • Vocoder

    • mel-spectrogram → 波形(如 HiFi-GAN、BigVGAN)

  • 整体结构与你做过的 TTS 系统很像,只是多了“已知音符”的强约束,模型更偏向“表情控制”。

    这条路线的难点

    • 数据集要有:歌词 + 对齐音素 + 音符 + 标注 F0(或可以稳定提取)

    • 标注成本高,大多使用专业歌手 + 专业数据采集

    • 模型训练 pipeline 更复杂(至少 2–3 个子模型)

    建议:
    如果将来要做科研/论文:

    • 选一个开源歌唱数据集(NUS-48E、Opencpop 等)

    • 帮你搭一个 DiffSinger-mini 的实验仓库结构

    • 设计训练脚本(前端 → 声学模型 → vocoder)


    三、一个“从零训练歌声模型”的整体路线图

    可以按“两个阶段”来规划:

    第 1 阶段(1–2 周):RVC 歌声模型落地

    • 搭好 RVC 训练环境

    • 收集/录制 20–40 分钟干净歌声

    • 用 Demucs 分离已有歌曲的人声

    • 特征提取(Hubert + rmvpe)

    • 训练 20k–50k steps 模型

    • 用几段参考音频测试 & 调参

    这个阶段结束时,就有一个可用的 AI 歌手。


    第 2 阶段(1–3 个月):向“可控歌唱合成”进阶

    • 研究 DiffSinger / N-Singer 等歌唱 TTS 论文

    • 选择一个公开歌唱数据集(如 Opencpop)

    • 搭建:

      • 文本 → 音素 → 时长 → F0 的前端

      • 声学模型(Transformer / Diffusion)

      • Vocoder(HiFi-GAN / BigVGAN)

    • 做一个从“歌词+音符 → 歌声”的最小可行 demo

    • 最终把它作为你“AI 音乐生成系统”的一个模块,接在 MusicGen 之后

    赞(0)
    未经允许不得转载:171主机测评 » 从零做一个 AI 歌声模型的训练教程
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址