课堂上我们经常会做笔记,在生活和工作的很多场景中都需要利用笔记来记录发生的事件,比如会议记录、法庭的庭审记录等,如图3-1所示。一些笔记还要把现场说的所有内容即时、准确记录下来,由于记录速度快,一般需要速记员进行记录。
近几年,人工智能速记员开始应用在大型会议的现场,在发言人演讲的同时,他身后的大屏幕中能实时出现相对应的文字,当会议结束时,会议记录也已经记录完毕。这主要应用了语音识别技术,如图3-1所示,机器听到了演讲人说的话,将其自动识别并转换为文字显示在大屏幕上。
图3-1 语音识别技术的应用
【学习起航】
1.了解语音识别的历史和概念。
2.掌握语音识别的过程及原理。
3.能够分析语音识别过程的主要影响因素。
语音识别技术在生活中的应用非常广泛,很多手机输入法都支持语音输入,一些聊天社交软件中的说话转文字、摇一摇识别歌曲等功能都用到了人工智能中的语音识别技术,如图3-2所示。
图3-2 生活中常见的语音识别
语音识别 是以语音为研究对象,通过语音信号处理和模式识别等技术让机器自动识别和理解人类口述的语言内容。换句话说就是让机器能听懂人类说话。
图3-3 “雷克斯”(Radio Rex)玩具
第一个运用语音识别的产品是1920年销售的名为“雷克斯”(Radio Rex)的商业玩具,如图3-3所示,当有人喊“REX”的时候,这只狗能够从底座上弹出来。但它的原理并不是通过电子设备来接收和处理语音,而是弹簧在接收到500Hz的声音时会自动释放。
经过分析,成年男性在说出REX时,声音中元音[e]中的第一个共振峰的频率约为500Hz,而女性和儿童的声音不是这个频率则无法打开。
【实践活动】男生与女生的声波对比
打开Audition软件,让班上的一位男生和一位女生分别录制同一个短语的声音,比较一下声波的不同,图3-4为成年男性和女性对REX声音波形的对比,特别注意频率的差异。
图3-4 男女性“REX”声音波形对比
1952年,美国贝尔实验室研制了世界上第一个能识别10个数字英文发音的实验系统。1960年英国研制出第一个计算机语音识别系统。大规模的语音识别研究始于20世纪70年代,并在小词汇量、孤立词的识别方面取得了实质性的进展。20世纪80年代以后,语音识别研究的重点逐渐转向大词汇量、非特定人连续语音识别。换句话说,对语音识别的研究越来越接近人类实际说话的场景了。同时,语音识别在研究思路上也发生了重大变化,基于统计的思想提出了将隐性马尔可夫模型、神经网络等技术引入语音识别中。
我国的语音识别研究始于1958年,由中国科学院声学所利用电子管电路识别出10个元音。1973年开始了计算机语音识别,1986年,语音识别作为智能计算机系统重要组成部分而被列为专门的研究领域,我国语音识别技术进入了一个新的发展阶段。近年来,借助机器学习领域中深度学习研究的发展以及大数据语料的积累,我国的语音识别技术取得突飞猛进的发展。
【实践活动】语音导航
语音输入能解放我们的双手,比如在开车时司机会经常用到的语音导航,如图3-5所示。现在请你来体验一下,打开导航软件,按照如下示例尝试说出去一个目的地的不同表述。看看它是否都能给你正确导航?你还能想到其他表述形式吗?尝试一下看软件能不能识别你的意图。
“请导航到中国人民革命军事博物馆”
“导航到军事博物馆”
“去军博,请导航”
“导航到军博”
图3-5 语音导航
人之所以能够相互听懂对方的语言,是因为对语言进行过学习。在小孩子还不会说话的时候,脑部语言区正在发育,但是会听会看,时间一长,发音、图像、意思就会匹配起来。
为了让机器能够识别我们说的话,也需要让它进行学习,这个过程称为 训练 ,训练包括声学模型训练和语言模型训练。 声学模型 的任务就是描述语音的物理变化规律,而 语言模型 则表达了自然语言包含的语言学知识。
声学模型的目的是将声音特征提取的参数转换为有序的音素输出,简单来说就是把声音信号对应到单个文字的发音。比如你输入了一段声音“密码是1357”,声音模型通过计算得到这段声音可能性最大是“mi ma shi yi san wu qi”,但是在中文中一个发音可能对应很多不同的文字,这些文字又会串联成有意义的句子,那么具体对应什么文字或者什么句子呢?这就需要语言模型来解决了。
语言模型是用来计算一个句子出现的可能性,智能拼音输入法就用到了语言模型,打出一串拼音,输入法就会给出合适的句子,包括符合语法习惯或流行的新词。例如,你要输入“智能”,输入拼音“zhineng”,出来的可能是“只能”“职能”等,但不会出来“植能”,如图3-6所示,这就是语言模型的功劳!一句话,语音识别中语言模型的目的就是根据声学模型输出的结果,根据组合的可能性大小给出的文字序列。
图3-6 拼音输入法给出的词组排序
语言模型的应用能够提高识别率,减小搜索范围,智能输入法,还能记住文字输入者的特定习惯。
机器要想听懂人类语言的含义,首先要明白人类到底说了哪些词或者句子,这一步就是语音识别完成的内容。因为几乎所有人类的语言都对应有文字,而文字是容易编码并被计算机识别的,因此,语音识别最核心的任务就是语音转文字。
那么机器“听懂”人类的语言到底经历了怎样的过程呢?
简单来说,语音识别是一个先编码后解码的过程,如图3-7所示,主要包括语音信号的采样(语音输入)、采样处理、特征提取和识别语音。
1.采样处理
信号采样就是将外界声音录制到计算机中,计算机在进行语音识别时,对输入的原始语音信号进行处理,滤除掉其中的不重要的信息以及背景噪声,再调整语音、语调的大小,这样就完成了语音识别的前期数据准备工作。
图3-7 语音识别的过程
【实践活动】录音及降噪
打开Audition软件,录制自己的一段声音,观察说话声音与噪声在波形上的区别,并尝试降噪。
微课
(1)打开Audition软件,录制一句话,如图3-8所示。
图3-8 录制声音
(2)拖动鼠标选择一段噪声波形,在菜单中选择【效果】→【降噪/恢复】→【降噪处理】,如图3-9所示。
图3-9 降噪处理
(3)单击【捕捉噪声样本】,再单击“选择完整文件”,最后单击“应用”。观察降噪过程,如图3-10所示。
图3-10 降噪过程
图3-11 降噪后波形
2.特征提取
人说话的声音是由音素组成的。 音素 是根据语音的自然属性划分出来的最小语音单位,依据音节里的发音动作来分析,一个动作构成一个音素。音素分为元音与辅音两大类,如汉语音节“啊(ā)”只有一个音素,“爱(ài)”有两个音素,“代(dài)”有三个音素等。因此,如果能够分辨出声音所对应的音素是什么,那就大概能够知道声音所对应的词语是什么了。
在前期准备工作完成后,接下来是特征提取,要根据每段声音的不同特征,将声音按帧切分,变成很多段声音元素,然后提取出每段声音中的特征。机器把这些特征用参数存储起来,以便识别时分析它们所对应的音素是什么。
【实践活动】音素划分
请你再次打开前面录制的语音文件,如图3-12所示,数数有多少个音素?
图3-12 音素分析语音内容:密码是1357
3.文字输出
在获取到声音特征之后,利用训练好的声学模型和语言模型,分别求得二者的得分,再综合这两个得分,进行候选搜索,最后就能得出语音识别的结果,并通过文字显示出来,如图3-13所示。
图3-13 文字输出
语音识别的过程中还会随着上下文语义的变化,不断修改识别的结果。例如:当你说出“他是一个男孩儿”时,识别文字为“他是一个男孩儿”,如图3-14所示。但如果说“她是一个女孩儿”时,识别的文字中的“他”会变成“她”。
图3-14 语言识别的结果随上下文语义的变化
【拓展阅读】语音识别质量的评判
如何评判一个语音识别模型的好坏呢?如果由人判断很容易出现分歧,这就需要客观、定量化的评价方法。
语音识别的质量一般用 词错误率 (Word Error Rate,WER)和 句错误率 (Sentence Error Rate,SER)表示。
将识别出来的词序列和标准的词序列进行比较,需要进行替换、删除或者插入某些词的总个数,除以标准的词序列中词的总个数的百分比就是词错误率。
式中, S 是需要替换的单词数; D 是需要删除的单词数; I 是需要插入的单词数; N 是单词总数。
如果一个句子有一个词识别错误,那么这个句子被认为识别错误,错误句子的总数除以总句子的个数即为句错误率。
【拓展阅读】国际多通道语音分离和识别大赛
国际多通道语音分离和识别大赛(CHiME)是国际语音识别评测中的高难度比赛,始办于2011年,由法国计算机科学与自动化研究所等知名研究机构发起。以第五届大赛中其中一个挑战项目为例,通过4个麦克风阵列对20个真实家庭的晚餐进行中的交谈录音作为比赛数据,用来考察和测试在家庭聚会等不同场景中自由交谈风格下的远场语音识别效果。
【实践活动】计算语音识别准确率
选择一篇你刚完成的作文,选择其中的某段话,通过语音输入到计算机中,将识别出来的文本和标准文本进行对比,分别计算词错误率和句错误率。
实际上,人类的语音只是声音中的一小类,我们生活中和大自然界还有很多声音,如自然界的鸟鸣和动物叫声等,借助于特定的人工智能识别技术也能很好地将它们识别出来。
我们的生活中也有很多场景需要用到声音识别的,如图3-15所示。比如我们买西瓜的时候经常用手拍一拍西瓜,有经验的人通过听声音就能判断西瓜熟不熟。这种事情原来只有靠人类的经验来判断,现在也可以用声音识别技术来判断了。这一类的研究称为农产品的成熟度无损检测。另外,还有一些应用,比如平时我们在吃开心果的时候,最讨厌不开口的开心果了,希望在出厂包装的时候就将这些不开口的果实分拣出来。现在有一种技术就是通过开心果撞击铁板所发出的声音来判断它是不是开口,然后利用机械装置进行自动化分拣,效率比人手工分拣要高得多。还有玉米、小麦等农作物,都可以通过碰撞声识别分类来进行质量评价。
图3-15 声音识别技术在农业生产中的应用
声音识别在工业上也有着广泛的应用。经验丰富的修车师傅能通过汽车运行时发出的声音判断出汽车哪里出了故障。现在人工智能也可以做同样的事情了。一台洗衣机或一台空调在出厂前,需要通过质量检验,这时一个人工智能系统会通过它们发出的声音来判断是否出现故障,甚至能判断出是哪种故障;一个电机或者一个水泵已经运转了很久了,我们是不是该对它们进行保养或维修了呢?这时可以通过一个人工智能系统来聆听它们发出的噪声,来预测它们剩余的寿命。这一系列的技术称为 基于音频信号的故障诊断和寿命预测 ,这些技术目前正处于飞速发展中,在未来有望在我们生活和生产的各个领域普及应用。
【拓展阅读】闻声识鸟
鸟类是世界上种类最多的物种之一,世界上目前约有1万余种鸟类,又分为几十个目,上百个科。很久以前人类就产生了一个想法,能否根据鸟类的叫声来判断鸟的种类呢?这件事情不仅仅是很有趣,也有很多现实意义。鸟类在自然界中扮演着重要的角色,从原始雨林到乡村与城市,每一个环境中都有鸟类的存在。因此鸟的数量和种类是一个地区生态环境的晴雨表。一般来说,听鸟往往比看鸟容易,通过声音检测和分类,研究人员可以根据鸟类数量的变化推断出一个地区的环境质量。
目前较权威的鸟叫声样本网站是xeno-canto,同学们可以从搜索引擎中找到这个网站。我们可以从该网站上下载来自世界各地的不同种类的鸟叫声。如果录下了我们周围有趣的鸟叫声,也可以上传到该网站。这些鸟叫声形成了一个很大的样本库,基于这些样本,就可以构建并训练自己的机器学习模型,来分辨不同种类的鸟叫声。
基于这些鸟叫声数据,几乎每年世界上都会有各种各样的鸟叫声识别比赛,这些比赛吸引了不少对人工智能和鸟类保护感兴趣的群体参与。例如美国康奈尔大学鸟类学实验室举办的“2020年鸟声识别大赛”,仅在比赛公布的第一个月就吸引了700多个个人或代表队参加。
另外一个有名的竞赛就是每年都会举办的“声音场景和事件分类竞赛”(Challenge on Detection and Classification of Acoustic Scenes and Events,DCASE)。DCASE包含了很多种类的声音检测任务,在2018年,DCASE将鸟叫声检测也列为一个竞赛内容。
这些竞赛都是对所有人开放的,而且都提供了完善的数据集和评价标准,感兴趣的同学可以组队参加,不仅能长见识、练本领,还有机会为鸟类和自然的保护做出自己的贡献。
【实践活动】乐器声音识别器(拍手和打手指识别器)
一些乐器的声音相近,如不同的管乐器等,有时候听到一段乐器演奏的美妙音乐,但是难辨认是什么乐器演奏的,能用人工智能声音识别器识别出来更接近是什么乐器演奏的吗?
微课
项目的实践步骤如下:
(1)打开浏览器。进入“Teachable Machine(可以教的机器)”网站,如图3-16所示,选择【Audio Project】选项。
(2)录制背景噪声(Background Noise)。选择【Mic】选项,录制20秒的背景声音,并选择Extract sample,导入音频,如图3-17~图3-19所示。
(3)添加乐器音频。将class1修改为黑管,选择 将时间修改为5s。录制两段音频并导入,如图3-20~图3-21所示。
图3-16 进入网站
图3-17 录制背景噪声(Background Noise)
图3-18 录制过程
图3-19 录制完毕
图3-20 添加乐器音频
图3-21 添加完毕
(4)添加萨克斯、长笛、圆号等乐器的音频,并单击训练模型,如图3-22所示。
图3-22 添加其他乐器音频
(5)实时检测声音类别,如图3-23所示。
图3-23 检测声音类别
【实践活动】编程实现语音识别
该活动案例由“塔罗斯+”实验套件实现,软硬件的基本安装设置和使用方法见附录。
微课
完成“塔罗斯+”的基本安装和设置后,对着麦克风说出想说的话,看看机器所说语音与你所说的语音是否一致。
(1)硬件连接。选择左侧的 图标,此时会显示可搜索设备的IP地址、电量、连接状态等信息,如图3-24所示。
单击【连接】下面的图标,打开【输入ID】对话框,如图3-25所示。
按提示输入该设备的MAC地址,即可连接成功,如图3-26所示。
(2)音频采集。单击【音频采集】,选择【音频 录音】模块,修改文件名及时间,如图3-27所示。
图3-24 硬件连接
图3-25 输入密码
图3-26 连接成功
图3-27 音频采集
(3)语音识别。单击【语音识别】,选择【语音识别】模块。注意:语音识别的文件名和录制视频的文件名需一致,如图3-28所示。
(4)显示语音识别结果。单击【语音合成】,将“合成文本”后的字符串模块删除,如图3-29所示。
图2-28 语音识别
图3-29 添加“语音合成”模块
单击【文本】下的“建立文本从”,此时右侧有两个空缺位,如图3-30所示。
图3-30 建立文本
第一个空缺位:增加文本“我听到您说:”,如图3-31所示。
第二个空缺位:选择【语音识别】下的“语音识别识别文本”,如图3-32所示。
(5)语音识别完整程序如图3-33所示。
图3-31 增加文本
图3-32 增加语音识别文本
图3-33 语音识别完整程序
【交流讨论】影响语音识别的因素
利用前面的程序做如下测试:
(1)改变说话的速度,测试语音识别的效果。
(2)改变说话的音量,测试语音识别的效果。
(3)当有其他人说话干扰时,测试语音识别的效果。
(4)说几句方言,测试语音识别的效果。
影响语音识别准确率的因素很多,如果不考虑机器性能与算法,只从语音本身来说,这些因素有背景噪声、语调、语速、音量、特定领域和主题等。
【拓展阅读】方言的语音识别
我国语言博大精深,除了普通话之外还有众多的方言。方言不仅是文化传承的活化石,而且是地方文化和民族文化的有机组成部分,具有其独特的魅力。不过,随着社会进步和人口迁移,一些方言正在逐渐消失。我们在学好普通话的同时,也有责任保护好我国的方言,让丰富的语言文化得以继承。
不同的方言需要训练不同的语音识别模式,而且还要能分辨出用户说的是哪种方言,然后再利用相应的语音识别模型进行识别。这样难度就会大很多。目前有一些语音识别平台可以识别方言,如我国的一些语音识别企业已经可以识别20余种方言,为一些不会说普通话的老年人带来便利。
【实践活动】声控灯
尝试在“塔罗斯+”中用语音控制LED灯。例如:说出“开红灯”,观察是否亮红灯;说出“开绿灯”,观察是否亮绿灯,说出“关灯”,观察是否灯灭。
微课
(1)硬件连接。
(2)音频采集。单击【音频采集】,选择【音频录音】模块,如图3-34所示。参数有:录音文件以及录制时间。
(3)语音识别。单击【语音识别】,选择【语音识别】模块,如图3-35所示。注意:语音识别的文件名和录制视频的文件名需一致。
(4)逻辑控制。单击【逻辑】,选择【如果 执行】。点击该模块的设置图标,将“否则如果”和“否则”如图所示拖动到右侧,如图3-36所示。
(5)“开灯”条件判断。单击【语音识别】,选择【在文本语音识别识别文本中是否发现关键词】,如图3-37所示。
图3-34 音频采集
图3-35 选择“语音识别”模块
图3-36 增加“逻辑”模块
图3-37 开灯判断条件
(6)“开灯”条件下的执行控制。单击【执行器】,选择【灯带设置所有灯颜色为】。注:设备共包含6个灯带,可以将灯带颜色设置为红色,红色的RGB值为(255,0,0),如图3-38所示。
图3-38 增加执行器
(7)“关灯”条件判断。单击【语音识别】,选择【在文本语音识别识别文本中是否发现关键词】,将“开灯”改为“关灯”,如图3-39所示。
图3-39 关灯判断条件
(8)“关灯”条件下的执行控制。如图3-40所示,单击【执行器】,选择【灯带 清除所有灯的颜色】。
(9)其他条件下的执行控制。单击【语音合成】,选择【语音合成】模块。将“合成文本”改为“对不起,我不能识别你的命令!”,如图3-41所示。
图3-40 清除灯带颜色
图3-41 其他情况设定
(10)完整程序过程如图3-42所示。
图3-42 完整程序过程
1.除了日常中见到的,你还能想出语音识别技术其他的应用吗?
2.在使用语音识别时,哪些措施可以降低词错误率或句错误率?
3.与智能音箱交流时要注意保护哪些隐私信息?