用户工具

站点工具


information:tutorial:utau_109215

作者与出处
作者:vangel
http://bbs.ivocaloid.com/thread-109215-1-1.html

普通话Syo List录音原理篇&汉语UTAU录音方案漫谈

Syo方案介绍/样例音源配布请看:
UTAU新中文单独音(字内连续)录音方案介绍 - Prince Syo录音表
【UTAU中文音源配布】試作音デモ(席黛墨)Syo式中文单独音

汉语其实在音节结构上是非常单纯的,当然没有日语单纯……
既然在考虑汉语,我们就就事论事,抛开大的语音学理论,仅仅从汉语拼音本身的结构上来看。

一个汉语音节总是可以分为以下几个部分:
声母 – 韵头 – 韵腹– 韵尾
声母,大家都知道;韵头,就是比如guang这样的音节里u这种音,大家也可以称它为介母,它位于声母和韵腹之间,仅仅起到一个过渡的作用,听起来发音也不长,相对后面的a来说很轻;韵腹,就是一个音节里最响最长的部分,比如刚才举的例子里guang里的a部分;韵尾,就是一个音节里最后的一个部分,也就是guang里的ng这一部分,很短,用于音节收尾。
这四个部分里面,只有韵腹是每个音节必然存在的,是一个音节里最响的,而其他的成分都可有可无,比如音节gua就缺了韵尾,而gang就缺了韵头,ang就缺了声母。同样,可以拉长/缩短的也是韵腹部分,虽然并不绝对是韵腹部分。大家试试看唱歌“白月光~~~~~~”感受一下guang的延长部分就明白了。

对汉语拼音音节的讨论就到这里,我们回来看UTAU。
UTAU原音设定的窗口大家应该非常熟悉,很简单:红线标出辅音,绿线决定辅音与前一个音的音尾的重叠长度,这两个参数影响单独音的连贯度和清晰度,粉色标记出固定范围,这一个范围是不伸缩的,而白色标记出可以伸缩的部分,在这里对音节做伸缩操作,可以适应不同长度的音符。
红色和绿色对原音的长度不做影响,哪怕完全不设定UTAU也是能唱出清晰的歌的(只是效果会很悲惨就是了),而真正影响原音长度的,就是白色和粉色的部分。
那么看到这一点,我们就知道了UTAU在进行原音设定的时候实际上是在做什么:它所做的只有一件事,也就是把一个音分割成了两个部分,一个无论在什么地方长度都是固定的,而一个可以伸缩,原音设定要求可以伸缩的部分是一个单独而稳定的元音

这一个方案是为了日语而设计的,因为日语所有的音节,不是单元音就是辅音+元音,不存在音尾,所以辅音之后的稳定元音就都能够作为伸缩部分而被划进白色部分之中。我想飴屋P在开发UTAU的时候也没想过这个能够跨十七八种语言……
所以,对于汉语整音来说,如果沿用日语的原音设定方案。那我们会碰到一个很棘手的问题:整个韵尾部分会被统一伸长和缩短,但是实际上只需要延长韵腹部分,所以整体伸长缩短在一些情况下会显得很不自然
这就是整音方案的缺陷,而现在大部分的汉语方案,都是为了解决这个问题而产生的。

Syo方案的特点,就是巧妙地利用了这两者(UTAU的原音设定和汉语拼音的特点)之间的矛盾。
回忆刚才我们提到的汉语拼音音节,声母和韵头的长度都是固定的,需要延长的部分只有一个,也就是韵腹。这一点,恰巧对应上了UTAU每个单音的固定|延长两部分的设定。
那么,如果我们仅仅把这个需要延长的韵腹部分设定为原音的白色部分,再在后面追加上短促的语尾,不就可以在维持中文所有语素按照正常速度出现的前提下,解决这个矛盾了吗?
而这一点,就是Syo字内连续音(或者说单独音拆音)方案的设计思路。
说它巧妙,是因为它的拆音接续点选择在了每个音都有的韵腹部分,而回避掉了韵头接续而产生的无法控制韵头/介母长度的问题。对于每个音来说,它真正做到了只有一个可变的部分,并且在这个方案下有一种唯一的拆法,从而只要原音设定得当,就很容易做出非常接近中文准确发音的调教。
但是因为Syo本人是外国人,所以做为了节省录音量的进一步的归并的时候犯了一些错误,这一点在我修整过的宽式Syo中做了少量的优化,而在严式Syo中放弃了近似音的归并,而严格按照国际音标方案分类了。所以严式Syo其实是目前看来在音节细化方面比较能保证准确性的汉语方案。

说完了Syo方案,再说说别的汉语方案。
整音方案的缺陷之前已经说过了,剩下的汉语单独音方案就只剩下了BHM方案、Syo方案和芳梅方案
三种方案的基本思路都是通过字内拆音来减少录音量/达到处理汉字音尾的效果。下面从制作音源阶段的几个方面和基本原理层面对三种方案进行比较。
首先看录音工作量和效率。
减少录音工作量的方式在于归并,即把相近的音归成同一个音,在汉语拼音里出现的a和e是有多种发音的。拿a举例:按照林焘语音学教程的汉语拼音/国际音标表格,a分为三种:a,an/ao,ang/ai。在BHM新表中,将ai和an做了归并(等同于Syo宽式的归并方式)。芳梅表和BHM旧表中三种a未做区分。Syo严式中依照林焘的方式做了三种的分离。
但是,需要指出的是,由于汉语拼音的模糊性和歌唱语言的特殊性,任何一种区分/归并方法,包括教材上所记录的方法,都是有争议的。笔者中途放弃的扩张整音录音方案尝试过将每一个韵尾都独立出来,但这样的方案在录音工作量上相对整音甚至还要更多,而相应的原音设定的工作量也会更大。
在经过这样的归并之后,目前状态下录音量是BHM旧<芳梅<BHM新<Syo宽式<Syo严式。
其次看原音设定的过程。
所有结构是CV的原音设定都与UTAU类似,但是Syo list的原音设定需要把介母加入固定范围之中,以保证介母长度的稳定。芳梅和BHM的list并不含有带介母的CvV格式的音素。
芳梅和BHM元音的原音设定基本依赖于母音结合,所以并不必太在意。BHM的复韵母伸缩部分是完整的复韵母范围,有时可能会出现和整音类似的问题。值得玩味的一点是芳梅list把音尾的最后一个音(例如an的n)加入了可变范围进行伸缩,这一点是违背汉语语音基本规则的。
Syo List的纯韵母设定同样分为语头和语尾,语头设定类似单韵母,语尾全部放在固定范围内。这带来的问题就是语尾长度完全固定,在截得过短或者后一个音的Overlap过短的情况下可能会吃语尾,这一点可能可以利用转而将语尾全部放入伸缩范围而得到一定的改善。
最后看调教,而调教直接反映出了方案原理。
在调教这一点上,我们接触到了三种录音方案问题的核心:拆音的规则是什么?
Syo List的拆音方案是高度简并化的。对于每一个音,有且只有一个拆成小于等于2个部分的拆法,而这个拆法就基于韵腹分割。这种方法的巧妙之处前面已经说过了,主要是无需刻意控制连接部分的长短以使介母长度恰到好处,而语尾的控制就成了Syo List的唯一一个不确定音素。测试表明,32分音符长度的语尾基本能满足大部分歌曲的需求。
BHM和Syo List同样是一个⇐2的拆法,所不同的是BHM采用的是介母分割。个人揣测,BHM方案最初设计的时候更多的是考虑了减少录音量的层面,而由于中文的介母只有i u v三种,介母分割的方案能造成录音量少也是显而易见的了。不足之处就在于在调教时需要手动控制长度,并且介母的长度一不小心容易过长,语尾问题也没有解决,但这样的缺陷反而给BHM方案带来了自由度上的优势。
芳梅的List本身并没有提供唯一的拆法,但是由list的特点来看,它是由最简双音素组合构成的,仔细观看芳梅List就会发现,这个List仅仅包含了单韵母/双韵母组成的复韵母/声母+韵母/韵母+鼻音尾这样的组合。每个组合的音素数量⇐2个。这一点导致了芳梅List是可以用V/CVVC概括的中文音素最简方案。这个方案解决了语尾问题,也减少了录音量,但是这也使得元音过渡的不确定因素更加多了。拆音的时候稍微一不小心,芳梅方案的元音过渡就容易生硬。此外,芳梅方案的特点也使得它成为了最适合字外连续音化的汉语方案。
以上对三种方案的分析属于个人意见,欢迎拍砖。

由此引发的思考是,我们需要怎样的录音方案
UTAU一个非常简单的引擎,为什么能发展出世界十几种语言的音库和方案?UTAU所能做的,无非就是“固定部分”和“延长部分”,而这是利用一种语言清晰歌唱的基本。对于英语来说这两个部分的组成更为复杂,而汉语和日语则相对简单。我们抛开CVVC, CV, VCV这样的名词,单从语言的本身去分析“固定”和“延长”两样东西,大概就可以更快地看见设计一套发音方案真正核心的东西。
在这三种方案中,Syo方案吸引我的地方,正在于此。
再复杂的语言,音节组成都是有限的,有规律可循的。而UTAU就是一个把这样复杂的东西简化成简单的音节组成的桥梁。
由此我们可以更进一步去思考,如果这个“固定”和“延长”的形式再过复杂一点,再过定制化一点?如果“延长”的部分并不一定局限在音尾?如果我们可以针对每个音节,像设立用户词典一样设置“固定”和“延长”的不同方案?
这样的事情,也许飴屋P不会去做,但是也许这真的是一个基于“重叠”(overlap)的采样-歌声合成软件的可能的发展方向
当然,既然这个软件是基于“重叠”,那对音源的操作和精细设定必然是有限的,我们所能作的,也就是在音源本身的层面上加以优化和扩充,从而在这个模式中做出最有意思的方案了。

information/tutorial/utau_109215.txt · 最后更改: 2012/12/29 22:17 由 philosophy