人工智能首页 > 语音识别 > 正文

ai study 带你深入了解语音识别技术原理

2019-04-30 阅读888次


  语音识别简介


  语音识别是一门交叉学科。近二十年来,语音识别技术取得显著进步,开始从实验室走向市场。人们预计,未来10年内,语音识别技术将进入工业、家电、通信、汽车电子、医疗、家庭服务、消费电子产品等各个领域。 语音识别听写机在一些领域的应用被美国新闻界评为1997年计算机发展十件大事之一。很多专家都认为语音识别技术是2000年至2010年间信息技术领域十大重要的科技发展技术之一。

  语音识别技术所涉及领域

  语音识别技术所涉及的领域包括:信号处理、模式识别、概率论和信息论、发声机理和听觉机理、人工智能等等。


  语音识别发展史


  1952年贝尔研究所Davis等人研究成功了世界上第一个能识别10个英文数字发音的实验系统。

  1960年英国的Denes等人研究成功了第一个计算机语音识别系统。

  大规模的语音识别研究是在进入了70年代以后,在小词汇量、孤立词的识别方面取得了实质性的进展。

  进入80年代以后,研究的重点逐渐转向大词汇量、非特定人连续语音识别。在研究思路上也发生了重大变化,即由传统的基于标准模板匹配的技术思路开始转向基于统计模型 (HMM)的技术思路。此外,再次提出了将神经网络技术引入语音识别问题的技术思路。

  进入90年代以后,在语音识别的系统框架方面并没有什么重大突破。但是,在语音识别技术的应用及产品化方面出现了很大的进展。

  DARPA(Defense Advanced Research Projects Agency)是在70年代由美国国防部远景研究计划局资助的一项10年计划,其旨在支持语言理解系统的研究开发工作。

  到了80年代,美国国防部远景研究计划局又资助了一项为期10年的DARPA战略计划,其中包括噪声下的语音识别和会话(口语)识别系统,识别任务设定为“(1000单词)连续语音数据库管理”。

  到了90年代,这一DARPA计划仍在持续进行中。其研究重点已转向识别装置中的自然语言处理部分,识别任务设定为“航空旅行信息检索”。

  日本也在1981年的第五代计算机计划中提出了有关语音识别输入-输出自然语言的宏伟目标,虽然没能实现预期目标,但是有关语音识别技术的研究有了大幅度的加强和进展。

  语音识别与前端处理

  前端处理是指在特征提取之前,先对原始语音进行处理,部分消除噪声和不同说话人带来的影响,使处理后的信号更能反映语音的本质特征。最常用的前端处理有端点检测和语音增强。端点检测是指在语音信号中将语音和非语音信号时段区分开来,准确地确定出语音信号的起始点。经过端点检测后,后续处理就可以只对语音信号进行,这对提高模型的精确度和识别正确率有重要作用。语音增强的主要任务就是消除环境噪声对语音的影响。目前通用的方法是采用维纳滤波,该方法在噪声较大的情况下效果好于其它滤波器。


  语音识别的技术原理是什么?


  首先,我们知道声音实际上是一种波。常见的 mp3等格式都是压缩格式, 必须转成非压缩的纯波形文件来处理,比如 Windows PCM文件,也就是俗称 的 wav 文件。 wav 文件里存储的除了一个文件头以外,就是声音波形的一个个 点了。下图是一个波形的示例。

  在开始语音识别之前, 有时需要把首尾端的静音切除, 降低对后续步骤造成 的干扰。这个静音切除的操作一般称为 VAD ,需要用到信号处理的一些技术。 要对声音进行分析, 需要对声音分帧, 也就是把声音切开成一小段一小段, 每小 段称为一帧。 分帧操作一般不是简单的切开, 而是使用移动窗函数来实现, 这里 不详述。帧与帧之间一般是有交叠的,就像下图这样:


  图中,每帧的长度为 25毫秒,每两帧之间有 25-10=15毫秒的交叠。我们 称为以帧长 25ms 、帧移 10ms 分帧。分帧后,语音就变成了很多小段。但波形 在时域上几乎没有描述能力, 因此必须将波形作变换。

  常见的一种变换方法是提取 MFCC 特征,根据人耳的生理特性,把每一帧波形变成一个多维向量,可以 简单地理解为这个向量包含了这帧语音的内容信息。这个过程叫做声学特征提 取。实际应用中,这一步有很多细节,声学特征也不止有 MFCC 这一种,具体 这里不讲。 至此, 声音就成了一个 12行 (假设声学特征是 12维 ) 、 N 列的一个矩 阵,称之为观察序列,这里 N 为总帧数。观察序列如下图所示,图中,每一帧 都用一个 12维的向量表示,色块的颜色深浅表示向量值的大小。

  接下来就要介绍怎样把这个矩阵变成文本了。首先要介绍两个概念:

  音素:单词的发音由音素构成。 对英语, 一种常用的音素集是卡内基梅隆大 学的一套由 39个音素构成的音素集,参见 The CMU Pronouncing

  Dictionary 汉语一般 直接用全部声母和韵母作为音素集,另外汉语识别还分有调无调,不详述。 状态:这里理解成比音素更细致的语音单位就行啦。 通常把一个音素划分成 3个状态。语音识别是怎么工作的呢 ?

  实际上一点都不神秘,无非是:第一步,

  把帧识别成状态 (难点 ) 。第二步,把状态组合成音素。第三步,把音素组合成单 词。如下图所示:

  图中, 每个小竖条代表一帧, 若干帧语音对应一个状态, 每三个状态组合成 一个音素, 若干个音素组合成一个单词。 也就是说, 只要知道每帧语音对应哪个 状态了,语音识别的结果也就出来了。那每帧音素对应哪个状态呢 ? 有个容易想 到的办法, 看某帧对应哪个状态的概率最大, 那这帧就属于哪个状态。 比如下面 的示意图,这帧在状态 S3上的条件概率最大,因此就猜这帧属于状态 S3。

  那这些用到的概率从哪里读取呢 ? 有个叫“声学模型”的东西,里面存了一 大堆参数, 通过这些参数, 就可以知道帧和状态对应的概率。

  


  如何快速入门语音识别技术


  1.不要在一本书上吊死。网上还有很多很亲切的材料等待您去挖掘

  例如这篇:GMM-HMM语音识别模型

  原理篇,从这篇里的reference里面进行深挖,得到了下面这个宝贝:爱丁堡大学ASR公开课,2016年出的从传统模型开始讲起,一直讲到DNN+HMM和最近的端对端模型。关键讲得很清楚。

  2.看最近的paper。比如最近的attention模型,ctc的模型,已经抛弃了hmm的结构,实现了端对端,可以说训练起来更加自然了

  好了关于语言识别技术小编今天就为大家整理到这,如果你对于语音识别及ai互联网技术也感兴趣,请关注ai study人工智能科技,在这里小编和你一起学习一起成长,加油小伙伴让我们成为更好自己吧;)


随意打赏