星空体育·(StarSky Sports)官方网站-星空官方认证

语音识别流程梳理-星空体育官方网站

新闻资讯
质量为本、客户为根、勇于拼搏、务实创新

语音识别流程梳理

日期:2024-10-11 浏览: 

  其中,声学模型主要描述发音模型下特征的似然概率,语言模型主要描述词间的连接概率;发音词典主要是完成词和音之间的转换。

  端点检测,也叫语音活动检测(Voice Activity Detection,VAD),它的目的是对语音和非语音的区域进行区分。端点就是静音和有效语音信号变化临界点,端点检测就是为了从带有噪声的语音中准确的定位出语音的开始点和结束点,去掉静音的部分,去掉噪声的部分,找到一段语音真正有效的内容。

  其中基于能量的VAD是检测信号的强度,并且假设语音能量大于背景噪声能量,这样当能量大于某一门限时,可以认为有语音存在;

  频域特征,通过STFT将时域信号变成频域信号,即使在SNR到0dB时,一些频带的长时包络还是可以区分语音和噪声;

  倒谱特征,对于VAD,能量倒谱峰值确定了语音信号的基频(pitch),也有使用MFCC做为特征的;

  基于谐波的特征:语音的一个明显特征是包含了基频 F0 及其多个谐波频率,即使在强噪声场景,谐波这一特征也是存在的。可以使用自相关的方法找到基频;

  长时特征:语音是非稳态信号。普通语速通常每秒发出10~15个音素,音素见的谱分布是不一样的,这就导致了随着时间变化语音统计特性也是变化的。另一方面,日常的绝大多数噪声是稳态的(变化比较慢的),如白噪声/机器噪声。

  实际上,一方面需要对每个语音帧的帧内信息进行判决;另一方面由于语音帧之间有很强的相关性,相邻帧的信息对当前帧的影响也应该被关注。

  VAD 作为整个流程的最前端,端点检测处理得好,不仅将处理的时间序列变小,还能消除无声段道噪声。

  下图是MFCC特征提取的整个过程,下面将一一介绍特征提取过程每一步的作用:

  在音频录制过程中,高频信号更容易衰减,而像元音等一些因素的发音包含了较多的高频信号的成分,高频信号的丢失,可能会导致音素的共振峰并不明显,使得声学模型对这些音素的建模能力不强。预加重是个一阶高通滤波器,可以提高信号高频部分的能量

  语音信号是一个非稳态的、时变的信号。但在短时间范围内可以认为语音信号是稳态的、时不变的。这个短时间一般取10-30ms,因此在进行语音信号处理时,为减少语音信号整体的非稳态、时变的影响,从而对语音信号进行分段处理,其中每一段称为一帧,帧长一般取25ms。为了使帧与帧之间平滑过渡,保持其连续性,分帧一般采用交叠分段的方法,保证相邻两帧相互重叠一部分。相邻两帧的起始位置的时间差称为帧移,我们一般在使用中帧移取值为10ms。

  因为后面会对信号做FFT,而FFT变换的要求为:信号要么从-∞到+∞,要么为周期信号。现实世界中,不可能采集时间从 -∞ 到 +∞ 的信号,只能是有星空体育官方入口 星空体育官网限时间长度的信号。由于分帧后的信号是非周期的,进行 FFT 变换之后会有频率泄露的问题发生,为了将这个泄漏误差减少到最小程度(注意我说是的减少,而不是消除),我们需要使用加权函数,也叫窗函数。加窗主要是为了使时域信号似乎更好地满足 FFT 处理的周期性要求,减少泄漏。

  离散傅里叶变换(Discrete Fourier Transform,缩写为 DFT),将每个窗口内的数据从时域信号转为频域信号。

  从 FFT 出来的结果是每个频带上面的幅值,然而人类对不同频率语音有不同的感知能力:对1kHz以下,与频率成线kHz以上,与频率成对数关系。频率越高,感知能力就越差。在Mel频域内,人的感知能力为线性关系,如果两段语音的Mel频率差两倍,则人在感知上也差两倍。

  梅尔滤波器组将梅尔域上每个三角滤波器的起始、中间和截止频率转换线性频率域,并对 DFT 之后的谱特征进行滤波,再进行 log 操作,得到Fbank(Filter Bank)特征。

  声学模型可以理解为是对发声的建模,它能够把语音输入转换成声学表示的输出,更准确的说是给出语音属于某个声学符号的概率。在英文中这个声学符号可以是音节或者更小的颗粒度音素(phone),在中文中这个声学符号可以是声韵母或者是颗粒度同英文一样小的音素。

  下图为DNN-HMM混合建模框架,DNN的输入是传统的语音波形经过加窗、分帧,然后提取出来的频谱特征,如MFCC、PLP或更底层的滤波器组(filter bank,FBK)声学特征等。输入特征使用了在当前帧左右拼帧的方式来实现模型对时序信号长时相关性的建模,可以更好地利用上下文的信息;模型输出则保持了GMM-HMM经常使用的trihone共享状态(senone)。

  语言模型表示某一字序列发生的概率,是对一组字序列构成的知识表示。它的作用之一为消解多音字的问题,在声学模型给出发音序列之后,从候选的文字序列中找出概率最大的字符串序列。

  解码器模块主要完成的工作是,给定输入特征序列的情况下,在由声学模型、发音词典和语言模型等知识源组成的搜索空间(Search Space)中,通过一定的搜索算法,寻找使概率最大的词序列。

  在解码过程中,各种解码器的具体实现可以是不同的。按搜索空间的构成方式来分,有动态编译和静态编译两种方式。根据应用场景不同,可以分为在线解码器(在服务器端解码) 、离线解码器(在设备端解码)、二遍解码器、唤醒解码器、固定句式解码器。根据技术分类,可以分为基于lexicon tree的解码器、基于WFST的解码器、基于lattice rescore的解码器等。