再说,要在一篇科普文章中说清语音识别的技术,也有很大的难度。因为它用到了高等数学中的傅里叶变换的技术。也就是要用到“时域”和“频域”的两个概念,才容易讲清楚。那么什么是频域、什么是时域?也需要花点笔墨来介绍。
简单地讲,例如50周波的正弦波,在时域的图像上表示是一个连续上下波动的曲线,如果转换到“频域”,就是在频率轴(横轴)上的50处一个有幅度的点这不是很简单吗!
在上一篇“语音合成”一文中,已经介绍了人类语音的一些特征(例如说声母是相当于高频的噪声、韵母相当于周期重复的非规则波,声调是韵母的声高(频率)有变化的波等等),这是语音的时域形态。我们也说过,如果用示波器观看一般人说话的语音波形,是十分复杂,要研究它简直无从下手。但是经傅里叶转换到频域,就发现图形要简单得多了,语音波的频率表现在若干个频率点上有数值。比如男声低些,女声要高一些。小孩子的声频更高些。除此之外,在更高的频率域处有数值,那是噪声域,相当于声母的部分,而在较低的频率点上也有一组数值,是韵母域,这些都表示的是不同说话人的口腔参数,不同人的口型、舌头形状不一样,这组参数也不一样。所以,在频域分析语音:是声母、韵母、是几声调、是什么人说的等等,就容易多了。也由此可以想到,人的天赋智能具备了多么复杂的本领,我们的脑子里事先已经存储好了各种模板数据(属于频域数据,)包括各个汉字的读音、某些已认识人的声音特征数据,甚至风声、雨声、鸟的鸣叫声等等,因此,人就能判别任何时间听到的声音是什么声音、代表什么文字,这种人所具备的智能也是几千万年人类进化而得来的。
设计机器的语音识别,先要在计算机里先存放好标准的语音参数,称为“模板”(如果要将识别的语音转换成文字,计算机里也先存放好了所有汉字的语音参数(可能还分男声和女声的数据库,存储的数据是对应某种语音的频域参数,不可能是时域的波形),这个数据库的建立也可称为机器的训练过程。实际操作语音识别时,由麦克风读入待识别的语音,将输入数据先转换成频域数据,再和标准数据作比较,取参数最接近的作为识别结果,再输出,输出的是汉字(或某一国家的文字。)语音转换成文字还有一个同音字区分的问题,大多数汉语的一个读音对应多个汉字,有的发音对应许多个汉字,甚至上百个汉字(如音节“ji”对应的汉字有100多个)要去分辨某个发音是什么汉字,必须采用上下文的办法,就是看这个读音的前或后跟随的是什么汉字(或读音),是否能组成词。这些词组都事先在计算机中存好,经由匹配对比成功的词来决定该选定的汉字,有时候不是任何读音都可能找到能匹配的上下文,就可能要从语义来判断。这就更复杂了。
如果要设计的系统是要寻找说话人是谁,而不是关于具体说的什么,那就只要对比频域参数就可以了。同样一句话,不同人说的,波形不同,频域中的特征数据也不同。
平时我们的耳朵听取外界的声音有很强的滤波功能,在噪声很大的情况下能滤除噪音,辩认出需要声音(如语音)。聋人用的助听器,如果仅仅是把声波放大,就会连同噪声一起放大,听起来十分费劲。高级助听器就有滤除噪音的功能,因而售价就很贵了,因为其中也用了信号处理技术。
顺便说一个故事,是说明傅里叶变换、信号处理的本领的。这是上世纪80年代初,美国麻省理工学院的奥本海姆教授来清华讲学(我曾担任他的讲课翻译)演示过的一段语音处理的片段:
一段帕瓦罗蒂的演唱,有场面庞大的乐队伴奏,当然很好听。奥本海姆教授演示用了信号处理技术,竟然可以把乐队伴奏的声音全部过滤掉,只剩下了帕瓦罗蒂的唱声,这就可以单独欣赏他的纯真的歌声,这里面用到了复杂的滤波技术完全是傅里叶变换的功劳。(他的歌唱频谱范围和乐队演奏声音的频谱范围是不同的。将频域里的乐队声的频谱信号删除,再还原到时域就只剩下了人的歌唱声了。)可见,信号处理的本领之大了。
语音识别技术经过最近几十年的研究发展,已经十分成熟,能听人语音发出命令而做事的机器人本领也愈来愈大了。我们清华人在其中作了贡献,也值得自豪!