广告

语音识别技术分析:语音变成文字其实没有那么神秘

2016-06-23 张俊博 极客公园 阅读:
简要给大家介绍一下语音怎么变文字的吧。希望这个介绍能让所有同学看懂。

简要给大家介绍一下语音怎么变文字的吧。希望这个介绍能让所有同学看懂。75Iednc

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

2016JUN19 OS EMBEDDED NT 01 58 75Iednc

在开始语音识别之前,有时需要把首尾端的静音切除,降低对后续步骤造成的干扰。这个静音切除的操作一般称为 VAD,需要用到信号处理的一些技术。75Iednc

要对声音进行分析,需要对声音分帧,也就是把声音切开成一小段一小段,每小段称为一帧。分帧操作一般不是简单的切开,而是使用移动窗函数来实现,这里不详述。帧与帧之间一般是有交叠的,就像下图这样:75Iednc

2016JUN19 OS EMBEDDED NT 01 5975Iednc

图中,每帧的长度为 25 毫秒,每两帧之间有 25-10=15 毫秒的交叠。我们称为以帧长 25 ms、帧移 10 ms 分帧。图中,每帧的长度为 25 毫秒,每两帧之间有 25-10=15 毫秒的交叠。我们称为以帧长 25 ms、帧移 10 ms 分帧。75Iednc

分帧后,语音就变成了很多小段。但波形在时域上几乎没有描述能力,因此必须将波形作变换。常见的一种变换方法是提取 MFCC 特征,根据人耳的生理特性,把每一帧波形变成一个多维向量,可以简单地理解为这个向量包含了这帧语音的内容信息。这个过程叫做声学特征提取。实际应用中,这一步有很多细节,声学特征也不止有 MFCC 这一种,具体这里不讲。75Iednc

至此,声音就成了一个 12 行(假设声学特征是 12 维)、N 列的一个矩阵,称之为观察序列,这里 N 为总帧数。观察序列如下图所示,图中,每一帧都用一个 12 维的向量表示,色块的颜色深浅表示向量值的大小。75Iednc

2016JUN19 OS EMBEDDED NT 01 60 75Iednc

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

1.音素:单词的发音由音素构成。对英语,一种常用的音素集是卡内基梅隆大学的一套由 39 个音素构成的音素集,参见 The CMU Pronouncing Dictionary。汉语一般直接用全部声母和韵母作为音素集,另外汉语识别还分有调无调,不详述。75Iednc

2.状态:这里理解成比音素更细致的语音单位就行啦。通常把一个音素划分成 3 个状态。75Iednc

语音识别是怎么工作的呢?实际上一点都不神秘,无非是:75Iednc

第一步,把帧识别成状态(难点);75Iednc

第二步,把状态组合成音素;75Iednc

第三步,把音素组合成单词。75Iednc

如下图所示:75Iednc

2016JUN19 OS EMBEDDED NT 01 6175Iednc

图中,每个小竖条代表一帧,若干帧语音对应一个状态,每三个状态组合成一个音素,若干个音素组合成一个单词。也就是说,只要知道每帧语音对应哪个状态了,语音识别的结果也就出来了。图中,每个小竖条代表一帧,若干帧语音对应一个状态,每三个状态组合成一个音素,若干个音素组合成一个单词。也就是说,只要知道每帧语音对应哪个状态了,语音识别的结果也就出来了。75Iednc

那每帧音素对应哪个状态呢?有个容易想到的办法,看某帧对应哪个状态的概率最大,那这帧就属于哪个状态。比如下面的示意图,这帧对应 S3 状态的概率最大,因此就让这帧属于 S3 状态。75Iednc

2016JUN19 OS EMBEDDED NT 01 62 75Iednc

那这些用到的概率从哪里读取呢?有个叫「声学模型」的东西,里面存了一大堆参数,通过这些参数,就可以知道帧和状态对应的概率。获取这一大堆参数的方法叫做「训练」,需要使用巨大数量的语音数据,训练的方法比较繁琐,这里不讲。75Iednc

但这样做有一个问题:每一帧都会得到一个状态号,最后整个语音就会得到一堆乱七八糟的状态号,相邻两帧间的状态号基本都不相同。假设语音有 1000 帧,每帧对应 1 个状态,每 3 个状态组合成一个音素,那么大概会组合成300个音素,但这段语音其实根本没有这么多音素。如果真这么做,得到的状态号可能根本无法组合成音素。实际上,相邻帧的状态应该大多数都是相同的才合理,因为每帧很短。75Iednc

解决这个问题的常用方法就是使用隐马尔可夫模型(Hidden Markov Model,HMM)。这东西听起来好像很高深的样子,实际上用起来很简单:75Iednc

第一步,构建一个状态网络。75Iednc

第二步,从状态网络中寻找与声音最匹配的路径。75Iednc

这样就把结果限制在预先设定的网络中,避免了刚才说到的问题,当然也带来一个局限,比如你设定的网络里只包含了「今天晴天」和「今天下雨」两个句子的状态路径,那么不管说些什么,识别出的结果必然是这两个句子中的一句。75Iednc

那如果想识别任意文本呢?把这个网络搭得足够大,包含任意文本的路径就可以了。但这个网络越大,想要达到比较好的识别准确率就越难。所以要根据实际任务的需求,合理选择网络大小和结构。75Iednc

搭建状态网络,是由单词级网络展开成音素网络,再展开成状态网络。语音识别过程其实就是在状态网络中搜索一条最佳路径,语音对应这条路径的概率最大,这称之为「解码」。路径搜索的算法是一种动态规划剪枝的算法,称之为 Viterbi 算法,用于寻找全局最优路径。75Iednc

2016JUN19 OS EMBEDDED NT 01 6375Iednc

这里所说的累积概率,由三部分构成,分别是:75Iednc

观察概率:每帧和每个状态对应的概率75Iednc

转移概率:每个状态转移到自身或转移到下个状态的概率75Iednc

语言概率:根据语言统计规律得到的概率75Iednc

其中,前两种概率从声学模型中获取,最后一种概率从语言模型中获取。语言模型是使用大量的文本训练出来的,可以利用某门语言本身的统计规律来帮助提升识别正确率。语言模型很重要,如果不使用语言模型,当状态网络较大时,识别出的结果基本是一团乱麻。75Iednc

这样基本上语音识别过程就完成了。75Iednc

以上介绍的是传统的基于 HMM 的语音识别。事实上,HMM 的内涵绝不是上面所说的「无非是个状态网络」那么简单。以上的文字只是想让大家容易理解,并不追求严谨。75Iednc

本文为EDN电子技术设计 原创文章,禁止转载。请尊重知识产权,违者本司保留追究责任的权利。
  • 微信扫一扫
    一键转发
  • 最前沿的电子设计资讯
    请关注“电子技术设计微信公众号”
您可能感兴趣的文章
  • 美国国土安全部(DHS)被曝大量购买和使用手机定位数据 据EDN电子技术设计了解,美国公民自由联盟18日发表最新文件,称美国国土安全部(DHS)使用移动定位数据来追踪人们的行动,据悉美国公民自由联盟发表的记录多达数千页,其规模远远超过之前的认知。
  • 实施增材制造以推动创新 是否可以打印?这是 3D 技术世界中真实存在的问题,其中的 3D 打印,也称为增材制造,可以通过数字化仿真输出几乎所有物品,包括汽车。
  • 用于高达10kA功率扼流圈测量的晶闸管脉冲发生器 Bs&T Frankfurt am Main GmbH公司开发了一种基于晶闸管的新型脉冲发生器,并在各种感性功率器件上进行了测试。该脉冲发生器具有一些得益于晶闸管高脉冲电流处理能力的独特特性,与基于IGBT的系统相比,它具有一些主要优势。
  • 如何评估3D音频解决方案 沉浸式3D/空间音频,与XR/360视频相结合,给您带来宛若置身于茂密深林的视听体验——飘落的细枝在脚下嘎吱作响,一头鹿向东原跑去,当您的目光追着一只红衣凤头鸟而远去时,您能听见它扇动翅膀的声音。精准的头部跟踪有助于提供逼真的用户体验(UX),了解评估解决方案的关键因素,可以帮助您在不断发展的行业中找到方向。
  • 波兰网友拆德国产无线烟感,烟雾探测原来是这样实现! 本文将展示具有433MHz RF通信的CC-80型烟雾探测器的内部,我将指出它的各个部件都有什么作用,还将解释它如何检测烟雾。
  • 示波器也在向“触摸平板”进化:泰克MSO2 我曾是一名工程师,20多年前,还在上学的时候,每当老师给我们上实验课,我们就经常会去捣鼓那些放在实验室桌子上的“宝贝疙瘩”:示波器;工作以后,更是少不了与这些“笨重”的家伙打交道。后来慢慢的淡出了工程师的行业,但是依然在工作中看到各种技术支持人员每次要测试、调试的时候,就把“笨重”的设备搬到公司的检测室或者专业检测机构,进行各种各种的测试、检测、测量。当时脑海中就出现过这样的念头:为什么不能有一款“轻量级”、“便于携带”、“操控灵活”的示波器呢?
相关推荐
    广告
    近期热点
    广告
    广告
    广告
    可能感兴趣的话题
    广告
    向右滑动:上一篇 向左滑动:下一篇 我知道了