人类自身的智能化进步首先表现在:一、人会说话了,就是用语言来互相沟通,二、人类又发明了文字(不是“画”的图形,而是“写”的文字)文字具有记载语言的功能,古代人的文字和图画有些存留在岩壁上,可供现代人研究,而古代人说话的语音是不可能保存下来的。但是我们可以猜想得到:文字是出现在语言之后,人类是先有语言(有好几万年了),后有文字(才几千年)。可是,用计算机研究人类的语言、文字,是先有文字处理,后有语音处理,语音处理则是先有语音合成,后有语音识别,前者稍容易些,后者更难一些。
到如今,发展“人工智能”就是要,一、让机器发出人类的语音,这就是把存在电脑里的文字转换成语音播放出来,这就是语音合成。二、要让机器听懂人类的语音:人对着机器说话,机器能把语音听懂,变成文字存放起来,这就是语音识别。“智能机器人”就必须同时具备这两种完全不同的本领。
人工智能是如何实现“听懂人说的话”和如何“说出人的话”。这是两种完全不同的技术,但是有一些共同的技术基础。为此我们先从数学物理来分析人类语言的组成:如果用示波器观察人类的语音波形,就会发现它不是简单的、重复的正弦波,而是非常复杂的变化的波形。如果用谐波分析来看人类的语音,就会知道,它的每个发音(一个音节)都可以分解为一个前音和一个后音,前音相当声母,声学上属于“噪声”的特征。后音相当韵母,具有周期性重复的特征。韵母又可以分为简单韵母和复合韵母,复合韵母相当于是几个单韵母的合成。有几个声母也可以分为简单声母和复合声母(如z、c、s和zh、ch、sh)。直观地想,我们是不是只要做出所有声母的波形和所有韵母的波形,然后像汉语拼音那样两两相拼组合,就能拼出每个音节,再把不同音节链接起来也就能组成人类的语音了。
不错,一开始,我们就是这样做的。汉语语音的每一个字都是一个音节,声母在前,韵母在后,如果我们把21个声母和35个韵母的波形数据(总共56组数据,如果还要分四声和“轻声”,每个韵母还要加四、五倍的数据量,)把每个汉语文字所对应的声、韵(韵还分不同调)接连起来,送到扬声器去,就能读出每个汉字的语音,再把一连串文字所对应的音节组合起来,送到扬声器发出声音来就成了语句完整的语音了。当然,在此之前,先要编好词典,标好每个单字和词组的发音符号(用汉语拼音符号就可以了。)有些多音字也要在词组中区分。
可是早期的计算机内存容量很有限(大约只有1兆字节),而语音数据如果按每秒十个数据组存储,就会有几十、几百兆的数据量,那时的计算机存储器里是放不下的,所以最早研究语音合成必须用采用数据压缩的方法把数据量大大压缩。
为此,我们开始做语音合成是采用了上世纪80年代美国莫托罗拉公司生产的语音压缩的芯片(芯片只有一个指甲盖那么大)公司还提供数据压缩和解压缩软件,我们制成了汉语语音合成插件板,(有一个手掌那么大)插在PC机的扩展槽里,只要机器里先配置了汉字操作系统,再运行一下语音驱动程序,就把一台普通PC机变成了会说人话的智能工具。(用类似的方法也可以实现说任何一种外国语。)这就是当年我们发明“盲人计算机”所用的关键技术。会说话的计算机不仅对盲人有用,对于“哑巴”,也是有用的,因为他们可以有说话的工具了。
1992年,我们把“盲人计算机”拿到北京市盲人学校去表演,盲校老师韩萍组织了四名盲生试用,很成功,后来联系IBM公司捐助了十台PC机,配上我们的语音版,给盲生开设了电脑课,此后盲用计算机就在全国盲校推广了。
当计算机的存储量无限地扩大后,数据压缩的必要性就不必要了,而且模拟的语音逼真度也提高了。上世纪80年代所有做语音合成时所做的压缩数据的种种努力现在都是多余的了。但其他技术(如声母和韵母的拼接等)还必须使用,并且得更加精细了。以前我们听到过,机器人说话声音很死板,一个字一个字蹦出来的,现在听到的机器人说话几乎和真人一样,分不出是真人说话还是机器合成的语音。机器合成的语音、语调、抑扬顿挫,跟真人几乎没有差别,语音质量就此不断提高,这有多少研究人员花费了心血才有了这么大的进步。现在机器会说话已经不稀奇了,进而要让机器人开口说话也是易如反掌的事了。就是人工智能中所用《语音合成》技术的发展从无到有,从粗到细的全过程。
说明,当年在清华大学自动化系信息教研组一起研制语音合成的主要有张国贞老师和李莲、杨雪辰等多位同学和研究生。
前期内容↓
【连载】人工智能① 人类会成为机器人的奴隶?说说玩的!