摘要:2具体实现下面分别介绍字符语音库的建立、字符语音合成算法、本PDA系统的框架结构和语音中断服务例程。2.1建立字符语音库我们选用G.729语音压缩编码标准来建立语音库。该标准采用的算法是共轭结构的代数码激励线性预测(CS-ACELP),是基于CELP(码激励线性预测)编码模型的算法。这种编码规范的严格性使性能达到或超过了3
2 具体实现
下面分别介绍字符语音库的建立、字符语音合成算法、本PDA系统的框架结构和语音中断服务例程。
2.1 建立字符语音库
我们选用G.729语音压缩编码标准来建立语音库。该标准采用的算法是共轭结构的代数码激励线性预测(CS-ACELP),是基于CELP(码激励线性预测)编码模型的算法。这种编码规范的严格性使性能达到或超过了32Kbps的G.726 ADPCM编码,具有很高的语音质量;同时,它是在语音信号8KHz取样的基础上得到16bit线性PCM后进行编码的,压缩后的数据速率仅为8Kbps,具有相当于8:1的高压缩率。其算法延迟少于16ms。由于G.726编解码器能够实现很高的语音质量和很低的算法延时,因此被广泛地应用。
字符语音库是一个单字发音语音数据的集合,中段数据之间相互独立,不具有相关性。语音库包含了国标一、二级字库中的所有6763个汉字、10个阿拉伯数字和26个英文字符的标准普通话语音数据。每个汉字或字符发音时长为0.65s,采用8KHz抽样频率,使用了G.729A语音编码算法对上述的语音数据进行压缩,压缩后数据速率为8Kbps,相当于具有8:1的高压缩率。在汉字中,同音字占了相当大的比例,而在语音合成中对于同音字的处理是没有区别的,故近7000个汉字,我们只存储1123个不同的发音。经过同音字处理和采用G.729标准压缩字符语音数据,则最终建立的语音库文件大小为729950字节,完全符合本PDA系统的数据存储要求;否则,语音库数据量太大,本PDA系统不能接受!
建立一个语音压缩数据库的具体步骤如下:
*将数字和常用汉字的标准发音独立地录入到数据文件中,作为基础数据。使用cooledit2000软件完成语音的录入。
*对于输入数据,按照每帧10ms(80个样点)的长度,将A_law语音通过简单换算变成16bit PCM数据,作为编码算法的输入。
*按照G.729A算法标准,对数据进行编码。
*将编码后的数据转换为二进制比特流,写入语音库文件中。压缩后数据速率为8Kbps,具有相当于8:1的高压缩率。
用C语言实现这一过程的程序流程如图1所示。
字符语音库的建立是在Windows平台及Visual C++编程环境下实现的,最终压缩处理后数据量的大小为729950字节,每个字符语音数据的大小是650字节。
通信工程师备考资料免费领取
去领取