周志平, 佟国香, 李远征
(上海理工大学 光电信息与计算机工程学院,上海200093)
基于新型组合算法的语音降噪系统
周志平, 佟国香, 李远征
(上海理工大学 光电信息与计算机工程学院,上海200093)
在研究VSLMS和子空间降噪原理的基础上,分析了两种算法的优缺点,提出了一种组合降噪算法,并进行了硬件实现。组合降噪算法试图寻找一个语音信号的分解点,利用子空间算法分离出带噪信号,作为自适应算法的输入,最后由VSLMS算法对带噪信号进行增强处理。硬件实现在该组合降噪算法的基础上,利用SOPC技术在FPGA芯片中搭建嵌入式语音降噪系统。实验结果表明,该方法能够优于传统降噪算法,使用硬件结构加快了算法的收敛速度。
VSLMS; 子空间; 组合降噪算法; SOPC技术; 硬件实现
ZHOU Zhiping, TONG Guoxiang, LI Yuanzheng
(School of Optical-Electrical and Computer Engineering, University of Shanghai for Science and Technology, Shanghai 200093, China)
在各类语音增强算法中,时域最小均方(LMS)算法因为其结构简单、鲁棒性好和易于硬件实现等优点,被广泛采用[1-2]。但在实际应用过程中,LMS算法有两个缺陷:一是收敛速度慢,不适用于快速收敛场合;其它的滤波性能较大程度上取决于输入信号的特性,即输入信号自相关矩阵的特征值分布[4]。当背景噪声很强时,滤波性能会急剧下降。本文以解决这两个问题为出发点,采用组合算法改善输入信号和降噪效果,采用硬件实现提高收敛速度。基本思想是首先通过子空间算法改善输入信号特性,然后采用VSLMS滤波,最后进行硬件实现。
组合算法的硬件实现是一个具有挑战性的问题。本文在研究FPGA硬件系统的基础上,试图将软件算法映射到硬件电路来实现算法要求的结构。
1.1 子空间算法
子空间语音降噪法的核心思想是通过算法将含噪语音信号分解到有效信号子空间和噪声信号子空间中。考虑到误差因素的影响,在有效信号子空间会残余部分噪声信号,而噪声子空间只包含噪声信号。分解方法理论上可以使用奇异值分解方法,或是特征值分解方法[4]。本文选用特征值分解法,在有效信号子空间内分析原始语音信号。
定义一个纯净信号d,写成矩阵形式
D=A×S
(1)
其中,A=[A1,A2,…,AM]为K×M的矩阵;S=[S1, S2,…,SM]T是M×1的矩阵。
d的协方差矩阵表示为
Rd=E{ddH}=AE{SSH}AH=ARSAH
(2)
假设S的协方差矩阵RS是正定矩阵,则Rd的秩为M,正定特征值和零特征值的个数分别为M和K-M个[5]。
设x表示和语音信号无关的K维加性白噪声,均值为0,噪声信号协方差矩阵Rx已知且正定,于是有
Rx=E{xxH}=σ2
(3)
有了以上假设,可以使带噪信号表示为
dx(n)=d(n)+x(n)
(4)
则带噪信号协方差矩阵Rdx可以表示为
Rdx=E{dxdxH}=E{(d+x)(dH+xH)}=
E{ddH}+E{xxH}=Rd+Rx
(5)
(6)
引入正交矩阵U将Rdx和Rd对角化,可得
(7)
U=[S|G]
(8)
(9)
空间S称为信号子空间;空间G称为噪声子空间。由子空间构造原理[6]可知S和G相互正交,且
(10)
于是有
SSH=E-GGH
(11)
综上所述,子空间语音降噪法就是将带噪信号语音空间分解为有效信号子空间和噪声信号子空间。然后去除噪声子空间,在信号加噪子空间内滤波恢复出近似纯净的语音信号。
1.2 VSLMS算法
LMS算法最早由Widrow和Hoff提出,该算法实现简单且计算量小,可以取得较好的滤波效果,因此是最简单也是应用最广泛的自适应算法[7]。自适应滤波器结构如图1所示,它是一个双输入闭环反馈系统,两个输入分别是原始信号d(n)(同时为期望得到的信号)和被噪声干扰的含噪信号x(n)。采用这种方法取得的最好结果是系统输出期望的信号,即信噪比无穷大。LMS算法的基本描述如下
y(n)=wT(n)x(n)
(12)
e(n)=d(n)-y(n)
(13)
w(n+1)=w(n)+μx(n)e(n)
(14)
图1 自适应滤波器结构
其中,y(n)为滤波输出;x(n)位输入的含噪信号,d(n)为期望输出;e(n)为滤波误差用于下一次更新权值;w(n+1)为下一次迭代时的权值;μ为步长。由式(14)可以看出参数μ决定了w向量的更新速度即步长。该算法收敛的条件为0<μ<2/λmax。这里λmax是输入信号自相关矩阵最大特征值[8]。当迭代次数接近于无穷大时,权矢量w(n)的期望值将逼近最优解。μ值越大,算法收敛越快,同时稳态误差也越大,μ值越小,算法收敛越慢,但稳态误差也越小。由于固定步长的μ难以平衡滤波时的收敛性和鲁棒性,所以一般采用变步长LMS算法,在开始使用较大的μ值达到快速收敛后,减小μ值,以达到稳态效果并获得较小的超调量[9]。VSLMS算法基本原理表示如下
y(n)=wT(n)x(n)
(15)
e(n)=d(n)-y(n)
(16)
(17)
w(n+1)=w(n)+μ(n)x(n)e(n)
(18)
式中,N为采样点数,0<μ2<μ1<2/λmax。由于μ(n)是变化的,在开始阶段采用较大的步长μ1,使VSLMS算法比固定步长LMS算法具有更快的收敛速度。当算法接近收敛稳定时,采用较小的步长μ2,减小稳态误差。
2.1 算法原理
组合算法的结构图如图2所示,带噪信号首先由子空间过滤掉一部分噪声,再将过滤后的信号作为VSLMS的输入。由VSLMS算法进行进一步滤波。
图2 组合算法结构
具体步骤如下:(1)将带噪语音进行子空间滤波,计算Rx和Rdx,得到带噪语音信号的协方差函数;(2)对该函数进行特征值分解,求出大于噪声方差的特征值,由这些特征值重新构成语音信号,即为增强后的信号;(3)由于存在语音失真和噪声冗余,将得到的语音信号通过VSLMS进行滤波;(4)在VSLMS滤波中,首先进行μ值估算。μ值主要由输入信号的信噪比决定,不同的信噪比决定不同的权值更新速度。本文采用式(9)估算μ值
(19)
其中,s=6.25,μ0=4.2,SNRdB=10log10SNR;(5)滤波后的信号反馈给VSLMS模块,计算对应的误差信号e(n)和权值更新,进行下一轮迭代。
2.2 算法仿真
根据上述分析完成组合算法后,使用Matlab评估组合算法的降噪效果。为检测算法性能,将3种算法分别进行仿真对比。从TIMIT中选取一段时长为5 s的声音和高斯噪声作为样本。采用Matlab进行仿真,图3(a)为原始语音信号和带噪信号波形图。使用组合算法对带噪语音信号进行滤波,滤波效果如图3(b)所示。
图3 Matlab仿真结果
如图3所示,经过子空间算法后,语音信号已有大幅改善,但存在噪声冗余和语音失真。而经过VSLMS算法后,冗余噪声和语音失真被消除。可见组合算法在去噪效果上更为优良。
3.1 硬件设计
在数字信号系统设计中,最常用的3种硬件平台是ASIC,DSP和FPGA。ASIC能达到信号处理要求,但缺乏灵活性,设计周期长。DSP适用于数学计算,但它是串行结构,不适合高采样率的应用[10]。本文采用FPGA设计平台,组合算法的硬件结构如图4所示。
图4 语音降噪系统框图
该硬件结构实现过程如下:系统上电后从Flash加载启动代码,由A/D模块负责对语音信号的实时采集,随后进入组合语音降噪算法模块,最后将处理信号由D/A编码输出。
为了将软件算法移植到硬件平台,可以采用多种方法。一种是采用DSP Builder转换到IP核,另外两种分别是VHDL和Verilog HDL硬件描述语言进行设计,目前基于这两种方法实现矩阵运算都已取得了一定的成果[11-12]。本文采用Verilog HDL语言,其具有易学易用、简洁高效、占用资源少等优点。编写FIR滤波器,分别加入子空间和VSLMS算法,生成子空间去噪和VSLMS去噪模块(8抽头,μ2=0.007 8)。在完成综合、布局布线、仿真等步骤后,利用Modelsim配合进行功能验证。
3.2 功能验证
为验证上述方案的可行性,需要对系统各部分进行功能验证。用正弦波作为原始信号,高斯白噪声作为噪声信号,调用Modelsim软件进行仿真。编写激励文件,模拟时钟信号和控制信号,得到的Subspace仿真结果和VSLMS仿真结果如图5所示。
图5 Subspace、VSLMS仿真结果图
3.3 系统实验方案设计
3.3.1 系统方案分析
整个系统采用模块化的思想,通过顶层设计文件完成各个模块连接。设计过程可以裁减,方便以后添加改善算法的特征模块,提高滤波性能。
3.3.2 语音采集模块
采集模块由FPGA开发板上扩展的音频采集电路实现,通过双麦克风对语音数据进行采样、量化、模数转换,将A/D转换后的原始信号、噪声信号数据分别存入ROM1、ROM2中,利用16位加法器将原始信号和噪声信号进行叠加来作为组合降噪系统的输入。
3.3.3 滤波处理模块
根据本文描述的流程设计滤波处理模块,主要包括空间去噪和VSLMS去噪模块。在Quartus II中完成对顶层文件进行编译和管脚分配,然后下载到对应的FPGA芯片中,整个组合语音降噪系统在上电后自动完成配置。
本文通过分析LMS算法和子空间算法的原理,提出了一种新的方法来改善传统算法的不足,在此基础上进一步建立了语音降噪系统。根据比较可知,组合算法的语音降噪效果相对传统算法,有效去除了背景噪声干扰,保证了较快的收敛速度和较小的稳态误差,滤波效果明显。
[1] Wang Y, Zhang C, Wang Z H. A new variable step size
LMS algorithm with application to active noise control[C].Nanjing:International Conference on Acoustics, Speech and Signal Processing IEEE Conference, 2003.
[2] 彭继慎,刘爽,安丽.低信噪比下基于新型变步长LMS的自适应滤波算法[J].传感技术学报,2013,26(8): 1116-1120.
[3] Harris R, Chabries D M, Bishop F.A variable step (VS) adaptive filter algorithm[J].IEEE Transactions on Acoustics, Speech and Signal Processing,1986,34(2):309-312.
[4] 陈国明,赵力,邹采荣.窄带噪声下的子空间语音增强算法[J].应用科学学报,2007,25(3): 243-246.
[5] 曹玉萍. 基于信号子空间的语音增强方法[J].电子测试,2012,19(6): 54-57.
[6] Ephraim Y, Trees H L V.A signal subspace approach for speech enhancement[J].IEEE Transactions on Acoustics, Speech and Signal Processing, 1995,3(4): 251-266.
[7] Wang Yue,Zhang Chun,Wang Zhihua. A new variable step size LMS algorithm with application to active noise control[C]. Beijing:IEEE International Conference on Acoustics, 2003.
[8] Simon Haykin.自适应滤波器原理[M]. 郑宝玉,译.4版.北京:电子工业出版社,2003.
[9] 曾照福,赵巧红. 归一化 LMS 算法自适应滤波器的 Matlab仿真与 DSP 实现[J].湖南科技大学学报:自然科学版,2010,25(3): 67-71.
[10] Amiya Karmakar, Deepshikha Mullick, Amitabha Sinha. High performance adaptive sigma delta modulator design (using LMS algorithm) for performance enhancement of DSP processors and FPGA synthesis of the proposed architecture[J].International Journal of Current Engineering and Technology,2014,4(2): 624-630.
[11] 马建国,孟宪元. FPGA现代数字系统设计[M].北京:清华大学出版社,2010.
[12] 黄海全,刘禹杰. 基于LMS算法的自适应噪声抵消器的设计与实现[J].广西通信技术,2011,18(4): 36-40.
Speech Noise Reduction System Based on A New Combined Algorithm
This paper proposes and hardware implements a combined filtering algorithm based on the principles of VSLMS and the subspace filtering algorithm. The subspace algorithm tries to find a voice signal decomposition point and separates the signal from the noise, so that the signal can be used as the input of VSLMS. The signal is then enhanced by VSLMS. The SOPC technology is employed to build the embedded voice noise reduction system on the basis of software algorithm. The experiment results show that the method is superior in convergence speed to the traditional noise reduction algorithm by its use of the hardware architecture.
VSLMS; subspace; combined filtering algorithm; SOPC; hardware implement
2015- 12- 29
周志平(1992-), 男,硕士研究生。研究方向:计算机技术等。佟国香(1976-), 女,博士,副教授,硕士生导师。研究方向:嵌入式系统。李远征(1993-) ,男,硕士研究生。研究方向:计算机技术等。
10.16180/j.cnki.issn1007-7820.2016.10.023
TN911.4
A
1007-7820(2016)10-079-04