语音识别 ——总结知识点(1)

祁刚毅
2023-12-01


一、语音识别的相关解释

        语音识别,通常称为自动语音识别,英文是Automatic Speech Recognition,缩写为ASR,主要是将人类语音中的词汇内容转换为计算机可读的输入,一般都是可以理解的文本内容,也有可能是二进制编码或者字符序列。但是,我们一般理解的语音识别其实都是狭义的语音转文字的过程,简称语音转文本识别(SpeechToText, STT)更合适,这样就能与语音合成(TextToSpeech,TTS)对应起来。

二、语音识别涉及到的学科

        语音识别是一门交叉学科。语音识别技术所涉及的领域,包括:信号处理、模式识别、概率论和信息论、发声机理和听觉机理,覆盖了数学与统计学、声学与语言学、计算机与工智能等基础学科和前沿学科,是人机自然交互技术中的关键环节。但是,语音识别自诞生以来的半个多世纪,一直没有在实际应用过程得到普遍认可,一方面这与语音识别的技术缺陷有关,其识别精度和速度都达不到实际应用的要求;另一方面,与业界对语音识别的期望过高有关,实际上语音识别与键盘、鼠标或触摸屏等应是融合关系,而非替代关系。

三、语音识别的发展

        1952年贝尔研究所Davis等人研究成功了世界上第一个能识别10个英文数字发音的实验系统。
        进入了70年代以后,出现了大规模的语音识别研究,在小词汇量、孤立词的识别方面取得了实质惟的进展。
        进入80年代以后,研究的重点逐渐转向大词汇量、非特定人连续语音识别。
        进入90年代以后,在语音识别的系统框架方面并没有什么重大突破。但是,在语音识别技术的应用及产品化方面出现了很大的进展。
        进入2000后,语音识别的研究方向多了机器学习中的深度学习领域,特别是2009年以来,借助机器学习领域深度学习研究的发展,以及大数据语料的积累,语音识别技术得到突飞猛进的发展。

四、语音识别的分类

4.1 根据不同对象分类

(1)孤立词识别:任务是识别事先已知的孤立的词,如“开机”、“关机”等。
(2)关键词识别(或称关键词检出,keyword spotting):连续语音流中的关键词检测针对的是连续语音,但它并不识别全部文字,而只是检测已知的若干关键词在何处出现,如在一段话中检测“计算机”、“世界”这两个词。
(3)连续语音识别:连续语音识别的任务则是识别任意的连续语音,如一个句子或一段话。

4.2 根据不同发音人分类

(1)特定人语音识别:特定人语音识别只能识别一个或几个人的语音。
(2)非特定人语音识别:非特定人语音识别则可以被任何人使用。显然,非特定人语音识别系统更符合实际需要,但它要比针对特定人的识别困难得多。

4.3 根据语音设备和通道分类

(1)桌面(PC)语音识别
(2)电话语音识别
(3)嵌入式设备(手机、PDA等)语音识别

4.4 根据应用场景分类

(1)语音输入系统:相对于键盘输入方法,它更符合人的日常习惯,也更自然、更高效。
(2)语音控制系统:即用语音来控制设备的运行,相对于手动控制来说更加快捷、方便,可以用在诸如工业控制、语音拨号系统、智能家电、声控智能玩具等许多领域。
(3)智能对话查询系统:根据客户的语音进行操作,为用户提供自然、友好的数据库检索服务,例如家庭服务、宾馆服务、旅行社服务系统、订票系统、医疗服务、银行服务、股票查询服务等等。

五、语音识别的模型

5.1 传统机器学习模型

特征提取方法

(1)LPC
        线性预测分析从人的发声机理入手,通过对声道的短管级联模型的研究,认为系统的传递函数符合全极点数字滤波器的形式,从而n时刻的信号可以用前若干时刻的信号的线性组合来估计。通过使实际语音的采样值和线性预测采样值之间达到均方差最小LMS,即可得到线性预测系数LPC。对LPC 的计算方法有自相关法(德宾Durbin法)、协方差法、格型法等等。计算上的快速,有效保证了这一声学特征的广泛使用。与LPC这种预测参数模型类似的声学特征还有线谱对LSP、反射系数等等。

(2)CEP
        利用同态处理方法,对语音信号求离散傅立叶变换DFT后取对数,再求反变换iDFT就可得到倒谱系数。对LPC倒谱(LPCCEP) ,在获得滤波器的线性预测系数后,可以用一个递推公式计算得出。实验表明,使用倒谱可以提高特征参数的稳定性。

(3)Mel
        不同于LPC等通过对人的发声机理的研究而得到的声学特征,Mel倒谱系数MFCC和感知线性预测PLP是受.人的听觉系统研究成果推动而导出的声学特征。对人的听觉机理的研究发现,当两个频率相近的音调同时发出时,人只能听到一个音调。临界带宽指的就是这样一种令人的主观感觉发生突变的带宽边界,当两个音调的频率差小于临界带宽时,人就会把两个音调听成一个,这称之为屏蔽效应。Mel刻度是对这一临界带宽的度量方法之一.

(4) MFCC
        首先用FFT将时域信号转化成频域,之后对其对数能量谱用依照Mel刻度分布的三角滤波器组进行卷积,最后.对各个滤波器的输出构成的向量进行离散金弦变换DCT,取前N个系数。PLP仍用德宾法去计算LPC参数,但在计算自相关参数时用的也是对听觉激励的对数能量谱进行DCT的方法。

六、深度学习模型

        使用深度学习模型提取特征,相比于机器学习的特征提取方法,深度学习模型对于特征提取的方法更为简单,它是一个端到端的特征提取方法,完全舍弃了人为的特征提取方法的设计。

模型类别

(1)DNN-HMM

        DNN-HMM主要是用DNN模型代替原来的GMM模型,对每一个状态进行建模,DNN带来的好处是不再需要对语音数据分布进行假设,将相邻的语音帧拼接又包含了语音的时序结构信息,使得对于状态的分类概率有了明显提升,同时DNN还具有强大环境学习能力,可以提升对噪声和口音的鲁棒性。

(2)RNN

        DNN是给出输入的一串特征所对应的状态概率。由于语音信号是连续的,不仅各个音素、音节以及词之间没有明显的边界,各个发音单位还会受到上下文的影响。虽然拼帧可以增加上下文信息,但对于语音来说还是不够。而递归神经网络(RNN) 的出现可以记住更多历史信息,更有利于对语音信号的上下文信息进行建模。

(3)LSTM

        由于简单的RNN存在梯度爆炸和梯度消散问题,难以训练,无法直接应用于语音信号建模上,因此学者进一步探索,开发出了很多适合语音建模的RNN结构,其中最有名的就是LSTM。LSTM 通过输入门、输出门和遗忘门可以更好的控制信息的流动和传递,具有长短时记忆能力。虽然LSTM的计算复杂度会比DNN增加,但其整体性能比DNN有相对20%左右稳定提升。

(4)BLSTM

        BLSTM是在LSTM 基础上做的进一步改进,不仅考虑语音信号的历史信息对当前帧的影响,还要考虑未来信息对当前帧的影响,因此其网络中沿时间轴存在正向和反向两个信息传递过程,这样该模型可以更充分考虑上下文对于当前语音帧的影响,能够极大提高语音状态分类的准确率。
        BLSTM考虑未来信息的代价是需要进行句子级的更新,模型训练的收敛速度比较慢,同时也会带来解码的延迟,对于这些问题,业界都进行了工程优化与改进,即使现在仍然有很多大公司使用的都是该网络模型结构。

(5)CONV

        语音信号的时频图也可以看作是一幅图像,因此CNN也被引入到语音识别中。要想提高语音识别率,就需要克服语音信号所面临的多样性,包括说话人自身、说话人所处的环境、采集设备等,这些多样性都可以等价为各种滤波器与语音信号的卷积。而CNN相当于设计了一系列具有局部关注特性的滤波器,并通过训练学习得到滤波器的参数,从而从多样性的语音信号中抽取出不变的部分,CNN本质上也可以看作是从语音信号中不断抽取特征的一个过程。CNN 相比于传统的DNN模型,在相同性能情况下,前者的参数量更少。

(6)CTC

        前面几个语音识别架构里的声学模型,每一帧输入都对应一个标签类别,标签需要反复的迭代来确保对齐更准确。
        采用CTC作为损失函数的声学模型序列,不需要预先对数据对齐,只需要一个输入序列和一个输出序列就可以进行训练。CTC关心的是预测输出的序列是否和真实的序列相近,而不关心预测输出序列中每个结果在时间点上是否和输入的序列正好对齐。CTC 建模单元是音素或者字,因此它引入了Blank。 对于一段语音,CTC 最后输出的是尖峰的序列,尖峰的位置对应建模单元的Label,其他位置都是Blank.

(7) SEQ2SEQ(Attention)

        Sequence-to-Sequence方法原来主要应用于机器翻译领域。2017 年,Google 将其应用于语音识别领域, 取得了非常好的效果,将词错误率降低至5.6%。如下图所示,Google提出新系统的框架由三个部分组成:Encoder编码器组件,它和标准的声学模型相似,输入的是语音信号的时频特征;经过一系列神经网络,映射成高级特征henc,然后传递给Attention组件,其使用henc特征学习输入x和预测子单元之间的对齐方式,子单元可以是一个音素或一个字。最后,attention模块的输出传递给Decoder,生成一系列假设词的概率分布,类似于传统的语言模型。

七、开源语音识别库

(1)Kaldi

        开源语音识别Kaldi是业界语音识别框架的基石。Kaldi的作者DanielPovey一直推崇的是Chain模型。该模型是一种类似于CTC的技术,建模单元相比于传统的状态要更粗颗粒一些,只有两个状态,一个状态是CDPhone,另一个是CDPhone.的空白,训练方法采用的是Lattice-FreeMMI训练。该模型结构可以采用低帧率的方式进行解码,解码帧率为传统神经网络声学模型的三分之一,而准确率相比于传统模型有非常显著的提升。

(2)Torchadio
        torchaudio在torchaudio. kaldi_ io 中提供与Kaldi的兼容性。torchaudio提供与Kaldi 兼容的spectrogram和fbank转换并支持GPU。

        Torchaudio还提供了统一的数据集界面。该接口支持将文件延迟加载到内存,下载和提取函数以及数据集以构建模型。

八、语音数据库

        在语音识别的研究发展过程中,相关研究人员根据不同语言的发音特点,设计和制作了以汉语(包括不同方言)、英语等各类语言的语音数据库,这些语音数据库可以为国内外有关的科研单位和大学进行汉语连续语音识别算法研究、系统设计、及产业化工作提供充分、科学的训练语音样本。不同的采集通道会使人的发音的声学特性发生变形,因此需要构造各自的识别系统。

  1. MIT Media lab Speech Dataset (麻省理工学院媒体实验室语音数据集)

  2. Pitch and Voicing Estimates for Aurora 2(Aurora2 语音库的基因周期和声调估计)

  3. Congressional speech data (国会语音数据)

  4. Mandarin Speech Frame Data (普通话语音帧数据)

  5. 自制数据集,如果是特定的语音识别,则需要自制数据集.

九、语音数据的预处理

        在对语音数据的特征提取之前,一般先对原始语音进行处理,部分消除噪声和不同说话人带来的影响,使处理后的信号更能反映语音的本质特征。最常用的前端处理有端点检测和语音增强。

(1)端点检测
        端点检测是指在语音信号中将语音和非语音信号时段区分开来,准确地确定出语音信号的起始点。经过端点检测后,后续处理就可以只对语音信号进行,这对提高模型的精确度和识别正确率有重要作用。

(2)语音增强
        语音增强的主要任务就是消除环境噪声对语音的影响。目前通用的方法是采用维纳滤波,该方法在噪声较大的情况下效果好于其它滤波器。
        和傅里叶变换的滤波器不同的是,深度学习中对于提取某个人的声音时,需要训练一个对这个人的声波特点的滤波器来专门提取他的声音。而傅里叶变换的滤波器是固定的几种滤波。

 类似资料: