(深入篇)漫游语音识别技术—带你走进语音识别技术的世界
前有古人,后有小王,大家好,我是你们爱思考的小王学长,今天咱们继续漫游语音识别技术哈,今天内容稍微专业一些,大家可以结合上一篇漫游语音识别技术一起学习。
上篇我们简单了解了语音识别技术的概念、前世今生以及基本识别原理,一会学长带着大家漫游到语音识别技术更深(更专业)的世界里。
一、语音识别基础
说到语音识别,我们应该先思考一下声音是什么呢?
通常我们可以认为声音是在空气中传播的波,但是它不像水波那样传播波的高低变化,它传播的是空气的密度变化。比如,我们拍手时手掌的振动将空气挤出,对比周围的大气压,空气被挤入的地方压力增高,而空气被挤出的地方则相对压力降低;压力高的部分向手掌四周移动,而压力低的部分则紧随其后。这种由手掌振动所引发空气密度发生周期性变化的波称为压缩波,空气中的压缩波一旦碰到鼓膜那样的薄膜,就会使其产生振动。麦克风的作用就是将这种振动以电信号的形式提取出来。下面的图大家可以参考一下
以振动的幅度为纵轴,以时间为横轴,就能够将声音可视化。
换句话说,声音以波的形式传播,即声波。当我们以波的视角来理解声音时,幅度(Magnitude)、频率(Frequency)、相位(Phase)便构成了声波及其所有的叠加声波,声音的不同音高(Pitch)、音量(Loudness)、音色(Timbre) 也由这些基本单位组合而来。
世界上各种各样的声波都可以“降解”到基本波身上,傅里叶变换(Fourier Transform)的基本思想也是这样的。不同的声波有不同的频率和幅度(决定音量),人耳也有自己的接受范围。人耳对频率的接受范围大致为 20 Hz 至 20 kHz,于是以人为本地将更高频率的声波定义为超声波(Ultrasound Wave)、更低频率的声波定义为次声波(Infrasound Wave), 虽然其它动物可以听到不同范围的声音。
上一篇大家应该对 ASR 有了个初步的了解,语音识别说白了最终是统计优化问题,给定输入序列 O={O1,...,On},寻找最可能的词序列 W={W1,...,Wm},其实就是寻找使得概率 P(W|O)最大的词序列。用贝叶斯公式表示为:
其中 P(O|W)叫做声学模型,描述的是给定词 W 时声学观察为 O 的概率;P(W)叫做语言模型,负责计算某个词序列的概率;P(O)是观察序列的概率,是固定的,所以只看分母部分即可。
语音选择的基本单位是帧(Frame),一帧数据是由一小段语音经过 ASR 前端的声学特征提取模块产生的,整段语音就可以整理为以帧为单位的向量组。每帧的维度固定不变,但跨度可调,以适应不同的文本单位,比如音素、字、词、句子。
大多数语音识别的研究都是分别求取声学和语言模型,并把很多精力放在声学模型的改进上。但后来,基于深度学习和大数据的端到端(End-to-End)方法发展起来,能将声学和语言模型融为一体,直接计算 P(W|O)。
二、信号处理过程
1、降噪处理
在降噪之前,我先跟大家讲讲为什么要进行降噪处理?
我们在录制音频数据的同时,大量噪声都会掺杂进来,不同环境和情境下产生的噪声也不尽相同,噪声信号中的无规则波纹信息影响了声学信号所固有的声学特性,使得待分析的声音信号质量下降,并且噪声对声音识别系统的识别结果会产生重要影响。所以说,我们在对声音信号分析和处理之前,是一定要进行降噪处理的。(语音的具体噪声分类:看学长这篇文章)
下面我们来看几个降噪的常用方法:
①小波变换降噪法
小波变换降噪法简称小波降噪,一般在声音降噪中使用最多的是小波阈值降噪法,它主要是说在带噪声音信号中,有效声音信号与噪声在不同频率上有着不同的小波系数,其中有效信号能量谱表现会比较集中,在能量谱集中的区域小波系数的绝对值会比较大;而噪声的能量谱比较分散,所以其系数的绝对值比较小。接下来,根据此特点,利用小波变换法将带噪声音信号分解到不同频率上,然后设置阈值进行差分调整,保留有效声音信号的小波系数,最后根据小波重构算法还原带噪信号中的有效信号,从而可以达到降噪的效果。
这是其基本原理,其中阈值的设定也可以分为硬阈值和软阈值法。具体涉及的相关公式和计算方法大家感兴趣的可以百度或者跟我留言。以下是利用小波降噪法得到的前后对比图(在 MATLAB 环境下得到):
②谱减法
谱减法又称频谱减法降噪,是根据噪声的可加性、局部平稳性以及噪声和有效声音信号不相关性的一种声音信号降噪方法。这种降噪方法不会涉及到参考信号,其主要思想就是带噪声音信号是有效信号与噪声的叠加,那么带噪信号的功率也是相当于有效声音信号的功率和噪声功率的叠加,利用计算得到“静音”片段(信号中不含有有效信号,只含有系统噪声或者环境噪声)中噪声的频谱估计值来等值替换有效声音信号存在期间所含噪声的频谱,最后带噪声音信号的频谱与噪声的频谱估计值相减,就可以得到有效声音信号频谱的估计值。
③自适应噪声抵消法
自适应噪声抵消法的核心组成部分是自适应算法和自适应滤波器。自适应算法可以自动调节输入滤波器的加权系数使滤波器达到最优滤波效果,所以自适应噪声抵消法的关键是在于找到某种算法,可以实现自动调节加权系数。
自适应噪声抵消法的主要思想是:除了带噪声音信号 x(t)=s(t)+n(t),假设还可以得到另外一个参考信号 r(t),而这个参考信号与噪声 n(t) 相关,但是与有效声音信号 s(t)不相关,那么就可以根据 Widrow 算法(一种近似最速下降的神经网络算法)抵消带噪声信号中的噪声,从而达到降噪的效果。
④声音滤波器
数字滤波器作为数字信号处理中的重要组成部分,可以通过数值之间的运算来实现滤波的效果,去除噪声成分。数字滤波器有很多种类,根据冲激响应函数的时域特性数字滤波器可分为两种,即无限冲激响应(Infinite Impulse Response,IIR)滤波器和有限冲激响应(Finite Impulse Response,FIR)滤波器。这两种滤波器可分别实现低通、高通、带通和带阻 4 种功能。
2、预加重
预加重是一种在发送端对输入信号高频分量进行补偿的信号处理方式。随着信号速率的增加,信号在传输过程中受损很大,为了在接收终端能得到比较好的信号波形,就需要对受损的信号进行补偿,预加重技术的思想就是在传输线的始端增强信号的高频成分,以补偿高频分量在传输过程中的过大衰减。而预加重对噪声并没有影响,因此有效地提高了输出信噪比。(百科官方解释)
预加重原理:语音信号高频段能量大,低频段能量小。而鉴频器输出噪声的功率谱密度随频率的平方而增加(低频噪声大,高频噪声小),造成信号的低频信噪比很大,而高频信噪比明显不足,从而导致高频传输衰弱,使高频传输困难。因此,在传输之前把信号的高频部分进行加重,然后接收端再去重,提高信号传输质量。
3、分帧加窗
“分帧”是把一段声音信号分成一些时间长度相等的音频信号。它可以在预加重后的声音信号上平滑地移动规定长度的窗函数得到,窗函数的窗口大小由声音信号的采样频率来确定。采用可以随着时间移动的窗函数对猪声音信号进行“交叠分帧”,可以防止在分帧时出现遗漏有效的声音信号,也可以保证每段声音信号在滑动时保持平稳性和连续性。
常用的几种窗函数:幂窗、矩形窗、三角窗、汉宁窗、汉明窗、高斯窗(不懂的自行百度下或评论问我哈)
4、端点检测
端点检测是指确定一段声音信号中有效信号的起始点和终止点。采集到的声音信号中含有无效的声音片段,进行端点检测确定出猪声音信号的起始点与终止点,可以排除大量的干扰信号,剪除静音片段,为后续的特征参数提取减小了运算量,缩短了提取时间。
常用方法:
短时过零率是指每帧声音信号通过零点的次数,其算法就是计算每帧声音信号幅值符号改变的总次数,如果相邻采样点的幅值符号是相同的,则没有发生过零点的情况,相反,如果相邻采样点幅值的符号发生了改变,那么表示声音信号发生了过零的情况。
短时能量一定程度上反应了声音信号的幅度变化,应用在区分声音信号中的清音和浊音,因为声音信号中清音的能量比浊音的能量小很多;区分无声片段和有声片段,因为无声片段的短时能量基本等于零,而有声片段是有能量存在的。
双门限端点检测法是常用的端点检测方法之一,其通过声音信号的短时能量和短时平均过零率确定声音信号的端点位置,短时过零率检测到声音信号的起始点和终止点可能过于宽泛,这样就降低了声音信号处理系统的速度;而短时能量检测到声音信号的起始点和终止点可能包含噪声信号,这样会导致提取的声音信号不太准确。所以将二者结合起来来检测猪声音信号的起始点和终止点,即双门限检测法提取声音信号的端点。
三、特征提取
接下来带大家详细学习下 MFCC 特征提取知识:
先说下 MFCC,人的耳朵在接收信号的时候,不同的频率会引起耳蜗不同部位的震动。耳蜗就像一个频谱仪,自动在做特征提取并进行语音信号的处理。在语音识别领域中 MFCC(Mel Frequency Cepstral Coefficents)特征提取是最常用的方法,具体来说,MFCC 特征提取的步骤如下:
对语音信号进行分帧处理
用周期图(periodogram)法来进行功率谱(power spectrum)估计
对功率谱用 Mel 滤波器组进行滤波,计算每个滤波器里的能量
对每个滤波器的能量取 log
进行离散余弦变换(DCT)变换
保留 DCT 的第 2-13 个系数,去掉其它
其中,前面两步是短时傅里叶变换,后面几步主要涉及到梅尔频谱。
大家需要重要掌握的特征提取知识点:
过零率(zero crossing rate)是一个信号符号变化的比率,即在每帧中语音信号从正变为负或从负变为正的次数。 这个特征已在语音识别和音乐信息检索领域得到广泛使用,通常对类似金属、摇滚等高冲击性的声音的具有更高的价值。一般情况下,过零率越大,频率近似越高。
频谱质心(Spectral Centroid)是描述音色属性的重要物理参数之一,是频率成分的重心,是在一定频率范围内通过能量加权平均的频率,其单位是 Hz。它是声音信号的频率分布和能量分布的重要信息。在主观感知领域,谱质心描述了声音的明亮度,具有阴暗、低沉品质的声音倾向有较多低频内容,谱质心相对较低,具有明亮、欢快品质的多数集中在高频,谱质心相对较高。该参数常用于对乐器声色的分析研究。
声谱衰减(Spectral Roll-off)是对声音信号形状(波形图)的一种衡量,表示低于总频谱能量的指定百分比的频率。
梅尔频率倒谱系数(Mel-frequency cepstral coefficients,MFCC)是在 Mel 标度频率域提取出来的倒谱参数,Mel 标度描述了人耳频率的非线性特性。其中梅尔尺度(Mel Scale)是建立从人类的听觉感知的频率;比如若把音调频率从 1000Hz 提高到 2000Hz,我们的耳朵只能觉察到频率似乎提高了一些而不是一倍。但是通过把频率转换成梅尔尺度,我们的特征就能够更好的匹配人类的听觉感知效果。
色度频率(Chroma Frequencies)色度频率是音乐音频有趣且强大的表示,其中整个频谱被投影到 12 个区间,代表音乐八度音的 12 个不同的半音。
四、小结
大家看完本篇基本可以清楚语音信号在计算机识别过程中用了哪些降噪及预处理技术,以及语音信号在特征提取过程中应该掌握的框架和重要知识点,下一篇小王学长以实战的形式来带大家一起领略语音识别结合深度学习的美妙之旅~
作者介绍
王凯,计算机在读硕士,两年音视频学习开发经验,主攻音频语音识别方向,对 NLP、深度学习、神经网络、数学建模、音视频编解码技术有一定研究和实践经验。
版权声明: 本文为 InfoQ 作者【攻城先森】的原创文章。
原文链接:【http://xie.infoq.cn/article/0c084758fc210db566ade2787】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论