赞
踩
之前只用过汉字显示的点阵字库,没想到还真有个汉字语音库。
在网上科普了下,大部分都是通过上位机生成的,
首先说说汉字显示库与汉字语音库的不同,也是最根本的区别,一个汉字对应一个写法,每一个汉字在汉字显示库在都是独一无二的,但是汉字语音库,却不是这样的,,一级字库中有3755个,是常用汉字,二级字库中有3008个,此外还有1W多字基本用不到的汉字,但是它们发音很多都是重复的,如下:
现代汉语普通话共有1327种音节。如果不含声调,则有418种
如果把每一个汉字的发音都存储在语音库中,太浪费了,因此汉字语音库中存在2个表,一个是1327个语音存储表,另一个是GB2312汉字区位码的索引表, 索引表内保存的是此汉字发音在语音存储表中的长度与偏移地址,
发音过程,当输入一个汉字是,其实在计算机中就是2字节的内码,这个也汉字显示库是一样的,再通过内码在索引表中找到此字对应的发音的长度与地址,然后再把PCM语音读出来播放,就完成了汉字语音库的翻译。
上面的原理非常简单,但是实现起来,做成产品还需要处理一些特殊情况,如果,多音字、阿拉伯数字、ASCII字母等,
这种方法,发出的语音比较僵硬,一听就是机器合成的,但在一些要求低的场合还是能够使用的,在银行、医院等地方还是使用很多的。
在工业场合下,并不是所有的语句都有可能发出来的,还以银行为例,常用的有“请XXX到2号窗口”,其中XXX是人名,这3个字是不可预期的,因此必须要使用语音库来实现,但是“请到X号窗口”完全可以事先录好,放到机器里,使用时,整个播放出来,因为是事行录好的,因此这句话的流畅度、语调都可以做到非常好,
优化方法可以从2方面着手
1,对于可预期的语句,事先录制好,保存在机器内,
2, 对于不可预期的才从中文语音库中取。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。