语音识别-信号处理篇

语音增强系列博文

连接前端和后端的语音识别(ASR)的关键是给到后端(根据特征判定词/句)系统的特征类型和特征质量,对于传统的语音识别系统常采用MFCC(mel-frequency ceptral coefficients),这个特征对于高斯白噪声和混响具有鲁棒性,对于有色和相干干扰,常采用一阶和二阶微分减小其对MFCC系数的影响,该方法计算量相对较小;对于深度学习,通常采用Fbank做为特征而非MFCC,MFCC做了离散余弦变换,对于深度学习情况,反而是丢失了特征。

VAD

VAD方法

  • 基于能量的方法
  • 基于波形和谱估计法
    • 音调和谐波检测
    • 周期测量
    • 过零率
  • 高阶统计量

由于噪声是随着环境变化的量,其值并非固定的,在ASR系统中,通常不会采用能量的方法,WebRTC采用的是基于高斯混合模型的高阶统计量,VAD常用在AEC,NS模块以及做为后端特征提取的开关。

DOA估计

DOA在波束形成中非常关键,波束形成就是用于增强某个空间方向而抑制其它方向的声音,当前的DOA估计基于麦克风阵元之间接受到的时间差来估计方向。
这里写图片描述
基本原理如上图,
这里写图片描述
上述对于近场语音效果较好,但是对于远场情况,混响比近场严重的多,这将导致语音空间位置分布受到较大的影响,这一混响取决于说话人和麦克在空间的分布,所以,说话人位置变动,空间的传输函数也会变动,随着而来的是混响也会变化,在这种情况下,单一统计模型的VAD并不是很准确,可以使用多个统计模型的混合模型做为VAD的判决准则(而非经验模型)。
统计模型的概率分布取决于帧长,DFT长度以及选用的窗函数。
这里写图片描述
语音概率密度分布图
如上图可以看到,和统计模型相比填充的幅度直方图的概率密度函数主瓣较窄,使用多统计模型的混合分布可以增加算法本身的健壮性。

波束形成

很多地方采用了MVDR(Minimum Variance Distortionless Response)算法,如该算法的名称,该算法是无失真的。该算法的目标是最小化麦克风采集到的信号的方差,通常麦克风采集到的信号的语音和噪声成分是不相关的,所以最小方差是语音信号最小方差和噪声信号最小方差之和,这样经过MVDR后可以获得消除噪声影响后的语音信号。
MVDR的权重最优解是:
(1.1) W o p t = R x x 1 C ( C H R x x 1 C ) 1 f
其中 R x x 是输入信号的自相关矩阵, C 是约束矩阵, f 是期望的响应向量。
权重递归跟新如下:
(1.2) w o p t [ n + 1 ] = C ( C H C ) 1 f + ( I C ( C H C ) 1 C H ) ( w [ n ] μ R ^ x x [ n ] w [ n ] )

MVDR波束

MVDR波束方向图依赖于麦克风阵元和FIR滤波器阶数,
这里写图片描述

这里写图片描述

这里写图片描述

de-reberation

在时间上将混响分为“早”和“晚”两种,这里的早和晚是相对直接到达声音的滞后时间,由于人耳的时域掩码作用,“早”混响实际上增强了直达的声音,所以大部分去混响是针对“晚”这种情况的,以下就以针对“晚”这种情况。混响会严重影响ASR识别结果,google的识别系统中前端就做了de-reberation算法。

基于信道和均衡技术

MMSE(最小均方误差)算法

这里写图片描述
minimization of the mean square error and least-squares ,该方法计算了输入和输出的差异;MMSE目标函数是:
M M S E ( e ) = E [ e 2 ( m ) ] = m = 0 M 1 e 2 ( m )
M 是观测到的信号的长度, e ( m ) = s ( m k ) s _ ( k ) = s ( m k ) h ( m ) x ( m )
这个方法要求参考通道的信号是纯净的,这在实际中并不能总是得到。

多通道

这里写图片描述
MINT(Multi-channel Inverse Theorem)

基于谱减法

猜你喜欢

转载自blog.csdn.net/shichaog/article/details/78173127