0. 注意
- 一切只是折腾记录...可能不具备什么参考价值
- 对这块真的知之甚少,求大佬指点,真心求!
图 Kiritan pid:59452814 by K箱
1. 缘起
这次的起因当然是隔壁@桜庭夜的一篇介绍啦——《让 AI 小姐唱歌 !NEUTRINO 神经歌唱合成器》
还从来没接触过VOCALOID之类歌声合成的我,当时本来就想试试,可惜由于各种鸽鸽鸽(专业30年旧坑不填挖新坑),直到拖到五一假的一个闷热难耐的夜晚,脑中突然响起『夏祭り』的旋律。
“君がいた夏は、遠い夢の中……”咳咳,唱的太难听了..
“不然就用AI调教一首『夏祭り』吧!”
这么想着,便一言不合就开干(……没错,就是那么混乱随意
2. 过程
2.1 扒谱
NEUTRINO 只认musicxml
格式的谱,官方推荐的制谱软件是MuseScore,开源免费。
你可以用它打开自己的格式mscz
或者更喜闻乐见的mid
格式,再导出转换成musicxml
供NEUTRINO使用。
因为这首歌比较冷门,虽然在某站搜到了五线谱,但在MuseScore上一个个复刻上去后发现节奏和音高都不对,能想象当时满怀期待的点开生成音频时迎来的却是贯耳的嘶吼吗,当时就吓傻了。
之后。。之后就只能自己扒了,用的是WaveTone
,的确神器,根据鼓点缩放调整bpm,再在每个小节里用不同时值的音符将其点亮,便能导出mid给MuseScore用了。当然这时候的mid也不太能用,需要后期在MuseScore里慢慢调。
有些歌背景很杂,可以用RX 7来再平衡,这里我就分离出了鼓点,方便找节奏
不用畏惧不会五线谱,这里用到的只有时值,音高,呼吸记号,bpm几个记号(其他的程序也不认
2.2 填词
跟着伴奏走几遍,调整好节奏便能填词了(别在意糟糕的文件名和如此多分段(因为这首歌变速的地方挺难把握的
基本规则便是一个音符对应一个假名,注意读作wa的「は」→「わ」
关于填词的更多请看官方博客——https://n3utrino.work/332/
还有便是连音符和呼吸记号的使用也很重要。不知道怎么断?自己哼几句试试... 呼吸记号不仅会影响整体效果还关系到之后一个迈不过去的坎(雾
2.3 运行前的准备
2.3.1 检查显卡是否为N卡
最主要是显卡的坑。2.0版本的NEUTRINO引进了NSF人声合成引擎,而NSF本身需要N卡的CUDA支持。
所以没有N卡的各位……诶,别走啊,还是有办法的!
- NEUTRINO中还有另外一个引擎——WORLD,也是可以用的。
- 可以使用利用Google Colaboratory免费GPU来在线训练。由于该操作在Web浏览器上完成,因此不需要GPU,甚至用手机都可以操作,详见博客:https://n3utrino.work/550/
2.3.2 驱动是否为最新
请在使用之前将NVIDIA驱动程序更新为最新版本。
用电脑里啥乱七八糟的助手更新的都不算,得用Nvidia自带的NVIDIA GeForce Experience
一般在C:\Program Files\NVIDIA Corporation\NVIDIA GeForce Experience\NVIDIA GeForce Experience.exe
2.3.3 显存是否充足
官方建议是建议使用3GB或更大的GPU内存,和使用GTX 1050ti / 1060/970
GPU的内存使用情况取决于乐谱中短句的长度。一个短句是一段被呼吸记号或休止符包围的部分,每秒大约需要100MB。例如,如果您的短句为15秒,则将计算为使用约1.5 GB,如果GPU内存为2 GB,则可能无法使用。
只有笔记本独显2GB显存的我瑟瑟发抖,但还好还是撑住了。
2.4 运行
运行步骤真的是相当傻瓜化了,感谢作者把人声合成深度学习那么高大上的程序,封装到只需两步开跑。
改乐谱名,对应score文件夹下欲合成的musicxml
文件名
命令行下runrunrun!
期间你能感受到CPU和GPU的混合哀嚎....如果数据量特别大或时间特别长的话
如果NSF运行到一半出错,多半就是显存不够用了,刚刚提到的坎就在这。
- 换个好显卡(
- 尝试用呼吸符分隔更细的小节,使得单节声音不会拖的太长。
- 弃用NSF直接用WORLD生成的
乐谱名_syn.wav
文件,NSF生成的则是乐谱名_nsf.wav
2.5 试听
WORLD生成的是乐谱名_syn.wav
文件,NSF生成的则是乐谱名_nsf.wav
现在就可以听听效果啦!(期待ing
哇,最后上气不接下气的咋回事?!
没辙的我只好去推上请教作者SHACHI様了(结果还打扰了人家五一休假orz
作者答复说的确是bug,由于训练的数据量的关系,出现这些时间误判是难免的,不过好在这些都是可以调整的。之后推荐了tyouseisientool 这款.NET编写的第三方GUI工具,以及原来博客中就提及的WaveSurfer 。(让你不好好看文档,不过也算是反馈bug了嘛(打死
2.6 调整
将musicxml文件拖入就不难发现,这音拖得太离谱,气也断了。
点击TIMING
即可拖动蓝色纵条,恢复至正常位置
然后别忘了再生成一遍,走个过程:
点击NEUTRINO才能将刚刚的调整生效反馈过来,如果发现还是老样子请删除output文件夹下所有关于该乐谱名的文件再生成一遍。
另外在PITCH
选项还能够可视化调整音高波形,添加平滑和颤音等效果,非常方便了!
2.7 混音
这首歌的曲速变化我实在难以驾驭,所以没能一谱到底。到最后只能在Au里简单混个音和加点玩具音效orz
之后导出,就成了如下所示的渣作(轻喷
3. 还差得远的成品
3.1 渣作轻喷
3.2 原作欣赏
鬱p还是太厉害了...
没有对比就没有伤害,模拟不出前面的空灵的氛围,缺少了中间那段喘息,和声,还有关键的黑嗓。(技术力实在低下,大佬求带,在线等)
宁静与狂躁的碰撞也是令人欲罢不能的。
3.3 其他调教
之后去N站上才发现,NEUTRINO才推出没几天就已经有人调教出来了,至今(05.12)已有将近8万再生,
另外一种风格的也很好听(其实这才是原曲风格吧...
【AIきりたん】夏祭り【NEUTRINOカバー曲】by マーマレード さん
3.4 歌词附
[00:13.27]君がいた夏は(有你在的夏天)
[00:18.95]遠い夢の中(在那遥远的梦里)
[00:26.09]空に消えてった(在空中消散的)
[00:31.73]打ち上げ花火(盛放的烟火)
[00:37.10]
[00:43.36]君の髪の香りはじけた(你的发香残存)
[00:46.78]浴衣姿がまぶしすぎて(身着浴衣姿态婀娜)
[00:50.11]お祭りの夜は胸が騒いだよ(在烟火祭的夜晚我心潮澎湃)
[00:56.91]はぐれそうな人ごみの中(拥挤的人潮之中)
[01:00.20]「はなれないで」出しかけた手を(我们紧紧地牵着手)
[01:03.58]ポケットに入れて握りしめていた(把你的手放进口袋紧紧地握着)
[01:09.92]
[01:10.77]君がいた夏は(有你在的夏天)
[01:13.69]遠い夢の中(在那遥远的梦里)
[01:17.46]空に消えてった(在空中消散的)
[01:20.47]打ち上げ花火(盛放的烟火)
[01:27.63]
[01:29.05]子供みたい金魚すくいに(像孩子似的捞着金鱼)
[01:32.28]夢中になって袖がぬれてる(打湿了衣袖)
[01:35.71]無邪気な横顔がとても可愛いくて(天真无邪的脸颊是那样的可爱)
[01:42.40]君は好きな綿菓子買って(买了你最爱吃的点心)
[01:45.78]ご機嫌だけど 少し向うに(心情愉悦 刚刚想要靠近你)
[01:49.20]友だち見つけて 離れて歩いた(你看到了朋友 就离开了我的身边)
[01:55.59]
[01:56.39]君がいた夏は(有你在的夏天)
[01:59.32]遠い夢の中(在那遥远的梦里)
[02:03.14]空に消えてった(在空中消散的)
[02:06.08]打ち上げ花火(盛放的烟火)
[02:13.27]
[02:42.63]神社の中 石段に座り(我们坐在神社前的石阶上)
[02:47.65]ボヤーッとした闇の中で(坐在模糊的阴影里)
[02:52.73]ざわめきが少し遠く聞こえた(可以隐隐听到远处的嘈杂)
[03:02.75]線香花火マッチをつけて(手中拿着仙女棒)
[03:07.85]色んな事話したけれど(聊着各种各样的事情)
[03:12.89]好きだって事が言えなかった(却没有告诉你我喜欢你这件事情)
[03:22.38]
[03:23.69]君がいた夏は(有你在的夏天)
[03:28.05]遠い夢の中(在那遥远的梦里)
[03:33.71]空に消えてった(在空中消散的)
[03:38.15]打ち上げ花火(盛放的烟火)
[03:43.93]
[03:48.06]君がいた夏は(有你在的夏天)
[03:50.96]遠い夢の中(在那遥远的梦里)
[03:54.76]空に消えてった(在空中消散的)
[03:57.75]打ち上げ花火(盛放的烟火)
[04:04.89]
4. 后记
感谢SHACHI様开发出如此有趣的、能大大降低歌声合成门槛的NEUTRINO,以及杂活铺子(雾)和其他网上众多教程帮助
还有因为每天只搞一点又懒得关机防止进度搞混,而持续高烧卡到崩溃的笔记本
在AI能够作词谱曲演奏演唱一条龙的时代,究竟谁又会变得更机械木讷呢(笑
另外 きりたんちゃん真萌!(虽然这哪里是小学5年级生的声音啦
我还是更喜欢你的,更贴近人声。我不太喜欢V+的原因之一就是他们的声音都太高太尖太清脆了_(:з)∠)_
By ⑨BIE at September 6th, 2020 at 04:57 pm.
这个完成度不是已经很高了么~我觉得也不比原版差了。
开头看到打谱还想安利一下sibelius,结果看到是需要特殊格式。
一听natsumatsuri这首歌脑袋里就一直是三连打、三连打...
By Gazzz at July 4th, 2020 at 01:17 am.
@Gazzz
sibelius太大了,一时间也用不上那么多功能∠( ᐛ 」∠)_
夏祭り当作音游曲流传也是相当普遍呀╮(╯▽╰)╭
By FSpark at July 6th, 2020 at 11:57 pm.
我不懂,比较喜欢原作。。。
不会被打吧
By 拜仁慕尼黑 at May 26th, 2020 at 11:29 am.
@拜仁慕尼黑
当然不会,我也喜欢∠( ᐛ 」∠)_
By FSpark at May 26th, 2020 at 02:45 pm.
这个好棒欸,可惜我太弱了,不会乐理
By Eltrac at May 10th, 2020 at 09:06 am.
@Eltrac
其实对乐理的要求真的并不高啦,有兴趣的话可以试试哦
By FSpark at May 11th, 2020 at 12:44 am.
啊喂你这已经不是作业了吧,比我多弄了好多东西,学到了学到了,感觉可玩性更高了
歌曲节奏有变化的话好麻烦啊,要是我估计就放弃然后换曲子了。折腾果然还是需要耐心。
然后就是《夏祭り》真好听!
By 桜庭夜 at May 9th, 2020 at 10:54 pm.
@桜庭夜
哈哈,相互学习嘛!当时节奏调整了很久orz,能喜欢就太好啦
By FSpark at May 9th, 2020 at 11:56 pm.