赞
踩
这是一篇对语音识别中的一种热门技术——DNN-HMM混合系统原理的透彻介绍。本文自2月10日开始撰写,计划一星期内写完。
近期想深入了解语音识别(ASR)中隐马尔可夫模型(HMM)和深度神经网络-隐马尔可夫(DNN-HMM)混合模型,但是尽管网络上有许多关于DNN-HMM的介绍,如李宏毅教授的《深度学习人类语言处理》[1],一些博主的语音识别系列文章[2],斯坦福大学HMM课件[3]。但是这些材料要么不够细致完备,要么对初学者来说过于复杂深奥(尤以HMM部分的琳琅满目的概率公式为首)。
因此,笔者在阅读了大量相关资料后希望用深入浅出的方式为大家系统地介绍DNN-HMM混合模型。本文旨在为零基础者从头解析使用DNN-HMM混合方法的语音识别系统的底层原理。
笔者希望让仅仅具备本科概率论基础的人也能读懂,如果你符合这个条件但仍觉得理解起来困难,你可以留下你的疑惑,以帮助我们改进文章。
我们直入主题,语音识别模型是这样一个模型,它将一串语音信号(如一个仅包含语音的.wav音频文件)作为模型的输入,目的在于输出一个与之最为匹配的文字内容(为了简化问题,本文只考虑英文场景,其它语言原理基本类似)。其中,当我们说“最为匹配”的时候,我们主要考虑的是“最有可能”的,亦即,语音识别模型希望在给定时,给出,使得:
,
上式意味着,我们要找使得最大的,记作。
要解决这个问题,一个最直观的办法就是穷举所有可能的,然后比一比他们的概率,再选出最大的那一个。显然这个想法是不现实的,因为所有可能的也许是一个无穷的集合。再者,就算能够缩小范围,枚举出大量比较可能的候选,又如何比较概率的大小呢?因而枚举法似乎不是好的选择。
HMM类的方法则选择使用贝叶斯理论对概率进行处理,这我们在后面会详细说明。在此之前,笔者想为大家简单讲讲其它的更清晰的解决思路。
得益于今日神经网络技术的快速发展,熟悉深度学习的我们很容易联想到,似乎只要利用大量的音频以及对应的文本标注进行训练,不需要额外的人工处理应该也能做到很好的泛化能力(即拿到新的语音信号时可以准确地给出真实的文字答案)吧?
答案是:确实有,这种办法被称为Listen Attend, and Spell,简称LAS[4]。它使用一个深度学习模型,直接用声音信号和人工标记的文字训练,在推理时听到新的声音信号就能给出它认为最匹配的文字内容。由于直接输入音频信号就能推理出其中的文字,LAS被归为端到端(End to End)模型。
不得不说,LAS这种方法确实是最符合(机器学习研究者的)直觉的,就像其它任何的机器学习任务(如图像识别)一样,训练和推理再好理解不过了。
除了即将要介绍的HMM类模型,LAS、Transformer[5],还有CTC[6],RNN-T[7]等。这些内容不是本文的重点,就不一一介绍了。
尽管LAS等端到端模型操作非常简单无脑,但是在过去的很长一段时间内,这些堪称暴力的方法并没有想象中的那么强。至少在2020年时,商业语音识别系统的主力军还是咱们今天文章的主角DNN-HMM[1],同时DNN-HMM模型也是第一个被宣称达到人类同级别语音识别水平的模型[8]。接下来我们就要展开介绍HMM类模型:GMM-HMM系统和DNN-HMM混合系统。
前文提到,语音识别的任务可以简化为概率问题——在给定时,给出,使得:
,
由于不好直接求得以进行比较,但在HMM系统中,我们可以对人说话的发音方式建模(这部分在后文会详细介绍),进而容易得到的是。故我们引入贝叶斯公式将上式反转,即作以下变型:
,
其中由于去掉分母不影响分式的大小比较,上式又等价于求:
。
这其中,我们称为声学模型(Acoustic Model),称为语言模型(Language Model)。(对,就是Chat GPT一类的语言模型)
这样,我们就将不容易估计的概率转变成容易估计的概率。接下来我们简要解释声学模型和语言模型的含义,以及为什么说他们容易估计。
首先是声学模型,按字面意思理解,它就是给定文字内容,其对应发音结果为音频的概率。这个过程是一个正向的过程,是较好估计的。举一个不那么恰当的例子,如在中文里,文字“朝阳”对应的发声结果中,发出类似于“cháo yáng”或者“zhāo yáng”的概率是比较大的,但发出任何其它的声音的概率都是比较小的。笔者认为,这也是该概率被称为“声学模型”的原因,因为它描述的是“念”某一文字发出某一声音的概率,即某文字的“发声概率”。
以上的例子只是为了简要说明“声学模型”的内涵而并不具有严谨性,对于某一文字内容对应应该发出什么声音,应考虑更全面更深入的因素,而通过拼音的方式进行描述是抽象而模糊的。事实上,HMM正是声学模型,其提出者将文字的发音过程简化作一个隐马尔可夫模型。这部分内容我们会在后文详细介绍,在此不多赘述。
至于语言模型,则是用于描述某一文字出现的概率,也代表其出现的合理性。如在英文里的经典例子,“识别语音”的英文“recognize speech”和“毁坏一个好沙滩”的英文“wreck a nice beach”的发音是一模一样的。但是,由于后者的词语搭配缺乏合理性(也可理解为在大量的各类文字材料中后者出现的频率小得多),其概率也小得多,故在二者的声学模型取值相同(因为发音完全一样)的情况下,“recognize speech”是具有更高可能的识别结果。在实践中,我们会统计各词语在各种语境(上下文环境)中出现的频率,作为语言模型使用。时常,这样的统计还不足够令人满意,我们也会从逻辑的角度出发对目标材料进行合理扩展。另外,作为评判文字出现合理性的语言模型,成果缔造了Chat GPT这类能生成很多“合理”对话的聊天机器人。由于语言模型不是行文的重点,我们推荐有兴趣的读者查阅语言模型的其它相关材料,不再拓展阐述。
值得一提的是,即便是对于LAS之类的端到端模型,也即没有使用贝叶斯公式变换出这一式子,而是直接求解原问题的模型,也会引入语言模型,即LAS等模型在实际上会求解。尽管这一表达式缺乏逻辑,但在实践中却能起到可观的效果,其原因可能在于这些模型本身不能很好地估计,因而来自语言模型的修正可以生效[1]。
回到语音识别的问题上来,我们的目标是找到使得声学模型和语言模型相乘最大的。换一个角度理解:语言模型可以基于声学模型所生成的词组的合理性对语音识别结果进行重打分(rescoring),以帮助改进识别质量。
前文已经提到,在搭建声学模型的过程中,我们引入了HMM模型,其原因在于可以将发声的过程看作是是隐马尔可夫过程。但是在深入分析HMM相关内容之前,为了叙述逻辑的通畅,我们还是先从这一式子讲起。
当我们想进一步探讨这一式子时,第一个难题立马扑面而来:文本先不提,这个音频也太复杂了点。须知,在概率论里面,我们最喜欢的就是(1)意义明确的、(2)情况可能有限且尽量少的问题(如明天是否下雨这个问题就很好估计,因为情况少而且每种情况有明确的意义)。
但是作为音频的语音信号,即便是在进行数字采样(在这里,我们假定读者已经了解音频数字采样的知识)后,每分钟的语音也至少有:
(1信道) x (8,000赫兹采样率) x (2 ^ 16种信号强度)= 524,288,000 种可能情况
再加上音频的每一个数值只是代表信号在那个时间点的强度(振幅),没有什么实际的参考意义,因为不能直接和文字信息对应上。
综上,我们需要一种降维+特征提取的手段,这就是音频分帧和特征提取。
特征提取的目的是降维和赋予数据意义,而分帧则是特征提取的前提。音频分帧就是将音频切片,分为一小段一小段的内容,一个小段就是一帧(frame)。分好后再对每一帧分别进行特征提取。
在实践中,我们通常会每10ms取一个帧,一个帧的长度是25ms。当然这意味着相邻的帧之间会有重叠。
对于每个分好的帧,(对8k赫兹采样率来说)具有25ms x 8,000Hz=200个采样点,我们对这些采样点进行特征提取。需要提取什么特征呢?有一点很重要的启发就是:人对声音的音高是非常敏感的。因此,我们可以在音高上做文章,用傅里叶变换把每一帧中各个音高的能量表达出来。当然,这还不够,由于人耳在声音提取上是有偏好的,即对不同音高的灵敏度不同,于是人们依据经验设计了一种考虑这个因素的特征表示方法:梅尔倒频谱系数(MFCC)。
在这里,我们不介绍MFCC的具体提取流程,只说明其结果是:将每一帧的音频内容转换为一个39维的向量,这39位数字,代表了39个人耳非常敏感的频段上的强度。
于是,通过MFCC,我们就达到了降维(200+维至39维)和特征提取(39个人耳敏感频段强度)的效果。
将语音信号简化后还不够,
[1] 国立台湾大学李宏毅 (Hung-yi Lee)教授DLHLP2020课程,原网址:Hung-yi Lee (ntu.edu.tw) ,B站搬运Speech Recognition (Option) - HMM_哔哩哔哩_bilibili
[2] AI大道理 - AI大语音(十三)——DNN-HMM (深度解析)-CSDN博客
[3] Stanford University EE365: Hidden Markov Models hmm.pdf (stanford.edu)
[4] W. Chan, N. Jaitly, Q. Le and O. Vinyals, "Listen, attend and spell: A neural network for large vocabulary conversational speech recognition," 2016 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP), Shanghai, China, 2016, pp. 4960-4964, doi: 10.1109/ICASSP.2016.7472621.
[5] Linhao Dong, Shuang Xu, and Bo Xu. "Speech-transformer: a no-recurrence sequence-to-sequence model for speech recognition."2018 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP). IEEE, 2018.
[6] Graves, Alex & Fernández, Santiago & Gomez, Faustino & Schmidhuber, Jürgen. (2006). Connectionist temporal classification: Labelling unsegmented sequence data with recurrent neural 'networks. ICML 2006 - Proceedings of the 23rd International Conference on Machine Learning. 2006. 369-376. 10.1145/1143844.1143891.
[7] Graves, Alex. “Sequence Transduction with Recurrent Neural Networks.” 2012 ArXiv abs/1211.3711
[8] W. Xiong et al., "Toward Human Parity in Conversational Speech Recognition," in IEEE/ACM Transactions on Audio, Speech, and Language Processing, vol. 25, no. 12, pp. 2410-2423, Dec. 2017, doi: 10.1109/TASLP.2017.2756440.
[9] Ele实验室 - 【语音识别技术】重度鉴赏
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。