基于小波分析与Boll改进谱减法的 普米语语音增强算法
2019-05-22解雪琴张天军潘文林和丽华杨建香
解雪琴,张天军,潘文林,王 璐,和丽华,杨建香
(云南民族大学 数学与计算机科学学院,云南 昆明 650500)
飞速发展的现代科技和人们多样化的生活方式与理念,使得中国少数民族的传统文化和濒危语言正处于一个前所未有的尴尬窘困之地.普米族拥有着悠久的历史底蕴和深厚的文化内涵,我国少数民族濒危语种的名单将其民族语言-普米语列入其中.就少数民族语言研究领域而言,研究者大多都是基于对其它少数民族语言有相关的语音信号研究,对于濒危语言普米语的相关研究还是很少且尚未看到很好的成果.基于普米语的研究具有重要的文化价值和保护价值.
从20世纪60年代开始,大量学者开展了关于语音增强方面的研究并且取得了显著的成果.谱减法[1]在对于带噪语音信号的处理上有很多应用,其主要目的是提取出尽可能纯净的原始语音.学者们在对语音信号进行减噪时常使用此方法,如肖全宝和崔周培等[2-3].但此方法拥有一个弊端,就是减噪后的语音常常伴有“音乐噪声”[4].1979年,Boll改进了传统的谱减法[5],大大降低了“音乐噪声”.近年来,提出了更多新的算法,而不是仅仅局限于在原有的语音增强算法上做改进,例如小波变换[6-7],离散余弦变换(DCT)[8-9],人工神经网络[10],非负矩阵分解[11],压缩感知[12]等.其中小波变换因其具有较好的减噪效果,一直被张飞等[13]用来进行语音减噪.但此方法也存在噪声残留这一问题.很多学者选择另辟蹊径,不再单一的使用一种方法去减噪,而是尝试将2种方法融合起来,以此达到减少噪声残留的效果.比如将谱减法和神经网络结合[14],将小波和离散余弦变换相结合[15]等方法.马明[16]基于谱减法和小波阈值分解进行了联合减噪算法的研究;张洪涛等[17]尝试将谱减法与小波变换联合起来,以此实现语音减噪;随后朱建华等[18]也对一种基于谱减法和小波阈值的语音减噪算法进行了研究.
最近几年也有不少学者参与到普米语的研究中来.李余芳等基于HTK对普米语孤立词进行了识别[19].杨花等使用基于粒子群算法优化支持向量机识别算法实现了对普米语语音的识别[20].董华珍等利用免疫遗传优化支持向量机实现了普米语孤立词语谱图的分类[21].
1 小波分析
在数学领域里,作为一种时频分析方法的小波分析发展得十分迅速.拥有多分辨率分析能力的小波分析,可以对信号中的任何一些细节做多分辨率的时频域分析,同时它还拥有丰富的理论和宽泛的应用.小波阈值法、小波模的极大值法、小波分解与重构法都是小波减噪3种常用的主要方法.
小波阈值法先分解信号,得到分解后的系数,接着用阈值去处理这个系数,随后通过小波重构得到减噪后的信号.它操作过程大体可分为3步.第1步,利用小波变换去处理叠加噪声后的语音信号,从而获得一组小波分解系数.第2步,接着利用阈值去处理上一步所得到的小波分解系数,这一过程中的小波分解系数可以使得出尽可能小的估计小波系数.第3步,通过利用逆小波变换对估计小波系数进行小波重构,从而得到估计信号,此时这个信号就是减噪后的信号.图1为小波阈值法减噪的流程图.
小波阈值法作为一种常被用来进行语音减噪的方法,其优点在于它既能基本完全消除噪声,又可以展现出峰点的最初信号特性.当噪声类型为高斯白噪时,最好选择阈值法,其优势在于能够获得最初信号的近似最优估量,且拥有普遍的适用性和较高的效率.但在现实运用中还要考虑噪声的减噪效果和计算速度间的平衡.用阈值法进行减噪时,对减噪效果有着非常重要影响的是阈值的选取.实验中应该将实际情况作为参考依据,从而选择比较合适的阈值.这在实验中也是一大难题,同时也是小波阈值法减噪所存在的一大弊端.
2 Boll的改进谱减法
2.1 基本谱减法基本原理
在时频域上进行分析,设序列x(n)代表叠加噪声后的合成语音信号,通过对x(n)进行加窗、分帧处理后得到的xi(m)代表第i帧的语音信号,N为此帧语音信号的帧长.对任意xi(m)做离散傅里叶变换后为
(1)
要计算出每个Xi(k)的幅值和相角,|Xi(k)|代表分量Xi(k)的幅值,分量Xi(k)的相角是
(2)
在基本谱减中,这2组数都将被保存下来,以便后面所需.
已知IS为前导无话段也即噪声段的时长,NIS为前导无话段对应的帧数,此时可以求出该前导无话段的平均能量值为
(3)
谱减算法为
(4)
过减因子和增益补偿因子在式(4)中分别用常数a、b来表示.
如今,妈妈正沉睡在遥远的美国西部大地、零下一百多摄氏度的低温里。再见面,最短也要50年。这是科学家们给出的预言。预言可能落空,实验可能失败,但总有希望。我会努力,像妈妈一样努力,活到那个时候,等着见妈妈。
用基本谱减法对叠加噪声后的语音进行减噪处理,减噪后的语音信号中显然是含有“音乐噪声”的.要想有效的减少“音乐噪声”,可以增加过减因子的数值,但要使用这种方式就必须使得过减因子不会过大,否则会使得减噪后的语音波形失真.是以在选取过减因子的数值时同样要在一个恰当的范围内选择一个合适的值.
2.2 Boll的改进谱减法基本原理
Boll对基本谱减给做出了一种改进,在其理论的基础上E.Zavarehei编写了Matlab的函数SSBoll79.m.Boll对基本谱减法做出了以下几个方面的改进.
1)将信号的功率谱或频谱幅值放入谱减中使用
上述式(4)中已给出了按功率谱计算的基本谱减.式(3)中使用了噪声段的平均功率谱.而函数SSBoll79中给出
(5)
噪声段的平均谱值为
(6)
式中,γ可以为1,也可以为2,分别表示着用谱幅值、功率谱做谱减.过减因子和增益补偿因子在式(5)中分别用α、β来表示.
2)计算平均谱值
每帧语音信号xi(m)做DFT后得
(7)
式中,Xi(k)的下标i表示语音信号的第i帧,然后在相邻帧之间求平均值:
(8)
为了得到较小的谱估算方差,第i帧将在Xi-M(k),Xi-M+1(k),…,Xi(k),…,Xi+M(k)等(2M+1)帧之间求平均值.若要求3帧之间的平均值,只需在程序中取M=1.
3)减小噪声残留
用基本谱减法减噪后的语音信号中常伴有“音乐噪声”,这主要是由噪声残留所造成的.通过式(5),可以知道谱减法的核心是
(9)
噪声具有随机性,在某个时段某条谱线的谱值有可能会大于α×D(k),按式(9)相减后并没有完全消除噪声,而是把它的峰值保留下来了,称为噪声残留,在谱减后的语音中就形成了“音乐噪声”.为了在谱减中尽可能地减少“音乐噪声”,Boll提出了在减噪过程中保留噪声的最大值.
3 2种算法及其联合算法的语音减噪实验分析
对于在录音棚无噪音环境下录取的一段普米族的单纯语音,在实验进行前先对其进行加噪处理,采取叠加初始信噪比为0的随机高斯白噪声,并计算出叠加随机高斯白噪声后的信噪比.信噪比的计算公式为
(10)
其中s(n)为原始纯净的普米语.利用式(10)计算出叠加随机高斯白噪声后的信噪比.图4为普米族的单纯语音与叠加高斯噪声后的语音.
将叠加噪声后的普米语音信号在Matlab仿真平台上使用小波分析中的小波阈值法进行减噪处理.通过前人的实验经验和结果,本文作者选取lev=3作为小波分解的层数.反复试听并对比减噪前后的语音效果,最后选取db3小波,因其听觉质量和减噪效果都相对较好.在阈值的选取上,用ddencmp函数获得了信号的默认阈值sorh=’s’、阈值向量thr=0.696 0和参数keepapp=1.其中s代表着此次实验默认的阈值是软阈值,若是h则代表实验默认的阈值是硬阈值.用wdencmp小波函数获得信号的软阈值、硬阈值前,先重新设置阈值向量thr.使用库函数wnoisest提取出第一层的细节系数来估算噪声的标准偏差sigma=0.1477,最后利用标准偏差求出最终阈值向量thr=0.693 5.这3种阈值的选取方法来进行实验并观察实验结果,以得到最合适的阈值选取方法.通过波形图的观察和信噪比的对比,可以发现分别采用这3种阈值减噪后所得到的语音效果和信噪比都差不多(图5), 信噪比提高了8.845 00 dB.多次运行实验,可以发现每次实验结果中的波形图和信噪比都会有一些差异,这是因为在实验前本文作者给原始纯净普米语音叠加的是随机高斯白噪声.与此同时,也会发现小波阈值法减噪后的普米族语音信号,虽然减噪效果很好,但仍有很严重的音乐噪声.
采用Boll的改进谱减法对带噪的普米族语音进行减噪处理时设置前导无话段长度IS为0.1 s,从而得到图6所示的波形.输出的信噪比变化为:初始信噪比为0 dB,Boll改进谱减后的语音信噪比为0.371 80 dB,减噪后的信噪比提高了0.371 80 dB.显然信噪比的变化很微小.同时经过试听可以发现采用Boll的改进谱减法减噪后的普米族语音信号进行减噪处理虽然减少了噪声残留,也即是减少了音乐噪声,但减噪效果并不理想.
本文将对小波阈值法减噪后的普米族语音采取Boll的改进谱减法再次减噪处理.通过多次实验,可以发现3种阈值选取的方法中,用ddencmp函数获得信号的默认阈值的小波阈值法与Boll的改进谱减法联合减噪后得到的信噪比最高,减噪效果最佳,图8为联合减噪后的波形.经过试听发现经过Boll的改进谱减法再次减噪后,“音乐噪声”显著减少,减噪水平也得到了进一步的提升,最终减噪后的普米语音与原始的纯净普米语音更加接近,并且信噪比也更高了.输出的信噪比变化为:初始信噪比为0 dB,联合减噪后的语音信噪比为10.688 58 dB,减噪后的信噪比提高了10.688 58 dB.
从减噪实验中,发现采用小波分析与Boll的改进谱减法联合减噪算法减噪时,可以在很大程度上弥补这两种方法单独减噪时所存在的缺点.
4 结语
基于小波分析和Boll改进谱减法,提出了一种它们的联合算法,并使用这种算法对加噪后的普米语进行语音减噪实验.实验中主要运用了Matlab和数值仿真技术.通过对减噪后语音的试听和波形图的观察以及信噪比的对比,对实验的结果进行分析.实验结果表明,针对叠加了随机高斯白噪声的普米语,本文研究的这种联合算法能有效的减少这两种方法单独使用时所产生的“音乐噪声”和语音失真.然而本文只是针对叠加了随机的高斯白噪声的普米语来进行语音增强研究的,因此在今后对叠加了其他的不同类型的噪声或不同的语料可以作进一步对比研究.