基于乐器数字接口算法的汉语语音合成方法

文档序号:2822095阅读:237来源:国知局
专利名称:基于乐器数字接口算法的汉语语音合成方法
技术领域
本发明属于汉语语音合成技术领域,具体为一种基于乐器数字接口算法的汉语语音合成方法。
背景技术
语音合成技术是将计算机产生的或外部输入的文字信息,按语音处理规则转换成语音信号输出,使计算机读出文字信息。语音合成技术涉及声学、语言学、数字信号处理技术、多媒体技术等多个领域,是当今世界强国竞相研究的热门技术之一。目前,语音合成技术主要有基于规则合成和基于拼接合成两种。基于规则合成主要是计算参数的轨迹形成规则,完成语音的参数合成;基于拼接合成则是存储语音基元,合成时读取基元、拼接、韵律修饰、输出连续语流。但基于拼接方法合成的语音与自然语音相比还有一定的差距,其主要表现为合成语音的自然度不够高,语音单元之间的过渡还不够自然。但是上述语音合成方法存在一些固有的缺陷或者是合成算法比较复杂,对系统的性能需求比较高;或者是对于存储的需求相当庞大。可移植性和可扩展性很差。

发明内容
本发明的目的在于提出一种新的汉语语音合成方法,解决现有语音合成方法中存在的缺点,以极小的系统代价和广泛的通用性实现语音合成。
本发明提出的汉语语音合成方法是一种基于乐器数字接口(MIDI)算法的汉语语音合成,它把包含23个声母和34个韵母的汉语语音波形以可下载声音(DLS)波表的存储格式建成波形库,附加在所应用系统标准DLS波表的尾部,并对韵母进行封套发生器(ADSR)修正;然后将文字转换成拼音,再将拼音转换成MIDI消息;最后根据这些消息通过声卡或任何支持MIDI的播放器合成汉语语音。
乐器数字接口(Musical Instrument Digital Interface,MIDI)由三个部分组成,分别是通信协议,连接器及其传播格式(标准MIDI文件)。MIDI是目前一切个人电脑、电子合成器和绝大多数手机的标准音频配置。
MIDI文件是一个事件的列表,描述了一个声卡或其他播放设备要产生某种声音的特定的步骤。基于这一原因,MIDI文件比数字音频文件小得多,并且事件是可以编辑的,严格地说MIDI合成就是一种波形拼接,它通过MIDI消息的控制把各个音符的波形修正后拼接在一起。
根据近年来产生的可下载声音(Downloadable Sound)格式的波表结构,MIDI文件也可以携带非标准的乐器样本、音效甚至人的对话。可下载声音(DLS)Level 1规范定义了对基于样本(波表)的合成器声音集传播方法的工业标准。DLS Level 1允许作曲家和多媒体声音设计人员能够开发自定义的声音集并在现存与未来的大量设备上正确播放。
DLS文件格式是用来存储数字音频数据和用来创建一个或多个“乐器”的接合参数。一个“乐器”包含的“区”用于指向同样封装在DLS文件中的波形文件(样本)。每一个区说明了一个MIDI音符和触发相应的声音的速度范围,还包含了诸如封套(Envelopes)和循环点(Loop Point)这样的接合信息。
DLS Level 1接合数据包括了一个低频振荡器(LFO),两个独立的封套发生器ADSR(Attack-Decay-Sustain-Release Envelope),和若干个MIDI控制输入。
低频振荡器可以用作基音频率或音量控制。它利用正弦波(也可以用三角波代替)调制基音的频率和音量,并允许设置调制频率(在0.1Hz与10Hz之间)和延迟开始时间(在10毫秒与10秒之间)。
ADSR封套发生器产生按下(Attack)时间、衰减(Decay)时间、保持(Sustain)时间和释放(Release)时间等控制参数。其中一个封套引导信号到数控振荡器用于随时间改变基音;同时另一个引导信号到数控放大器用于随时间改变音量。ADSR封套结构参见附图1。
附加的MIDI控制可以使得ADSR封套发生器的按下时间(Attack time)随音符的按下速度(Key Velocity)比例的缩放,同时还可以使得ADSR封套发生器的释放时间(ReleaseTime)随音符的数值(Key Value)比例的缩放。缩放可以是成正比或者反比的。另外,MIDI控制还包含对所有声音音调和音量的整体调整,对左右声道的控制。
本发明基于MIDI算法的汉语语音合成方法主要由以下几部分组成汉语语音波表的生成;包含语音信息的MIDI消息产生;接收到的消息的语音合成。
一汉语语音波表的生成1.声母和韵母在波表中的存储结构语音波表的制作是整个语音合成的关键部分,它直接关系到语音合成的质量。在所有的语音合成系统中,波表只需要制作一次就可以通用了。汉语语音波表采用DLS的存储格式,附加在所应用系统标准DLS波表的尾部。
汉语普通话由23个声母和34个韵母组成。在发音的时候,声母的发音时间非常短,而韵母在整个发音中的时间比例非常大。这一点在语谱图上表现得尤为明显。声母和韵母在衔接的地方有一个很短的重叠,这一点通过MIDI音符的重叠可以得到很好地解决。声母主要是由噪声构成的,而韵母则是由有规则的旋律构成的。类比它和MIDI音乐合成,声母相当于打击乐器,他们的共同特点是频谱以无规则的噪声为主,发音的时间都很短,能量相对较小,可以变化的参数很少。比较具有相同声母不同韵母的许多音节后可以发现,他们的声母的波形和语谱图都大致相同,也就是说具有良好的可替换性。韵母相当于旋律乐器,他们都有比较长的发音时间,而且汉语的语气和语调主要都是通过对韵母发音的变化来实现的。
根据汉语音韵规律,本发明只要存储一个包含23个声母和34个韵母的非常有限的波形库,波形的存储采用DLS波表的存储结构,就可以合成所有汉语普通话的音节。
汉语韵母的发音在波形和频谱上与MIDI旋律乐器的ADSR结构非常相似。通过对频谱的ADSR修正(参见下一节),我们可以得到一个韵母的各种不同的声调。通过对波形的ADSR修正,我们可以得到连续的不生硬的发音。在实际波表的存储中,我们可以只存储一个音节的波形文件,然后存储4套不同的封套数据,就可以实现不同音调的发声了。存储结构参见附图2。
韵母波形基本上是由重复的波形组成的,我们可以利用DLS波表中的“重复”(Loop),设置一个重复起点(Loop Point)和一个重复范围(Loop Length),以达到极大地压缩数据存储量的目的,并且使得合成的语音长度是可以控制的,以利于音节在连读时候的调整。
2.韵母的ADSR修正我们可以从一个阴平出发,得到其它不同的声调。每个音节的ADSR修正数据是不同的,但是大致上来说频率需要如下修正(1)、要得到阳平,按下段和衰减段没有,保持时间0.2-0.4毫秒,释放时间0.2-0.4毫秒。频率上升600-800音分。(2)、要得到上声,按下段没有,衰减时间0.2-0.4毫秒,保持时间0.2-0.4毫秒,释放段没有。频率下降600-800音分。(3)、要得到去声,按下时间0.1-0.2毫秒,衰减时间0.3-0.5毫秒,保持段没有,释放时间0.2-0.3毫秒。振幅包络的修正基本上不影响声调的识别,但是能够使得发音更加自然。
当然,对所有的韵母都是用这个参数的ADSR修正是比较粗糙的。更加精细的做法是仔细的修正每个韵母的每个声调,得到一套完整的修正参数。甚至可以对同一个韵母同一个声调在不同语境下的发音给出不同的参数修正。这是非常精细的,在一般的应用场合也不是非常必要的。
声母几乎不需要ADSR修正,由于声母的发声时间极短,相同声母不同音节的发声及其相似,因此所有的声母不需要ADSR修正。
二包含语音信息的MIDI消息产生基于MIDI算法实现的汉语语音合成第二个步骤就是包含语音信息MIDI消息的产生。它包括文字到拼音的转换,拼音到MIDI消息的转换。
1.文字到拼音的转换文字到拼音的转换采用现成的比较成熟的文语转换(Text to Speech)算法,从一段文本中提取每一个字的拼音(声母、韵母和声调)。对于多音的和需要变调的字词根据汉语的发音规律做相应的处理。
在得到字词拼音的同时得到还可以得到附加的语气控制信息,如疑问语气时需要升调,强调时需要加重音量,处理不同词句时语速的快慢。这些消息都通过上下文的文本分析得到。
2.拼音到MIDI消息的转换所有的声母和韵母转换成相应的MIDI键按下消息(Note On)(以控制发声的开始)和MIDI键释放消息(Note Off)(以控制发声的结束)。键按下消息和键释放消息之间的时间间隔就是发声的时间。
整体语调的升降转换成MIDI音调控制消息(Fine Tuning & Coarse Tuning)。音量转换成MIDI音量控制消息(Expression)。语速转换成MIDI速度控制消息(SMPTE)。其它的信息类似的处理成各种MIDI消息。
由于MIDI消息控制包含对所有声音音调和音量的整体调整,通过这些调整,我们可以实时改变波形合成的幅度和频率。通过这些控制可以实现语调的上扬或者下拉,可以实现语速的加快和变慢,所以可以控制合成语音的语气。
根据上述MIDI消息可以通过声卡或所有支持MIDI的播放器方便的合成汉语语音。
本发明的实际意义在于1)利用了一个成熟而且非常通用的工业标准DLS MIDI。这使得系统的可移植性和可扩展性得到了充分的保证。
2)基于这个标准的MIDI设备是目前一切PC和音频设备的标准配置,利用它来做语音合成可以最大限度地节省系统成本和减少运算量。以往的所有语音合成方法都是主要依靠CPU的大量运算完成的,而基于MIDI的语音合成可以利用现有的标准硬件实现,极大地简化了系统设计。
3)基于DLS的MIDI标准支持波表的随时下载更新,这使得我们的语音合成具有极大的灵活性。在一个通用方法的前提下,只要更改波表的波形库,就可以得到不同人的发音。这个系统的软件和硬件不需要作其它任何的改动。
4)基于DLS的MIDI标准允许我们把语音以一种新的乐器的形式添加到波表库中,这样我们的系统可以在不改变原来任何功能的情况下实现对语音的扩展,甚至连播放软件都不需要做任何的调整。
5)由于语音信息以MIDI消息的形式进行传播,系统所占用的带宽将非常小,这对于网络应用非常有利,同时系统的存储空间也将得到显著的压缩。
6)以消息形式产生的语音信号同样也非常的利于语音识别,通过对消息的判断,我们几乎不需要任何运算量就实现了音节的辨识。同样,对消息的修改的简单性也保证了我们可以简单地编辑语音信息。
7)我们只需要存储一个非常有限的波形库(包含23个声母和34个韵母),就可以实现无限语音的合成,这将非常有利于系统的集成。


图1为ADSR封套结构(引用自Midi Manufacturers Association,DownloadableSound Level 1,1999.1)。
图2为语音波表存贮结构。
图3为应用实例。
具体实施例方式
例如采用基于PC的语音合成器在Win95及其以上版本的操作系统中,只需要在它的波表文件(gm.dls)中添加上相应的语音波形库,其它不需要任何修改。系统中任何播放MIDI文件的软件都可以正常地合成出语音信号。
我们在DLS波表中以弦乐器的形式存储一个“āo”和一个“ī”的波形,它们的三个声调的修正参数分别为1、阳平,按下段和衰减段没有,保持时间0.3毫秒,释放时间0.3毫秒。频率上升600音分。2、上声,按下段没有,衰减时间0.3毫秒,保持时间0.3毫秒,释放段没有。频率下降600音分。3、去声,按下时间0.1毫秒,衰减时间0.4毫秒,保持段没有,释放时间0.2毫秒。
以鼓乐器的形式存储一个“h”的波形和一个“n”的波形,它们不需要修正参数。
我们把“āo”的键值(key value)设定为40h,“áo”为41h,“ǎo”为42h,“ào”为43h;“ī”为50h,“í”为51h,“ǐ”为52h,“ì”为53h。“n”和“h”的键值分别为60h和61h。
如果我们要说出“你好”,那我们只需要向系统发出如下的标准MIDI消息(它可以是通过MIDI文件存储的,也可以是通过MIDI口输入的)00 9a 60 4001 90 51 4010 80 51 4000 9a 61 4001 90 42 4010 80 42 40其它类似的MIDI合成设备(例如PDA手机等便携式MIDI播放器)只需要修改它们的波表(附加上相应的语音波形库),其它的硬件和软件不需要任何的修改。参见附图3。
权利要求
1.一种基于MIDI算法的汉语语音合成方法,其特征在于把包含23个声母和34个韵母的汉语语音以可下载声音(DLS)波表的存储格式建成波形库,附加在所应用的系统标准DLS波表的尾部,并对韵母进行封套发生器ADSR修正;然后,将文字转换成拼音,再将拼音转换成MIDI消息;最后根据这些消息,通过声卡或所有支持MIDI的播放器合成汉语语音。
2.根据权利要求1所述的汉语语音合成方法,其特征在于对于韵母波形,利用DLS波表中的重复,设置一个重复起点和重复范围。
3.根据权利要求1所述的汉语语音合成方法,其特征在于对于韵母的ADSR修正步骤如下从一个阴平出发,(1)、要得到阳平,按下段和衰减段没有,保持时间0.2-0.4毫秒,释放时间0.2-0.4毫秒。频率上升600-800音分。(2)、要得到上声,按下段没有,衰减时间0.2-0.4毫秒,保持时间0.2-0.4毫秒,释放段没有。频率下降600-800音分。(3)、要得到去声,按下时间0.1-0.2毫秒,衰减时间0.3-0.5毫秒,保持段没有,释放时间0.2-0.3毫秒。
4.根据权利要求1所述的汉语语音合成方法,其特征在于对于将文字转换成拼音采用文语转换算法。
5.根据权利要求1所述的汉语语音合成方法,其特征在于对于将拼音转换到MIDI的消息,包括将所有的声母和韵母转换成相应的MIDI键按下消息和MIDI键释放消息;整体语调的升降转换成MIDI音调控制消息;音量转换成MIDI音量控制消息;语速转换成MIDI速度控制消息。
全文摘要
本发明为一种基于MIDI算法的汉语语音合成方法,它把包含23个声母和34个韵母的汉语语音以DLS波表的存储格式建成波形库,附加在所应用的标准DLS波表的尾部,并对韵母进行ADSR修正,然后将文字转换成拼音,再将拼音转换成MIDI消息;最后通过声卡或任何支持MIDI的播放器合成汉语语音。本发明可大大压缩存储空间,减少运算量,节省系统成本,并且有很好的可移植性和可扩展性。
文档编号G10L13/00GK1487499SQ0314223
公开日2004年4月7日 申请日期2003年8月13日 优先权日2003年8月13日
发明者陈光梦, 李涛, 胡波 申请人:复旦大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1