神秘的蓝色大胖鱼开发了 MIDI 唱歌工具

如何使用MIDI做出人声? 继续讨论:

教会我的 agent 基本 SMF 的技术和语音共振峰合成的原理,就开始小步迭代 agent 教开发。不得不说这神秘的蓝色大胖鱼代码洁癖程度高得夸张,最后集成在一起的源码已经是 AI 味溢出了。

目前 demo 版本的 GUI 是可以用的(GUI 没有 .wav 导出),Debug 我简单做了一下,是跑得起来的。
但是我实在是忙死了,根本没空看加起来上万行 cpp 代码(神秘少年宫的记忆),仓库和 release 请看:

https://github.com/nikiyiki/MIDI_Formant_Synth

hmmm,感觉长期要是 demo 版本了,代码 human review 效率挺低的(就我一个人知道那晚和蓝色大胖鱼说了什么(((

实现原理就是做了一个类似 vocaloid 引擎再接入语音字典。

字典我全按照大胖鱼的意思通过了,检验的方式是让大胖鱼生一个小胖鱼和频谱工具,小胖鱼 ai 对比自然中的语音频谱和 midi 模仿的语音频谱,大概前后调试了七八轮,模仿 DAISY DAISY 的效果已经很好了。

所谓 “类似 vocaloid 引擎” 不是拼贴合成,而是加法合成。就是通过 系统 + RPN + Pbend 值得到绝对音高,表情 + 力度 + CC7通道响度+ 自然衰减算法(我写了一个非常奇怪的)得到模拟绝对响度。通道级响度响应(CC7 配比 + 力度缩放)是正常的;音高响应没做好。音高响应太难搞了。所以不建议让工具生成弯音(不如如“这唱歌的是 MIDI 你敢信?”视频里的手调的好)。

倒也没有什么继续开发的必要,当个玩具就是了。

微云也可以下载 release:微云

1 Like