ASR语音识别的原理是什么?

ASR(Automatic Speech Recognition,自动语音识别)是一种将人类语音转化为机器可读文本的技术。ASR的原理主要包括三部分:语音信号的前端处理、特征提取和音素识别。下面我来逐一介绍每一个部分的详细流程。

一、语音信号的前端处理

自然语音中的语音信号在环境噪声、语调、音量、发音习惯等方面存在着种种变化,因此在进行语音识别之前需要对语音信号进行一些前期处理来减少这些变化的影响。这个过程包括以下几个步骤:

1.1 分帧

目的是把语音信号分成若干个较短的时间段(通常为20ms),每一帧的数据长度等于采样率×时间间隔。分帧的目的是把无限长的语音信号转化为有限长的向量,以便后续对其进行分析和处理。

1.2 窗函数

语音信号在分帧的时候,如果不对其进行平滑处理,会出现明显的不连续性。窗函数的作用是在语音信号的每个时间段内加一个平滑的窗口函数,将原始的语音信号转化为类似于一组类似于余弦函数的信号,从而减少不连续性的影响。

1.3 预加重

由于高频信号在传输的过程中容易受到干扰,形成失真,因此语音信号的预处理还需进行预加重,以提取高频特征。预加重是通过滤波器对语音信号的幅度特性进行补偿,从而提升语音信号的高频信息。

二、特征提取

特征提取的目的是从语音数据中提取出具有较好区分度的特征向量,以尽量减少噪声的影响。

2.1 傅里叶变换

经过前端处理后得到的每一个语音帧都是一个向量,为了进一步提取语音的特征,需要将其转换成频域。傅里叶变换可以将时域的复杂信号分解为一组简单的正弦波表示,其组成的频谱的幅度分布称之为信号的频率分布,根据这些分布就可以对语音信号的每一帧数据进行频谱分析。

2.2 梅尔滤波器组

人耳对声音的感知有一些特殊的特征,梅尔滤波器组正是利用这些特征来提取出语音中代表发音的特征。梅尔滤波器组对语音频谱进行了多级滤波,提取出语音中的频率包络,该包络更加弥补了音高、噪声等混杂的背景信息,获取了更为鲜明的发音特征。

三、音素识别

得到了经过前期处理的语音特征向量之后,就可以把它们回归到对应的音素上去。音素是组成语言的基本单位,将特征向量与音素对应可以将输入的语音信号转换为对应的单词序列。

3.1 训练模型

为了让机器能够识别语音信号,我们需要先对其进行训练,即让机器学习到如何从语音信号中获取语音模型的参数。语音模型参数包括:GMM(高斯混合模型)的参数、HMM(隐马尔科夫模型)的状态转移概率及其它特征。模型训练所用的训练数据集规模和中文语音数据集的大小及其质量直接影响模型所能达到的精度。

3.2 解码

当新的语音输入到系统时,机器会根据先前学习到的语音模型及其数据对新的语音数据进行识别。此过程被称之为解码。

下面是两个ASR语音识别的示例:

示例一

输入语音:你叫什么名字

输出文本:你 叫 什 么 名 字

示例二

输入语音:“大家好,我是腾讯AI Lab的小助手”

输出文本:“大 家 好 ,我 是 腾 讯 AI Lab 的 小 助 手”

这两个示例说明,ASR识别可以将语音波形转化为文本,用字符表示语音信号的信息。

希望本篇文章对你的学习有所帮助!