科普丨一文看懂语音辨认的技术原理
作者头像
  • zhoujiedc
  • 2019-10-05 11:33:41 1

科普丨全面了解语音识别技术原理

让我们简单介绍一下声音如何转化为文字的过程。希望这个介绍能让大家都能理解。

首先,我们知道声音实际上是一种波动。常见的MP3、WMV等格式都是压缩格式,必须转换成非压缩的纯波形文件来处理,例如Windows PCM文件,也就是通常所说的WAV文件。WAV文件中除了文件头之外,主要是声音波形的数据点。下图展示了一个波形的例子。 波形示例

在进行语音识别之前,有时需要切除首尾的静音部分,以减少对后续处理的干扰。这种静音切除操作通常被称为VAD(Voice Activity Detection),需要用到一些信号处理技术。为了对声音进行分析,我们需要将声音分帧,即将声音切割成一个个小片段,每个片段称为一帧。分帧操作通常不是简单的切割,而是采用移动窗函数来实现,这里不再详述。相邻的帧通常会有一定的重叠,如下图所示: 分帧示例

在这个例子中,每帧的长度为25毫秒,相邻两帧之间有15毫秒的重叠。因此,我们称其为以25毫秒为帧长、10毫秒为帧移的分帧方式。

分帧后,声音就被分割成了许多小段。然而,在时域上,波形几乎没有任何描述能力,因此必须对其进行变换。常见的变换方法之一是提取MFCC(Mel频率倒谱系数)特征,根据人耳的生理特性,将每一帧的声音波形转换成一个多维向量。可以简单地理解为这个向量包含了该帧语音的内容信息。这个过程称为声学特征提取。实际应用中,声学特征不仅仅只有MFCC,这里不再赘述。

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

接下来,我们要介绍如何将这个矩阵转换成文本。首先,需要介绍两个概念:

  • 音素:单词的发音由音素组成。对于英语,一种常用的音素集是由39个音素组成的卡内基梅隆大学音素集。汉语通常直接使用所有声母和韵母作为音素集,并且区分有调和无调音素。
  • 形状:这里可以理解为比音素更细的语音单位。通常将一个音素划分为3个形状。

语音识别的基本原理并不复杂,主要分为以下步骤:

  1. 将帧识别为形状(这是难点);
  2. 将形状组合成音素;
  3. 将音素组合成单词。

如下图所示: 形状组合

每个小竖条代表一帧,若干帧语音对应一个形状,每三个形状组合成一个音素,若干个音素组合成一个单词。换句话说,只要知道每帧语音对应哪个形状,语音识别的结果也就确定了。

那么,每帧语音对应哪个形状呢?一个直观的方法是看某帧对应哪个形状的概率最大,然后将其归类为该形状。例如,下图显示,某一帧对应S3形状的概率最大,因此将其归类为S3形状。 概率分配

这些概率从哪里获得呢?有一个名为“声学模型”的工具,它存储了大量的参数,通过这些参数可以知道每帧和每个形状之间的对应概率。获取这些参数的方法称为“训练”,需要使用大量语音数据,训练过程较为复杂,这里不再赘述。

然而,这样做有一个问题:每帧都会得到一个形状编号,最终结果可能会变得混乱。相邻两帧的形状编号基本不会相同。假设语音有1000帧,每帧对应1个形状,每3个形状组合成一个音素,那么大约会得到300个音素。但实际上,语音中的音素数量远远少于这个数字。如果直接这样做,得到的形状编号可能根本无法组合成实际的音素。实际上,相邻帧的形状应该是大部分相同的,因为每帧非常短暂。

解决这个问题的一个常用方法是使用隐马尔可夫模型(Hidden Markov Model,HMM)。这听起来似乎很高深,但实际上使用起来非常简单:

  1. 构建一个形状网络;
  2. 从形状网络中寻找与声音最匹配的路径。

这样,结果被限定在一个预设的网络中,避免了上述问题。当然,这也带来了局限性,例如,如果你设置的网络只包含“明天晴天”和“明天下雨”这两个句子的形状路径,那么无论说什么,识别结果只能是这两个句子之一。

如果想识别任意文本,可以将网络搭建得足够大,包含任意文本的路径。但是,网络越大,识别准确率越难以保证。因此,要根据实际任务需求,合理选择网络大小和结构。

构建形状网络的过程是从单词级网络展开到音素网络,再展开到形状网络。语音识别过程实际上是在形状网络中寻找最佳路径,这条路径对应的声音概率最大,这称为“解码”。路径搜索算法是一种动态规划剪枝算法,称为Viterbi算法,用于寻找全局最优路径。

这里提到的累积概率由三部分构成:

  1. 观察概率:每帧和每个形状对应的概率;
  2. 转移概率:每个形状转移到自身或下一个形状的概率;
  3. 语言概率:根据语言统计规律得到的概率。

其中,前两种概率从声学模型中获取,最后一种概率从语言模型中获取。语言模型是通过对大量文本进行训练得到的,可以利用语言本身的统计规律来提升识别准确性。语言模型非常重要,如果不使用语言模型,当形状网络较大时,识别结果将会非常混乱。

以上介绍了传统的基于HMM的语音识别技术。实际上,HMM的应用远不止于此。上述内容只是为了便于理解,并不追求严谨。

    本文来源:图灵汇
责任编辑: : zhoujiedc
声明:本文系图灵汇原创稿件,版权属图灵汇所有,未经授权不得转载,已经协议授权的媒体下载使用时须注明"稿件来源:图灵汇",违者将依法追究责任。
    分享
一文辨认科普语音原理技术
    下一篇