前言
人工智能掌权。除了机器人和自动驾驶汽车等人工智能产品,你还必须了解 Siri、Alexa、Cortana 和 Google Now 等语音助手。
2010年Siri的诞生,让智能语音助手真正进入了消费领域。近年来,语音助手不仅作为系统或应用程序的一部分存在于智能手机中,而且随着可穿戴设备和智能家居的兴起和普及,成为人机交互界面中不可或缺的,甚至是最重要的部分。随着越来越多的计算设备出现在我们的生活中,语音界面已经成为跨不同尺寸设备的常用 UI 之一。这时,语音识别技术就显得尤为重要。
本文将主要从语音识别的难点、整体的技术思路和系统框架来介绍语音识别技术,不会详细阐述语音识别技术的算法细节。
目前语音转文字的错误率很高
我们知道,智能语音助手的功能就是理解你的语音指令。为此,语音助手需要执行两个步骤:
自动语音识别(ASR,Automatic Speech Recognition):用于将人类说出的语音转换成文本,然后提供给第二步,也就是
自然语言理解(NLU):用于理解转换后的文本语义信息并生成相应的指令。
在日常生活中使用很多智能语音助手时,我们经常会遇到很多讽刺性的错误,可能是语音转文字时的识别错误,也可能是文字转换错误但指令转换错误。事实上,大多数可察觉的错误发生在第 1 步,即语音到文本的过程中。
▲Siri
为什么是这样?
原因之一是语音助手的服务意图通常侧重于快速提供服务,包括记录日历事件/提醒、拨打电话、发送消息、搜索网页和应用程序、查看电子邮件、导航等。我们可以发现,这些服务是面向功能的,这意味着此时自然语言理解的对象通常更局限于以动词为中心的动作,而不是聊天等开放场景。当用户随意聊天时,语音助手往往会回复“我不明白你在说什么”之类的答案,或者直接在网上搜索解决。在这样的设计下,自然语言理解出现明显错误的概率显着降低。
另一个原因是语音识别本身有很多困难。
语音识别的难点
语音识别的研究历史其实很长,但是这个领域的快速发展主要集中在近几十年。为什么语音识别这么难?
事实上,语音识别对于人类本身来说并不是那么简单。看看我们的日常生活,我们是否有时会遇到听不懂别人在说什么的情况?
最明显的原因之一是语言因素。《圣经》、《旧约》、《创世纪》中的巴别塔故事是试图解释世界上出现过的不同语言和种族。此外,同一种语言下会有不同的方言。在我国,有“十里不一样,百里不一样”的说法,尤其是在东南地区。
假设我们只说普通话?还有个人口音问题。播音员和主持人口齿伶俐的发音大家都能听得懂,但身边的朋友说什么我们可能听不懂。或者说话者的声音太高或太低?说话太快或太慢?有同音字吗?并且不要忘记我们经常处于嘈杂的环境中,环境噪音完全有可能使您的同伴看起来像是在表演哑剧。
变量太多了,同一个句子可以有太多的变体。人脑如何处理这种语音变异性是神经科学研究的主题。那么计算机是如何进行语音识别的呢?
历史上出现了两种类型的解决方案。一是利用语言知识构建各种语言的语音规则,从而试图覆盖所有可能的声音。这种方法源于早期成功构建人工智能专家系统(Expert Systems)。然而,这种方法的缺点现在也很明显:我们不能详尽地列出所有可能的语音规则。
第二种方法是统计语音识别,旨在构建可以从数据中学习的数据驱动的机器学习语音模型。机器学习解决方案已经过测试并证明是实现高精度语音识别的成功且有效的方法。下面我们只讨论统计语音识别技术。
语音识别的基本解决方案
在了解机器如何进行语音识别之前,我们先来看看人类是如何自己进行语音识别的:
说话者头脑中所想的原始信息S通过发声器官和传输介质(假设传输介质是嘈杂的环境,如空气中的背景噪音、其他人的声音等)传递到听众。当 时,它已经从原始信息 S 变为含噪声信息 N(原始信息 S 和噪声 Z 的随机组合)。听者所做的就是从噪声信息 N 中恢复出原始信息 S。我们可以说,听者在听到每个句子时下意识地“猜测”或“解码”说话者发出的嘈杂语音。在信息论中,人类语音识别的这种自然过程可以抽象为下图所示的噪声通道模型。
▲嘈杂的频道
在使用计算机进行语音识别时,我们只是将听者换成计算机,仍然需要通过得到的嘈杂信息 N(录音在这次)。)。
既然说语音识别也是关于“猜测”的,而“猜测”的原理就是找到概率最高的答案,那么语音识别的问题就变成了:“找到与给定匹配度最高的文本演讲”。这个问题包含两个重点:
如何计算语音和任何文本之间的匹配?
如何在所有可能的文本中找到最大的匹配?
一般来说,语音识别系统中的语言模型更容易、更准确。我们所说的“提高语音识别系统的准确率”,其实一般来说就是提高声学模型的准确率。
语音识别系统架构
语音识别系统输入语音并输出文本。整个系统包括哪些部分?
1.数据预处理
首先要认识到输入的语音数据是连续的时序数据(Time Series Data),在建模处理时需要将连续的数据分成小段。用U来表示整个语音数据,那么每个小段可以表示为:
这个过程称为分帧,通常将语音分成每帧 10ms 的帧(也可以划分为其他持续时间)。分帧后的语音数据还需要做特征提取(Feature Extraction),比如频域转换、傅里叶变换等能动英语七步语音处理流程排名英语,生成标准化的声学特征(Acoustic Features),比如常用的梅尔频率倒谱系数MFCC。
每一帧数据的声学特征是一个D维特征向量(Feature Vector)。这部分主要涉及信号处理(Signal Processing),这里不再赘述。
2.核心系统:字典
在上面的系统架构图中,除了前面提到的声学模型和语言模型之外,还有一个连接模块:Lexicon。它有什么功能?
在只有声学模型和语言模型的系统中,语音 U 和文本 W 直接相关。但是当我们深入研究它们之间的映射关系时,我们会发现,其实还需要对它们进行更细的划分。
▲ 层次结构
如上图所示能动英语七步语音处理流程,文本需要先划分成词,再划分成音素(Phones),才能映射到语音。以英语为例,一个单词的发音可以划分为标准的国际音标,使音标成为比单词更精细的处理单元。
那么问题来了:一个词的音位表示是唯一的吗?
明显不是。以英语为例,可能存在同一个词有不同读法的情况:
英式英语/美式英语,如番茄
不同的词类可能有不同的发音
口语、吞咽等日常言语现象,如“埋葬他”,h的发音往往不发音,听起来像“钡”。
口音,方言
...
单词和音素组合不是唯一的【Emotibot Tech】人机交互入口之语音识别,因此我们可以构建一个映射表,列出每个单词的常见音素组合。这部分是字典。
你可能会问,上面不是说说话规则很难穷尽吗,为什么这里的映射表是穷举的?事实上,大规模词汇系统(英语)的实际情况是【Emotibot Tech】人机交互入口之语音识别,在词级细化时,每个词平均有 1.1 种可能的读音,这意味着大多数词的读音是唯一确定的。
将字典加入系统后,需要对原有的核心公式进行微调。假设音素用Q表示,公式可改写为:
此时:
声学模型,P(U|Q):计算任何音素 Q 匹配语音数据 U 的概率。
发音模型,P(Q|W):计算文本(词)W与音素Q匹配的概率。上面提到的这部分以字典的形式实现,其实可以使用更复杂的模型。
语言模型,P(W):计算文本(词)W 在语义上合理的概率。
3.核心系统:声学模型
语音数据的时间特性要求我们在建模时不能独立考虑每一帧数据,而必须反映它们的上下文关系。在处理这样的时间序列数据时,状态机模型是一个很好的抽象。状态机模型是对一系列状态(States)和状态关系的建模。
状态机模型根据状态转移是否随机可分为确定性模型(Deterministic Models)和随机模型(Stochastic Models)。
通俗的说,假设我们把聊天对话看成一个随机过程补习外教,我在聊天的时候说了一句“今天天气真不好”(一种状态),而这句话的出现是因为之前聊天中说的所有话结果。但是马尔可夫假设将这简化为这样一个事实,即句子出现只是因为前一句所说的。这种方法看起来非常简单粗暴,但正是这种假设使得很多问题的分析和建模变得简单,并且仍然获得了非常好的最终结果。
▲MarkovModels
如上图所示,马尔可夫模型可以分为四种主要类型。哪一种更适合建模语音识别?
在声学模型中,我们需要考虑两种状态:
语音音素状态:未知
语音功能状态:已知
▲嗯
上图以“挖一年演讲”为例。顶层是单词外教英文,中间层是分段音素,底层是实际输入的语音数据。声学模型处理第二层和第三层。州地图。
图中这种状态连接的原因是:
由于构词和语义内涵,语音的音素状态之间具有状态相关性。
语音特征状态是由隐含的语音音素产生的,因此它们之间存在状态相关性。语音特征本身没有语义相关性。
这种建模的结果实际上是一个隐马尔可夫模型(HMM)。下图是HMM的概率图模型:
▲HmmOrig
隐马尔可夫模型是语音识别技术中的主要模型。尽管已经开发了端到端的深度学习语音识别模型(例如百度的 Deep Voice)学英语菲律宾,但 HMM 仍然是 ASR 系统中非常常见的模型。
4.核心系统:语言模型
语言模型用于计算一段文本是否“合理”。比如“今天天气不好”,语法正确,语义很清楚;而像“今天天气不好”这样的句子很难理解是什么意思,所以第一个句子出现的概率会比第二个句子出现的概率高很多。
在语音识别中,如果同一个语音只对应音素和单词,很多可能的句子仍然会被拼凑在一起,其中很多可能根本不符合语法,没有合理的语义。通过语言模型,我们可以过滤掉那些有意义的句子。
最常用的语言模型是 n-gram 模型,其中 n 表示我们要关联的前几个单词。以最简单的 Bigram 模型(即 n=2)为例,我们使用
是不是感觉很熟悉?上面提到的马尔可夫假设其实是指n=2时的情况,也就是我们只考虑词前的词。
你一定认为你想得越多越好吗?如果 n 更大,是否可以包含更多信息?但实际上,n 并不是越大越好,如果 n 太大,概率的计算成本会变得非常非常大。在权衡 n 的大小和计算效率时,将 n 选择在 3 到 5 的范围内可能就足以使模型具有非常好的精度。
n-grams模型在语言模型上取得了非常好的效果,而且模型也很简单,是一个很常见的模型。然而,在神经网络重新出现后,出现了神经网络语言模型。其中以递归神经网络语言模型(RNN,Recurrent Neural Network Language Model)语言模型为代表,取得了比n-grams模型更好的效果。
▲RNNL
图为 Mikolov 等人提出的 RNN 语言模型架构。
转移概率通常通过解码算法(Decoding Algorithms)计算,例如维特比算法。输出概率有多种计算方法,这些不同的计算方法是不同的声学模型。(熟悉?把h换成W,v换成U,输出概率就是声学模型需要计算的)。
5. 搜索/解码算法
上面我们提到了 HMM 的概率图模型,它包含两种概率:
在HMM框架下,一般采用维特比解码算法。算法的细节在此不再详述。除维特比算法外,还有其他适合在不同条件下使用的搜索算法,如Beam Search、Multipass Search、Weighted Finite State Transducer(WFST)等方法。
提高语音识别准确率的最大瓶颈
本节介绍语音识别中声学模型中较为复杂的部分。
声学模型一直是提高语音识别准确率的最大瓶颈。这部分主要介绍高斯混合模型和神经网络模型。
1. 高斯混合模型
我们看到要由声学模型计算的输出概率包含在 HMM 框架中。这个概率不是由 HMM 模型生成的,而是需要使用其他模型。
要计算机器学习中的概率,最简单的假设通常是该概率服从高斯分布。在语音识别的上下文中,假设要计算的输出概率遵循多元高斯:
事实上英语培训,在深度神经网络重新进入语音识别领域之前,语音识别领域一直以 HMM-GMM 混合模型为主,很多至今仍在使用。GMM可以模拟任意精度的概率分布曲线,易于训练(EM算法)。
但是使用 GMM 有点不尽人意:GMM 假设每个声学特征向量都是独立的,这与我们之前说的语音数据的时序相冲突。
GMM中的协方差可以描述特征向量的上下文相关性,但这样做的代价是模型的训练计算过于复杂,计算成本太高。
在找到更好的方法来计算输出概率之前,GMM 可以得到很好的结果。然而,神经网络模型在过去十年中发展迅速,使其成为主流声学模型而不是 GMM。
2. 深度学习模型
神经网络模型(NN,Neural Networks)重新出现后,又迅速被应用到语音识别领域。这里没有具体介绍神经网络模型。与上面提到的高斯混合模型GMM相比,神经网络的优势在于:
可以输入多个连续帧的特征向量(GMM只能输入一帧)
模型的深度可以增加(GMM只有一层)
可以去掉HMM,实现端到端的模型
神经网络模型可以多种形式应用于语音识别的声学建模:
NN/HMM混合系统(Hybrid NN/HMM System):即在HMM框架中能动英语七步语音处理流程【Emotibot Tech】人机交互入口之语音识别,用NN代替GMM来计算输出概率密度函数。这种方法最常用也最方便,不需要重新设计整个系统。
串联特征:这种方法使用神经网络模型作为特征提取工具,从输入数据中生成附加特征,然后与输入数据一起馈送到 HMM/GMM 模型。如下所示:
端到端模型:从输入向量到输出结果的整个过程都是用一个神经网络完成的。由于神经网络可以很好地提取特征,特别是在高维空间,它可以替代HMM框架完成整个系统流程。
近年来主流的深度学习语音识别模型通常使用第一种混合系统模型。我们可以将 DNN 替换为其他深度学习架构,例如 RNN、CNN、LSTM 等。
▲RNN
总结
近年来,语音识别技术发展迅速,在标准测试中其整体识别准确率已接近人类。
但是在日常使用中,我们还是会发现这些语音助手总是会犯很多搞笑的错误。
事实上,语音识别领域还有很多问题需要解决。例如,在复杂的声音环境中,如何识别语音识别的用户发出了哪些声音;如何解决方言发音的语音识别问题;如何解决跨语言语音识别问题等研究课题。让我们一起期待“不用用手就能动嘴”的那一天!
参考:
1. JURAFSKY, D., AND MARTIN, JHSpeech & language processing。印度培生教育,2000 年。
2. ABDEL-HAMID, O., MOHAMED,A.-R., JIANG, H., DENG, L., PENN, G., AND YU, D. 用于语音识别的卷积神经网络。IEEE/ACM 音频、语音和语言处理交易 (TASLP) 22, 10 (2014), 1533–1545。
3. BOURLARD, HA 和 MORGAN, N. Connectionist 语音识别:一种混合方法,卷。247. 施普林格科学与商业媒体,2012 年。
4. GALES, M., AND YOUNG, S. 隐马尔可夫模型在语音识别中的应用。信号处理的基础和趋势 1, 3 (2008), 195–304。
5. GAROFOLO, JOHN, EA Timitacoustic-语音连续语音语料库。TIMIT Acoustic-Phonetic 连续语音语料库。于 2015 年 4 月 6 日访问。
6. Graves, A., JAITLY, N., ANDMOHAMED, A.-R。具有深度双向 lstm 的混合语音识别。InAutomatic Speech Recognition and Understanding (ASRU), 2013 IEEE Workshop on (2013), IEEE, pp. 273–278。
7. RAVES, A., MOHAMED, A.-R., ANDHINTON, G. 使用深度循环神经网络进行语音识别。InAcoustics, Speech and Signal Processing (ICASSP), 2013 IEEE International Conference on (2013), IEEE, pp. 6645 –6649。
8. HANNUN, A.、CASE, C.、CASPER, J.、CATANZARO, B.、DIAMOS, G.、ELSEN, E.、PRENGER, R.、SATHEESH, S.、SENGUPTA, S.、COATES, A .,等人。Deepspeech:扩大端到端语音识别。arXiv 预印本 arXiv:1412.5567 (2014)。
9. HINTON, G., DENG, L., YU, D., DAHL, GE, MOHAMED, A.-R., JAITLY, N., SENIOR, A., VANHOUCKE, V., NGUYEN, P., SAINATH ,田纳西州,等人。语音识别中声学建模的深度神经网络:四个研究小组的共同观点。信号处理杂志,IEEE 29, 6 (2012), 82–97。
10. ROBINSON, T.、HOCHBERG, M. 和 RENALS, S. 循环神经网络在连续语音识别中的应用。在自动语音和说话人识别中。施普林格,1996 年,第 233-258 页。
作者:叶俊杰,Emotibot研究工程师,筑建智能
链接:Bamboo Smart Emotibot
版权归作者所有。商业转载请联系作者授权能动英语七步语音处理流程,非商业转载请注明出处。
发表评论
评论列表13人参与