基金项目:福建省高校产学合作项目(2015H6019); 福建省中青年教师教育科研项目(JA14008); 厦门市科技计划项目(3502Z20153002)
通信作者:ftong@xmu.edu.cn
(1.厦门大学海洋与地球学院,水声通信与海洋信息技术教育部重点实验室,福建 厦门 361102; 2.厦门大学信息科学与技术学院,福建 厦门 361005)
(1.Key Laboratory of Underwater Acoustic Communication and Marine Information Technology Ministry of Education,College of Ocean and Earth Sciences,Xiamen University,Xiamen 361102,China; 2.School of Information Science and Engineering,Xiamen University,Xia
microphone-array; beam-forming; generalized sidelobe canceller(GSC); de-reverberation method
DOI: 10.6043/j.issn.0438-0479.201612021
在音频/视频会议、人机交互、语音识别等领域,严重的混响干扰导致麦克风阵列语音处理性能急剧下降.针对现有逆滤波等抗混响方法需要获得准确的房间传输响应,而波束形成方法抗混响性能有限的问题,基于广义旁瓣抵消器(generalized sidelobe canceller,GSC)结构提出一种采用旁瓣增强的麦克风阵列抗混响算法(Sidelobeenhanceing reverberation mitigation algorithm for microphone array,SERM).该算法首先进行波束形成,初步获得增强的直达语音信号,并对旁瓣获取的混响分量进行自适应迭代增强,再将旁瓣迭代增强的误差信号作为参考噪声进行自适应噪声抵消,最终输出抗混响语音.实验结果表明,在混响环境下该方法能有效改善麦克风阵列的语音信号质量.
In many practical applications such as audio/video conferences,man-machine interfaces,speech recognitions,the reverberation leads to significant degradation of microphone array speech processing.However,while the conventional de-reverberation methods,such as inverse-filtering method,need to obtain accurate room transmission responses,the classic beam-forming method only yields limited performance.Based on the Generalized Sidelobe Canceller(GSC)structure,this paper proposes a novel microphone-array de-reverberation method to achieve sidelobe exploitation.First,we use the contemporary beam-forming method to initially obtain the direct speech signals.Then we adopt the adaptive iterative algorithm to explore reverberation components in sidelobes for further enhancements.Finally,the error of the sidelobe enhancement is adopted as the reference noise of adaptive noise cancellation to achieve the de-reverberation.Experimental results show that the proposed method effectively improves the quality of speech signal under the reverberation environment.
近年来麦克风阵列成为智能语音技术的研究热点,被广泛应用于音频/视频会议系统[1]、车载导航[2]、智能家居[3]等领域.但是,在许多实际应用场景中,由于墙体、家具、家电反射等原因存在大量混响,直接影响到麦克风阵列的工作性能.
在目前已有的多种抗混响语音增强方法中:波束形成方法[4]通过对准声源方向进行波束形成,该算法实现简单方便,但其抗混响依赖于波束形成的指向性,而对于语音这类宽带信号而言,实际场合广泛采用的小尺寸阵列指向性往往不够理想[5],影响了抗混响处理性能; 谱减法[6]可在频域上对语音信号进行抗混响处理,但在处理过程中会损失语音信号的相位特性,而相位特性对许多麦克风阵列系统而言是至关重要的; 盲均衡算法[7]通过使用与输入和输出通道相同数量的有限脉冲响应(finite impulse response,FIR)滤波器来恢复信号的幅度和相位特性以比实现抗混响,然而该算法目前均基于大批量数据的处理,因此很难应用在实时工作的麦克风阵列系统中; 逆向滤波法[8]是利用已知条件求得声源与麦克风之间的传输响应,然后通过设计对应的逆向滤波器达到消除混响的目的,但逆向滤波法需要提前获取房间传输响应作为先验知识[8],在实际应用中,麦克风阵列工作环境处于变化之中,很难提前获取准确的房间传输响应.
广义旁瓣抵消器(generalized sidelobe canceller,GSC)算法在麦克风阵列语音信号增强研究领域得到了广泛的研究和应用.李芳兰等[9]在GSC中引入可调波束形成器估计声源方位以抑制背景噪声干扰.陈磊等[10]在GSC基础上提出了一种可跟踪移动声源方向的麦克风阵列语音增强算法.GSC算法能很好地抑制非相干背景噪声,但无法抑制相干噪声[11].在混响环境中,由于混响分量和直达分量来自同一声源,具有相关性,所以GSC算法无法有效地进行抗混响处理.
考虑到上述问题,本研究基于GSC结构提出了一种旁瓣增强的麦克风阵列抗混响算法(Sidelobeenhanceing reverberation mitigation algorithm for microphone array,SERM).该算法在通过声源定位[12]获取声源方向后首先利用波束形成方法初步获取语音直达分量; 其次,利用阻塞矩阵输出语音混响分量通过自适应滤波算法以直达分量为预期进行迭代,和旁瓣获得的混响语音进行叠加增强; 最后,将旁瓣增强迭代的误差信号作为参考噪声对增强语音进行自适应噪声迭代抵消处理,输出语音增强信号.该方法无需房间传输函数作为先验知识,并可改善常规波束形成方法由于指向性不足导致混响抑制性能不高的问题.实验结果表明,该方法可有效实现混响环境下的语音增强.
图中a为叠加的权重系数.
目前常用的麦克风阵列波束形成算法有delay-sum[12]、filter-sum波束形成方法[12]、自适应波束形成方法[13]、后置滤波方法[14]、子空间方法[15]、子带波束形成方法[16]、近场波束形成方法[17]等.因为delay-sum波束形成方法因信号频率的变化会产生不同程度的旁瓣,而filter-sum波束形成方法通过滤波器系数调整可以形成宽带的窄波束[12],所以本研究中采用filter-sum波束形成方法.即将M元麦克风阵列每个通道信号xk(n)(k=1,2,…,M)经过一个FIR滤波器,得到输出信号
yk(n)=∑Jj=-Jak,jxk(n-j),(1)
其中,n表示时间坐标,J表示FIR滤波器的时间跨度,ak,j表示第k通道FIR滤波器第j个抽头系数.波束形成输出y(n)为[12]:
y(n)=∑Mk=1yk(n).(2)
在典型的家庭、办公环境中,由于墙壁反射等原因,语音信号在室内多径传播产生混响效应.房间传输响应[18]可以分为3个部分,如图1所示.第一部分为直达声信号的传输响应.第二部分为直达声信号到达之后,在50 ms内到达的强反射信号,称为早期混响信号的传输响应,严重影响语音信号处理的性能; 同时早期混响信号大小与语音识别性能具有极高的相关度[18],其特性强烈依赖于声源和麦克风的位置.第三部分为后期混响信号的传输响应,其特性为幅度大致呈指数衰减,衰减速率与声源和麦克风的位置无关.
图1 房间传输响应[18]
Fig.1 The room impulse response[18]
本研究提出的基于旁瓣增强的抗混响语音增强SERM算法的流程图如图2所示.图2中虚线框内为GSC算法:GSC算法通过波束形成输出对准方向的带噪语音; 再利用阻塞矩阵输出与语音信号不相关的干扰噪声; 最后通过自适应迭代滤波处理后,抑制波束形成输出的信号中的干扰噪声,实现语音增强.在混响背景下,SERM算法在GSC算法的基础上通过阻塞矩阵获得旁瓣对应的混响分量; 并以直达语音为期望信号进行自适应迭代后将波束形成输出与迭代输出进行旁瓣增强叠加; 最后再将迭代误差作为参考噪声以旁瓣增强信号为期望信号进行自适应噪声抵消,实现抗混响语音增强.
由式(1)可知,M元麦克风阵列各通道信号经波束形成后输出为yk(n)(k=1,2,…,M).假设Y为阻塞矩阵输入,B为阻塞矩阵[19],R为阻塞矩阵输出信号混响分量,则
Y=[y1(n),y2(n),…,yM(n)]T,(3)
B=[1 -1 0 … 0 0
0 1 -1 … 0 0
0 0 1 … 0 0
0 0 0 … 1 -1](M-1)×M,(4)
R=BY=[y1(n)-y2(n)
y2(n)-y3(n)
yM-1(n)-yM(n)]=[r1(n)
r2(n)
rM-1(n)].(5)
将阻塞矩阵输出的旁瓣分量rk(n)(k=1,2,…,M-1)作为每个N阶自适应滤波器的输入信号,波束形成输出y(n)作为期望,wk,n(i)(i=1,2,…,N1)为n时刻第k通道自适应滤波器的权系数,则第k通道自适应滤波器输出zk(n)为:
zk(n)=∑N1i=1wk,n(i)rk(n-i),(6)
d(n)=∑M-1k=1zk(n),(7)
迭代误差为:
e(n)=y(n)-d(n),(8)
采用最小均方误差(LMS)自适应算法[20],则第k个滤波器权重系数更新为:
wk,n(i)=wk,n-1(i)+μ1·rk(n)·e(n),(9)
其中,μ1为旁瓣迭代滤波器的迭代步长.对混响信号以直达信号为期望进行自适应迭代后,将旁瓣迭代滤波输出d(n)与波束形成输出y(n)进行加权叠加得到旁瓣增强输出:
s(n)=a·d(n)+(1-a)·y(n),(10)
其中s(n)为旁瓣增强后的语音信号抗混响输出.进一步,将旁瓣迭代滤波的迭代误差e(n)作为参考噪声输入,旁瓣增强抗混响输出s(n)为期望信号进行N2阶自适应噪声抵消迭代,获得进一步降噪后的最终语音增强输出sout(n):
sout(n)=∑N2i=1vn(i)e(n-i),(11)
e2(n)=s(n)-sout(n),(12)
vn(i)=vn-1(i)+μ2·e(n)·e2(n),(13)
其中vn(i)(i=1,2,…,N2)为n时刻噪声抵消迭代自适应滤波器权系数,μ2为噪声抵消迭代自适应滤波器的迭代步长.
本研究所提SERM算法的自适应迭代采用最小均方差(LMS)自适应算法,在两部分的滤波器阶数均设置为N阶时,对M元麦克风阵列LMS算法每次迭代中需要进行M(2N+1)次乘加法运算[21],运算复杂度不高,可以实现算法的硬件移植.
为了验证SEMR算法的有效性,在混响较为严重的室内环境中进行了抗混响语音增强实验.实验房间为典型的办公室,大小为9.6 m×7.8 m×3 m,墙壁为普通水泥抹灰墙面.房间混响时间T60用赛宾公式[22]近似估算为3.5 s.实验采用7元麦克风均匀圆形阵列,阵列直径为15 cm.实验语音信号由0.5~4 kHz的扫频信号和TIMIT标准语音信号[23]组合,其中扫频信号用于测量实验环境的房间传输响应,TIMIT标准语音信号用于评估麦克风阵列输出的语音信号质量,其原始语音信噪比为28.06 dB.播放测试语音的采样率为16 kHz,使用DELL AD211蓝牙扬声器进行播放.
实验中首先通过声源定位算法来获取目标声源的方向信息,以保证算法的性能不受麦克风阵列和目标声源相对位置变化的影响.同时本研究SEMR算法的波束形成方法采用filter-sum方法[12],并比较了其与单麦克风采集语音、filter-sum波束形成算法[12](下文简称波束形成算法)的抗混响性能,其中单麦克风采用的是本文中7元阵列中位于0°方向的麦克风.
信号采样率/kHz 固定波束形成器阶数 N1,N2 μ1 μ2 0°方向声源相对位置/m a 16 120 32 0.03 0.01 5 0.5
实验中用到的各算法参数如表1所示:波束形成的滤波器抽头系数由声源相对位置来设定,同时为保证语音信号处理实时输出,波束形成器阶数设置为120阶,两部分自适应滤波器阶数N1,N2均设置为32阶.步长因子μ1,μ2选取LMS算法的收敛速度和控制稳态性最优时的值,具体分析见下文.
将单麦克风和不同抗混响方法处理获得的扫频信号分别进行相关分析,可以得到对应的房间传输响应如图3所示.从图3(a)单麦克风采集语音可以看出,直达声信号在图中约18.75 ms处,在20~40 ms区域以及47 ms处,存在几处较为明显的早期混响成分; 从图3(b)和(c)可以看出,波束形成算法和SEMR算法处理后的语音信号对几处明显的混响成分均有较为明显的抑制效果.实验中进一步进行抗混响效果的量化比较、分析.
直达混响比[24]RDR是一个衡量房间混响程度的声学参数,定义为直达声信号与混响的能量比值,其计算公式为:
RDR=10lg((h2(t))/(∑t/Δt-1n=0h2(n)+∑L/Δt-1n=t/Δt+1h2(n))),(15)
其中:h(n)为语音信号在n时刻的房间传输响应值; t为直达声信号对应的时刻; Δt为采样时间间隔; L为计算时间长度,取值为50 ms,即为早期混响时间段.实验计算3种输出信号在早期混响时间长度下的RDR如表2所示.从表中可以看出,相对于单麦克风输出语音信号的RDR,波束形成算法输出语音信号的RDR提高了1.51 dB,SEMR算法输出语音信号的RDR提高了2.15 dB.作为参考,表2同时列出了测试语音的信噪比,相对于单麦克风输出语音信号的信噪比,波束形成算法输出语音信号的信噪比提高了0.14 dB,SEMR算法输出语音信号的信噪比提高了0.64 dB.可见,SEMR算法的抗混响性能优于波束形成方法.
表2 实验语音信号输出RDR和信噪比
Tab.2 The RDR and SNR of the testing speech signal
图4为语音信号的波形频谱图.可以看出,与原始语音相比,噪声和混响干扰造成单麦克风、波束形成及SEMR算法语音信号不同程度的质量下降; 同时,从图4(a)、(c)、(e)、(g)方框内波形可以看出,SEMR算法输出语音时域波形得到了较好的增强.为了更好地进行性能比较,进一步对实验语音进行语音音质量化评估.
感知语音质量评价(PESQ)是一种采用改进型认知模型技术和听觉模型技术的语音质量客观评价算法[25].其满分为4.50分,得分越高则说明信号质量越好.本文中实验PESQ评估测试的语音信号为国际TIMIT标准语音库的语音片段.3种算法输出语音的PESQ量化评估结果如表3所示.从表3可以看出,波束形成输出的语音信号质量与SEMR算法输出的语音质量均优于单麦克风语音,但SEMR算法输出语音的PESQ得分值更高.可见,SEMR算法输出的语音质量优于波束形成方法输出.
语音识别是目前麦克风阵列的热门研究方向之一,语音识别效果是衡量麦克风阵列性能的一个重要标准,也是本研究算法主要的实际应用背景.本文中对波束形成输出语音和本研究算法输出语音输出进行了初步识别测试.实验采用HTK语音识别工具箱[26]作为识别端,将麦克风阵列输出语音通过声卡以16 kHz采样率输入PC,由PC上运行的HTK识别端进行语音识别.识别实验分别由测试者A和B进行,测试者均位于麦克风阵列0°方向,3 m距离处,测试指令词共40个,实验测试结果如表4所示.从表4可以看出,测试者A和B基于SEMR算法输出识别率相对于固定波束形成语音输出识别率分别提高了10和5个百分点.
在SEMR算法中,步长因子μ1,μ2是控制LMS自适应算法的收敛性能和稳态失调的重要参数[27],步长因子需适当设置以保证算法性能的充分发挥.实验中测试了SEMR算法中不同步长因子μ1,μ2的语音信号输出RDR如图5所示,其中曲线1表示当步长因子μ1为0.03时不同步长因子μ2的语音信号输出RDR,曲线2表示当步长因子μ2为0.01时不同步长因子μ1的语音信号输出RDR.从图5可以看出,在一定范围内SEMR算法性能对于步长因子μ1具有较好的稳健性,而相对步长因子μ2则较为敏感; 同时从图5可以看出,SEMR算法中步长因子μ1=0.03,μ2=0.01时,算法输出的语音信号RDR较高,抗混响性能较好.
图5 不同迭代步长的语音信号输出的RDR
Fig.5 The RDR values of the output signal for different iterations
针对严重混响环境情况下麦克风阵列处理性能降低的问题,本研究在GSC结构基础上提出了一种利用旁瓣获得的混响语音与波束形成获得的直达语音进行自适应迭代增强,并结合迭代噪声进行自适应噪声抵消的抗混响方法SEMR.实验结果表明,本研究提出的SEMR算法相对于传统波束形成算法,在抗混响能力、输出语音信号质量和识别性能上都有一定程度的提高.