请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册
搜索

科普丨一文看懂语音辨认的技术原理

科普丨一文看懂语音辨认的技术原理


简要给大家引见一下语音怎样变文字的吧。希望这个引见能让一切同窗看懂。

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

在末尾语音辨认之前,有时需求把首尾端的静音切除,降低对后续步骤形成的干扰。这个静音切除的操作普通称为VAD,需求用到信号处理的一些技术。要对声响停止分析,需求对声响分帧,也就是把声响切开成一小段一小段,每小段称为一帧。分帧操作普通不是简单的切开,而是运用移动窗函数来完成,这里不详述。帧与帧之间普通是有交叠的,就像下图这样:

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

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

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

接上去就要引见怎样把这个矩阵变成文本了。首先要引见两个概念:
    音素:单词的发音由音素构成。对英语,一种常用的音素集是卡内基梅隆大学的一套由39个音素构成的音素集,参见The CMU Pronouncing Dictionary。汉语普通直接用全部声母和韵母作为音素集,另外汉语辨认还分有调无调,不详述。形状:这里了解成比音素更细致的语音单位就行啦。通常把一个音素划分成3个形状。

语音辨认是怎样工作的呢?实践上一点都不奥秘,无非是:

第一步,把帧辨认成形状(难点);

第二步,把形状组合成音素;

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

如下图所示:

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

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

那这些用到的概率从哪里读取呢?有个叫“声学模型”的东西,外面存了一大堆参数,经过这些参数,就可以知道帧和形状对应的概率。获取这一大堆参数的方法叫做“训练”,需求运用宏大数量的语音数据,训练的方法比较繁琐,这里不讲。

但这样做有一个成绩:每一帧都会得到一个形状号,最后整个语音就会得到一堆乌七八糟的形状号,相邻两帧间的形状号基本都不相反。假设语音有1000帧,每帧对应1个形状,每3个形状组合成一个音素,那么大概会组合成300个音素,但这段语音其实根本没有这么多音素。假如真这么做,得到的形状号能够根本无法组合成音素。实践上,相邻帧的形状应该大多数都是相反的才合理,由于每帧很短。

处理这个成绩的常用方法就是运用隐马尔可夫模型(Hidden Markov Model,HMM)。这东西听起来好像很高深的样子,实践上用起来很简单:

第一步,构建一个形状网络。

第二步,从形状网络中寻觅与声响最婚配的途径。

这样就把结果限制在预先设定的网络中,避免了刚才说到的成绩,当然也带来一个局限,比如你设定的网络里只包含了“明天晴天”和“明天下雨”两个句子的形状途径,那么不管说些什么,辨认出的结果必然是这两个句子中的一句。

那假如想辨认恣意文本呢?把这个网络搭得足够大,包含恣意文本的途径就可以了。但这个网络越大,想要达到比较好的辨认准确率就越难。所以要根据实践义务的需求,合理选择网络大小和结构。

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

这里所说的累积概率,由三部分构成,分别是:
    观察概率:每帧和每个形状对应的概率转移概率:每个形状转移到本身或转移到下个形状的概率言语概率:根据言语统计规律得到的概率

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

以上引见的是传统的基于HMM的语音辨认。理想上,HMM的外延绝不是下面所说的“无非是个形状网络”那么简单。以上的文字只是想让大家容易了解,并不追求严谨。

End

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

大神点评3

_铁西瓜 2019-10-5 17:05:58 来自手机 显示全部楼层
我有一个大胆的想法。。。
回复

使用道具 举报

zouli5188 2019-10-6 08:45:49 显示全部楼层
very good
回复

使用道具 举报

支持,楼下的跟上哈~
回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies