基于RLS算法的自适应去混响方法转让专利

申请号 : CN201810102374.2

文献号 : CN110111804B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 向腾卢晶

申请人 : 南京大学

摘要 :

本发明公开了一种基于RLS算法的自适应去混响方法。该方法包括以下步骤:步骤1,利用传声器获取信号,然后通过模数转换将模拟信号转换为数字信号;步骤2,对信号做短时傅里叶变换后,不同频带内的信号单独地利用RLS算法进行去混响;步骤3,对滤波器输出的时‑频域的去混响信号做短时傅里叶逆变换,得到时域的去混响信号。本发明根据滤波器系数的变化量对声源位置进行检测,设计时变的遗忘因子,使得RLS算法在去混响时的声源突变情况下,既具有较快的收敛速度又能有较好的稳态去混响性能。

权利要求 :

1.基于RLS算法的自适应去混响方法,其特征在于,包括以下步骤:步骤1,利用传声器获取信号,然后通过模数转换将模拟信号转换为数字信号;

步骤2,对信号做短时傅里叶变换后,不同频带内的信号单独地利用RLS算法进行去混响,具体过程为:

步骤21,利用RLS算法的迭代公式进行迭代,对信号进行去混响;

步骤22,计算滤波器系数的变化量:定义δ(n,k)表示RLS算法在第n帧时相邻两帧的滤波器系数变化量:

式中,w(n,k)是滤波器系数,σ(n,k)是期望信号的标准差,(n,k)代表第n帧第k个频带;

第n帧总的滤波器系数变化量δT(n)为所有频带变化量之和:式中,βw是加权平滑因子;

然后根据下式判断声源位置是否发生突变:在Δn时间内,若当前的滤波器变化量δT(n)大于整段时间内滤波器变化量的最小值的α倍,则认为声源位置发生了突变;

步骤23,根据声源位置突变的检测结果改变遗忘因子λ的值:当声源位置发生突变时,立即减小遗忘因子λ的值,待算法接近收敛时再增大遗忘因子λ的值;

步骤3,对滤波器输出的时-频域的去混响信号做短时傅里叶逆变换,得到时域的去混响信号。

2.根据权利要求1所述的基于RLS算法的自适应去混响方法,其特征在于,所述传声器采用两个以上。

3.根据权利要求1所述的基于RLS算法的自适应去混响方法,其特征在于,所述步骤23中,减小遗忘因子λ的值时,应使得1/(1-λ)的大小接近单个频带内的滤波器系数的长度;增大遗忘因子λ的值时,上限值为1。

说明书 :

基于RLS算法的自适应去混响方法

技术领域

[0001] 本发明属于语音增强的领域,具体涉及一种基于RLS算法的自适应去混响方法。

背景技术

[0002] 混响会影响语音的清晰度,降低语音识别系统的识别率,甚至会引起听觉疲劳。去混响旨在去除传声器采集到的信号中的房间壁面反射声,去除或减小混响带来的不利影
响。
[0003] 基于谱减法的去混响算法是常用的语音去混响方法(Lebart K,Boucher J M,Denbigh P N.A New Method Based on  Spectral Subtraction for Speech 
Dereverberation[J].Acta Acustica United with Acustica,2001,87(3):359-366.)。中
国专利CN102750956A、CN103067821A等去混响方法均是采用基于谱减法的去混响算法。然
而,基于谱减法的去混响方法对语音音质有较大程度的损伤。
[0004] 基于多通道线性预测模型的WPE(Weighted Prediction Error)算法能够有效去除混响语音中的混响成分同时极大地保留语音的音质(T.Nakatani,T.Yoshioka,
K.Kinoshita,M.Miyoshi and B.H.Juang,“Speech dereverberation based on 
variance-normalized delayed linear prediction,”IEEE Trans.Audio,Speech,
Lang.Process.,vol.18,no.7,pp.1717-1731,Sept.2010.)。但是,WPE算法是离线算法,不
能应用于需要实时处理的系统,并且不能应对声源位置会发生突变的场景。
[0005] 基于RLS算法的去混响算法是一种有效的自适应去混响方法,能够在稳态情况下达到离线算法的性能,并且具有较好的鲁棒性。然而,在声源突变的场景下,传统的RLS算法
使用固定的遗忘因子,使得RLS算法难以同时具有较快的收敛速度和较好的稳态性能。因
此,RLS算法在声源突变时的性能仍需得到提升(S.Braun and E.A.P.Habets“, Online 
Dereverberation for Dynamic Scenarios Using a Kalman Filter With an 
Autoregressive Model,”IEEE Signal Process.Lett.,vol.23,no.12,pp.1741–1745,
Dec.2016.)。

发明内容

[0006] 为了解决在声源突变的场景下,使用RLS算法实现自适应去混响时,既能在声源位置固定的时间段里具有较好的去混响性能,又能够在声源位置发生突变的时刻具有较快的
收敛速度的技术问题,本发明提供一种基于改进的RLS算法的自适应去混响方法。
[0007] 本发明采用的技术方案为:
[0008] 基于RLS算法的自适应去混响方法,包括以下步骤:
[0009] 步骤1,利用传声器获取信号,然后通过模数转换将模拟信号转换为数字信号;
[0010] 步骤2,对信号做短时傅里叶变换后,不同频带内的信号单独地利用RLS算法进行去混响,具体过程为:
[0011] 步骤21,利用RLS算法的迭代公式进行迭代,对信号进行去混响;
[0012] 步骤22,计算滤波器系数的变化量:定义δ(n,k)表示RLS算法在第n帧时相邻两帧的滤波器系数变化量:
[0013]
[0014] 式中,w(n,k)是滤波器系数,σ(n,k)是期望信号的标准差,(n,k)代表第n帧第k个频带;第n帧总的滤波器系数变化量δT(n)为所有频带变化量之和:
[0015]
[0016] 式中,βw是加权平滑因子;
[0017] 然后根据下式判断声源位置是否发生突变:
[0018]
[0019] 在Δn时间内,若当前的滤波器变化量δT(n)大于整段时间内滤波器变化量的最小值的α倍,则认为声源位置发生了突变;
[0020] 步骤23,根据声源位置突变的检测结果改变遗忘因子λ的值:当声源位置发生突变时,立即减小遗忘因子λ的值,待算法接近收敛时再增大遗忘因子λ的值;
[0021] 步骤3,对滤波器输出的时-频域的去混响信号做短时傅里叶逆变换,得到时域的去混响信号。
[0022] 本发明根据滤波器系数的变化量对声源位置进行检测,设计时变的遗忘因子,使得RLS算法在去混响时的声源突变情况下,既具有较快的收敛速度又能有较好的稳态去混
响性能。

附图说明

[0023] 图1是本发明实施例中传声器阵列的示意图;其中,1-传声器,为声源相对传声器阵列的方位角。
[0024] 图2是本发明实施例中传声器阵列和声源相对位置示意图;其中,2-声源。
[0025] 图3是本发明方法的流程图。
[0026] 图4是本发明实施例中使用语音能量加权前后滤波器系数变化量的曲线对比图,(a)不使用σ(n,k)加权,(b)使用σ(n,k)加权。
[0027] 图5是现有的RLS算法与本发明改进后的方法去混响的STOI评分曲线对比图。

具体实施方式

[0028] 本发明基于改进的RLS算法的自适应去混响方法主要包括以下几个部分:
[0029] 1、信号获取
[0030] 将两个以上的传声器1以线阵列的形式布放来采集声源2的信号,然后通过模数转换将模拟信号转换为数字信号。
[0031] 2、利用RLS算法去混响
[0032] 若第m个传声器采集到的信号为x(m)(t),对其进行短时傅里叶变换变换到时-频域,则第n帧第k个频带的信号表示为x(m)(n,k)。不同频带内的信号被视为独立的信号,并单
独地进行去混响流程。本发明实施例中仅关注第一个传声器采集到的信号的去混响流程。
若第n帧第k个频带的滤波器系数用w(n,k)表示,那么去混响的期望信号d(1)(t)在时-频域
内第n帧第k个频带的信号d(1)(n,k)可以通过多通道线性预测表示为:
[0033] d(1)(n,k)=x(1)(n,k)-xT(n-D,k)w(n,k),   (1)
[0034] 式中,(·)T表示转置,
[0035]
[0036] D为预测延时,M是传声器的总个数,Lw是预测阶数。
[0037] 在使用RLS算法去混响时,每个频带的信号被视为独立的信号,分别进行去混响流程。那么RLS算法在各个频带内的代价函数为:
[0038]
[0039] 式中,σ2(τ,k)表示第τ帧第k个频带期望信号的方差,λ是遗忘因子,最后一项是正则化项,β是正则化系数。根据式(3)可以得到解为:
[0040]
[0041] 式中,
[0042]
[0043]
[0044] 式中,(·)*表示复共轭。因此,根据式(4)-(6)可以得到RLS算法的迭代公式:
[0045]
[0046] d(1)(n,k)=x(1)(n,k)-w(n-1,k)Tx(n-D,k),   (8)
[0047] w(n,k)=w(n-1,k)+k(n,k)d(1)(n,k),   (9)
[0048] P(n,k)=λ-1P(n-1,k)-λ-1k(n,k)xT(n-D,k)P(n-1,k),   (10)
[0049] 其中,P(n,k)为Ψ-1(n,k),k(n,k)被称为增益向量,期望信号的方差可以通过下列方法近似估计:
[0050] σ2(n,k)=βσ2(n-1,k)+(1-β)|x(1)(n,k)|2,   (11)
[0051] 式中,β是加权平滑因子。
[0052] 根据(7)-(10)式进行迭代,实施去混响的流程。
[0053] 3、声源位置突变检测
[0054] 根据(12)和(13)式计算滤波器系数的变化量,然后判断声源位置是否发生突变。当声源位置发生突变之后,算法会有一个重新收敛的过程,此时滤波器系数的波动较大。因
此,可以利用滤波器系数波动的幅度对声源位置突变进行检测。
[0055] 定义δ(n,k)表示RLS算法在第n帧时,相邻两帧的滤波器系数变化量为:
[0056]
[0057] 式中,σ(n,k)是期望信号的标准差。因为语音能量的波动也会使得滤波器系数波动,故使用语音能量对系数的波动进行加权。在实际的使用中,需要对滤波器系数变化量做
进一步平滑处理,总的滤波器系数变化量δT(n)为所有频带变化量之和:
[0058]
[0059] 式中,βw是加权平滑因子。
[0060] 当声源位置发生突变时,δT(n)会明显增大。因此,在使用RLS算法时,可以对δT(n)进行检测,当其出现较大幅度增加的现象时,则可认为声源位置发生了突变。本发明实施例
采用以下的判断方法:在Δn时间内,若当前的滤波器变化量大于整段时间内的最小值的α
倍,即
[0061]
[0062] 则认为声源位置发生了突变。
[0063] 4、时变的遗忘因子
[0064] 当检测到声源位置发生了突变时,立即减小遗忘因子λ的值以加快算法收敛。
[0065] 假设系统的模型可以表示为:
[0066] w(n,k)=w(n-1,k)+ω(n,k),   (15)
[0067] 式中,ω(n,k)为过程噪声。当λ取小于1的值时,RLS算法估计的滤波器系数的偏差可以表示为:
[0068]
[0069] 式中,tr[·]表示矩阵的迹,Rω(k)是过程噪声的自相关矩阵, 为传声器采集的信号的方差归一化的自相关矩阵,定义为:
[0070]
[0071] 当声源位置固定不变时,tr[Rω(k)]非常小,故需要使λ接近1以减小滤波器系数估计的偏差;而当声源位置发生突变时,tr[Rω(k)]会非常大,故需要减小λ以减小滤波器系数
估计的偏差,下限的建议值应符合以下要求:1/(1-λ)的大小接近单个频带内的滤波器系数
的长度。经过一段时间,当算法接近收敛后,再增大遗忘因子λ的值(上限值为1),提升算法
在稳态情况下的性能。
[0072] 5、对滤波器输出的时-频域的去混响信号做短时傅里叶逆变换,得到时域的去混响信号。
[0073] 下面结合附图,对本发明实施例中的技术方案进行清楚、完整地描述。
[0074] 1、测试样本及客观评价标准
[0075] 本实施例的测试样本的干净语音来源于TIMIT语音库,混响语音通过在混响时间约为1.2s的房间内录制得到。录制混响语音时,使用扬声器播放干净语音。参见图1和2,本
实施例使用三个传声器1采集信号,传声器1以间隔为6cm排列成线阵列,距地面1.5m,离声
源2的距离1.5m。扬声器与传声器阵列处于同一水平面,分别放置在阵列两侧录制两组数
据,通过后期拼接为在10s处声源位置发生突变的样本,共64段不同语音。同时,在距离阵列
2m左右的地方放置了一个-20dB的干扰声源。信号的采样频率为16000Hz。
[0076] 本发明采用STOI(Short-Time Objective Intelligibility)评分作为客观评价标准。计算STOI评分时,以干净语音作为参考信号,以2s为帧长0.5s为帧移逐帧计算。最后
将64个不同的语音样本的平均评分作为最终的STOI评分结果。
[0077] 2、方法的具体实现流程
[0078] 算法初始化:将P(0,k)设为εI,其中ε取10-2;将w(0,k)设为随机初始值,避免初始时刻计算滤波器系数改变量时分母为0。遗忘因子λ初始值为0.998。预测的延时D取2。
[0079] 对于各个频带,分别按照下列步骤计算:
[0080] 1)对时域信号做短时傅里叶变换,变化到时-频域。其中,窗函数为汉宁窗,帧长为512(32ms),帧移为128(8ms)。
[0081] 2)用(11)式对信号方差进行估计,其中β取0.6。
[0082] 3)用(7)式计算增益向量k(n,k),用(8)计算得到期望信号d(1)(n,k)。
[0083] 4)用(9)式更新滤w(n,k),用(10)式更新P(n,k)。
[0084] 5)用(13)式计算滤波器系数的变化量,其中βw取0.99。
[0085] 6)根据(14)式检测声源位置是否发生改变。本例中,Δn取35,α取1.4。若声源位置发生突变,暂停声源位置突变的检测;等待Δn1时间后,认为算法接近收敛状态,重新开始
对声源位置突变的检测。本例中,Δn1取375。
[0086] 7)当声源位置发生突变时,立即将λ减小为0.99;当算法接近收敛状态,将λ重设为0.998。
[0087] 8)将时-频域内的期望信号d(1)(n,k)通过短时傅里叶逆变换得到时域期望信号d(1)(t)。
[0088] 图4是滤波器系数变化量曲线的对比图,算法的遗忘因子λ为0.998。该样本在10s处声源位置发生了突变。图4(a)是在估计滤波器系数时去掉了(13)式中的加权因子σ(n,
k),图4(b)是使用(13)式的估计结果。对比两图可以发现,使用σ(n,k)加权能够有效减小滤
波器系数变化量的波动,有利于对声源位置是否发生改变进行判断。根据图4(b)可以看到,
滤波器变化量曲线在10s处有明显的增长,故判定在10s处声源位置发生了突变。
[0089] 为了体现本发明方法在声源突变场景下去混响的性能,本实施例对现有RLS算法和本发明改进后的方法进行对比,见图5的去混响STOI评分曲线,图中“REV”表示传声器采
集到的混响语音,“DRV.”表示去混响的语音,“RLS.”表示已有的RLS算法,“Improved RLS”
表示本发明改进的方法。从图5中可以看出,本发明的方法既能在声源突变时拥有较小的λ
具有的收敛速度快的优点,又兼有较大的λ具有的较好稳态性能的优点,使得RLS算法在声
源位置发生突变后的性能得到了明显提升。