语音识别的基本框图
将语音片段输入转化为文本输出的过程就是语音识别。一个完整的语音识别系统通常包括信息处理和特征提取、声学模型、语言模型和解码搜索四个模块。语言识别系统如下图所示:
图一 语音识别系统的架构
信号处理和特征提取可以视作音频数据的预处理部分,以音频信号为输入,通过消除噪音和信道失真对语音进行增强,将语音信号从时域转换为频域,并为后面的声学模型提取合适的特征。声学模型将声学和发音学的知识进行综合,以特征提取为输入,接下来声学模型会将预处理部分得到的特征向量转化为声学模型得分。同时,语言模型,也就是类似 n-gram 和 RNN 等模型,会得到一个语言模型得分,最后解码搜索阶段会针对声学模型得分和语言模型得分进行综合,将得分最高的词序列作为最后的识别结构。
图二 统计语音识别框图
其中,声学模型为隐马尔科夫模型,Lexcion表示词典,语言模型为n-gram模型。
统计语音识别的基本公式:
图三
其中,X是声学特征向量序列(观察),W表示单词序列,W表示最可能的单词序列。已知观测到的声学X,使用声学模型,语言模型和词汇表来获得最有可能的文字序列W
用贝叶斯公式分析
图四
信息处理和特征提取
因为声波是一种信号,也可称为语音信号。原始的音频信号由人类发声器官和声道共同作用下产生的,属于模拟信号。为了对语音信号进行预处理和特征提取,需要进行模数转换。即采样,将模拟信号转换为数字的形式:
图五
语音引起空气振动,是一种声压波,用麦克风进行录制。经过麦克风录制后的语音信号,其中,采样频率(Fs = 1/Ts)
图六
数字化后,下一步的工作是提取语音信号的声学特征:
图七
采样后的信号通过前处理后进行声学特征向量提取,不同的特征向量表征着不同的声学意义,从音频信号中选择有效的音频表征的过程就是语音特征提取。常用的语音特征包括线性预测倒谱系数(LPCC)和梅尔频率倒谱系数(MFCC),其中 LPCC 特征是根据声管模型建立的特征参数,是对声道响应的特征表征。而 MFCC 特征是基于人的听觉特征提取出来的特征参数,是对人耳听觉的特征表征。所以,在对音频信号进行特征提取时通常使用 MFCC 特征。
图八 基于MFCC的前处理
MFCC 主要由预加重、分帧、加窗、快速傅里叶变换(FFT)、梅尔滤波器组、离散余弦变换几部分组成,其中FFT与梅尔滤波器组是 MFCC 最重要的部分。一个完整的 MFCC 算法包括快速傅里叶变换(FFT);梅尔频率尺度转换;配置三角形滤波器组并计算每一个三角形滤波器对信号幅度谱滤波后的输出;对所有滤波器输出作对数运算,再进一步做离散余弦变换(DTC),即可得到MFCC。
传统的声学模型
在经过语音特征提取之后,将音频特征进行进一步的处理,处理的目的是找到语音来自于某个声学符号的概率。这种通过音频特征找概率的模型就称之为声学模型。声学模型的任务是计算P(W|X),即给模型产生语音波形的概率。声学模型是语音识别系统的重要组成部分,它占据着语音识别大部分的计算开销,决定着语音识别系统的性能。传统的语音识别系统普遍采用的是基于GMM-HMM的声学模型,其中GMM用于对语音声学特征的分布进行建模,HMM则用于对语音信号的时序性进行建模。
图九
在深度学习兴起之前,混合高斯模型(GMM)和隐马尔可夫模型(HMM)一直作为非常有效的声学模型而被广泛使用,作为传统声学模型的代表,我将介绍 GMM 和 HMM 模型。
所谓高斯混合模型(GMM),就是用混合的高斯随机变量的分布来拟合训练数据时形成的模型。原始的音频数据经过短时傅里叶变换或者取倒谱后会变成特征序列,在忽略时序信息的条件下,这种序列非常适用于使用高斯混合模型(GMM)进行建模。在实际的 高斯混合模型训练中,通常采用 EM 算法来进行迭代优化,以求取高斯混合模型中的加权系数及各个高斯函数的均值与方差等参数。高斯混合模型作为一种基于傅里叶频谱语音特征的统计模型,在传统语音识别系统的声学模型中发挥了重要的作用。它的劣势在于不能考虑语音顺序信息,高斯混合分布也很难拟合非线性或近似非线性的数据特征。所以,当状态这个概念引入到声学模型的时候,就有了一种新的声学模型,隐马尔可夫模型(HMM)。
隐马尔可夫模型(HMM)的核心是状态,状态是一个随机变量,通常取离散值,马尔可夫链的每一个状态上都增加了不确定性或者统计分布使得 HMM 成为了一种双随机过程,当一个马尔可夫过程含有隐含未知参数时,这样的模型就称之为隐马尔可夫模型。隐马尔可夫模型(HMM) 的主要内容包括参数特征、仿真方法、参数的极大似然估计、EM估计算法以及维特比状态解码算法等细节知识。
深度神经网络
深度神经网络(Deep Neural Networks,DNN)与RNN循环神经网络、CNN卷积神经网络的区别就是DNN特指全连接的神经元结构,并不包含卷积单元或是时间上的关联。
语音识别中的DNN-HMN混合系统
最早用于声学建模的神经网络就是最普通的深度神经网络,GMM 等传统的声学模型存在音频信号表征的低效问题,但 DNN 可以在一定程度上解决这种低效表征。但在实际建模时,由于音频信号是时序连续信号,DNN 则是需要固定大小的输入,所以早期使用 DNN 来搭建声学模型时需要一种能够处理语音信号长度变化的方法。一种将 HMM 模型与 DNN 模型结合起来的 DNN-HMM 混合系统颇具有效性。
图十 DNN-HMM框架
在上图这个框架中,HMM 用来描述语音信号的动态变化,DNN 则是用来估计观察特征的概率。在给定声学观察特征的条件下,我们可以用 DNN 的每个输出节点来估计 HMM 某个状态的后验概率。由于 DNN-HMM 训练成本不高而且相对较高的识别概率,所以即使是到现在在语音识别领域仍然是较为常用的声学模型。
除了 DNN 之外,经常用于计算机视觉的 CNN 也可以拿来构建语音声学模型。当然,CNN 也是经常会与其他模型结合使用。CNN 用于声学模型方面主要包括 TDNN、CNN-DNN 框架、DFCNN、CNN-LSTM-DNN(CLDNN)框架、CNN-DNN-LSTM(CDL)框架、逐层语境扩展和注意 CNN 框架(LACE)等等。这么多基于 CNN 的混合模型框架都在声学模型上取得了很多成果。
端到端的语音识别系统简介
无论是 GMM 和 HMM 这样的传统声学模型,还是基于深度学习的声学模型,它们对于整个语音识别系统都是分开优化的,但是语音识别本质上是一个序列识别问题,如果模型中的所有组件都能够联合优化,很可能会获取更好的识别准确度,所以需要一种端到端的语音识别处理系统。而解码是基于训练好的声学模型,并结合词典、语言模型,对输入的语音帧序列识别的过程即为解码的过程。传统的解码是将声学模型、词典以及语言模型编译成一个网络。解码就是在这个动态网络空间中,基于最大后验概率,选择一条或多条最优路径作为识别结果(最优的输出字符序列)。
语音识别的基本框图
将语音片段输入转化为文本输出的过程就是语音识别。一个完整的语音识别系统通常包括信息处理和特征提取、声学模型、语言模型和解码搜索四个模块。语言识别系统如下图所示:
图一 语音识别系统的架构
信号处理和特征提取可以视作音频数据的预处理部分,以音频信号为输入,通过消除噪音和信道失真对语音进行增强,将语音信号从时域转换为频域,并为后面的声学模型提取合适的特征。声学模型将声学和发音学的知识进行综合,以特征提取为输入,接下来声学模型会将预处理部分得到的特征向量转化为声学模型得分。同时,语言模型,也就是类似 n-gram 和 RNN 等模型,会得到一个语言模型得分,最后解码搜索阶段会针对声学模型得分和语言模型得分进行综合,将得分最高的词序列作为最后的识别结构。
图二 统计语音识别框图
其中,声学模型为隐马尔科夫模型,Lexcion表示词典,语言模型为n-gram模型。
统计语音识别的基本公式:
图三
其中,X是声学特征向量序列(观察),W表示单词序列,W表示最可能的单词序列。已知观测到的声学X,使用声学模型,语言模型和词汇表来获得最有可能的文字序列W
用贝叶斯公式分析
图四
信息处理和特征提取
因为声波是一种信号,也可称为语音信号。原始的音频信号由人类发声器官和声道共同作用下产生的,属于模拟信号。为了对语音信号进行预处理和特征提取,需要进行模数转换。即采样,将模拟信号转换为数字的形式:
图五
语音引起空气振动,是一种声压波,用麦克风进行录制。经过麦克风录制后的语音信号,其中,采样频率(Fs = 1/Ts)
图六
数字化后,下一步的工作是提取语音信号的声学特征:
图七
采样后的信号通过前处理后进行声学特征向量提取,不同的特征向量表征着不同的声学意义,从音频信号中选择有效的音频表征的过程就是语音特征提取。常用的语音特征包括线性预测倒谱系数(LPCC)和梅尔频率倒谱系数(MFCC),其中 LPCC 特征是根据声管模型建立的特征参数,是对声道响应的特征表征。而 MFCC 特征是基于人的听觉特征提取出来的特征参数,是对人耳听觉的特征表征。所以,在对音频信号进行特征提取时通常使用 MFCC 特征。
图八 基于MFCC的前处理
MFCC 主要由预加重、分帧、加窗、快速傅里叶变换(FFT)、梅尔滤波器组、离散余弦变换几部分组成,其中FFT与梅尔滤波器组是 MFCC 最重要的部分。一个完整的 MFCC 算法包括快速傅里叶变换(FFT);梅尔频率尺度转换;配置三角形滤波器组并计算每一个三角形滤波器对信号幅度谱滤波后的输出;对所有滤波器输出作对数运算,再进一步做离散余弦变换(DTC),即可得到MFCC。
传统的声学模型
在经过语音特征提取之后,将音频特征进行进一步的处理,处理的目的是找到语音来自于某个声学符号的概率。这种通过音频特征找概率的模型就称之为声学模型。声学模型的任务是计算P(W|X),即给模型产生语音波形的概率。声学模型是语音识别系统的重要组成部分,它占据着语音识别大部分的计算开销,决定着语音识别系统的性能。传统的语音识别系统普遍采用的是基于GMM-HMM的声学模型,其中GMM用于对语音声学特征的分布进行建模,HMM则用于对语音信号的时序性进行建模。
图九
在深度学习兴起之前,混合高斯模型(GMM)和隐马尔可夫模型(HMM)一直作为非常有效的声学模型而被广泛使用,作为传统声学模型的代表,我将介绍 GMM 和 HMM 模型。
所谓高斯混合模型(GMM),就是用混合的高斯随机变量的分布来拟合训练数据时形成的模型。原始的音频数据经过短时傅里叶变换或者取倒谱后会变成特征序列,在忽略时序信息的条件下,这种序列非常适用于使用高斯混合模型(GMM)进行建模。在实际的 高斯混合模型训练中,通常采用 EM 算法来进行迭代优化,以求取高斯混合模型中的加权系数及各个高斯函数的均值与方差等参数。高斯混合模型作为一种基于傅里叶频谱语音特征的统计模型,在传统语音识别系统的声学模型中发挥了重要的作用。它的劣势在于不能考虑语音顺序信息,高斯混合分布也很难拟合非线性或近似非线性的数据特征。所以,当状态这个概念引入到声学模型的时候,就有了一种新的声学模型,隐马尔可夫模型(HMM)。
隐马尔可夫模型(HMM)的核心是状态,状态是一个随机变量,通常取离散值,马尔可夫链的每一个状态上都增加了不确定性或者统计分布使得 HMM 成为了一种双随机过程,当一个马尔可夫过程含有隐含未知参数时,这样的模型就称之为隐马尔可夫模型。隐马尔可夫模型(HMM) 的主要内容包括参数特征、仿真方法、参数的极大似然估计、EM估计算法以及维特比状态解码算法等细节知识。
深度神经网络
深度神经网络(Deep Neural Networks,DNN)与RNN循环神经网络、CNN卷积神经网络的区别就是DNN特指全连接的神经元结构,并不包含卷积单元或是时间上的关联。
语音识别中的DNN-HMN混合系统
最早用于声学建模的神经网络就是最普通的深度神经网络,GMM 等传统的声学模型存在音频信号表征的低效问题,但 DNN 可以在一定程度上解决这种低效表征。但在实际建模时,由于音频信号是时序连续信号,DNN 则是需要固定大小的输入,所以早期使用 DNN 来搭建声学模型时需要一种能够处理语音信号长度变化的方法。一种将 HMM 模型与 DNN 模型结合起来的 DNN-HMM 混合系统颇具有效性。
图十 DNN-HMM框架
在上图这个框架中,HMM 用来描述语音信号的动态变化,DNN 则是用来估计观察特征的概率。在给定声学观察特征的条件下,我们可以用 DNN 的每个输出节点来估计 HMM 某个状态的后验概率。由于 DNN-HMM 训练成本不高而且相对较高的识别概率,所以即使是到现在在语音识别领域仍然是较为常用的声学模型。
除了 DNN 之外,经常用于计算机视觉的 CNN 也可以拿来构建语音声学模型。当然, 也是经常会与其他模型结合使用。CNN 用于声学模型方面主要包括 TDNN、CNN-DNN 框架、DFCNN、CNN-LSTM-DNN(CLDNN)框架、CNN-DNN-LSTM(CDL)框架、逐层语境扩展和注 CNN 框架(LACE)等等。这么多基于 CNN 的混合模型框架都在声学模
上取得了很多成果。
端到端的语音识别系统简介
无论是 GMM 和 HMM 这样的传统声学模型,还是基于深度学习的声学模型,它们对于整个语音识别系统都是分开优化的,但是语音识别本质上是一个序列识别问题,如果模型中的所有组件都能够联合优化,很可能会获取更好的识别准确度,所以需要一种端到端的语音识别处理系统。而解码是基于训练好的声学模型,并结合词典、语言模型,对输入的语音帧序列识别的过程即为解码的过程。传统的解码是将声学模型、词典以及语言模型编译成一个网络。解码就是在这个动态网络空间中,基于最大后验概率,选择一条或多条最优路径作为识别结果(最优的输出字符序列)。