iVocaloid论坛

标题: 【科普向】Vocaloid原理“揭秘” [打印本页]

作者: Zleepwalking    时间: 2014/7/16 13:18     标题: 【科普向】Vocaloid原理“揭秘”

本帖最后由 Zleepwalking 于 2014/7/16 13:34 编辑

关于版权的声明:这些技术信息全部来自与Yamaha合作的MTG小组发表,并在互联网上公开的论文,相当于对若干篇论文的概述/总结。结尾处我会列出所有参考文献。

1. 背景
    MTG(Music Technology Group)是西班牙庞贝法布拉大学下的研究组,于1994年由Xavier Serra成立并担任主任。90年代末该小组和Yamaha合作开发Vocaloid。在Y社投资下进行一系列有关歌声频谱建模的研究并发表若干篇论文。两个核心人物:Xavier Serra
博士和Jordi Bonada博士

2. 框架
    MTG把音频的表示分为三个层面:Low Level-声音底层参数的层面, Mid Level-语音学的层面, High Level-乐谱、歌词等更接近演奏者(说话人)的层面。大致上Vocaloid就是这么一个High->Mid->Low一层层下来转换合成的应用。
    Vocaloid的引擎基于拼接合成(Concatenative Synthesis),即说话人的采样(经过处理)成为音源库的成分。拼接合成发源于上世纪80年代,优点是还原性好,合成质量高;缺点是数据库往往比较庞大。

3. Low Level建模
    Xavier Serra在89年提出SMS(Spectral Modelling Synthesis)技术,在Quatieri & McAulay提出的正弦模型(Sinusoidal Model)基础上增加了随机(Stochastic)成分。在语音分析中该技术把语音拆分成若干不同频率和幅度的正弦波和气音。其中气音相当于通过声道滤波器的噪音。合成时给定控制点,生成若干正弦波和气音并叠加。顺带一提,SMS有很多其它名字,比如HNM(Hamonic and Noise Model),HpN(Harmonic plus Noise),这些是限定正弦成分即谐波。另外,因为在分析阶段采用的傅立叶变换的性质,实际合成中往往使用余弦而不是正弦。
    Vocaloid的音源库制作阶段使用SMS对语音进行底层建模,而合成使用VPM(Voice Pulse Model)。VPM的作用类似SMS的合成阶段,但它直接在频域生成语音的短时频谱。WBVPM(Wide-Band Voice Pulse Model)技术使用STFT将这些短时频谱叠加生成最终的语音,并可在同一频谱中表示出语音的正弦成分和随机成分。VPM相对SMS合成的优点是速度更快,且能够对语音的声门脉冲建模,直接控制相位。(吐槽:不过89年恰好Quatieri & McAulay发表了一篇关于正弦合成中相位还原的论文……)
    随便找个Vocaloid音源,让他/她在低音唱个“a”,那个滋拉滋拉的Vocal Fry效果就是VPM做出来的。

4. Mid Level建模
    现在我们有了SMS和VPM,如果我们知道在每一时刻语音各个谐波的频率和幅度,还有气音的频谱形状就能很好地合成出语音。但这些参数哪来的呢?这些参数是由EpR(Excitation plus Resonance)语音模型产生的——EpR能够生成谐波和气音的频谱包络以及相位。字面上就能看出,它把语音的频谱包络(注意是频谱包络不是频谱)视作一条激励(Excitation)曲线和一条共振(Resonance)曲线的和。其中共振曲线又是由好几个单独的共振峰曲线叠加起来的。
    这些共振峰的计算公式由Dennis Klatt在1979年的一篇关于共振峰合成器的论文中提出。2001年Jordi Bonada等人将它变成对称的并增加了几个参数。现在每个共振峰的频谱形状由三个参数决定——幅度、中心频率、和带宽。这其实就是Vocaloid1中的RES参数。
    Vocaloid的音源库即包括了大量的EpR参数,通过在合成中修改这些参数即能实现时间缩放、音高变换、发音过渡、和音色修改。

5. High Level建模
    用户输入的是谱子,这比EpR参数还高了一个层面。于是Vocaloid需要一个参数生成器之类的能够把谱子转成EpR参数。这个生成器就叫作Sonic Space(我找不到中文翻译)。它是一个包含了High Level和Mid Level样本的数据库,能通过某种算法在High Level和Mid Level间进行匹配。但是论文里很少提及相关的算法,我想这可能也是Y社比较保密的技术吧。
    (楼主YY)倒是有很多现成的模型可以代替Sonic Space,包括很多机器学习算法。
    Jordi Bonada 2008年的论文里展望到,(Vocaloid)未来可能会使用SVM(支持向量机), ANN(人工神经网络), GMM(高斯混合模型), HMM(隐马尔科夫模型)等模型进行高阶建模。
    Jordi还说,他们认为HMM模型可以直接架起从Low Level到High Level的桥梁。(可惜这提早被HTS实现了,现在被CeVIO使用)

6. 跑题-简单讲讲其他几种合成软件的原理吧 & 喜闻乐见的Vocaloid v.s. CeVIO
    CeVIO只是个图形前端而已,它背后使用的引擎是名古屋工业大学开发的HTS Engine (HMM-based Speech Synthesis System)。大致是把语音的MFCC扔进HMM里,然后重新生成MFCC扔进Source-Filter模型里合成。不过说实话我没研究过HMM-based的技术。作为一种机器学习算法,HMM直接从Low Level的真人羞耻play(咦?)中学习真人的发音习惯,给定了需要合成的High Level信息再把Low Level的东西算出来。所以它可以直接跳过Mid Level,合成的语音会有更好的韵律、节奏和真人发声习惯。
    相比之下Vocaloid好似另一个极端——把一切能建模的建模了,通过精确的参数求得高质量的语音。
    Vocaloid对Low Level的建模真的非常好,几乎是无听觉损失地还原了,但CeVIO就做不到这点。HTS还没能完善到能处理好每个细节的地步——最明显的是清辅音的损失。但是High Level上CeVIO显然更胜一筹。
    我觉得应该结合市场定位比较。Vocaloid面向的用户比较专业,能够手工指定这些高阶参数也是意料之中的。所以至少在未来几年内我觉得Vocaloid(当然是专业调教者的作品)的合成质量会比CeVIO好。
    另:看上去Vocaloid4很可能会采用这些高阶建模技术,MTG好几年前就开始进行HMM的研究了。

    关于UTAU。UTAU本身也是个前端,而且我本人略严重认为这个VB6写的前端略恶心……这里取自带的resampler为例。我没反向过这货,这只是一些略靠谱的猜测:通过某种OLA的变体先对语音进行时长改变,然后通过重采样加速/减速,然后通过一个共振峰滤波器还原原来的频谱包络。这是个很粗糙的方法。。加上UTAU本身的设计(比如强制把拼接限定在时域)不合理,UTAU的合成质量就比较惨了。即将发布的RUCE(Rocaloid UTAU Compatible Engine)就打算填这个resampler的巨坑。。。让我们拭目以待。。

7. 参考文献


p.s. Xavier Serra教授将在今年10月于Coursera开一个关于SMS的课程,有兴趣的同学欢迎加入~

作者: Tnga    时间: 2014/7/16 18:57

LZ您研究到底已经深入到了什么程度我很好奇.....这真的只是科普吗摔!不过课程似乎很有趣的样子.....最后,期待RUCE的发布=w=
作者: asd235s89    时间: 2014/7/23 16:32

恩...這已經超我能理解的範圍了
作者: fdasdfs    时间: 2014/7/28 20:10

OTZ好厉害的样子啊。。。。
作者: Maczly    时间: 2014/8/13 21:28

卧槽,根本看不懂啊……呜呜
作者: 放开那大葱包子    时间: 2014/8/28 19:45

V4如果能结合传统vocaloid和cevio的优势想必应该大有发展吧。
作者: 11032117    时间: 2014/11/15 23:08

几乎看不懂(NE)555..
作者: 君厨    时间: 2014/12/6 21:38

不明觉厉……
作者: 389122580    时间: 2015/7/31 21:28

LZ碉堡了
作者: 悠夏NEKOTO    时间: 2015/12/29 18:41

虽然什么都看不懂......
作者: 束玉    时间: 2016/2/11 08:57

不明觉厉_(:з」∠)_
作者: 梓曜    时间: 2016/8/22 11:13

感觉好深奥,不是学程序的只看懂一小部分...不过现在V4已经出了Lz不准备研究一下吗
作者: ChinesHome    时间: 2017/7/18 20:57

是的!V4的咆哮就用了这些建模!!
作者: 雅音宫羽天依酱    时间: 2018/1/16 19:15

感谢科普!(虽然不太懂)




欢迎光临 iVocaloid论坛 (http://bbs.ivocaloid.com/) Powered by Discuz! X2