NEUTRINO - 基于神经网络的新一代歌声合成器

NEUTRINO - 基于神经网络的新一代歌声合成器

前言

没错这是一篇资源安利文,以下大部分内容翻译自 NEUTRINO 官网

关于

NEUTRINO(AI Kiritan) 是基于神经网络的歌声合成器,作为自由软件发布,官方表示目前暂无开源计划, 目前开源了部分模块,现已支持 Windows, Linux 和 MacOS。
软件首先利用神经网络根据乐谱分析得到时长、音调、音色等参数,再基于以上参数,利用 vocoder 合成出歌声。

安装和卸载

NEUTRINO 目前作为便携软件形式发布,从 官方下载地址 下载得到压缩包,解压到任意文件夹即可,卸载只需删除整个文件夹。

使用

  1. 利用 MuseScore 等制谱软件生成 musicxml 格式的文件保存到 score/musicxml 目录下
  2. 编辑 Run.bat,将 BASENAME 改为上一步 musicxml 的文件名
  3. 直接启动 Run.bat 或在命令行中执行,音频文件将会生成至 output 文件夹

模块说明

musicXML_to_label.exe

1
2
3
Input  : score/musicxml/*.musicxml
Output : label/full/*.lab
: label/mono/*.lab

将 MusicXML 转化为用于神经网络输入的标签格式,推荐使用 MuseScore 来生成乐谱。选择[文件]-> [导出],将文件格式改为 uncompressed MusicXML,如果使用其他软件导出的为 XML 文件,需要在 Run.bat 中将 SUFFIX 配置项改为 xml

Run.bat
1
2
: musicXML_to_label
set SUFFIX=musicxml

NEUTRINO.exe

1
2
3
4
5
6
7
8
9
10
# predict timing
Input : label/full/*.lab
: model/KIRITAN/*.bin
Output : label/timing/*.lab

# predict acoustic feature
Input : label/full/*.lab
: label/timing/*.lab
: model/KIRITAN/*.bin
Output : output/*.f0, *.mgc, *.bap

用于从上一步生成的标签信息中预测 Timing、音高、音色、音调等特征。
可通过更改 Run.bat 中的 ModelDir 配置项来改变音源,在官方提供的下载地址中可选择捆绑 KIRITAN 和 YOKO 两个音源模型的版本下载

Run.bat
1
2
: NEUTRINO
set ModelDir=KIRITAN

可通过更改 NumThreads 配置项来改变运行时使用的处理器数量(默认为 0 即最大值):

Run.bat
1
2
3
: Project settings
set BASENAME=sample1
set NumThreads=0

WORLD.exe

1
2
Input  : output/*.f0, *.mgc, *.bap
Output : output/*.wav

根据上一步提取的特征信息合成歌声波形
可通过配置 PitchShift 进行移调(默认情况下会根据乐谱中的调号判断音高)
通过配置 FormantShift 改变音调,值越大嗓音越接近儿童,越小越接近成人(官方推荐设定为 0.85-1.15 之间)

Run.bat
1
2
3
: WORLD
set PitchShift=1.0
set FormantShift=1.0

PitchShift 快速参考

Key -6 -5 -4 -3 -2 -1 0 +1 +2 +3 +4 +5 +6
PitchShift 0.707 0.749 0.794 0.841 0.891 0.944 1.000 1.059 1.122 1.189 1.260 1.335 1.414

关于 MusicXML

score/musicxml 目录下有一些范例乐谱,一般情况下只要同时包含音符和歌词即可。

  • 请将乐谱类型设置为 “G Clef”(高音谱号)
  • 无需设定弱起

使用 MuseScore 导入 MIDI 时的推荐配置:

通道: 仅 1 通道
量化: 16 分音符和 32 分音符
声部: 1
连音: 3, 4, 5, 7, 9
简化时值: ON
显示短奏记号: OFF
附点: ON
显示速度文字: ON
检测弱起: OFF

换气标记在 NEUTRINO 中有重要作用。基本上,通过使用 4~16 分休止符、换气符号和促音「っ」就能轻松地生成稳定的声音。

歌词需要用全角平假名和全角片假名按照实际发音书写,如:「こんにちは」→「こんにちわ」

推荐一个音符只对应一个元音,否则 Timing 推断可能出现错位

例:「♪ こん  ♪ に  ♪ ち  ♪ わ」→「 ♪ こ  ♪ ん  ♪ に  ♪ ち  ♪ わ」

特殊记号

「’」表示元音弱化
元音跟随辅音而不出声,可实现英语歌词某些部分快速演唱的效果

注:不可单独输入辅音,必须包含一个元音,如”元音 + 辅音“ 或“辅音 + 辅音 + 元音”。

「ー」表示与前一音节的元音相同(即延长元音)
例如「ゆーきが」与「ゆうきが」两种书写方式的效果相同

促音「っ」单独使用时将处理成「前一音节元音+っ」,可能有助于使声音变得流畅

例:♪ ず(z + u)  ♪ っ(u + cl)  ♪ と(t + o)  →   ♪ ずっ(z + u + cl)  ♪ と(t + o)

有效乐谱信息

  • 音高
  • 音符时长 / 乐句长度
  • 泰语换气符号
  • 调号

无效乐谱信息

  • 短奏记号
  • 谱号(目前只支持高音谱号)
  • 强弱记号
  • 拍号(目前只支持四拍子)
  • 速度记号

注意事项

  • 由换气符号或休止符包围的部分视作一个乐句,如果乐句太长将会导致失真
  • 超过音域的音符将会导致失真,可先制作正常音域的乐谱,再通过配置 PitchShift 来调节

总结

適当に打ち込んでみたけど、完全なベタ打ちでもそれなりに聞けるの凄いと思う
#AIきりたん

个人感想:总体效果值得称赞,相比 VOCALOID 更为省时省力,声音更加真实稳定,尤其是在起音和尾音部分没有明显失真现象,在一定条件下能够实现发声力度的细微变化;缺点是目前的可调参数较少,基本依靠神经网络识别,难以体现个人风格。

目前开发者仍在积极更新维护中,已经加入了随机性和新的 NSF 合成方式以生成不同的演唱风格,未来的发展值得期待。

NEUTRINO - 基于神经网络的新一代歌声合成器

https://blog.gpx.moe/2020/02/29/neutrino-singing-synthesizer/

Author

Googleplex

Posted on

Feb 29, 2020

Updated on

Jan 24, 2021

Licensed under

Comments