语音识别概念

语音识别技术就是让智能设备听懂人类的语音。例如二进制编码或者字符序列。语音识别是一门涉及数字信号处理、人工智能、语言学、数理统计学、声学、情感学及心理学等多学科交叉的科学。这项技术可以提供比如自动客服、自动语音翻译、命令控制、语音验证码等多项应用。近年来,随着人工智能的兴起,语音识别技术在理论和应用方面都取得大突破,开始从实验室走向市场,已逐渐走进我们的日常生活。现在语音识别己用于许多领域,主要包括语音识别听写器、语音寻呼和答疑平台、自主广告平台,智能客服等。

发展历史

在1952年,贝尔研究所研制了世界上第一个能识别10个英文数字发音的系统。IBM在60年代初期创建了一一个名为Shoebox的试验性的语音识别系统。这个系统解决了口语算法问题,在60年代初,IBM的Shoebox设备能够识别出16个口语单词并且能够回答简单的数学问题,如3+4=?。

1960年英国的Denes(德内斯)等人研制了世界上第一个语音识别(ASR)系统。大规模的语音识别研究始于70年代,并在单个词的识别方面取得了实质性的进展。上世纪80年代以后,语音识别研究的重点逐渐转向更通用的大词汇量、非特定人的连续语音识别。

90年代以来,语音识别的研究一直没有太大进步。但是,在语音识别技术的应用及产品化方面取得了较大的进展。

自2009年以来,得益于深度学习研究的突破以及大量语音数据的积累,语音识别技术得到了突飞猛进的发展。

深度学习研究使用预训练的多层神经网络,提高了声学模型的准确率。微软的研究人员率先取得了突破性进展,他们使用深层神经网络模型后,语音识别错误率降低了三分之一,成为近20年来语音识别技术方面最快的进步。

另外,随着手机等移动终端的普及,多个渠道积累了大量的文本语料或语音语料,这为模型训练提供了基础,使得构建通用的大规模语言模型和声学模型成为可能。在语音识别中,丰富的样本数据是推动系统性能快速提升的重要前提,但是语料的标注需要长期的积累和沉淀,大规模语料资源的积累需要被提高到战略高度。

今天,语音识别在移动端和音箱的应用上最为火热,语音聊天机器人、语音助手等软件层出不穷。许多人初次接触语音识别可能归功于苹果手机的语音助手Siri。

Siri技术来源于美国国防部高级研究规划局(DARPA)的CALO计划:初衷是一个让军方简化处理繁重复杂的事务,并具备认知能力进行学习、组织的数字助理,其民用版即为Siri虚拟个人助理。

语音识别的 一般流程

在这里插入图片描述系统主要包含特征提取、声学模型,语言模型以及字典与解码四大部分。

其中为了更有效地提取特征一般要对所采集到的声音信号进行预处理工作,把要分析的信号从原始信号中提取出来;

  • 特征提取:将声音信号从时域转换到频域,为声学模型提供特征向量;
  • 声学模型:声学特性计算每一个特征向量在声学特征上的得分;
  • 语言模型:根据语言学相关的理论,计算该声音信号对应可能词组序列的概率;
  • 字典:对词组序列进行解码,得到最后可能的文本表示。

预处理常用方法

  • AEC(回声消除):如果用于识别的设备,在识别语音时本身在播放音乐或者音频,此时对于识别的语音输入就有回声的存在,需要使用回声消除,得到纯净的输入语音
  • De-reverb(去混响):在相对小一点的房间中录音,会有混响的存在,混响严重时会影响语音识别的效果
  • Beamforming:多通道信号合并
  • NS(降噪):降噪可以看成滤波的一种。降噪的目的在于突出信号本身而抑制噪声影响
  • AGC(音频自动增益):声音信号幅度的自动变化,如声音远近的不同
  • WF(滤波):将信号中特定波段频率滤除的操作,是抑制和防止干扰的一项重要措施
  • Framing(分帧):为了程序能够进行批量处理,会根据指定的长度(时间段或者采样数)进行分段

声学模型

1.多样性问题

  • 语境多样性:同一个词在不同的语境中表现出不同的含义。
  • 风格多样性:同一个说话人,说话风格有时也会有所差异,如演讲时和与朋友聊天时的风格就有所差异。
  • 说话人多样性:在语音识别任务中,一种任务是不管说话人是谁,说了同样的文字内容,我们都要把说具体内容* 识别出来;反过来的一种任务是说话人识别,就是不管说话人说什么内容,我们都要把说话人识别出来。相同的* 语音信号包含了很多不同的信息,也导致了声学信号的不同。
  • 设备多样性:我们知道同样的说话内容通过不同语音设备(如手机,音响,麦克风等)表现也各不相同,同时设* 备质量的不同也会引入很多的噪音,导致声学信号也不相同。
  • 这些多样性问题都增加了声学模型处理的难度和挑战。

2.语音识别任务的指标

  • STOA和标准可以参考:
    https://chimechallenge.github.io/
  • 对于简单的任务识别的错误率很快便达到了4%以下,但是对于复杂场景下的识别任务,当时错误率在50%左右。
  • 此外,从这里也可以看出,通常情况下,谈到语音识别准确率(或错误率)都需要与其对应的任务联系起来的。

语言模型

语言模型

在语音识别的语言模型中,最常用的是语言模型,换句话说就是要计算一个序列(句子)出现的概率。
语言模型主要用来决定哪个词序列概率更大,或者根据前一个或几个词的情况下预测最有可能的下一个词。

解码器

采用维特比算法(Viterbi),综合声学模型与语言模型的结果,给定输入特征序列,找出最有可能的词序列,利用起始概率、转移概率、发射概率寻找全局最优的词序列。

工作原理

  • 第一步,把帧识别成状态。
  • 第二步,把状态组合成音素。
  • 第三步,把音素组合成单词。
  • 首先,我们知道声音实际上是一种波。
  • 常见的mp3等格式都是压缩格式,必须转成非压缩的纯波形文件来处理,比如Windows PCM文件,也就是俗称的wav文件。

在这里插入图片描述

1.分析声音

在这里插入图片描述
图中,每帧的长度为25毫秒,每两帧之间有25-10=15毫秒的交叠。我们称为以帧长25ms、帧移10ms分帧。分帧后,语音就变成了很多小段。

2.提取特征

波形在时域上几乎没有描述能力,因此必须将波形作变换。
把每一帧波形变成一个多维向量,简单地理解为这个向量包含了这帧语音的内容信息。
这个过程叫做声学特征提取。

在这里插入图片描述

3.识别音素和状态(声学模型)

音素:单词的发音由音素构成。对英语,一种常用的音素集是卡内基梅隆大学的一套由39个音素构成的音素集。汉语一般直接用全部声母和韵母作为音素集,另外汉语识别还分有调无调,不详述。
状态:比音素更细致的语音单位。通常把一个音素划分成3个状态。
在这里插入图片描述
在这里插入图片描述
每个小竖条代表一帧,若干帧语音对应一个状态,每三个状态组合成一个音素,若干个音素组合成一个单词。也就是说,只要知道每帧语音对应哪个状态了。

语音识别技术简介

从语音识别算法的发展来看,语音识别技术主要分为三大类,第一类是模型匹配法,包括矢量量化(VQ) 、动态时间规整(DTW)等;第二类是概率统计方法,包括高斯混合模型(GMM) 、隐马尔科夫模型(HMM)等;第三类是辨别器分类方法,如支持向量机(SVM) 、人工神经网络(ANN)和深度神经网络(DNN)等以及多种组合方法。下面对主流的识别技术做简单介绍:

1.动态时间规整(DTW)

语音识别中,由于语音信号的随机性,即使同一个人发的同一个音,只要说话环境和情绪不同,时间长度也不尽相同,因此时间规整是必不可少的。DTW是一种将时间规整与距离测度有机结合的非线性规整技术,在语音识别时,需要把测试模板与参考模板进行实际比对和非线性伸缩,并依照某种距离测度选取距离最小的模板作为识别结果输出。动态时间规整技术的引入,将测试语音映射到标准语音时间轴上,使长短不等的两个信号最后通过时间轴弯折达到一样的时间长度,进而使得匹配差别最小,结合距离测度,得到测试语音与标准语音之间的距离。

2.支持向量机(SVM)

支持向量机是建立在VC维理论和结构风险最小理论基础上的分类方法,它是根据有限样本信息在模型复杂度与学习能力之间寻求最佳折中。从理论上说,SVM就是一个简单的寻优过程,它解决了神经网络算法中局部极值的问题,得到的是全局最优解。SVM已经成功地应用到语音识别中,并表现出良好的识别性能。

3.矢量量化(VQ)

矢量量化是一种广泛应用于语音和图像压缩编码等领域的重要信号压缩技术,思想来自香农的率-失真理论。其基本原理是把每帧特征矢量参数在多维空间中进行整体量化,在信息量损失较小的情况下对数据进行压缩。因此,它不仅可以减小数据存储,而且还能提高系统运行速度,保证语音编码质量和压缩效率,一般应用于小词汇量的孤立词语音识别系统。

4.隐马尔科夫模型(HMM)

隐马尔科夫模型是一种统计模型,目前多应用于语音信号处理领域。在该模型中,马尔科夫(Markov)链中的一个状态是否转移到另一个状态取决于状态转移概率,而某一状态产生的观察值取决于状态生成概率。在进行语音识别时,HMM首先为每个识别单元建立发声模型,通过长时间训练得到状态转移概率矩阵和输出概率矩阵,在识别时根据状态转移过程中的最大概率进行判决。

5.高斯混合模型(GMM)

高斯混合模型是单一高斯概率密度函数的延伸,GMM能够平滑地近似任意形状的密度分布。高斯混合模型种类有单高斯模型(Single Gaussian Model, SGM)和高斯混合模型(Gaussian Mixture Model, GMM)两类。类似于聚类,根据高斯概率密度函数(Probability Density Function, PDF)参数不同,每一个高斯模型可以看作一种类别,输入一个样本x,即可通过PDF计算其值,然后通过一个阈值来判断该样本是否属于高斯模型。很明显,SGM适合于仅有两类别问题的划分,而GMM由于具有多个模型,划分更为精细,适用于多类别的划分,可以应用于复杂对象建模。目前在语音识别领域,GMM需要和HMM一起构建完整的语音识别系统。

6.人工神经网络(ANN/BP)

人工神经网络由20世纪80年代末提出,其本质是一个基于生物神经系统的自适应非线性动力学系统,它旨在充分模拟神经系统执行任务的方式。如同人的大脑一样,神经网络是由相互联系、相互影响各自行为的神经元构成,这些神经元也称为节点或处理单元。神经网络通过大量节点来模仿人类神经元活动,并将所有节点连接成信息处理系统,以此来反映人脑功能的基本特性。尽管ANN模拟和抽象人脑功能很精准,但它毕竟是人工神经网络,只是一种模拟生物感知特性的分布式并行处理模型。ANN的独特优点及其强大的分类能力和输入输出映射能力促成在许多领域被广泛应用,特别在语音识别、图像处理、指纹识别、计算机智能控制及专家系统等领域。但从当前语音识别系统来看,由于ANN对语音信号的时间动态特性描述不够充分,大部分采用ANN与传统识别算法相结合的系统。

7.深度神经网络/深信度网络-隐马尔科夫(DNN/DBN-HMM)

当前诸如ANN,BP等多数分类的学习方法都是浅层结构算法,与深层算法相比存在局限。尤其当样本数据有限时,它们表征复杂函数的能力明显不足。深度学习可通过学习深层非线性网络结构,实现复杂函数逼近,表征输入数据分布式,并展现从少数样本集中学习本质特征的强大能力。在深度结构非凸目标代价函数中普遍存在的局部最小问题是训练效果不理想的主要根源。为了解决以上问题,提出基于深度神经网络(DNN) 的非监督贪心逐层训练算法,它利用空间相对关系减少参数数目以提高神经网络的训练性能。相比传统的基于GMM-HMM的语音识别系统,其最大的改变是采用深度神经网络替换GMM模型对语音的观察概率进行建模。最初主流的深度神经网络是最简单的前馈型深度神经网络(Feedforward Deep Neural Network,FDNN)。DNN相比GMM的优势在于:1. 使用DNN估计HMM的状态的后验概率分布不需要对语音数据分布进行假设;2. DNN的输入特征可以是多种特征的融合,包括离散或者连续的;3. DNN可以利用相邻的语音帧所包含的结构信息。基于DNN-HMM识别系统的模型如图2所示。
在这里插入图片描述

8.循环神经网络(RNN)

语音识别需要对波形进行加窗、分帧、提取特征等预处理。训练GMM时候,输入特征一般只能是单帧的信号,而对于DNN可以采用拼接帧作为输入,这些是DNN相比GMM可以获得很大性能提升的关键因素。然而,语音是一种各帧之间具有很强相关性的复杂时变信号,这种相关性主要体现在说话时的协同发音现象上,往往前后好几个字对我们正要说的字都有影响,也就是语音的各帧之间具有长时相关性。采用拼接帧的方式可以学到一定程度的上下文信息。但是由于DNN输入的窗长是固定的,学习到的是固定输入到输入的映射关系,从而导致DNN对于时序信息的长时相关性的建模是较弱的。

在这里插入图片描述
考虑到语音信号的长时相关性,一个自然而然的想法是选用具有更强长时建模能力的神经网络模型。于是,循环神经网络(Recurrent Neural Network,RNN)近年来逐渐替代传统的DNN成为主流的语音识别建模方案。如图3,相比前馈型神经网络DNN,循环神经网络在隐层上增加了一个反馈连接,也就是说,RNN隐层当前时刻的输入有一部分是前一时刻的隐层输出,这使得RNN可以通过循环反馈连接看到前面所有时刻的信息,这赋予了RNN记忆功能。这些特点使得RNN非常适合用于对时序信号的建模。

9.长短时记忆模块(LSTM)

长短时记忆模块 (Long-Short Term Memory,LSTM) 的引入解决了传统简单RNN梯度消失等问题,使得RNN框架可以在语音识别领域实用化并获得了超越DNN的效果,目前已经使用在业界一些比较先进的语音系统中。除此之外,研究人员还在RNN的基础上做了进一步改进工作,如图4是当前语音识别中的主流RNN声学模型框架,主要包含两部分:深层双向RNN和序列短时分类(Connectionist Temporal Classification,CTC)输出层。其中双向RNN对当前语音帧进行判断时,不仅可以利用历史的语音信息,还可以利用未来的语音信息,从而进行更加准确的决策;CTC使得训练过程无需帧级别的标注,实现有效的“端对端”训练。
在这里插入图片描述

10.卷积神经网络(CNN)

CNN早在2012年就被用于语音识别系统,并且一直以来都有很多研究人员积极投身于基于CNN的语音识别系统的研究,但始终没有大的突破。最主要的原因是他们没有突破传统前馈神经网络采用固定长度的帧拼接作为输入的思维定式,从而无法看到足够长的语音上下文信息。另外一个缺陷是他们只是将CNN视作一种特征提取器,因此所用的卷积层数很少,一般只有一到二层,这样的卷积网络表达能力十分有限。针对这些问题,提出了一种名为深度全序列卷积神经网络(Deep Fully Convolutional Neural Network,DFCNN)的语音识别框架,使用大量的卷积层直接对整句语音信号进行建模,更好地表达了语音的长时相关性。

DFCNN的结构如图5所示,它直接将一句语音转化成一张图像作为输入,即先对每帧语音进行傅里叶变换,再将时间和频率作为图像的两个维度,然后通过非常多的卷积层和池化(pooling)层的组合,对整句语音进行建模,输出单元直接与最终的识别结果比如音节或者汉字相对应。
在这里插入图片描述

语音识别技术的应用与发展前景

语音识别技术的应用主要有以下两个方面。一是用于人机交流。目前这方面应用的呼声很高,因为使用键盘、鼠标与电子计算机进行交流的这种方式,使许多非专业人员,特别是不懂英语或不熟悉汉语拼音的人被拒之于门外,影响到电子计算机的进一步普及。语音识别技术的采用,改变了人与计算机的互动模式,人们只需动动口,就能打开或关闭程序,改变工作界面。这种使电脑人性化的结果是使人的双手得到解放,使每个人都能操作和应用计算机。电话仍是目前使用最为普遍的通信工具,通过电话与语音识别系统的协同工作,可以实现语音拨号、电话购物以及通过电话办理银行业务、炒股、上网检索信息或处理电子件等。不久,能按主人口令接通电话、打开收音机,以及通过声纹识别来者身份的安全系统也将获得应用。
  语音识别技术的另一方面应用便是语音输入和合成语音输出。现在,已经出现能将口述的文稿输入计算机并按指定格式编排的语音软件,它比通过键盘输入在速度上要提高2~4倍。装有语音软件的电脑还能通过语音合成把计算机里的文件用各种语言“读”出来,这将大大推进远程通信和网络电话的发展。

1.语音识别与人工智能

语音识别作为常见的人工智能应用,它可以将口语单词转换为文本,对文本进行处理以得出其含义。由于人类经常以口语,缩写和首字母缩写讲话,因此需要对自然语言进行大量的计算机分析才能产生准确的转录。现阶段这项技术已经成为人工智能领域的重点研究方向和实现人机语音交互的关键性技术,一直备受世界各国人工智能领域专家的重点关注。现阶段各种以语音智能这项识别技术为基础的产品也被开发出来,并广泛应用于我国社会发展的各个领域,还在应用方面展现出了极大的优势,如声控电话交换和语音通信系统等。但在语音识别这项技术的实际应用过程中,还存在不少技术方面的瓶颈,怎样通过融合人工智能技术和芯片,来使语音智能识别这项技术实现更好地发展,这是本世纪内中最重要的一项研究课题之一。

2.语言智能方面识别技术的应用瓶颈

截止目前,语音智能这项识别技术有以下几个主要问题:

(1)识别语音的过程中很容易受到外界干扰。不同种类的麦克风所具备的性能存在差异性,这也会对识别的结果造成很大影响。另外,在环境噪音较强的情况下提取声音,其识别结果也会受到一定程度的干扰。这些因素的存在都会影响识别声音效果的准确性。

(2)识别声音的系统仍然不够完善。这项技术在识别不同种类语言方面会受到较大限制,一般只能识别普通话,无法识别地方方言。这项技术在汽车和手机上都有广泛使用,针对的用户群体相对比较复杂,如果用户不会说普通话或者方言口音较重,那么声音识别系统暂时还无法有效识别。这种类型的语音导致实际应用范围比较受限。

(3)无法进行准确识别和判断。通常情况下人类声音在各种不同条件下,可能会发生一定程度的变化。例如,在人类身体状况有一定变化时,也会影响语音识别系统对语音的识别效果。另外,在一些特殊情况下,这种瓶颈的存在容易导致安全隐患。

3.语音识别技术的发展前景

语音识别技术的发展的确经历了一个漫长的渐进过程。二十多年前,它还只是科研人员在实验室里描述的一个梦想般的希望,但两个方面的进步终于促成了这一技术的平民化。其一,半导体技术的发展使得以前只有在巨型机上才能进行的语音识别系统如今在微机上就可以实现。其二,软件技术的演进也使得这项技术走向实用,一些核心算法,如特征提取、语音的声学摸型及相应的语言模型,搜索算法及自适应算法等都取得了长足的进展。软硬件技术的有效结合为我们提供了一种全新的远景。

目前,在信息处理、教育与商务应用、消费电子应用方面,语音识别技术都已经展现出了它的巨大优势。

转载自:心伽马《语言识别技术介绍》
转载自:webrtc《语言识别技术简述》

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐