背景:
对语音识别做一个调研,材料主要来自于wiki:https://en.wikipedia.org/wiki/Speech_recognition
对于一些详细的资料可以去上述网址深入查询。
1.历史(按时间脉络梳理技术的发展)
(1)1980年前:
1971年 - DARPA资助语音理解研究五年,语音识别研究寻求最小词汇量1000字。他们认为言语理解是在语音识别方面取得进步的关键;后来证明这是不真实的。[14] BBN,IBM,卡内基梅隆和斯坦福研究所都参与了该计划。[15] [16]这个复活的语音识别研究发表在约翰皮尔斯的信中。
1972年 - IEEE声学,语音和信号处理小组在马萨诸塞州牛顿召开了一次会议。
60年代末伦纳德鲍姆开发的数学马尔可夫链在国防分析研究所。十年后,在CMU,Raj Reddy的学生James Baker和Janet M. Baker开始使用隐马尔可夫模型(HMM)进行语音识别。[18] James Baker在本科教育期间从国防分析研究所的暑期工作中了解到了HMMs。[19] HMM的使用使研究人员能够在统一的概率模型中结合不同的知识来源,如声学,语言和语法。
(2)1980-2000年
- 到20世纪80年代中期, IBM的Fred Jelinek团队创建了一个名为Tangora的语音激活打字机,它可以处理20,000字的词汇[20]Jelinek的统计方法不太强调模仿人类大脑处理和理解语言的方式,而使用统计学像HMM这样的建模技术。(Jelinek的小组独立地发现了HMM在语音中的应用。[19])这对语言学家来说是有争议的,因为HMM过于简单化,无法解释人类语言的许多共同特征。[21]然而,HMM被证明是一种非常有用的语音建模方法,并取代动态时间扭曲成为20世纪80年代的主要语音识别算法。[22]
20世纪80年代也出现了n-gram语言模型。
该领域的大部分进展都归功于计算机的快速增长能力。在1976年DARPA计划结束时,研究人员可以使用的最好的计算机是具有4 MB RAM 的PDP-10。[21]解码仅30秒的语音可能需要长达100分钟。[24]
两个实用的产品是:
- 1987年 - Kurzweil Applied Intelligence的认可者
- 1990年 - Dragon Dictate,1990年发布的消费产品[25] [26] AT&T于1992年部署了语音识别呼叫处理服务,用于在不使用人工操作员的情况下路由电话。[27]该技术由劳伦斯·拉宾纳和贝尔实验室的其他人开发。
到此为止,典型的商业语音识别系统的词汇量大于普通的人类词汇量。[21] Raj Reddy的前学生黄学东在CMU 开发了Sphinx-II系统。Sphinx-II系统是第一个独立于说话者,大词汇量,连续语音识别的系统,它在DARPA 1992年的评估中表现最佳。处理具有大词汇量的连续语音是语音识别历史中的一个重要里程碑。1993 年,Huang继续在微软找到语音识别小组 .Raj Reddy的学生Lee-Fu Lee加入Apple,1992年,他帮助开发了一款名为Casper的Apple计算机的语音接口原型。
总部位于比利时的语音识别公司Lernout&Hauspie收购了其他几家公司,包括1997年的Kurzweil Applied Intelligence和2000年的Dragon Systems.L&H语音技术用于Windows XP操作系统。L&H是一个行业的领导者,直到会计丑闻在2001年结束了该公司的语音技术从L&H是由ScanSoft公司这成为收购Nuance公司在2005年苹果公司最初许可的软件Nuance的提供语音识别能力,其数字助理Siri的。[28]
(3)2000s
在2000年代,DARPA赞助了两个语音识别程序:2002年有效负担得起的可重复使用的语音到文本(EARS)和全球自主语言开发(GALE)。四个团队参加了EARS计划:IBM,由BBN和LIMSI以及Univ领导的团队。匹兹堡大学, 剑桥大学,以及由ICSI,SRI和华盛顿大学组成的团队。EARS资助了Switchboard电话语音语料库的收集,其中包含来自500多个发言者的260小时录制的对话。[29] GALE计划的重点是阿拉伯语和普通话广播新闻演讲。2007年,在聘请Nuance的一些研究人员之后,谷歌首次在语音识别方面做出了努力。[30]第一个产品是GOOG-411,一个基于电话的目录服务。来自GOOG-411的录音产生了有价值的数据,帮助谷歌改进了他们的识别系统。Google语音搜索现在支持30多种语言。
在美国,至少自2006 年以来,国家安全局已经使用一种语音识别来识别关键词。[31]该技术允许分析师搜索大量记录的对话并隔离提及的关键词。可以对记录编制索引,分析人员可以在数据库上运行查询以查找感兴趣的对话。一些政府研究项目专注于语音识别的智能应用,例如DARPA的EARS计划和IARPA的Babel计划。
在21世纪初期,语音识别仍然由传统方法主导,例如隐马尔可夫模型与前馈人工神经网络相结合。[32] 然而,今天,语音识别的许多方面已被一种称为长期短期记忆(LSTM)的深度学习方法所接管,这是一种由Sepp Hochreiter和JürgenSchmidhuber在1997年发表的递归神经网络。[33] LSTM RNNs避免消失的梯度问题,并可以学习“非常深度学习”的任务[34]需要记忆发生在数千个离散时间步骤之前的事件,这对于语音很重要。2007年左右,由连接主义时间分类(CTC)[35]培训的LSTM 在某些应用中开始优于传统的语音识别。[36]据报道,2015年谷歌的语音识别通过CTC培训的LSTM经历了49%的惊人表现,现在可通过Google Voice向所有智能手机用户提供。[37]
2009年下半年Geoffrey Hinton及其在多伦多大学的学生和Li Deng [38]以及微软研究院的同事们在2009年下半年引入了深度前馈(非周期性)网络用于声学建模,最初是在微软和多伦多大学随后扩展到包括IBM和谷歌(因此在2012年的评论报告中“四个研究组的共同观点”副标题)。[39] [40] [41]一位微软研究主管称这项创新是“自1979年以来最严重的准确性变化”。[42]与过去几十年的稳定增量改进相比,深度学习的应用将单词错误率降低了30%。[42]这项创新很快在整个领域得到采用。研究人员也开始使用深度学习技术进行语言建模。
在语音识别的悠久历史中,人工神经网络的浅层形式和深层形式(例如经常性网络)在20世纪80年代,90年代和21世纪的几年中已被探索多年。[43] [44] [45] 但是这些方法从未赢得过非均匀的内部手工制作高斯混合模型 / 隐马尔可夫模型(GMM-HMM)技术,这种技术基于语言训练的生成模型。[46] 在20世纪90年代,人们在方法上分析了许多关键难点,包括梯度递减[47]和神经预测模型中的弱时间相关结构。[48] [49] 所有这些困难都是在这些早期缺乏大量培训数据和强大的计算能力之外的。大多数了解这些障碍的语音识别研究人员因此随后离开神经网络去追求生成建模方法,直到最近重新开始的深度学习开始于2009-2010左右,克服了所有这些困难。Hinton等人。和邓等人。回顾了近期历史的一部分,讲述了他们之间的合作以及与四个团体(多伦多大学,微软,谷歌和IBM)的同事之间的合作如何点燃了深度前馈神经网络应用于语音识别的复兴。[40] [41] [50] [51]
(4)2010s
到2010年代初的语音识别,也被称为语音识别[52] [53] [54]显然,从分化SP <u>埃克</u>识别和扬声器独立性被认为是一个重大突破。在此之前,系统需要“培训”期。一个1987年的娃娃广告上写着“终于,了解你的娃娃”。 - 尽管它被描述为“哪些孩子可以训练以回应他们的声音”。[11]
2017年,微软研究人员在广泛基准的Switchboard任务中达到了抄写对话电话语音的历史人类平等里程碑。多个深度学习模型用于优化语音识别准确度。据报道,语音识别单词错误率低至4名专业人类抄写员,他们在同一基准测试中一起工作,该基准测试由IBM Watson演讲团队在同一任务中提供资金。[55]
2.模型
(1)隐马尔可夫模型
主要文章:隐马尔可夫模型
现代通用语音识别系统基于隐马尔可夫模型。这些是输出符号或数量序列的统计模型。HMM用于语音识别,因为语音信号可以被视为分段静止信号或短时静止信号。在短时间尺度(例如,10毫秒)中,语音可以近似为静止过程。语音可以被认为是许多随机目的的马尔可夫模型。
HMM受欢迎的另一个原因是因为它们可以自动训练并且使用起来简单且计算可行。在语音识别中,隐马尔可夫模型将输出一系列n维实值向量(其中n是一个小整数,例如10),每10毫秒输出一个这些向量。矢量将由倒谱系数组成,倒谱系数是通过对短时间语音窗口进行傅里叶变换并使用余弦变换对频谱进行去相关而获得的。,然后取第一个(最重要的)系数。隐马尔可夫模型将倾向于在每个状态中具有对角协方差高斯的混合的统计分布,这将给出每个观察向量的可能性。每个单词,或(对于更一般的语音识别系统),每个音素,将具有不同的输出分布; 通过将单独训练的隐马尔可夫模型连接成单独的单词和音素,制作用于一系列单词或音素的隐马尔可夫模型。
以上描述的是最常见的基于HMM的语音识别方法的核心要素。现代语音识别系统使用多种标准技术的各种组合,以便改进上述基本方法的结果。典型的大词汇系统需要音素的上下文依赖(因此具有不同左右上下文的音素具有与HMM状态不同的实现); 它会使用倒谱归一化来规范不同的扬声器和录音条件; 对于进一步的说话者归一化,它可能使用声道长度归一化(VTLN)进行男性女性归一化和最大似然线性回归(MLLR)用于更一般的演讲者改编。这些特征将具有所谓的delta和delta-delta系数以捕获语音动态,此外还可以使用异方差线性判别分析(HLDA); 或者可以跳过delta和delta-delta系数并使用拼接和基于LDA的投影,然后可能是异方差线性判别分析或全局半连接协方差变换(也称为最大似然线性变换),或MLLT)。许多系统使用所谓的判别训练技术,其省去了对HMM参数估计的纯粹统计方法,而是优化了训练数据的一些与分类相关的测量。示例是最大互信息(MMI),最小分类错误(MCE)和最小电话错误(MPE)。
对语音进行解码(当系统出现新话语并且必须计算最可能的源语句时发生的事情的术语)可能会使用维特比算法来找到最佳路径,这里可以选择动态创建组合隐马尔可夫模型,包括声学和语言模型信息,并预先静态组合(有限状态传感器,或FST,方法)。
解码的一个可能的改进是保留一组好的候选人,而不是仅保留最佳候选人,并使用更好的评分函数(重新评分)来评价这些优秀的候选人,以便我们可以根据这个精确的分数选择最佳的候选人。候选集可以作为列表(N最佳列表方法)或作为模型的子集(格子)保存。重新评分通常是通过尽量减少贝叶斯风险来完成的[56](或其近似值):我们尝试采用最小化给定损失函数的期望值的句子,而不是采用最大概率的源句子(即,我们采用最小化平均距离的句子)通过其估计概率加权的其他可能句子)。损失函数通常是Levenshtein距离,尽管特定任务可以有不同的距离; 当然,修剪一组可能的转录以保持易处理性。已经设计了有效的算法来重新划分表示为加权有限状态换能器的格子,其中编辑距离表示为a有限状态传感器验证某些假设。[57]
(2)基于动态时间规整(DTW)的语音识别
主要文章:动态时间扭曲
动态时间扭曲是一种历史上用于语音识别的方法,但现在已经被更成功的基于HMM的方法取代。
动态时间扭曲是用于测量可能在时间或速度上变化的两个序列之间的相似性的算法。例如,即使在一个视频中人们正在缓慢行走而在另一个视频中他或她走得更快,或者即使在一次观察的过程中存在加速和减速,也会检测到行走模式的相似性。DTW已应用于视频,音频和图形 - 实际上,任何可以转换为线性表示的数据都可以使用DTW进行分析。
一个众所周知的应用是自动语音识别,以应对不同的语速。通常,它是一种允许计算机在具有某些限制的两个给定序列(例如,时间序列)之间找到最佳匹配的方法。也就是说,序列被非线性地“扭曲”以彼此匹配。该序列比对方法通常用于隐马尔可夫模型的上下文中。
(3)神经网络
主要文章:人工神经网络
在20世纪80年代后期,神经网络在ASR中成为一种有吸引力的声学建模方法。从那时起,神经网络已被用于语音识别的许多方面,例如音素分类,[58]孤立词识别,[59]视听语音识别,视听说话人识别和说话者适应。
与HMM相比,神经网络对特征统计特性的显式假设较少,并且具有多种特性使其成为语音识别的有吸引力的识别模型。当用于估计语音特征片段的概率时,神经网络允许以自然且有效的方式进行辨别训练。然而,尽管它们在分类短时间单位(如个体音素和孤立单词)方面有效,[60],早期神经网络很难成功进行连续识别任务,因为它们对时间依赖性建模的能力有限。
这种限制的一种方法是在基于HMM的识别之前使用神经网络作为预处理,特征变换或维数减少[61]步骤。然而,最近,LSTM和相关的递归神经网络(RNNs)[33] [37] [62] [63]和时间延迟神经网络(TDNN)[64]已经证明了该领域的改进性能。
(4)深度前馈和递归神经网
主要文章:深度学习
深度神经网络和去噪自动编码器[65]也正在研究中。深度前馈神经网络(DNN)是一种人工神经网络,在输入和输出层之间具有多个隐藏的单元层。[40]与浅层神经网络类似,DNN可以模拟复杂的非线性关系。DNN架构生成组合模型,其中额外的层使得能够从较低层构成特征,从而提供巨大的学习能力,从而具有对复杂的语音数据模型进行建模的潜力。[66]
2010年,工业研究人员与学术研究人员合作,在大词汇量语音识别中成功发展了DNN,其中采用了基于决策树构建的依赖于上下文的HMM状态的DNN的大输出层。[67] [68] [69]参见微软研究院最近的Springer一书,了解截至2014年10月对这一发展和现有技术的全面评论。[70]另见最近概述文章中自动语音识别的相关背景和各种机器学习范例的影响,特别是包括深度学习。[71] [72]
深度学习的一个基本原则是取消手工制作的特征工程并使用原始特征。这一原理首先在“原始”光谱图或线性滤波器组特征的深度自动编码器架构中成功探索,[73]显示其优于Mel-Cepstral特征,其包含来自光谱图的固定变换的几个阶段。语音波形的真正“原始”特征最近被证明可以产生出色的大规模语音识别结果。[74]
(5)端到端自动语音识别
自2014年以来,对“端到端”ASR的研究兴趣不断增加。传统的基于语音的(即所有基于HMM的模型)方法需要单独的组件和发音,声学和语言模型的训练。端到端模型共同学习语音识别器的所有组件。这很有价值,因为它简化了培训过程和部署过程。例如,所有基于HMM的系统都需要n-gram语言模型,典型的n-gram语言模型通常需要几千兆字节的存储空间,因此在移动设备上部署它们是不切实际的。[75]因此,谷歌和苹果的现代商用ASR系统(截至2017年)部署在云上,需要网络连接,而不是本地设备。
在终端到终端的ASR的第一个尝试是与联结颞分类(CTC)通过引入基于系统亚历克斯·格雷夫斯的谷歌DeepMind的和纳瓦迪普Jaitly 多伦多大学于2014年[76]该模型由递归神经网络和CTC层。共同地,RNN-CTC模型一起学习发音和声学模型,但是由于类似于HMM的条件独立性假设,它不能学习语言。因此,CTC模型可以直接学习将语音声学映射到英文字符,但这些模型会产生许多常见的拼写错误,并且必须依靠单独的语言模型来清理成绩单。后来,百度通过极大的数据集扩展了工作,并展示了中文普通话和英语的商业成功。[77]2016年,牛津大学提出LipNet,[78]第一个端到端句子级唇读模型,使用时空卷积和RNN-CTC架构,超越了限制语法数据集中的人类水平表现。[79] Google DeepMind于2018年推出了大规模的CNN-RNN-CTC架构,其性能比人类专家高出6倍。[80]
基于CTC的模型的替代方法是基于注意力的模型。Chan等人同时引入了基于注意力的ASR模型。的卡耐基梅隆大学和谷歌大脑和Bahdanau等。所述的蒙特利尔大学在2016年[81] [82]名为“倾听,参与和拼写”(LAS)的模型,字面上“听”声信号,“注意”信号的不同部分,并且一次“拼写”一个字符的抄本。与基于CTC的模型不同,基于注意力的模型不具有条件独立性假设,并且可以直接学习语音识别器的所有组件,包括发音,声学和语言模型。这意味着,在部署期间,不需要携带语言模型,这使得它在部署到具有有限存储器的应用程序上非常实用。截至2016年底,基于注意力的模型取得了相当大的成功,包括超越CTC模型(有或没有外部语言模型)。[83]自原始LAS模型以来已经提出了各种扩展。潜在序列分解(LSD)由卡内基梅隆大学,麻省理工学院和谷歌大脑提出,直接发出比英文字符更自然的子词单元; [84] 牛津大学和Google DeepMind将LAS扩展到“观看,收听,参与和拼写”(WLAS),以处理超越人类表现的唇读。[85]
3.会议和期刊
每年或每两年举行的流行语音识别会议包括SpeechTEK和SpeechTEK Europe,ICASSP,Interspeech / Eurospeech和IEEE ASRU。自然语言处理领域的会议,如ACL,NAACL,EMNLP和HLT,开始包括有关语音处理的论文。重要期刊包括IEEE语音和音频处理交易(后来改名为IEEE,音频,语音和语言处理交易以及自2014年9月以来重新命名为IEEE/ ACM音频,语音和语言处理交易 - 与ACM出版物合并后),计算机语音和语言,以及语音交流。
4.软件
在免费可用资源方面,卡内基梅隆大学的Sphinx工具包是开始学习语音识别和开始实验的一个地方。另一种资源(免费但受版权保护)是HTK书籍(以及随附的HTK工具包)。对于更新和最先进的技术,可以使用Kaldi工具包。[ 引证需要 ] 2017年,Mozilla推出了名为Common Voice [109]的开源项目,收集大型语音数据库,帮助构建免费语音识别项目DeepSpeech(可在GitHub免费获取)[110]使用谷歌开源平台TensorFlow [111]。
基于商业云的语音识别API可从AWS,Azure [112],IBM和GCP 广泛获得。
Cobalt的网页上提供了在线语音识别器的演示。[113]
有关更多软件资源,请参阅语音识别软件列表。
PS:详细引用见wiki[https://en.wikipedia.org/wiki/Speech_recognition#Practical_speech_recognition
]