1、语音增强的目标:
受体是机器,目标是提高语音的可懂度(intelligibility)
受体是人,目标是提高语音的质量(quality)
2、语音增强的任务:
语音降噪、语音分离、语音解混响,增强技术很多情况下并不是独立的,而是需要联合处理和优化。例如,语音解混
响与降噪,卷积盲源分离与降噪等等
3、研究现状和趋势:
语音增强主要包括三个方面:语音降噪、语音分离和语音解混响(可以包含回声消除)问题。根据接收信号的通道个数不同又分为单通道和多通道(特别强调二麦情况,因为与人类双耳对应)等不同情况。基本的算法都是从混合信号和干净信号建立的接收信号模型出发,考虑空间(spatial)、时间(temporal)和谱特性(spectra)三个维度的信息和信号处理问题;当然空间信息需要对应多麦克风情况,单麦克风没有spatial信息可以利用。
谱减法
将估计的噪声的功率谱并将其从嘈杂语音中减去;
没有利用明确的语音模型,其性能在很大程度上叏决亍对干扰源的频谱跟踪的好坏,容易产生“无中生有”的音乐 噪声;
基于统计模型的方法
语音增强问题归入到一个统计的估计框架中,如Wiener滤波、最小均方误差(MMSE)方和最大后验(MAP)法;
一般需要假设语音信号和噪声信号是统计独立的,且服从特定分布;
目前来说,模型参数的鲁棒估计还是一个比较困难的问题;
基于子空间的斱法
假设干净的语音信号子空间和噪声子空间是正交的;
这种子空间正交的假设在实际情况中,特别是短时的情冴下是非常不精确的;
传统的方法对平稳噪声的抑制效果比较显著,但是对于非平稳噪声,其往往不能得到很好的降噪效果
深度神经网络类算法
构造足够多的混响数据和对应干净数据进行MMSE或者其他标准下的训练得到模型。
关键点在于:数据规整、归一化/模型泛化/测试不训练的不匹配/Specific adaptation (如说话人、噪声环境、混响时间等等)。
有监督类算法对于非平稳噪声往往能得到更好的降噪效果
滤波法:
ICA滤波器;(单通道--时频域实现,多通道均可)
多通道波束滤波器;(Beamforming,多通道)
听觉场景分析:(CASA, 单通道,多通道均可)
基音周期的鲁棒估计和追踪问题;高频部分的浊音分离问题;序列聚类问题;清音的分离问题;聚类后的二值时频掩码平滑问题。
基于模型的方法:
采用预先训练的模型(参数戒者pattern)来描述每个源信号,而这个模型则作为分离阶段的先验知识。(训练(训练集)--测试(测试集))
参数类:正弦参数模型、AR和variance(LPC)参数、GMM参数描述各语音分布以及mix分布
Pattern类:矢量量化(VQ)、字典学习类算法(DL、SNMF和SCMF以及PLCA类)
测试:一般将混合信号带入到训练得到的参数模型构建的干净语音的可能组合所建立的距离目标凼数中,利用优化算法求解最优参数选择,然后利用得到的参数构建滤波器;
上述模型和HMM结合产生的更好描述信号Temporal性质的算法:
AR-HMM;FSHMM;以及N-FHMM。
深度神经网络类算法:
基于复倒谱域的滤波算法(单、多通道):
在复倒谱域纯净语音信号的复倒谱通常分布在靠近原点的附近,而房间冲击响应的复倒谱主要分布在远离原点的地斱。一般采用低通滤波器的低时窗滤除相应的混响部分,然后再通过逆向操作,获得解混响的声源信号。
基于波束形成的算法(多通道):
接受特定方向信号,大幅降低其他方向的干扰和混响成分;
要实现比较好的效果的话,对麦克风数目要求比较多;
单通道的语音解混响问题丌能运用此类斱法。
抑制后期混响的谱减法(单、多通道):
该类算法一般区分混响语音为前期混响成分和后期混响成分。利用统计方法和混响时间模型估计后期混响成分的方差,然后构建时变滤波函数实现去除后期混响成分的功能;
一般应用于单通道解混响或者和其他解混响算法共同使用;
该类算法一般在能量谱域实现,算法比较稳健,但由于非线性变换破坏相位,不能放置在其他需要相位信息的增强算法之前。
线性滤波器法(单、多通道—以多通道研究为主):
逆滤波器法:通过估计房间传递函数,然后对混响语音逆滤波实现解混响的目标。实际情况下,往往不能准确估计房间传递函数,并且由于房间传递函数是实时发化的,计算量大,效果不好;
基于概率模型类的算法:通过假定混响语音信号为房间传递函数和语音信号的自回归或者卷积传递函数模型且对语音建立零均值、时变方差的高斯分布,实现对解混响目标语音的建模,利用最大似然等方法求解模型中的所有参数,最后实现解混响得到估计的干净语音。该类算法一般要求通道个数大于1。
有监督条件下语音解混响算法:
基于非负矩阵分解/非负卷积信号模型:
基于对房间传递函数和语音信号的分析,建立对混响信号时频幅度谱或者能量谱进行非负矩阵分解或者非负矩阵反卷积的语音解混响和降噪模型;
该类模型通常利用已有语音数据训练得到关亍语音和噪声信号的模型表示。
对于语音增强方法的分类,可以按照其运用方法的不同进行分类,于是便可以分成如下两大类:数字信号处理的语音增强方法和基于机器学习的语音增强方法。 其中,数字信号处理的语音增强方法是主流方法,历史悠久,且拥有很深的技术奠基,是目前工程界进行语音降噪的主要思路。而在传统的数字信号处理的方法中,按照其通道数目的不同,又可以进一步划分为:单通道语音增强方法和麦克风阵列的语音增强方法。
在传统的单通道语音增强方法中,对数字信号处理的知识运用较多,时域和频域的方法都有,以频域处理为主,其中基于短时谱估计的语音增强方法是目前应用最为广泛的语音增强方法,具体的算法可以分为以下三大类:谱减法、维纳滤波法和基于统计模型的方法。除了上述提到的短时谱方法,在单通道的语音增强领域还有一种自适应滤波的方法,但是其需要事先知道噪声或者纯净语音,然后利用随机梯度下降的方式进行最优解的逼近,而在大多数情况下,噪声或者纯净语音等先验知识是无法获得的,因此大大限制了自适应滤波方法的应用,但是该方法在手机通话中的降噪应用比较广泛,通常手机中都会专门用一个降噪麦克风来收取环境中的噪音,以此作为参考输入来实现降噪。此外,在单通道的方法之中,还有一种基于子空间的方法也备受关注,但由于其运算度相对较高,所以在工程中的应用并不算广泛。近些年以来,小波变换的方法发展迅猛,它克服了短时傅里叶变换固定分辨率的缺点,可以获得信号在不同分别率上的信息,在近几年里得到了广泛的应用。
而在麦克风阵列的语音增强方法中,由于利用了更多的麦克风,考虑了信号的空间信息,因此在抑制特定方向的干扰、进行语音分离等方面,比单通道的语音增强更有优势。麦克风阵列的语音增强方法目前在智能音箱、机器人等领域应用较多,利用其多麦克风的优势,这类产品可以实现在远场和更复杂的声学环境中进行语音增强。主流的麦克风阵列方法有:固定波束形成的方法和自适应波束形成的方法。固定波束形成的应用环境十分受限,但运算复杂度较低,所以一般应用于声学场景固定不变的环境中;而自适应波束形成的方法则表现出更好的鲁棒性,当然这也是以牺牲运算复杂度为代价,目前自适应波束形成方法主要有两大阵营:LCMV结构和GSC结构,如今的麦克风阵列语音增强算法基本上都是基于这两种结构进行地改进和优化。
基于机器学习的语音增强方法算是奇巧之技,不同于传统的数字信号处理方法,它借鉴机器学习的思路,通过有监督的训练实现语音增强。该领域的算法算是刚刚起步,满打满算也没有二十年的历史,但是“存在即合理”,它之所以能够在语音增强领域占有一席之地,也有其优势所在,例如,在数字信号处理领域的一些比较棘手的问题,比如瞬时噪声的消除,这类方法另辟蹊径,可以较容易地将其解决,因此,这类算法也许会成为未来人工智能时代的语音增强主流方向。如今,运用机器学习的语音增强方法不多,大致梳理一下,可以分成以下几类:基于隐马尔科夫模型的语音增强、基于非负矩阵分解的语音增强、基于浅层神经网络的语音增强和基于深层神经网络的语音增强。其中,基于深度神经网络的语音增强方法,也就是深度学习语音增强,利用深度神经网络结构强大的非线性映射能力,通过大量数据的训练,训练出一个非线性模型进行语音增强,取得了十分不错的效果。此外,该类方法在工程界也刚刚实现落地,华为今年发布的mate10手机,已成功地将该技术应用到了复杂声学环境中的语音通话中,也算是开辟了深度学习应用于语音增强的先河,未来该何去何从,仍需要我们这一代人的不懈努力。
LMS自适应滤波器,利用前一刻已获得的滤波器参数,自动调节当前滤波器参数,以适应信号和噪声未知的或随机变化的统计特性,从而实现最优滤波。
输入信号序列xi(n),期望输出信号d(n),定义误差信号为:
其中wi为权系数。
LMS算法的本质就是寻找最优的权系数wi,使得误差信号e(n)最小。
经过一系列推导,得到权系数的迭代公式:
使用最陡下降法,那么LMS算法的关键问题就变为收敛因子μμ和梯度因子的求解。
其中λλ为相关矩阵的最大特征值。当它趋于无穷大,加权适矢量收敛于最优维纳解。
近似计算得到梯度因子表达式:
因此权系数最终表达为:
说明: 加入白噪声信号,信噪比设定为snr = 5,降噪前后的信噪比为:
自适应陷波器法适用于单色干扰噪声,如单频正弦波噪声,希望陷波器的特性理想,缺口的肩部任意窄,可马上进入平坦区域。
拿有两个权系数的滤波器为例,输入信号为纯语音和单频干扰的叠加:
采样后,
x1, x2可以构成任意幅度和相位的正弦波y(n)。
通过LMS自适应系数调整,使y(n)在幅度和相位与原始输入的单频干扰相同,从而清除单频干扰信号,达到陷波效果。
说明:加入信噪比为snr = 5的单频噪声,滤波前后信噪比数值大小:
Tip: 由于基本谱减法带来明显噪声残留,需要进行算法改进。
语音信号处理最常用的方法,在频域进行降噪。
语音信号对相位不灵敏,将谱减前的相位信息用到谱减后的信号中,在求出谱减后的幅值之后,结合相角,就能用IFFT求出谱减后的语音信号。
说明:加入信噪比为snr = 5的白噪声,降噪后听到明显的噪声残留。
所以需要在谱减法的基础上做一些改进,传统的方法包括S.F.Boll提出的方法,E.Zavarehei根据其理论写了MATLAB函数 SSBoll79。具体细节这里就先不让谈。
维纳滤波器降噪即设计一个数字滤波器h(n),使得输入的带噪语音信号与纯净语音信号的误差满足LMS准则
引入先验信噪比和后验信噪比,定义:
谱估计器可以进一步写成:
(基于先验信噪比的维纳滤波器谱估计器)
(基于后验信噪比的维纳滤波器谱估计器)
表明由滴i-1帧的先验信噪比和第i帧的后验信噪比,就可求出第i帧的先验信噪比,一旦已知本帧的先验信噪比,就能导出本帧的维纳滤波器传递函数Hi(k)。
进一步可导出维纳滤波器的输出:
资料:
传统单通道的语音增强方法:
Yariv Ephraim 主页:http://ece.gmu.edu/~yephraim/
Rainer Martin 主页:http://www.ruhr-uni-bochum.de/ika/mitarbeiter/martin_publik.htm#2017
Isreal Cohen 主页:http://webee.technion.ac.il/people/IsraelCohen/
Philip Loizou 主页:http://ecs.utdallas.edu/loizou/
推荐书籍:
《语音增强理论与实践》(Loizou)
麦克风阵列的语音增强方法:
Sharon Gannot 主页:http://www.eng.biu.ac.il/gannot/
Jacob Benesty 主页:http://externe.emt.inrs.ca/users/benesty/
推荐书籍:
《Wideband Beamforming Concepts and Techniques》(Wei Liu)
基于深度学习的语音增强方法:
汪德亮主页:http://web.cse.ohio-state.edu/~wang.77/index.html
推荐学习:
吴恩达深度学习在线课程:http://mooc.study.163.com/smartSpec/detail/1001319001.htm
博士论文:《基于深层神经网络的语音增强方法研究》(徐勇 2015)
参考文献
[1]. 宋知用. Matlab在语音信号分析与合成中的应用[M]. 北京:北京航空航天大学出版社:2013.