语音识别之自动语音识别(ASR,Auto Speech Recognition)个人自学整理

自动语音识别(ASR,Auto Speech Recognition)
自动语音识别是机器把语音声波信号转化成文字,因人的物理器官位置不同可以发出不同的音,最小的发声单位称为音素,多个音素组成音节,若干音节组成字,机器识别的最小语音单位可以是音素、音节、字或词。

基于Kaldi的传统语音识别有基于单音素和三音素模型的语音识别方法。

另外还有Mozilla开源的基于DeepSpeech深度学习语音识别。

传统语音识别声学模型基于高斯混合模型(GMM),而基于深度学习方法声学模型基于神经网络,这两种方法都依赖一个先验语音数据集,根据该数据集训练出一个识别模型。

ASR系统主要包括四部分:
①信号处理和特征提取;
②声学模型(AM,Acoustic Model);
③语言模型(LM,Language Model);
④解码搜索。

如下图所示
图1 连续语音识别组成Kaldi用高斯混合模型(GMM)对声学模型建模,用隐马尔科夫(HMM)将音素以及音素序列标记为离散的类,描述序列数据的时序关系,HMM使用有限自动状态机(OpenFst)加权有限自动状态转换器(WFST)实现。

连续语音识别分为训练和部署两个部分。
①训练部分的AM模型和LM模型在部署时会用到。
②发音字典是根据人类发音特点的先验知识得到的。
③AM模型依赖于语料库,在做语音识别时,需要较为完善的语料。
④LM模型依赖文本库,语言模型描述的是字的连接关系。例如,对于“爱家”和“哎家”,通常认为“爱家”的出现概率高于“哎家”,语言模型可以通过若干已知语句(如日常用语)的顺序衔接关系获得。

当AM模型和LM模型的参数在训练过程中逐渐收敛,到达一定条件的模型参数用于模型部署,部署阶段将提取待识别的语音特征,通过AM模型、发音字典以及解码环节后识别出声波信号对应的文字。

语音识别的目标是预测正确的类序列,如果z表示从声波提取的特征向量序列,那么语音识别系统可以根据最优分类方程表示为
在这里插入图片描述
上式可用贝叶斯准则来计算,

在这里插入图片描述
其中,P(z|w)是声学似然(声学打分),代表词w被说的情况下,语音序列z出现的概率。P(w)是语言打分,是文字出现的先验概率,其计算依赖于语言模型,在忽略语音序列出现概率的情况下,可以简化为
在这里插入图片描述
这样语音识别可以分为特征提取和解码两个主要步骤。

语音识别过程如下图:
图二 语音识别过程
声学模型要能适应不同的人,比如,不同的人说“爱”,听感上不一样,但都知道是“爱”。声学模型和语言模型采用分开训练的方法较为简单易行,然而二者组合成的识别系统不一定是最优的。

为了解决这一全局最优问题,基于深度学习领域提出了CTC模型(DeepSpeech方法)和LAS模型,它们是端到端模型,即由语音特征序列直接到文字串的输出。

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐