什么是语音识别
如今,许多行业都在运用语音技术来帮助企业和消费者节省时间,甚至是挽救生命。一些示例包括:
汽车:语音识别器通过在车载收音机中启用声控导航系统和搜索功能来改善驾驶员安全性。
科技:虚拟助手越来越多地融入到我们的日常生活当中,尤其是在我们的移动设备上。我们可以在智能手机上(例如通过GoogleAssistant或AppleSiri)使用语音命令来访问虚拟助手以及执行语音搜索等任务,或者通过我们的扬声器、AmazonAlexa或MicrosoftCortana来播放音乐。它们只会继续融入到我们日常使用的产品中,从而推动“物联网”的发展。
医疗保健:医生和护士利用听写应用程序来捕获和记录患者的诊断和治疗记录。
销售:在销售中有多个地方会用到语音识别技术。它可以帮助呼叫中心转录客户与客服之间的数千个电话,从而确定常见的呼叫模式和问题。AI聊天机器人还可以通过网页与客户交谈,回答常见查询并解决基本请求,而无需等待联络中心客服来处理。在这两种情况下,语音识别系统都可以帮助缩短解决消费者问题的时间。
安全:随着技术融入我们的日常生活,安全协议变得越来越重要。基于语音的认证可增加一个可行的安全层。
一文看懂语音识别
语音识别是计算语言学的跨学科子领域,其开发方法和技术,使得能够通过计算机识别和翻译口语。它也被称为自动语音识别(ASR),计算机语音识别或语音到文本(STT)。它融合了语言学,计算机科学和电气工程领域的知识和研究。
一些语音识别系统需要“训练”(也称为“登记”),其中个体说话者将文本或孤立的词汇读入系统。系统分析人的特定声音并使用它来微调对该人的语音的识别,从而提高准确性。不使用训练的系统称为“说话者无关” 系统。使用训练的系统称为“说话者依赖”。
查看详情
语音识别技术介绍(超级详细)
精美而实用的网站,分享优质编程教程,帮助有志青年。千锤百炼,只为大作;精益求精,处处斟酌;这种教程,看一眼就倾心。
关于网站|关于站长|如何完成一部教程|公众号|联系我们|网站地图
Copyright©2012-2022biancheng.net,冀ICP备2022013920号,冀公网安备13110202001352号
什么是语音识别技术
语音识别技术是指将语音信号转换成文本或命令的技术。该技术基于人工智能和声学信号处理等领域的研究,是自然语言处理技术的重要组成部分。
1.什么是语音识别技术语音识别技术是一种将人类声音进行分析和识别并转化为计算机可读性的技术。它不仅可以识别普通话、英语等标准发音,还可以识别各个地区的方言和口音。
2.语音识别技术包括哪些语音识别技术主要包括语音信号处理、声学模型、语言模型和解码器四大部分。其中,语音信号处理用于对原始语音数据进行预处理;声学模型利用高斯混合模型、深度神经网络等方法建立音素到声学特征的映射关系;语言模型则用于根据语法规则预测出可能的单词序列;解码器则根据声学模型和语言模型的结果,对单词序列进行后处理得到最终文本。
3.语音识别技术的基本原理语音识别技术的基本原理是将语音信号转换成数字信号,再将数字信号分析成特征向量。这些特征向量通过声学模型和语言模型的组合,在解码器的作用下形成文本结果。
4.语音识别技术的应用场景语音识别技术在智能家居、语音助手、智能客服等众多领域有着广泛应用。此外,它还可以被用于医疗诊断、司法取证等领域。
什么是语音识别技术原理是什么应用领域介绍
语音识别作为解放人类双手的沟通方式,一直是人类与机器进行交流的最佳方式。随着科学技术的不断进步,语音识别技术在生活中的应用越来越广泛,那么,什么是语音识别技术?原理是什么?本文将具体介绍。
1.语音识别技术
语音识别(AutomaticSpeechRecognition,ASR)技术也称自动语音识别技术,是指机器通过识别和理解过程将语音信号转化为文本或指令的技术。语音识别以语音为研究对象,涉及到数字信号处理、计算机、模式识别、语音学、语言学、心理学、生理学、数理统计学等多门学科领域,是一门综合性很强的技术,在军事、交通、医学、工业、商业等领域都有着广泛的应用。语音识别的目标是让机器能够像人一样准确理解语音信号所承载的信息,从而实现人机交互。语音识别系统可以分成三类:孤立词语音识别系统、连接词语音识别系统与连续语音识别系统。
2.语音识别技术的发展
语音识别技术的研究最早开始于20世纪50年代,1952年贝尔实验室研发出了10个孤立数字的识别系统。从20世纪60年代开始,美国卡耐基梅隆大学的Reddy等开展了连续语音识别的研究,但是这段时间发展很缓慢。1969年贝尔实验室的PierceJ甚至在一封公开信中将语音识别比作近几年不可能实现的事情。
20世纪80年代开始,以隐马尔可夫模型(hiddenMarkovmodel,HMM)方法为代表的基于统计模型方法逐渐在语音识别研究中占据了主导地位。HMM模型能够很好地描述语音信号的短时平稳特性,并且将声学、语言学、句法等知识集成到统一框架中。此后,HMM的研究和应用逐渐成为了主流。例如,第一个“非特定人连续语音识别系统”是当时还在卡耐基梅隆大学读书的李开复研发的SPHINX系统,其核心框架就是GMM-HMM框架,其中GMM(Gaussianmixturemodel,高斯混合模型)用来对语音的观察概率进行建模,HMM则对语音的时序进行建模。
20世纪80年代后期,深度神经网络(deepneuralnetwork,DNN)的前身——人工神经网络(artificialneuralnetwork,ANN)也成为了语音识别研究的一个方向。但这种浅层神经网络在语音识别任务上的效果一般,表现并不如GMM-HMM模型。
20世纪90年代开始,语音识别掀起了第一次研究和产业应用的小高潮,主要得益于基于GMM-HMM声学模型的区分性训练准则和模型自适应方法的提出。这时期剑桥发布的HTK开源工具包大幅度降低了语音识别研究的门槛。此后将近10年的时间里,语音识别的研究进展一直比较有限,基于GMM-HMM框架的语音识别系统整体效果还远远达不到实用化水平,语音识别的研究和应用陷入了瓶颈。
2006年Hinton]提出使用受限波尔兹曼机(restrictedBoltzmannmachine,RBM)对神经网络的节点做初始化,即深度置信网络(deepbeliefnetwork,DBN)。DBN解决了深度神经网络训练过程中容易陷入局部最优的问题,自此深度学习的大潮正式拉开。
2009年,Hinton和他的学生MohamedD将DBN应用在语音识别声学建模中,并且在TIMIT这样的小词汇量连续语音识别数据库上获得成功。
2011年DNN在大词汇量连续语音识别上获得成功,语音识别效果取得了近10年来最大的突破。从此,基于深度神经网络的建模方式正式取代GMM-HMM,成为主流的语音识别建模方式。
3.语音识别技术的工作流程
一般来说,一套完整的语音识别系统其工作过程分为7步:
(1)对语音信号进行分析和处理,除去冗余信息。
(2)提取影响语音识别的关键信息和表达语言含义的特征信息。
(3)紧扣特征信息,用最小单元识别字词。
(4)按照不同语言的各自语法,依照先后次序识别字词。
(5)把前后意思当作辅助识别条件,有利于分析和识别。
(6)按照语义分析,给关键信息划分段落,取出所识别出的字词并连接起来,同时根据语句意思调整句子构成。
(7)结合语义,仔细分析上下文的相互联系,对当前正在处理的语句进行适当修正。
4.语音识别的基本原理
所谓语音识别,就是将一段语音信号转换成相对应的文本信息,系统主要包含特征提取、声学模型,语言模型以及字典与解码四大部分,其中为了更有效地提取特征往往还需要对所采集到的声音信号进行滤波、分帧等预处理工作,把要分析的信号从原始信号中提取出来;之后,特征提取工作将声音信号从时域转换到频域,为声学模型提供合适的特征向量;声学模型中再根据声学特性计算每一个特征向量在声学特征上的得分;而语言模型则根据语言学相关的理论,计算该声音信号对应可能词组序列的概率;最后根据已有的字典,对词组序列进行解码,得到最后可能的文本表示。
5.语音识别技术的工作原理
首先,声音实际上是一种波。常见的mp3等格式都是压缩格式,必须转成非压缩的纯波形文件来处理,比如WindowsPCM文件,也就是俗称的wav文件。wav文件里存储的除了一个文件头以外,就是声音波形的一个个点了。
在开始语音识别之前,有时需要把首尾端的静音切除,降低对后续步骤造成的干扰。这个静音切除的操作一般称为VAD,需要用到信号处理的一些技术。
要对声音进行分析,需要对声音分帧,也就是把声音切开成一小段一小段,每小段称为一帧。分帧操作一般不是简单的切开,而是使用移动窗函数来实现。
分帧后,语音就变成了很多小段。但波形在时域上几乎没有描述能力,因此必须将波形作变换。常见的一种变换方法是提取MFCC特征,根据人耳的生理特性,把每一帧波形变成一个多维向量,可以简单地理解为这个向量包含了这帧语音的内容信息。这个过程叫做声学特征提取。
至此,声音就成了一个12行(假设声学特征是12维)、N列的一个矩阵,称之为观察序列,这里N为总帧数。
那,怎样把这个矩阵变成文本了。首先要介绍两个概念:
音素:单词的发音由音素构成。对英语,一种常用的音素集是卡内基梅隆大学的一套由39个音素构成的音素集。汉语一般直接用全部声母和韵母作为音素集,另外汉语识别还分有调无调,不详述。
状态:这里理解成比音素更细致的语音单位就行啦。通常把一个音素划分成3个状态。
那,语音识别是怎么工作的呢?
第一步,把帧识别成状态。
第二步,把状态组合成音素。
第三步,把音素组合成单词。
每个小竖条代表一帧,若干帧语音对应一个状态,每三个状态组合成一个音素,若干个音素组合成一个单词。也就是说,只要知道每帧语音对应哪个状态了,语音识别的结果也就出来了。
那每帧音素对应哪个状态呢?有个容易想到的办法,看某帧对应哪个状态的概率最大,那这帧就属于哪个状态。
那这些用到的概率从哪里读取呢?有个叫“声学模型”的东西,里面存了一大堆参数,通过这些参数,就可以知道帧和状态对应的概率。获取这一大堆参数的方法叫做“训练”,需要使用巨大数量的语音数据。
但这样做有一个问题:每一帧都会得到一个状态号,最后整个语音就会得到一堆乱七八糟的状态号,相邻两帧间的状态号基本都不相同。假设语音有1000帧,每帧对应1个状态,每3个状态组合成一个音素,那么大概会组合成300个音素,但这段语音其实根本没有这么多音素。如果真这么做,得到的状态号可能根本无法组合成音素。实际上,相邻帧的状态应该大多数都是相同的才合理,因为每帧很短。
解决这个问题的常用方法就是使用隐马尔可夫模型(HiddenMarkovModel,HMM)。
第一步,构建一个状态网络。
第二步,从状态网络中寻找与声音最匹配的路径。
这样就把结果限制在预先设定的网络中,避免了刚才说到的问题,当然也带来一个局限,比如设定的网络里只包含了“今天晴天”和“今天下雨”两个句子的状态路径,那么不管说些什么,识别出的结果必然是这两个句子中的一句。
那如果想识别任意文本呢?把这个网络搭得足够大,包含任意文本的路径就可以了。但这个网络越大,想要达到比较好的识别准确率就越难。所以要根据实际任务的需求,合理选择网络大小和结构。
搭建状态网络,是由单词级网络展开成音素网络,再展开成状态网络。语音识别过程其实就是在状态网络中搜索一条最佳路径,语音对应这条路径的概率最大,这称之为“解码”。路径搜索的算法是一种动态规划剪枝的算法,称之为Viterbi算法,用于寻找全局最优路径。
这里所说的累积概率,由三部分构成,分别是:
观察概率:每帧和每个状态对应的概率
转移概率:每个状态转移到自身或转移到下个状态的概率
语言概率:根据语言统计规律得到的概率
其中,前两种概率从声学模型中获取,最后一种概率从语言模型中获取。语言模型是使用大量的文本训练出来的,可以利用某门语言本身的统计规律来帮助提升识别正确率。语言模型很重要,如果不使用语言模型,当状态网络较大时,识别出的结果基本是一团乱麻。
这样,基本上语音识别过程就完成了。这,也是语音识别技术的工作原理。
6.语音识别技术应用领域
(1)桌面/移动设备应用
语音识别技术在PC机/移动终端上的应用范围较广,目前可以用语音识别来进行身份认证、编辑文本或者语音控制。典型的包括语音输入法、语音助手、音频识别软件等。
(2)嵌入式应用
应用的范畴广,根据市场需求考虑不同的嵌入式硬件平台,目前嵌入式语音识别系统主流是智能手机、车载系统、智能家居、智能终端的集成应用。
(3)电信级系统应用
语音识别技术应用于企业自动语音服务,可以为企业提供--种智能化的并且相对安全的自动服务方式。包括,企业的用户服务中心、电话银行、股票交易、电子商务等应用领城。
(4)Web应用
把语音技术与Web应用结合,例如语音浏览器、语音搜索引擎,网上语音聊天室及语音网游等。
(5)行业特殊应用领域
为安全部门提供声纹识别应用方案,进行自动的身份辨认,在国家安全、侦破等特殊领域,市场专业性强,进入壁垒高,同业竞争者很少。
以上梳理了语音识别技术的定义、原理、发展历程等信息,希望对你有所帮助,当前,随着人机交互技术的发展,语音识别技术有了更广阔的发展空间,是未来科技的一大趋势。如果你想了解更多相关内容,敬请关注三个皮匠报告的行业知识栏目。
本文由@2200发布于三个皮匠报告网站,未经授权禁止转载。
推荐阅读:
语音识别ai应用场景哪些?ai语音识别技术难点分析
什么是语音合成?包括哪些技术?应用领域介绍
什么是智能语音交互技术?应用于哪些领域?优缺点介绍
2022年中国智能语音发展情况分析,top10企业排名一览
本文标签语音识别技术 语音识别技术原理 语音识别技术应用领域 语音识别技术发展浅析语音识别技术的工作原理及发展
浅析语音识别技术的工作原理及发展
语音是人类最自然的交互方式。计算机发明之后,让机器能够“听懂”人类的语言,理解语言中的内在含义,并能做出正确的回答就成为了人们追求的目标。我们都希望像科幻电影中那些智能先进的机器人助手一样,在与人进行语音交流时,让它听明白你在说什么。语音识别技术将人类这一曾经的梦想变成了现实。语音识别就好比“机器的听觉系统”,该技术让机器通过识别和理解,把语音信号转变为相应的文本或命令。
语音识别技术,也被称为自动语音识别Automatic SpeechRecogniTIon,(ASR),其目标是将人类的语音中的词汇内容转换为计算机可读的输入,例如按键、二进制编码或者字符序列。语音识别就好比“机器的听觉系统”,它让机器通过识别和理解,把语音信号转变为相应的文本或命令。
语音识别是一门涉及面很广的交叉学科,它与声学、语音学、语言学、信息理论、模式识别理论以及神经生物学等学科都有非常密切的关系。语音识别技术正逐步成为计算机信息处理技术中的关键技术。
语音识别技术的发展
语音识别技术的研究最早开始于20世纪50年代,1952年贝尔实验室研发出了10个孤立数字的识别系统。从20世纪60年代开始,美国卡耐基梅隆大学的Reddy等开展了连续语音识别的研究,但是这段时间发展很缓慢。1969年贝尔实验室的 PierceJ甚至在一封公开信中将语音识别比作近几年不可能实现的事情。
20世纪80年代开始,以隐马尔可夫模型(hiddenMarkovmodel,HMM)方法为代表的基于统计模型方法逐渐在语音识别研究中占据了主导地位。HMM模型能够很好地描述语音信号的短时平稳特性,并且将声学、语言学、句法等知识集成到统一框架中。此后,HMM的研究和应用逐渐成为了主流。例如,第一个“非特定人连续语音识别系统”是当时还在卡耐基梅隆大学读书的李开复研发的SPHINX系统,其核心框架就是GMM-HMM框架,其中GMM(Gaussianmixturemodel,高斯混合模型)用来对语音的观察概率进行建模,HMM则对语音的时序进行建模。
20世纪80年代后期,深度神经网络(deepneuralnetwork,DNN)的前身——人工神经网络(artificialneuralnetwork,ANN)也成为了语音识别研究的一个方向。但这种浅层神经网络在语音识别任务上的效果一般,表现并不如GMM-HMM模型。
20世纪90年代开始,语音识别掀起了第一次研究和产业应用的小高潮,主要得益于基于GMM-HMM声学模型的区分性训练准则和模型自适应方法的提出。这时期剑桥发布的HTK开源工具包大幅度降低了语音识别研究的门槛。此后将近10年的时间里,语音识别的研究进展一直比较有限,基于GMM-HMM框架的语音识别系统整体效果还远远达不到实用化水平,语音识别的研究和应用陷入了瓶颈。
2006年Hinton]提出使用受限波尔兹曼机(restricted Boltzmannmachine,RBM)对神经网络的节点做初始化,即深度置信网络(deepbeliefnetwork,DBN)。DBN解决了深度神经网络训练过程中容易陷入局部最优的问题,自此深度学习的大潮正式拉开。
2009年,Hinton和他的学生MohamedD将DBN应用在语音识别声学建模中,并且在TIMIT这样的小词汇量连续语音识别数据库上获得成功。
2011年DNN在大词汇量连续语音识别上获得成功,语音识别效果取得了近10年来最大的突破。从此,基于深度神经网络的建模方式正式取代GMM-HMM,成为主流的语音识别建模方式。
语音识别的基本原理
所谓语音识别,就是将一段语音信号转换成相对应的文本信息,系统主要包含特征提取、声学模型,语言模型以及字典与解码四大部分,其中为了更有效地提取特征往往还需要对所采集到的声音信号进行滤波、分帧等预处理工作,把要分析的信号从原始信号中提取出来;之后,特征提取工作将声音信号从时域转换到频域,为声学模型提供合适的特征向量;声学模型中再根据声学特性计算每一个特征向量在声学特征上的得分;而语言模型则根据语言学相关的理论,计算该声音信号对应可能词组序列的概率;最后根据已有的字典,对词组序列进行解码,得到最后可能的文本表示。
声学信号预处理
作为语音识别的前提与基础,语音信号的预处理过程至关重要。在最终进行模板匹配的时候,是将输入语音信号的特征参数同模板库中的特征参数进行对比,因此,只有在预处理阶段得到能够表征语音信号本质特征的特征参数,才能够将这些特征参数进行匹配进行识别率高的语音识别。
首先需要对声音信号进行滤波与采样,此过程主要是为了排除非人体发声以外频率的信号与50Hz电流频率的干扰,该过程一般是用一个带通滤波器、设定上下戒指频率进行滤波,再将原有离散信号进行量化处理实现的;之后需要平滑信号的高频与低频部分的衔接段,从而可以在同一信噪比条件下对频谱进行求解,使得分析更为方便快捷;分帧加窗操作是为了将原有频域随时间变化的信号具有短时平稳特性,即将连续的信号用不同长度的采集窗口分成一个个独立的频域稳定的部分以便于分析,此过程主要是采用预加重技术;最后还需要进行端点检测工作,也就是对输入语音信号的起止点进行正确判断,这主要是通过短时能量(同一帧内信号变化的幅度)与短时平均过零率(同一帧内采样信号经过零的次数)来进行大致的判定。
声学特征提取
完成信号的预处理之后,随后进行的就是整个过程中极为关键的特征提取的操作。将原始波形进行识别并不能取得很好的识别效果,频域变换后提取的特征参数用于识别,而能用于语音识别的特征参数必须满足以下几点:
1、特征参数能够尽量描述语音的根本特征;
2、尽量降低参数分量之间的耦合,对数据进行压缩;
3、应使计算特征参数的过程更加简便,使算法更加高效。基音周期、共振峰值等参数都可以作为表征语音特性的特征参数。
目前主流研究机构最常用到的特征参数有:线性预测倒谱系数(LPCC)和Mel倒谱系数(MFCC)。两种特征参数在倒谱域上对语音信号进行操作,前者以发声模型作为出发点,利用LPC技术求倒谱系数。后者则模拟听觉模型,把语音经过滤波器组模型的输出做为声学特征,然后利用离散傅里叶变换(DFT)进行变换。
所谓基音周期,是指声带振动频率(基频)的振动周期,因其能够有效表征语音信号特征,因此从最初的语音识别研究开始,基音周期检测就是一个至关重要的研究点;所谓共振峰,是指语音信号中能量集中的区域,因其表征了声道的物理特征,并且是发音音质的主要决定条件,因此同样是十分重要的特征参数。此外,目前也有许多研究者开始将深度学习中一些方法应用在特征提取中,取得了较快的进展。
声学模型
声学模型是语音识别系统中非常重要的一个组件,对不同基本单元的区分能力直接关系到识别结果的好坏。语音识别本质上一个模式识别的过程,而模式识别的核心是分类器和分类决策的问题。
通常,在孤立词、中小词汇量识别中使用动态时间规整(DTW)分类器会有良好的识别效果,并且识别速度快,系统开销小,是语音识别中很成功的匹配算法。但是,在大词汇量、非特定人语音识别的时候,DTW识别效果就会急剧下降,这时候使用隐马尔科夫模型(HMM)进行训练识别效果就会有明显提升,由于在传统语音识别中一般采用连续的高斯混合模型GMM来对状态输出密度函数进行刻画,因此又称为GMM-HMM构架。
同时,随着深度学习的发展,通过深度神经网络来完成声学建模,形成所谓的DNN-HMM构架来取代传统的GMM-HMM构架,在语音识别上也取得了很好的效果。
高斯混合模型
对于一个随机向量x,如果它的联合概率密度函数符合公式2-9,则称它服从高斯分布,并记为x∼N(µ,Σ)。
其中,µ为分布的期望,Σ为分布的协方差矩阵。高斯分布有很强的近似真实世界数据的能力,同时又易于计算,因此被广泛地应用在各个学科之中。但是,仍然有很多类型的数据不好被一个高斯分布所描述。这时候我们可以使用多个高斯分布的混合分布来描述这些数据,由多个分量分别负责不同潜在的数据来源。此时,随机变量符合密度函数。
其中,M为分量的个数,通常由问题规模来确定。
我们称认为数据服从混合高斯分布所使用的模型为高斯混合模型。高斯混合模型被广泛的应用在很多语音识别系统的声学模型中。考虑到在语音识别中向量的维数相对较大,所以我们通常会假设混合高斯分布中的协方差矩阵Σm为对角矩阵。这样既大大减少了参数的数量,同时可以提高计算的效率。
使用高斯混合模型对短时特征向量建模有以下几个好处:首先,高斯混合模型的具有很强的建模能力,只要分量总数足够多,高斯混合模型就可以以任意精度来逼近一个概率分布函数;另外,使用EM算法可以很容易地使模型在训练数据上收敛。对于计算速度和过拟合等问题,人们还研究出了参数绑定的GMM和子空间高斯混合模型(subspaceGMM)来解决。除了使用EM算法作最大似然估计以外,我们还可以使用和词或音素错误率直接相关的区分性的误差函数来训练高斯混合模型,能够极大地提高系统性能。因此,直到在声学模型中使用深度神经网络的技术出现之前,高斯混合模型一直是短时特征向量建模的不二选择。
但是,高斯混合模型同样具有一个严重的缺点:高斯混合模型对于靠近向量空间上一个非线性流形(manifold)上的数据建模能力非常差。例如,假设一些数据分布在一个球面两侧,且距离球面非常近。如果使用一个合适的分类模型,我们可能只需要很少的参数就可以将球面两侧的数据区分开。但是,如果使用高斯混合模型描绘他们的实际分布情况,我们需要非常多的高斯分布分量才能足够精确地刻画。这驱使我们寻找一个能够更有效利用语音信息进行分类的模型。
隐马尔科夫模型
我们现在考虑一个离散的随机序列,若转移概率符合马尔可夫性质,即将来状态和过去状态独立,则称其为一条马尔可夫链(MarkovChain)。若转移概率和时间无关,则称其为齐次(homogeneous)马尔可夫链。马尔可夫链的输出和预先定义好的状态一一对应,对于任意给定的状态,输出是可观测的,没有随机性。如果我们对输出进行扩展,使马尔可夫链的每个状态输出为一个概率分布函数。这样的话马尔可夫链的状态不能被直接观测到,只能通过受状态变化影响的符合概率分布的其他变量来推测。我们称以这种以隐马尔可夫序列假设来建模数据的模型为隐马尔可夫模型。
对应到语音识别系统中,我们使用隐马尔可夫模型来刻画一个音素内部子状态变化,来解决特征序列到多个语音基本单元之间对应关系的问题。
在语音识别任务中使用隐马尔可夫模型需要计算模型在一段语音片段上的可能性。而在训练的时候,我们需要使用Baum-Welch算法[23]学习隐马尔可夫模型参数,进行最大似然估计(MaximumLikelihoodEstimation,MLE)。Baum-Welch算法是EM(Expectation-Maximization)算法的一种特例,利用前后项概率信息迭代地依次进行计算条件期望的E步骤和最大化条件期望的M步骤。
语言模型
语言模型主要是刻画人类语言表达的方式习惯,着重描述了词与词在排列结构上的内在联系。在语音识别解码的过程中,在词内转移参考发声词典、词间转移参考语言模型,好的语言模型不仅能够提高解码效率,还能在一定程度上提高识别率。语言模型分为规则模型和统计模型两类,统计语言模型用概率统计的方法来刻画语言单位内在的统计规律,其设计简单实用而且取得了很好的效果,已经被广泛用于语音识别、机器翻译、情感识别等领域。
最简单又却又最常用的语言模型是N元语言模型(N-gramLanguageModel,N-gramLM)。N元语言模型假设当前在给定上文环境下,当前词的概率只与前N-1个词相关。于是词序列w1,...,wm的概率P(w1,...,wm)可以近似为
为了得到公式中的每一个词在给定上文下的概率,我们需要一定数量的该语言文本来估算。可以直接使用包含上文的词对在全部上文词对中的比例来计算该概率,即
对于在文本中未出现的词对,我们需要使用平滑方法来进行近似,如Good-Turing估计或Kneser-Ney平滑等。
解码与字典
解码器是识别阶段的核心组件,通过训练好的模型对语音进行解码,获得最可能的词序列,或者根据识别中间结果生成识别网格(lattice)以供后续组件处理。解码器部分的核心算法是动态规划算法Viterbi。由于解码空间非常巨大,通常我们在实际应用中会使用限定搜索宽度的令牌传递方法(tokenpassing)。
传统解码器会完全动态生成解码图(decodegraph),如著名语音识别工具HTK(HMMToolKit)中的HVite和HDecode等。这样的实现内存占用较小,但考虑到各个组件的复杂性,整个系统的流程繁琐,不方便高效地将语言模型和声学模型结合起来,同时更加难以扩展。现在主流的解码器实现会一定程度上使用预生成的有限状态变换器(FiniteStateTransducer,FST)作为预加载的静态解码图。这里我们可以将语言模型(G),词汇表(L),上下文相关信息(C),隐马尔可夫模型(H)四个部分分别构建为标准的有限状态变换器,再通过标准的有限状态变换器操作将他们组合起来,构建一个从上下文相关音素子状态到词的变换器。这样的实现方法额外使用了一些内存空间,但让解码器的指令序列变得更加整齐,使得一个高效的解码器的构建更加容易。同时,我们可以对预先构建的有限状态变换器进行预优化,合并和剪掉不必要的部分,使得搜索空间变得更加合理
语音识别技术的工作原理
首先,我们知道声音实际上是一种波。常见的mp3等格式都是压缩格式,必须转成非压缩的纯波形文件来处理,比如WindowsPCM文件,也就是俗称的wav文件。wav文件里存储的除了一个文件头以外,就是声音波形的一个个点了。下图是一个波形的示例。
图中,每帧的长度为25毫秒,每两帧之间有25-10=15毫秒的交叠。我们称为以帧长25ms、帧移10ms分帧。
分帧后,语音就变成了很多小段。但波形在时域上几乎没有描述能力,因此必须将波形作变换。常见的一种变换方法是提取MFCC特征,根据人耳的生理特性,把每一帧波形变成一个多维向量,可以简单地理解为这个向量包含了这帧语音的内容信息。这个过程叫做声学特征提取。
至此,声音就成了一个12行(假设声学特征是12维)、N列的一个矩阵,称之为观察序列,这里N为总帧数。观察序列如下图所示,图中,每一帧都用一个12维的向量表示,色块的颜色深浅表示向量值的大小。
接下来就要介绍怎样把这个矩阵变成文本了。首先要介绍两个概念:
音素:单词的发音由音素构成。对英语,一种常用的音素集是卡内基梅隆大学的一套由39个音素构成的音素集。汉语一般直接用全部声母和韵母作为音素集,另外汉语识别还分有调无调,不详述。
状态:这里理解成比音素更细致的语音单位就行啦。通常把一个音素划分成3个状态。
语音识别是怎么工作的呢?实际上一点都不神秘,无非是:
第一步,把帧识别成状态。
第二步,把状态组合成音素。
第三步,把音素组合成单词。
如下图所示:
图中,每个小竖条代表一帧,若干帧语音对应一个状态,每三个状态组合成一个音素,若干个音素组合成一个单词。也就是说,只要知道每帧语音对应哪个状态了,语音识别的结果也就出来了。
那每帧音素对应哪个状态呢?有个容易想到的办法,看某帧对应哪个状态的概率最大,那这帧就属于哪个状态。比如下面的示意图,这帧在状态S3上的条件概率最大,因此就猜这帧属于状态S3。
那这些用到的概率从哪里读取呢?有个叫“声学模型”的东西,里面存了一大堆参数,通过这些参数,就可以知道帧和状态对应的概率。获取这一大堆参数的方法叫做“训练”,需要使用巨大数量的语音数据。
但这样做有一个问题:每一帧都会得到一个状态号,最后整个语音就会得到一堆乱七八糟的状态号,相邻两帧间的状态号基本都不相同。假设语音有1000帧,每帧对应1个状态,每3个状态组合成一个音素,那么大概会组合成300个音素,但这段语音其实根本没有这么多音素。如果真这么做,得到的状态号可能根本无法组合成音素。实际上,相邻帧的状态应该大多数都是相同的才合理,因为每帧很短。
解决这个问题的常用方法就是使用隐马尔可夫模型(HiddenMarkovModel,HMM)。这东西听起来好像很高深的样子,实际上用起来很简单:
第一步,构建一个状态网络。
第二步,从状态网络中寻找与声音最匹配的路径。
这样就把结果限制在预先设定的网络中,避免了刚才说到的问题,当然也带来一个局限,比如你设定的网络里只包含了“今天晴天”和“今天下雨”两个句子的状态路径,那么不管说些什么,识别出的结果必然是这两个句子中的一句。
那如果想识别任意文本呢?把这个网络搭得足够大,包含任意文本的路径就可以了。但这个网络越大,想要达到比较好的识别准确率就越难。所以要根据实际任务的需求,合理选择网络大小和结构。
搭建状态网络,是由单词级网络展开成音素网络,再展开成状态网络。语音识别过程其实就是在状态网络中搜索一条最佳路径,语音对应这条路径的概率最大,这称之为“解码”。路径搜索的算法是一种动态规划剪枝的算法,称之为Viterbi算法,用于寻找全局最优路径。
这里所说的累积概率,由三部分构成,分别是:
观察概率:每帧和每个状态对应的概率
转移概率:每个状态转移到自身或转移到下个状态的概率
语言概率:根据语言统计规律得到的概率
其中,前两种概率从声学模型中获取,最后一种概率从语言模型中获取。语言模型是使用大量的文本训练出来的,可以利用某门语言本身的统计规律来帮助提升识别正确率。语言模型很重要,如果不使用语言模型,当状态网络较大时,识别出的结果基本是一团乱麻。
这样基本上语音识别过程就完成了,这就是语音识别技术的工作原理。
语音识别技术的工作流程
一般来说,一套完整的语音识别系统其工作过程分为7步:
1、对语音信号进行分析和处理,除去冗余信息。
2、提取影响语音识别的关键信息和表达语言含义的特征信息。
3、紧扣特征信息,用最小单元识别字词。
4、按照不同语言的各自语法,依照先后次序识别字词。
5、把前后意思当作辅助识别条件,有利于分析和识别。
6、按照语义分析,给关键信息划分段落,取出所识别出的字词并连接起来,同时根据语句意思调整句子构成。
7、结合语义,仔细分析上下文的相互联系,对当前正在处理的语句进行适当修正。
语音识别原理有三点:
1、对语音信号中的语言信息编码是按照幅度谱的时间变化来进行;
2、由于语音是可以阅读的,也就是说声学信号可以在不考虑说话人说话传达的信息内容的前提下用多个具有区别性的、离散的符号来表示;
3、语音的交互是一个认知过程,所以绝对不能与语法、语义和用语规范等方面分裂开来。
预处理,其中就包括对语音信号进行采样、克服混叠滤波、去除部分由个体发音的差异和环境引起的噪声影响,此外还会考虑到语音识别基本单元的选取和端点检测问题。反复训练是在识别之前通过让说话人多次重复语音,从原始语音信号样本中去除冗余信息,保留关键信息,再按照一定规则对数据加以整理,构成模式库。再者是模式匹配,它是整个语音识别系统的核心部分,是根据一定规则以及计算输入特征与库存模式之间的相似度,进而判断出输入语音的意思。
前端处理,先对原始语音信号进行处理,再进行特征提取,消除噪声和不同说话人的发音差异带来的影响,使处理后的信号能够更完整地反映语音的本质特征提取,消除噪声和不同说话人的发音差异带来的影响,使处理后的信号能够更完整地反映语音的本质特征。
原文标题:语音识别技术概述
文章出处:【微信号:WW_CGQJS,微信公众号:传感器技术】欢迎添加关注!文章转载请注明出处。
语音识别研究综述
语言是人类最原始直接的一种交流方式,通俗易懂、便于理解.随着科技的发展,语言交流不再只存在于人与人之间,如何让机器“听懂”人类的语言并做出反应成为人工智能的重要课题,语音智能交互技术应运而生.作为其中重要一环的语音识别技术近年来不断发展,走出了实验室,随着人工智能进入人们的日常生活中.当今市场上语音识别技术相关的软件、商品涉及人类生活的方方面面,语音识别的实用性已经得到充分的印证.如今语音识别技术已经成为人类社会智能化的关键一步,能够极大提高人们生活的便捷度.
1语音识别技术的发展历程语音识别技术始于20世纪50年代,贝尔实验室研发了10个孤立数字的语音识别系统,此后,语音识别相关研究大致经历了3个发展阶段.第1阶段,从20世纪50年代到90年代,语音识别仍处于探索阶段.这一阶段主要通过模板匹配—即将待识别的语音特征与训练中的模板进行匹配—进行语音识别.典型的方法包括动态时间规整(dynamictimewarping,DTW)技术和矢量量化(vectorquantification,VQ).DTW依靠动态规划(dynamicprogramming,DP)技术解决了语音输入输出不定长的问题;VQ则是对词库中的字、词等单元形成矢量量化的码本作为模板,再用输入的语音特征矢量与模板进行匹配.总体而言,这一阶段主要实现了小词汇量、孤立词的语音识别.20世纪80年代至21世纪初为第2阶段,这一阶段的语音识别主要以隐马尔科夫模型(hiddenMarkovmodel,HMM)为基础的概率统计模型为主,识别的准确率和稳定性都得到极大提升.该阶段的经典成果包括1990年李开复等研发的SPHINX系统[1],该系统以GMM-HMM(Gaussianmixturemodel-hiddenMarkovmodel)为核心框架,是有史以来第一个高性能的非特定人、大词汇量、连续语音识别系统.GMM-HMM结构在相当长时间内一直占据语音识别系统的主流地位,并且至今仍然是学习、理解语音识别技术的基石.此外,剑桥推出了以HMM为基础的语音识别工具包HTK(hiddenMarkovmodeltoolkit)[2].21世纪至今是语音识别的第3阶段.这一阶段的语音识别建立在深度学习基础上,得益于神经网络对非线性模型和大数据的处理能力,取得了大量成果.2009年Mohamed等[3]提出深度置信网络(deepbeliefnetwork,DBN)与HMM相结合的声学模型在小词汇量连续语音识别中取得成功.2012年深度神经网络与HMM相结合的声学模型DNN-HMM在大词汇量连续语音识别(largevocabularycontinuousspeechrecognition,LVCSR)中取得成功[4],掀起利用深度学习进行语音识别的浪潮.此后,以卷积神经网络(convolutionalneuralnetwork,CNN)、循环神经网络(recurrentneuralnetwork,RNN)等常见网络为基础的混合识别系统和端到端识别系统都获得了不错的识别结果和系统稳定性.迄今为止,以神经网络为基础的语音识别系统仍旧是国内外学者的研究热点.
我国的语音识别则起步于国家的“863计划”和“973计划”,中科院声学所等研究所以及顶尖高校尝试实现长时语音的汉语识别工作,如今中文语音识别技术已经达到了国际水准.2015年清华大学建立了第一个开源的中文语音数据库THCHS-30[5].2016年上海交通大学提出的非常深卷积网络(verydeepconvolutionalneuralnetworks,VDCNN)[6]提高了噪声语音识别的性能,并在此基础上进一步提出了非常深卷积残差网络(verydeepconvolutionalresidualnetwork,VDCRN)[7].百度于2014年、2016年依次推出了DeepSpeech[8]及其改进版本[9],并在2017年提出ColdFusion[10]以便于更好地利用语言学信息进行语音识别,该系统以LSTM-CTC(longshort-termmemory-connectionisttemporalclassification)的端到端模型为基础,在不同的噪声环境下实现了英语和普通话的语音识别.2018年科大讯飞提出的深度全序列卷积神经网络(deepfull-sequenceconvolutionneuralnetworks,DFCNN)[11]直接对语音信号进行建模,该模型采用的大量叠加卷积层能够储存更多历史信息,获得了良好的识别效果.同年,阿里巴巴提出低帧率深度前馈记忆网络(lowerframerate-deepfeedforwardsequentialmemorynetworks,LFR-DFSMN)[12],将低帧率算法和DFSMN算法相结合,使错误率降低了20%,解码速度却提升了近3倍.
总体而言,当前主流语音识别技术主要在大词汇量连续语音数据集上,基于深度神经网络进行模型构建和训练,面向不同应用场景需求和数据特点对现有的神经网络不断改进,相比于传统的统计方法取得了极大的性能提升.
2语音识别基础2.1语音识别概念语音识别是利用机器对语音信号进行识别和理解并将其转换成相应文本和命令的技术,涉及到心理学、信号处理、统计学、数学和计算机等多门学科.其本质是一种模式识别,通过对未知语音和已知语音的比较,匹配出最优的识别结果.
根据面向的应用场景不同,语音识别存在许多不同的类型:从对说话人的要求考虑可分为特定人和非特定人系统;从识别内容考虑可分为孤立词识别和连续语音识别、命令及小词汇量识别和大词汇量识别、规范语言识别和口语识别;从识别的速度考虑还可分为听写和自然语速的识别等[13].
2.2传统语音识别基本原理通常,语音识别过程大致分为两步:第1步,首先对语音信号提取特定的声学特征,然后对声学特征进行“学习”或者说是“训练”,即建立识别基本单元的声学模型和进行语言文法分析的语言模型;第2步是“识别”,根据识别系统的类型选择能够满足要求的识别方法,采用语音分析方法分析出这种识别方法所要求的语音特征参数,按照一定的准则和测度与系统模型进行比较,通过判决得出识别结果.
设一段语音信号经过特征提取得到特征向量序列为X=[x1,x2,…,xN],其中xi是一帧的特征向量,i=1,2,…,N,N为特征向量的数目.该段语音对应的文本序列设为W=[w1,w2,…,wM],其中wi为基本组成单元,如音素、单词、字符,i=1,2,…,M,M为文本序列的维度.从贝叶斯角度,语音识别的目标就是从所有可能产生特征向量X的文本序列中找到概率最大的W*,可以用公式表示为式(1)优化问题:
$egin{split}{W^*}=&argmathop{max}limits_WPleft({Wleft|X ight.} ight)=argmathop{max}limits_Wfrac{{Pleft({Xleft|W ight.} ight)Pleft(W ight)}}{{Pleft(X ight)}}\&proptoargmathop{max}limits_WPleft({Xleft|W ight.} ight)Pleft(W ight)end{split}$(1)由式(1)可知,要找到最可能的文本序列必须使两个概率P(X|W)和P(W)的乘积最大,其中P(X|W)为条件概率,由声学模型决定;P(W)为先验概率,由语言模型决定.声学模型和语言模型对语音信号的表示越精准,得到的语音系统效果越准确.
从语音识别系统的构成来讲,一套完整的语音识别系统包括预处理、特征提取、声学模型、语言模型以及搜索算法等模块,其结构示意图如图1所示.其中较为重要的特征提取、声学模型和语言模型将在第2.2节中详细阐述.
图1Fig.1图1语音识别系统结构图预处理包括预滤波、采样、模/数转换、预加重、分帧加窗、端点检测等操作.其中,信号分帧是将信号数字化后的语音信号分成短时信号作为识别的基本单位.这主要是因为语音信号是非平稳信号,且具有时变特性,不易分析;但其通常在短时间范围(一般为10–30ms)内其特性基本不变,具有短时平稳性,可以用来分析其特征参数.
搜索模块是指在训练好声学模型和语言模型后,根据字典搜索最优路径,即最可能的输出词序列.传统的语音识别解码建立在加权有限状态转换器(weightedfinitestatetransducer,WFST)所构成的动态网络上,将HMM状态、词典和语法等结合起来.目前端到端模型中主流的搜索算法为BeamSearch等.
2.2.1特征提取通常,在进行语音识别之前,需要根据语音信号波形提取有效的声学特征.特征提取的性能对后续语音识别系统的准确性极其关键,因此需要具有一定的鲁棒性和区分性.目前语音识别系统常用的声学特征有梅尔频率倒谱系数(Mel-frequencycepstrumcoefficient,MFCC)、感知线性预测系数(perceptuallinearpredictivecepstrumcoefficient,PLP)、线性预测倒谱系数(linearpredictioncepstralcoefficient,LPCC)、梅尔滤波器组系数(Melfilterbank,Fbank)等.
MFCC是最为经典的语音特征,其提取过程如图2所示.MFCC的提取模仿了人耳的听觉系统,计算简单,低频部分也有良好的频率分辨能力,在噪声环境下具有一定的鲁棒性.因此,现阶段语音识别系统大多仍采用MFCC作为特征参数,并取得了不错的识别效果.
图2Fig.2图2MFCC的特征提取过程2.2.2声学模型声学模型是对等式(1)中的P(X|W)进行建模,在语音特征与音素之间建立映射关系,即给定模型后产生语音波形的概率,其输入是语音信号经过特征提取后得到的特征向量序列.声学模型整个语音识别系统中最重要的部分,只有学好了发音,才能顺利和发音词典、语言模型相结合得到较好的识别性能.
GMM-HMM是最为常见的一种声学模型,该模型利用HMM对时间序列的建模能力,描述语音如何从一个短时平稳段过渡到下一个短时平稳段;此外,HMM的隐藏状态和观测状态的数目互不相干,可以解决语音识别中输入输出不等长的问题.该声学模型中的每个HMM都涉及到3个参数:初始状态概率、状态转移概率和观测概率,其中观测概率依赖于特征向量的概率分布,采用高斯混合模型GMM进行建模.
GMM-HMM声学模型在语音识别领域有很重要的地位,其结构简单且区分度训练成熟,训练速度也相对较快.然而该模型中的GMM忽略时序信息,每帧之间相对孤立,对上下文信息利用并不充分.且随着数据量的上升,GMM需要优化的参数急剧增加,这给声学模型带来了很大的计算负担,浅层模型也难以学习非线性的特征变换.
深度学习的兴起为声学建模提供了新途径,学者们用深度神经网络(deepneuralnetwork,DNN)代替GMM估计HMM的观测概率,得到了DNN-HMM语音识别系统,其结构如图3所示.DNN-HMM采用DNN的每个输出节点来估计给定声学特征的条件下HMM某个状态的后验概率.DNN模型的训练阶段大致分为两个步骤:第1步是预训练,利用无监督学习的算法训练受限波尔兹曼机(restrictedBoltzmannmachine,RBM),RBM算法通过逐层训练并堆叠成深层置信网络(deepbeliefnetworks,DBN);第2步是区分性调整,在DBN的最后一层上面增加一层Softmax层,将其用于初始化DNN的模型参数,然后使用带标注的数据,利用传统神经网络的学习算法(如BP算法)学习DNN的模型参数.相比于GMM-HMM,DNN-HMM具有更好的泛化能力,擅长举一反三,帧与帧之间可以进行拼接输入,特征参数也更加多样化,且对所有状态只需训练一个神经网络.文献[4]证实了神经网络在大词汇量语音识别领域的出色表现.
图3Fig.3图3基于DNN-HMM的语音识别系统框架通过将DNN取代GMM对HMM观测概率进行声学建模,DNN-HMM相比GMM-HMM在语音识别性能方面有很大提升;然而,DNN对于时序信息的上下文建模能力以及灵活性等方面仍有欠缺.针对这一问题,对上下文信息利用能力更强的循环神经网络RNN[14]和卷积神经网络CNN[15]被引入声学建模中.在RNN的网络结构中,当前时刻的输出依赖记忆与当前时刻的输入,这对于语音信号的上下文相关性建模非常有优势.然而,RNN存在因梯度消失和梯度爆炸而难以训练的问题,于是研究人员引入门控机制,得到梯度传播更加稳定的长短时记忆(longshort-termmemory,LSTM)网络.LSTM-RNN对语音的上下文信息的利用率更高,识别的准确率与鲁棒性也均有提升,这些在文献[16]中能得到证实.CNN的优势在于卷积的不变性和池化技术,对上下文信息有建模能力,对噪声具有鲁棒性,并且可以减少计算量.时延神经网络(timedelayneuralnetwork,TDNN)是CNN对大词汇量连续语音识别的成功应用[17].CLDNN(CNN-LSTM-DNN)综合了三者的优点,实验结果也证明了三者的结合得到了正向的收益[18].
总体而言,近年来语音识别中对声学模型的研究仍集中在神经网络,针对不同的应用场景和需求对上述经典网络结构进行综合和改进[19-21],以期训练更复杂、更强大的声学模型.
2.2.3语言模型语言模型是用来预测字符(词)序列产生的概率,判断一个语言序列是否为正常语句,也就是解决如何计算等式(1)中的P(W).传统的语言模型n-gram[22]是一种具有强马尔科夫独立性假设的模型,它认为任意一个词出现的概率仅与前面有限的n–1个字出现的概率有关,其公式表达如下:
$egin{split}Pleft(W ight)=&prodlimits_{i=1}^m{P({w_i}|{w_1},{w_2},cdots,{w_{i-1}})}\&proptoprodlimits_{i=1}^m{P({w_i}|{w_{i-n+1}},cdots,{w_{i-1}})}end{split}$(2)$egin{split}&Pleft({{w_i}|{w_{i-n+1}},{w_{i-n+2}},cdots,{w_{i-1}}} ight)=hfill\&frac{{countleft({{w_{i-n+1}},{w_{i-n+2}},cdots,{w_{i-1}},{w_i}} ight)}}{{countleft({{w_{i-n+1}},{w_{i-n+2}},cdots,{w_{i-1}}} ight)}}hfillend{split}$(3)然而,由于训练语料数据不足或者词组使用频率过低等常见因素,测试集中可能会出现训练集中未出现过的词或某个子序列未在训练集中出现,这将导致n-gram语言模型计算出的概率为零,这种情况被称为未登录词(out-of-vocabulary,OOV)问题.为缓解这个问题,通常采用一些平滑技术,常见的平滑处理有Discounting、Interpolation和Backing-off等.n-gram模型的优势在于其参数易训练,可解释性极强,且完全包含了前n–1个词的全部信息,能够节省解码时间;但难以避免维数灾难的问题,此外n-gram模型泛化能力弱,容易出现OOV问题,缺乏长期依赖.
随着深度学习的发展,语言模型的研究也开始引入深度神经网络.从n-gram模型可以看出当前的词组出现依赖于前方的信息,因此很适合用循环神经网络进行建模.Bengio等将神经网络用于语言模型建模[23],提出用词向量的概念,用连续变量代替离散变量,利用神经网络去建模当前词出现的概率与其前n–1个词之间的约束关系.这种模型能够降低模型参数的数量,具有一定的泛化能力,能够较好地解决数据稀疏带来的问题,但其对取得长距离信息仍束手无策.为进一步解决问题,RNN被用于语言模型建模[24].RNNLM中隐含层的循环能够获得更多上下文信息,通过在整个训练集上优化交叉熵来训练模型,使得网络能够尽可能建模出自然语言序列与后续词之间的内在联系.其优势在于相同的网络结构和超参数可以处理任意长度的历史信息,能够利用神经网络的表征学习能力,极大程度避免了未登录问题;但无法任意修改神经网络中的参数,不利于新词的添加和修改,且实时性不高.
语言模型的性能通常采用困惑度(perplexity,PPL)进行评价.PPL定义为序列的概率几何平均数的倒数,其公式定义如下:
$egin{split}&Pleft({{w_i}|{w_{i-n+1}},{w_{i-n+2}},cdots,{w_{i-1}}} ight)hfill\&=frac{{countleft({{w_{i-n+1}},{w_{i-n+2}},cdots,{w_{i-1}},{w_i}} ight)}}{{countleft({{w_{i-n+1}},{w_{i-n+2}},cdots,{w_{i-1}}} ight)}}hfillend{split}$(4)PPL越小表示在给定历史上出现下一个预测词的概率越高,该模型的效果越好.
2.3端到端语音识别传统的语音识别由多个模块组成,彼此独立训练,但各个子模块的训练目标不一致,容易产生误差累积,使得子模块的最优解并不一定是全局最优解.针对这个问题,学者们提出了端到端的语音识别系统,直接对等式(1)中的概率P(W|X)进行建模,将输入的语音波形(或特征矢量序列)直接转换成单词、字符序列.端到端的语音识别将声学模型、语言模型、发音词典等模块被容纳至一个系统,通过训练直接优化最终目标,如词错误率(worderrorrate,WER)、字错误率(charactererrorrate,CER),极大地简化了整个建模过程.目前端到端的语音识别方法主要有基于连接时序分类(connectionisttemporalclassification,CTC)[25]和基于注意力机制(attentionmodel)[26]两类方法及其改进方法.
CTC引入空白符号(blank)解决输入输出序列不等长的问题,主要思想是最大化所有可能对应的序列概率之和,无需考虑语音帧和字符的对齐关系,只需要输入和输出就可以训练.CTC实质是一种损失函数,常与LSTM联合使用.基于CTC的模型结构简单,可读性较强,但对发音词典和语言模型的依赖性较强,且需要做独立性假设.RNN-Transducer模型[27]是对CTC的一种改进,加入一个语言模型预测网络,并和CTC网络通过一层全连接层得到新的输出,这样解决了CTC输出需做条件独立性假设的问题,能够对历史输出和历史语音特征进行信息累积,更好地利用语言学信息提高识别准确率.
基于注意力机制的端到端模型最开始被用于机器翻译,能够自动实现两种语言的不同长度单词序列之间的转换.该模型主要由编码网络、解码网络和注意力子网络组成.编码网络将语音特征序列经过深层神经网络映射成高维特征序列,注意力网络分配权重系数,解码网络负责输出预测的概率分布.该模型不需要先验对齐信息,也不用音素序列间的独立性假设,不需要发音词典等人工知识,可以真正实现端到端的建模.2016年谷歌提出了一个Listen-Attend-Spell(LAS)模型[28],其结构框图如图4所示.LAS模型真正实现了端到端,所有组件联合训练,也无独立性假设要求.但LAS模型需要对整个输入序列之后进行识别,因此实时性较差,之后也有许多学者对该模型不断改进[29-31].
图4Fig.4图4LAS模型框架图目前端到端的语音识别系统仍是语音识别领域的研究热点,基于CTC[32-34]、attention机制[35]以及两者结合的系统[36,37]都取得了非常不错的成果.其中Transformer-Transducer模型[38]将RNN-T模型中的RNN替换为Transformer提升了计算效率,还控制attention模块上下文时间片的宽度,满足流式语音识别的需求.2020年谷歌提出的ContextNet模型[39],采用Squeeze-and-Excitation模块获取全局信息,并通过渐进降采样和模型缩放在减小模型参数和保持识别准确率之间取得平衡.在Transformer模型捕捉长距离交互的基础上加入了CNN擅长的局部提取特征得到Conformer模型[40],实现以更少的参数达到更好的精度.实际上端到端的语音识别系统在很多场景的识别效果已经超出传统结构下的识别系统,但距其落地得到广泛商业应用仍有一段路要走.
3语音识别的难点与热点语音识别作为人机交互的关键技术一直是科技应用领域的研究热点.目前,语音识别技术从理论研究到产品的开发都已取得了很多的成果,然而,相关研究及应用落地仍然面临很大挑战,具体可归纳为以下几方面:
鲁棒性语音识别:目前,理想条件下(低噪声加近场)的语音识别准确率已经达到一定程度.然而,在实际一些复杂语音环境下,如声源远场等情景,低信噪比、房间混响、回声干扰以及多声源信号干扰等因素,使得语音识别任务面临很大挑战.因此,针对复杂环境研究鲁棒语音识别是目前语音识别领域的研究难点和热点.当前,针对复杂环境下的语音识别研究大致可以分为4个方向:(1)在语音识别前端,利用信号处理技术提高信号质量:采用麦克风阵列技术采集远场声源信号,然后通过声源定位[41]、回声消除[42]、声源分离或语音增强[43]等提高语音信号质量.例如,文献[44]在基于深度学习的自适应声学回声消除(acousticechocancellation,AEC)中加入了背景关注模块以适应部署环境的变化,以提高语音信号质量;文献[45]以深度聚类为框架提出了结合频谱和空间信息的盲源分离方法;文献[46]利用以基于生成式对抗网络(generativeadversialnetworks,GAN)为基础框架的增强网络进行噪声抑制,从而提高目标语音信号质量;(2)寻找新的鲁棒性特征,尽可能消除非目标语音信号的影响:例如,伽马通滤波器倒谱系数(Gammatonefrequencycepstrumcoefficient,GFCC)[47]等听觉特征参数更适合拟合人耳基底膜的选择性,符合人耳听觉特征;或者,采用自动编码器[48]、迁移学习[49]等多种方式提取更鲁棒的特征;(3)模型的改进与自适应[50]:上海交通大学提出的VDCNN[6]以及VDCRN[7]通过加深卷积层提升算法的鲁棒性,文献[51]利用GAN中生成器与判别器的相互博弈和瓶颈特征构建声学模型,文献[52]采用teacher-studentlearning的方式以干净语音训练的声学模型作为教师模型训练噪声环境下的学生模型;(4)多模态数据融合[53]:当在高噪声环境或多说话人造成语音重叠的情况下,目标语音信号容易被噪声或其他非目标声源(干扰信号)“淹没”,这时仅凭拾音设备捕捉的“语音”信号往往无法获得良好的识别性能;这时,将语音信号和其他信号如声带的振动信号[54]、嘴部的图像信号[55]等进行融合,更好地提升识别系统的鲁棒性.例如,文献[56]以RNN-T为框架,提出多模态注意力机制对音频和视频信息进行融合,以提高识别性能;文献[57]同样基于RNN-T,但利用vision-to-phonememodel(V2P)提取视觉特征,连同音频特征以相同的帧频输入至编码器,取得了良好的识别性能.
低资源语音识别:这是对各种小语种语言识别研究的统称.小语种不同于方言,有独立完整的发音体系,各异性较强但数据资源匮乏,难以适应以汉语、英语为主的语音识别系统,声学建模需要利用不充分的数据资源训练得到尽可能多的声学特征.解决这一问题的基本思路可以概括为从主流语言的丰富资源中提取共性训练出可以公用的模型,在此基础上训练小语种模型.文献[58]为解决共享隐藏层中会学到不必要的特定信息这一问题,提出了一个共享层和特有层平行的模型,它通过对抗性学习确保模型能够学习更多不同语种间的不变特征.然而,小语种种类繁多,为了单独一种建立识别系统耗费过多资源并不划算,因此现在主要研究多语种融合的语音识别系统[59,60].
语音的模糊性:各种语言中都存在相似发音的词语,不同的讲话者存在不同的发音习惯以及口音、方言等问题,母语者和非母语者说同一种语言也存在不同的口音,难以针对单独的口音构建模型.针对多口音建模[61]的问题,现有的方法一般可以分为与口音无关和与口音相关两大类,其中与口音无关的模型普遍表现更好一些.文献[62]尝试通过特定口音模型的集合建立统一的多口音识别模型;文献[63]通过多任务学习将声学模型和口音识别分类器联合;文献[64]则基于GAN构建了预训练网络从声学特征中区分出不变的口音.
低计算资源:精度高效果好的神经网络模型往往需要大量的计算资源且规模巨大,但移动设备(如手机、智能家居等)计算能力和内存有限,难以支撑,因此需要对模型进行压缩及加速.目前针对深度学习模型采用的压缩方法有网络剪枝、参数量化、知识蒸馏等.文献[65]采用网络剪枝的方法构建了动态稀疏神经网络(dynamicsparsityneuralnetworks,DSNN),提供不同稀疏级别的网络模型,通过动态调整以适应不同资源和能量约束的多种硬件类型的能力.文献[66]通过量化网络参数减少内存占用并加快计算速度.知识蒸馏能够将复杂模型的知识迁入小模型,已应用于对语音识别系统的语言模型[67]、声学模型[68]和端到端模型[29,69,70]等进行压缩.文献[71]利用知识蒸馏将视听两模态的识别系统迁移至单听觉模型,缩小了模型规模,加快了训练速度,却并不影响精度.
4总结与展望4.1总结本文主要对语音识别的发展、系统结构研究、热点及难点进行了阐述.目前主流的语音识别方法大多基于深度神经网络.这些方法大体分为两类:一类是采用一定的神经网络取代传统语音识别方法中的个别模块,如特征提取、声学模型或语言模型等;另一类是基于神经网络实现端到端的语音识别.相比于传统的识别方法,基于深度神经网络的语音识别方法在性能上有了显著的提升.在低噪音加近场等理想环境下,当前的语音识别技术研究已经达到了商业需求.然而,在实际应用中存在各种复杂情况,如声源远场、小语种识别、说话人口音、专业语言场景等,这些情况使得复杂场景下的语音识别应用落地仍面临挑战.此外,尽管当前深度学习在语音识别的应用确实提高了识别率等性能,但效果好的模型往往规模复杂且庞大、需要的数据资源较为冗余,不适合用于移动设备(如手机、智能穿戴设备等);此外,小语种、多口音、不同方言等的识别性能仍然差强人意.总之,当前语音识别领域已取得丰富的研究成果,但仍有很长一段路要走.
4.2展望在未来很长一段时间内,基于深度神经网络的语音识别仍是主流;面向不同应用场景,根据语音信号特点对现有神经网络结构进行改进仍是未来研究重点.大体上,未来语音识别领域的研究方向可大致归纳如下.
(1)模型压缩与加速.尽管当前深度学习在语音识别的应用确实提高了识别率等性能,但效果好的模型往往规模复杂且庞大、需要的数据资源较为冗余,不适合用于移动设备(如手机、智能穿戴设备等),因此对基于深度神经网络的语音识别系统进行网络模型压缩和加速,将是未来语音识别的研究方向之一.
(2)数据迁移.在面对小样本数据或复杂问题时,迁移学习是一种有效的方式.在语音识别领域中,采用迁移学习的方式对小语种、方言口音或含噪语音进行识别也是未来的研究方向之一.
(3)多模态数据融合.对于一些复杂的语音场景(高噪声、混响、多源干扰等),可以利用语音信号和其他信号(如图像信号、振动信号等)进行融合,以提高语音识别性能,也是未来研究研究方向之一.
(4)多技术融合,提高认知智能.当前大多数语音识别算法只关注识别文字内容的正确性;然而,许多智能语音交互的应用(如QA问答、多轮对话等)还涉及到语义的理解.因此,将语音识别技术结合其他技术[72-75]如自然语言处理(naturallanguageprocessing,NLP)相结合以提升识别性能也是未来研究方向之一.