openutau 中文文档 下载 App

DiffSinger AI 渲染|神经网络歌声合成的新范式

DiffSinger 是什么

DiffSinger = Diffusion-based Singing Voice Synthesis,基于扩散模型的歌声合成。由 OpenVPI 团队维护(开源社区)。

工作原理和 Classic 重采样管线完全不同:

Classic 管线DiffSinger
音频片段 → 重采样 → 拼接 → 输出音素符号 → 神经网络推理 → 波形生成 → 输出
依赖 oto.ini不依赖 oto.ini
音质天花板 = 声库音频质量音质由训练模型决定(可以远好于原始声库录音)
flags 是后处理模型本身就包含演唱表现力(颤音、气声、重音)

在 OpenUtau 里用 DiffSinger 的流程

前置条件

平台最低要求
WindowsWindows 10+ + .NET 8 Desktop Runtime
macOSmacOS 11 Big Sur+ + .NET 8 Runtime(Apple Silicon 推荐,Intel 也能跑)
Linux.NET 8 Runtime(CPU 渲染,无 GPU 加速)
vocodernsf_hifigan(Windows diffsingerpack 已内置,macOS/Linux 需单独下载)

分步操作

第一步:vocoder 导入(macOS / Linux)

下载 nsf_hifigan.oudep 文件,拖到 OpenUtau 主窗口导入。Windows diffsingerpack 版跳过这步。

第二步:装 DiffSinger 声库

从 OpenVPI / DiffSinger 社区下载 .zip,拖 zip 到 OpenUtau 窗口 → 编码选 UTF-8 → Install。

第三步:选引擎和音素器

  1. 轨道头 Singer → 选刚装的 DiffSinger 声库
  2. 引擎下拉(最上层)→ 切到 DiffSinger
  3. 音素器下拉 → 自动变成 DIFFS ZH / EN / JP(根据声库语言)

选完你会发现:齿轮图标里的重采样器和 Wavtool 选项消失了——因为 DiffSinger 有自己的端到端管线,不走 Classic 重采样器。

第四步:写歌词

歌词输入方式取决于声库训练配置:

声库语言输入格式
中文 DiffSinger拼音(ni hao)或汉字(你好)——看 character.yaml 里的设置
英文 DiffSingerARPAbet 音标或自然单词
日文 DiffSinger假名或罗马音

滑音标记 + 和 DIFFS 系列的控制标记通用。

第五步:渲染

DiffSinger 渲染比 Classic 管线慢得多(CPU 上 10-30 倍),但自然度高几个档次。偏好设置里可以调渲染速度倍率(默认 50x,值越大越快但音质略降)。

DiffSinger 专属曲线参数

DiffSinger 引擎比 Classic / WORLDLINE-R 支持更多曲线参数(曲线在 Piano Roll 底部表达式面板里画):

缩写名称说明
PITDPitch Curve音高曲线
DYNDynamics音量曲线
GENCGender Curve性别曲线(formant 位移)
VELCVelocity Curve元音头尾速度(每 +100 速度×2)
ENEEnergy Curve能量曲线(含浊音量)
PEXPPitch Expressiveness音高表现力曲线
TENCTension Curve张力曲线(力量/鼻音)
VOICVoicing Curve浊音曲线
BRECBreathiness Curve气声曲线
SHFCTone Shift Curve音色位移曲线

重要:声库必须支持

这些曲线参数的可用性取决于声库训练时是否开启对应数据增强——检查声库的 character.yaml 里 data_augmentation 字段,某个参数是 false 就表示声库不支持,画了也白画。

添加表达式到工程

DiffSinger 新工程不会自动加载全部 DiffSinger 曲线表达式。需要在 Piano Roll 底部的表达式面板里点:

Add all expressions suggested by renderer

才会把 VELC / ENE / PEXP / TENC / VOIC / SHFC 这些曲线全部加载进工程的表达式列表。

导出 DiffSinger 脚本

OpenUtau → File → Export Project → Export DiffSinger Script

导出 .ds 文件可以直接喂给 DiffSinger 官方推理管线——如果你需要更高性能的批处理、GPU 集群渲染、或者和其他 DiffSinger 工具链集成,这个脚本是通用格式。

DiffSinger vs Classic 的选择

维度ClassicDiffSinger
音质自然度中(受限于重采样 + 拼接)高(端到端生成)
渲染速度快(毫秒级)慢(CPU 10-30 倍)
可控性高(每音素每 alias 可精调)中(靠曲线参数,不暴露底层)
声库生态极其丰富(UTAU 社区 10 年积累)快速增长中(但总量少得多)
硬件要求低中(DiffSinger GPU 加速需要独显)
新手友好难(重采样器/flag/oto.ini 门槛)易(只选声库 + 音素器 + 写歌词)

DiffSinger 常见问题

问题:DiffSinger 渲染完全静音

逐项排查:

  1. vocoder 装了吗?Tools → Singers 里检查 vocoder 条目
  2. 引擎是不是选了 DiffSinger?别选 Classic 或 WORLDLINE-R
  3. 音素器是不是 DIFFS 系列?别选 JA VCV / EN VCCV
  4. 歌词输入格式对吗?中文声库用拼音 vs 汉字的区别

问题:DiffSinger 声库渲染出奇怪噪声

大概率是 vocoder 版本不对——某些高级 DiffSinger 声库需要特定版本的 vocoder(如 pc-nsf-hifigan 支持 SHFC)。去声库发布页看推荐用哪个 vocoder。

问题:DiffSinger 声库也能 Classic 引擎吗

不能——DiffSinger 声库没有 oto.ini,Classic 管线找不到 alias。DiffSinger 声库和 UTAU Classic 声库是完全不同的生态。

问题:想同时用 Classic 声库和 DiffSinger 声库在同一首歌里

分两条轨道——不同轨道选不同引擎。Classic 引擎那条轨道选 Classic 声库 + Classic 音素器;DiffSinger 引擎那条轨道选 DiffSinger 声库 + DIFFS 音素器。两条轨道可以同时播放、同时混音。