基于反幂法和卡尔曼滤波的自适应语音去混响方法

2018-07-26 02:13梅铁民
信号处理 2018年7期
关键词:混响声源卡尔曼滤波

梅铁民

(沈阳理工大学自动化与电气工程学院,辽宁沈阳 110159)

1 引言

人对房间混响效应的感受效果与声源信号本身密切相关。众所周知,在报告厅、教室等场所,混响效应使声音听起来有一种遥远感,降低了语音可懂度,是影响语音感知质量的重要因素之一。如何有效地消除或抑制语音信号中的混响效应,对提高语音信号感知质量或语音识别率均有着重要意义,去混响也是高性能免提电话、电视电话会议系统、助听器、人机对话系统、音频监听监录系统、立体声影院、立体声汽车音响系统、多媒体等应用中的关键技术,具有广泛的应用前景[1-3]。

在房间内,混响效应由房间内声音反射面对说话人语音的多次反复反射引起。麦克风或人耳接收到的信号是声源(说话人)信号与房间内各个方向反射回来的信号的叠加,数学上表现为声源信号与房间内冲激响应的卷积。因此,语音信号去混响过程本质上是信号的解卷积过程。由于语音信号功率谱的非白性,适用于通信信道自适应均衡的一些传统方法如Bussgang算法等并不适用于语音信号的去混响[4]。

最早用于语音信号去混响的方法是基于单麦克风系统(Single input single output, SISO)的复倒谱解卷积[5]。在复倒谱域内,上述卷积关系转化为线性叠加关系,并且声源信号集中于复倒谱的低时部分,而冲激响应则集中于高时部分,故可以用低时窗滤波来消除混响。但是,由于声源信号和房间冲激响应在复倒谱域内有一定重叠,因此这种方法去混响效果并不理想。

通常情况下,为了提高去混响性能,常采用麦克风阵列,即所谓单输入多输出(Single Input Multiple Output, SIMO)系统。一方面可借助于波束形成技术实现部分语音去混响,如延时-叠加技术。这种方法可部分地消除混响,同时抑制白噪声,从而使语音信号得到增强;另一方面,可以借助于信道间的交叉关联(Cross Relation, CR)关系[7]实现房间冲激响应(Room Impulse Response, RIR)的盲辨识,在盲辨识基础上对混响信号实施逆滤波处理,从而实现声源信号恢复,即去混响目的。

如果已知房间冲激响应,则可以直接对混响信号进行逆滤波以便实现去混响[9]。但在很多情况下,房间冲激响应是未知的,且不可独立测量,那么只能根据麦克风输出信号在某种准则下对它们去混响,这类算法称之为盲去混响算法。语音获取过程的去混响算法(或称之为后补偿)基本上都属于盲去混响算法。

盲去混响算法还可以细分为倒谱分析去混响算法[5- 6]、多级线性预测分析去混响算法(Multi-Step Linear Prediction, MSLP)[10]、最大似然估计去混响算法等[12]、谱减去混响算法(Spectral Subtraction, SS)[13]等, 这些算法均为建立在SISO系统上的去混响算法,它们通过消除或抑制晚期混响以实现听觉去混响,达到语音增强的目的。而基于房间冲激响应盲辨识的逆滤波算法[15-17]、自适应逆滤波算法(不需辨识RIR,直接估计去混响系统)[18]、波束形成去混响算法(Beamforming, BF)[19]等则是建立在SIMO (或MIMO)系统上的盲去混响算法,它们通过完全恢复声源信号以实现去混响的目的。除此之外,尚有很多出于不同应用目标、利用混响语音信号不同特性的去混响方法,如在[21]中提出的语音特征参数域去混响方法可直接应用在自动语音识别(Automatic Speech Recognition, ASR)中;利用混响语音相对于声源语音在时间、频率域内的稀疏性改变,通过时频域内稀疏性最大化实现去混响[22]。已有的这些去混响方法抗噪声性能弱,在有噪声环境中很难达到理想效果。此外,目前流行的深度神经网络方法也广泛应用于语音去混响,并获得不错的去混响效果,其缺点是需要较长的训练学习过程[25]。

在短时傅里叶变换(STFT)域内,文献[29]提出卡尔曼滤波和EM算法相结合的去混响算法,即在E步用卡尔曼滤波进行声源信号估计,而在M步对噪声强度和房间冲激响应进行最大似然估计;而文献[30]提出对混响信号采用自回归模型并建立卡尔曼滤波问题,在该模型中声源信号看成是过程噪声,并且需要对其自相关矩阵进行最大似然估计。在[31]中不仅考虑混响信号的自回归模型,同时考虑声源信号的隐马尔可夫模型。文献[29]所提方法给出不错的结果,但美中不足的是它未充分利用SIMO系统输出信号之间的交叉关联关系进一步提高去混响效果。

2 混响效应数学模型与去混响系统

对于SIMO系统,设房间中有N个麦克风,第i个麦克风接收到的数字化混响语音信号(即观测信号)为xi(n) (i=1, 2, …,N;n为时间),则观测信号与声源信号s(n)之间的关系为:

(1)

(2)

为(L+Lg-1)×Lg的卷积矩阵,则去混响滤波器组矢量g满足如下方程:

(3)

MINT定理说明了去混响滤波器与造成混响效应的房间冲激响应之间的关系。只要能把房间冲激响应估计出来,就可以根据MINT定理来确定去混响滤波器。但是实践表明,MINT定理给出的去混响滤波器对房间冲激响应的估计误差很敏感,这种方法实践中并不可行。

3 基于交叉关联关系的反幂法SIMO系统盲辨识

在本节中将给出基于信道间交叉关联关系和反幂法的房间冲激响应估计新算法。基于二阶统计量的多信道盲辨识是建立在如下的信道间交叉关联关系基础上的[7],即,

[xi(n)-νi(n)]*hj(n)=[xj(n)-νj(n)]*hi(n)

(4)

其中,i,j=1,2,…,N;i≠j;“*”为卷积算符。

(5)

(6)

其中,在式(5)和式(6)中,(1×L)维行矢量xi(n)=[xi(n),xi(n-1),…,xi(n-L+1)]和vi(n)=[νi(n),νi(n-1),…,νi(n-L+1)],则式(4)中的交叉关联关系公式可以写成如下的矩阵形式:

[C(n)-V(n)]h=0

(7)

对式(7)两边同时左乘[C(n)-V(n)]T并取统计平均,同时令R(n)=E[CT(n)C(n)](其中, E[·]表示进行统计平均操作),则有:

(8)

(9)

对于(NL×NL)维矩阵R(n),其最小特征矢量可以采用反幂法(Inverse Power Method)迭代求解以便降低计算复杂度。令h0为h的初值,则反幂法最小特征矢量的迭代过程为在hk已知的前提下求解hk+1(迭代次数k=0,1,2,…):

(10)

式(10)即为建立在交叉关联关系基础上的反幂法SIMO系统盲辨识算法。如果考虑到房间冲激响应的时变性,那么n时刻房间冲激响应矢量由反幂法给出的迭代过程可以表示如下:

(11)

其中,式(11)中的n代表时间,而上标k代表n时刻h(n)的迭代次数。在上式中,每一时刻的反幂法迭代初值是前一时刻的迭代结果。无论是时变系统还是非时变系统,相邻时刻的房间冲激响应总是高度相关的,因此在每一时刻对反幂法甚至可以只做一次迭代,从而得到如下的基于反幂法的系统自适应盲辨识算法(在前一时刻h(n-1)已知的前提下求解h(n)):

(12)

4 基于卡尔曼滤波的多路信号解卷积算法

在已知房间冲激响应的情况下,利用卡尔曼滤波进行解卷积(去混响)不需要利用MINT定理进行逆系统估计,而是直接估计出解卷积信号,有利于提高系统的噪声稳定性。

利用卡尔曼滤波进行解卷积的关键是建立卡尔曼滤波模型,包括过程方程和测量方程。

令X(n)=[x1(n),x2(n),…,xN(n)]T为n时刻观测信号矢量;n时刻状态矢量为声源信号s(n)构成的矢量S(n)=[s(n),s(n-1),…,s(n-L+1)]T;n时刻测量矩阵H(n)=[h1,h2,…,hN]T由反幂法估计得到的房间冲激响应构成(反幂法(11)或(12)中得到的h(n)矢量重新排列得到!),则多路信号解卷积的卡尔曼滤波问题描述如下:

过程方程:

S(n+1)=W(n+1,n)S(n)+u1(n)

(13)

测量方程:

X(n)=H(n)S(n)+u2(n)

(14)

(15)

此外,W(n,n+1)=WT(n+1,n)。

状态矢量的实际更迭过程应该是S(n+1)=W(n+1,n)S(n)+[1,0,…,0]Ts(n+1)+噪声项,而在过程方程中,直接把[1,0,…,0]Ts(n+1)和噪声项看成是过程噪声u1(n)(但其第一个分量的方差要远大于其他分量的方差,见表1),实践表明,这样做是可行的。

由卡尔曼滤波器输出的n时刻声源信号:

s(n)=S(n+1)的第L个分量

(16)

5 SIMO系统自适应去混响新算法

当把式(12)中给出的自适应盲辨识算法与基于卡尔曼滤波的多路信号解卷积算法相结合后,就得到了一种SIMO系统自适应去混响新算法。新算法的迭代步骤列于表1中,对应的系统框图如图1所示。

在新算法的系统辨识阶段,反幂法需要进行线性方程组的求解:R(n)h(n)=h(n-1)。由于R(n)是对称正定矩阵,因此可以采用乔莱斯基分解法求解,可以显著减少计算量。当然也可以采用LU分解或QR分解来求解。

图1 基于反幂法和卡尔曼滤波的SIMO系统自适应去混响算法的系统框图Fig.1 The system diagram of the adaptive dereverberation algorithm based on inverse power method and Kalman filter

6 实验与讨论

为了评估新算法的性能,进行了仿真实验和真实实验。在仿真实验中,采用实测房间冲激响应与无噪声语音进行卷积而得到仿真的混响信号,并且在混响信号中增加不同强度的噪声来模拟不同信噪比下的实测混响语音信号。仿真实验中所需的房间冲激响应与真实实验中所用到的实测混响信号是在同一个实验过程中获得的。具体实施过程如下。

在一个相对封闭且安静的会议室(约10 m×6 m×3 m)中用扬声器播放一段语音(该语音已知,这里称之为声源信号,声源信号时长3.98 s,连续重复播放8次),用四个与扬声器距离分别为1 m、2 m、3 m、4 m的麦克风进行录音,得到四路实测的混响语音信号(分别对应声道1~4),录音时间长度31.9 s,初始采样率为64 kHz。由于房间冲激响应持续时间比较长,为了降低数据量和计算量,对获得的数据通过降采样算法降低采样率,在房间冲激响应辨识和去混响阶段所用采样率为8 kHz。

大量的计算表明,无论是用仿真数据对新算法进行性能测试,还是利用新算法对实测信号进行处理时,下面两种数据预处理措施和后滤波处理是必要的,可以显著改善新算法的去混响性能。

预处理措施:首先,通过时延估计对四路混响信号进行时延补偿处理,使得时延补偿后的四路麦克风信号(或仿真信号)中的直达信号分量对齐。这样估计得到的房间冲激响应的主脉冲是对齐的。其次,对混响语音信号进行预白化处理。其过程如下:先计算其中一路混响信号的50阶线性预测系数,然后利用该线性预测系数对四路混响语音信号分别进行预白化滤波,得到预白化混响信号。预白化信号仍然满足交叉关联关系。

后滤波处理:仿真实验发现,卡尔曼滤波会使去混响信号的极低频和极高频分量过份放大,对卡尔曼滤波器输出的解卷积信号的后带通滤波处理可以很好地解决这个问题。

6.1 仿真实验

首先,利用LMS算法由四路实测混响信号和已知的声源信号得到四路实测房间冲激响应,用hLMS表示,用于本文所提出算法的仿真实验。

在利用LMS算法进行房间冲激响应辨识时,只追求辨识精度而不要求收敛速度,因此尽量降低LMS算法中的学习步长参数。最后采用声源信号平均功率与LMS算法输出的误差信号的平均功率之比(暂称之为信号干扰比)来衡量算法是否收敛。在算法收敛后该值也大体上反映了实测信号的噪声水平,用分贝数表示,即

SIR=-10log10(P声源功率/P误差功率)(dB)

(17)

在本实验中,房间冲激响应的长度为L=1300点(采样率为8 kHz),公式(17)给出的四路实测信号相应的信号干扰比分别为(29.24 dB,26.23 dB,24.98 dB,24.08 dB)。说明麦克风离声源越近,信号干扰比越高,房间冲激响应估计的越准。

用声源信号与hLMS进行卷积,并对其增加给定强度的高斯白噪声,用于模拟实测混响语音信号。利用本文所提基于反幂法的盲辨识算法所得房间冲激响应辨识结果用hNEW表示。用四路房间冲激响应的平均NPM(Normalized Projection Misalignment)来表示hNEW与hLMS之间的差距:

NPM=10log10(1-r2)(dB)

(18)

仿真时,在矩阵R(n)的估计公式中(见表1),设定λ=0.99999;为了加速收敛,反幂法的迭代次数设定为111。

在混响信号的信噪比SNR=30 dB时,算法收敛后hNEW与hLMS的比较见图2。当SNR=30 dB,40 dB,50 dB,60 dB,70 dB时,代表反幂法盲辨识算法收敛特性的NPM曲线如图3所示,说明建立在反幂法基础上的新辨识算法对噪声很不敏感,即具有噪声鲁棒性。当信噪比进一步提高到大于100 dB时,NPM迅速下降,几乎可以准确辨识系统。

在研究去混响效果时发现,由卡尔曼滤波器输出的去混响信号的低频与高频部分均被不合理地放大了,因此必须对其进行带通滤波,消除低频畸变和高频噪声。在本实验中,所用的201点FIR带通滤波器的通带范围为[100,3000]Hz,可以显著改善去混响信号的波形。在图4中给出的是声源信号(1)、混响信号(2)、去混响信号(3, 4)(分别用hLMS和hNEW去混响)波形比较。在图5中给出的是图4中方框区域的放大图。从图4、图5可以看出,在波形上,去混响信号(3, 4)要比混响信号(2)更接近声源信号(1)。当然,去混响信号(3)比(4)更好些。在图6中给出的是去混响信号(3, 4)相对声源信号的全局响应,与房间冲激响应hLMS相比能量更集中,衰减更快,说明混响效应得到有效抑制。从听觉感知角度来评价的话,去混响信号(3, 4)几乎听不到混响效应,但会听见较弱的背景噪音。总体效果还是比较令人满意的。

图2 仿真实验:由四路仿真含噪混响信号经新盲辨识方法辨识的房间冲激响应hNEW与hLMS的比较(SNR=30 dB)Fig.2 Simulations: comparison between the blindly identified room impulse responses hNEW and hLMS(SNR=30 dB)

图3 仿真实验:仿真信号在不同信噪比下进行RIR辨识时的NPM曲线Fig.3 Simulations: the NPM of the identified RIR under different SNR of the simulated reverberant signals

图4 仿真实验:声源信号(1)、仿真混响信号(2)、去混响信号 (3:用hLMS去混响;4: 用hNEW去混响)波形比较Fig.4 Simulations: the source speech signal (1), the simulated reverberant signal (2) and the dereverberated signals (3: dereverberation with hLMS; 4: dereverberation with hNEW)

图5 图4中方框区域波形的放大图Fig.5 The zoomed-in graph of the part in rectangle in Figure 4

图6 仿真实验:去混响信号(图4中信号3、4)相对于声源信号的全局响应Fig.6 Simulations: the global impulse response between the dereverberated signals (the 3rd and 4th signals in Figure 4) and source speech signal

6.2 真实实验

图7 真实实验:由实测数据用新盲辨识算法得到的4路房间冲激响应Fig.7 Experiments: the four channel impulse responses identified with the proposed algorithm (from top to bottom: channel 1- 4)

图8 真实实验:实测数据盲冲激响应辨识时相对hLMS的动态NPM曲线Fig.8 Experiments: the dynamic NPM of the blind identification of (comparing with hLMS) from the real recorded signals

在图9中给出了声源信号、实测混响信号及去混响信号波形比较。无论是从波形比较,还是听觉测试,实测信号的混响效应经去混响处理后得到明显削弱。

图9 真实实验:声源信号(1)、实测混响信号(2: 声道4)、去混响信号(3)波形比较Fig.9 Experiments: the source speech signal (1), real recorded signal (2: channel 4) and the dereverberated signal (3)

6.3 与其他算法的比较

在语音去混响中,由于房间冲激响应的超长性,语音信号的非白性等因素的影响,去混响算法的噪声鲁棒性都比较差。通常来说,晚期混响抑制算法的噪声鲁棒性更好些,但是去混响性能有限;而逆滤波去混响算法鲁棒性会相对较差,但是在信噪比较高的情况下,其去混响性能要更好些。新算法对于安静环境下实测语音信号的去混响效果可以与文献[30]所给的结果相媲美,但新算法的计算复杂度要低于后者[注]参见https:∥www.audiolabs-erlangen.de/resources/ 2016-SPL-MAR-KALMAN。

7 结论

本文所提出的基于SIMO系统输出信号交叉关联关系和反幂法最小特征向量求解的SIMO系统盲辨识方法是可行的,并具有较好的抗噪声性能;盲辨识算法与卡尔曼滤波解卷积方法的有机结合为我们提供了实时SIMO系统解卷积的可能性。对观测信号的预处理(时延对齐、预白化)和对解卷积信号的后处理(带通滤波)是必要的。仿真与实验研究表明,本文所提出的方法可以实时地有效削弱房间的混响效应,并具有较好的噪声鲁棒性。

猜你喜欢
混响声源卡尔曼滤波
基于深度强化学习与扩展卡尔曼滤波相结合的交通信号灯配时方法
虚拟声源定位的等效源近场声全息算法
卡尔曼滤波在信号跟踪系统伺服控制中的应用设计
基于GCC-nearest时延估计的室内声源定位
海洋混响特性分析与建模仿真研究∗
浅谈音响效果器的应用
基于递推更新卡尔曼滤波的磁偶极子目标跟踪
基于有色噪声的改进卡尔曼滤波方法
运用内积相关性结合迭代相减识别两点声源
力-声互易在水下声源强度测量中的应用