370783198807211351
【摘要】目前,由于噪声、意外、急剧的老龄化及遗传等原因,国内外耳聋患者数量在逐年增加,而随着科学技术的不断发展,数字助听器的出现提高了存有部分残余听力的听力损失患者的生活质量。数字信号处理模块是数字助听器的核心部分,包括听力补偿及噪声抑制等算法,以上两种策略,无法很好地提高中高频听力损失严重的听损患者的言语识别度[1,2,3]。目前,移频技术是数字助听器的主流研究方向,具有较好的应用前景和研究意义。移频技术包括频率转移、线性频率压缩、和非线性频率压缩等技术。非线性频率压缩算法不存在频谱重叠现象,但是频率映射不够灵活,无法指定频移的拐点和压缩率。
【关键词】中高频听力损失;非线性频率压缩;FIR;WSOLA;AMDF;纠错方法;数字信号处理模块
为了解决频率混叠,频域信息缺失,映射不灵活等技术问题,本文提出一种分段处理的非线性频率压缩技术。该方法在时域上对信号进行处理,低频段信息保持不变,使得整段语音基音不变,中高频段信息根据用户输入拐点频率及压缩比,可灵活分段,且无需对每帧信号进行相位的处理。如图1所示输入信号部分频段压缩转移的频谱变换过。
图1 压缩与频率转移的过程图示
本文提出的基于分段处理的非线性移频算法能够灵活有效地对输入语音信号进行压缩转移,保证频域信息不丢失,不混叠。
线性频率压缩技术放慢播放速度,降低语音的基频,改变了音调[4]。频率转移技术是将耳聋患者的中高频不可听域转移到低频段上,并与原来的低频信息相叠加,但是由于频率成分相叠加,高频部分信息会对低频信息产生一定的影响。而在频域上采用该技术的助听器公司还包括锋力(Phonax),奥迪康(Oticon),西门子(Simens)等。锋力公司在频域上将输入信号分成多个频段的子带信号,将中高频不可听域的频域子带信号按照不同比例进行两两相叠加(或者两个以上频域子带信号相叠加),但却使中高频信息出现了混叠现像;奥迪康则是取多个子带信号能量的平均值[5],再将其转移到目标频带上,丢失了频域上细节信息。同样,西门子通过对子带的划分,按照确定的压缩因子取出能量最高的子带信号,再搬移到目标频带上[6],随着压缩因子的增大,失去的频域信息就越多,使得合成后语音高频信息失真更加严重。目前国内外研究较多的非线性频率压缩算法是将频率按照非线性映射方法,改变输出频率,该算法的相位信息不匹配,引入了较多的谐波分量[7]。将非线性频率压缩技术投入商用的助听器公司有斯达克公司,它提出了在时域和频域上利用线性预测(Linear Prediction , LPC)技术对频率进行非线性频率压缩[8]。
正文
第1部分、对语音信号进行频率子带划分,获得非压缩子带范围、压缩子带范围、目标子带范围、拐点频率及各个压缩子带压缩比。
第2部分、对输入信号进行时域处理,包括对输入信号的分帧处理模块,分子带模块,频率转移模块等。分帧处理模块是将输入时域信号分成帧长为的小段平稳信号。分子带模块是根据步骤1获得的压缩子带范围和非压缩子带范围,将输入时域信号通过FIR(Finite Impulse Response)滤波器模块,划分出非压缩子带信号和压缩子带信号。频率转移模块在第2部分中将压缩子带信号搬移到以0频率为初始频率的低频段上,在此称该移频后信号为0频信号。
第3部分、将第2部分中频率转移模块输出的信号(本专利称为0频信号)进行帧间处理,即波形相似性叠加(Waveform Similarity Overlap Add , WSOLA)处理,该算法包括缓存数据量检测模块,波形相关性检测模块及平滑处理模块
第4部分、将第3部分输出的WSOLA处理后的缓存信号进行压缩和频率转移处理,包括压缩模块和频率转移模块。
第5部分、将第4部分频率转移模块输出信号与非压缩子带信号合成并输出基于分段处理的非线性移频压缩信号。
进一步的,所述第1部分中的压缩子带范围、非压缩子带范围、目标子带范围及拐点频率需要根据听力患者的可听阈和不可听阈来获得,压缩比为非压缩子带范围/目标子带范围,化简后,其中作为压缩模块的上采样倍数,为压缩模块的下采样倍数。
进一步的,所述第2部分中的频率转移模块,包括频率修正模块和移频模块。其步骤包括:
2.1 在对正余弦信号的频率进行修正。其中,是系统采样频率,是修正后频率。
2.2 将正余弦信号与分子带模块输出的压缩子带信号相乘,产生镜像信号和0频信号,用低通滤波器去除镜像信号,保留0频信号。
进一步的,所述第3部分中缓存数据量检测模块是对缓存中存储的过去几帧0频信号长度的检测。波形相关性检测模块的检测方法采用短时平均幅度函数(Average Magnitude Difference Function,AMDF)。平滑模块采用的是三角窗函数进行平滑。包括以下步骤:
3.1 当存储的数据长度小于预定的阈值时,把当前输入的0频信号存储在缓存中,进入步骤4;若是大于该阈值,进入步骤3.2..
3.2 把当前输入的0频信号和缓存中的信号作为波形相关性检测模块的输入,求出两路输入信号的误差绝对值之和,并判断中的最小值,求出最小值对应的索引值。
3.3 将缓存中数据和当前输入0频信号数据及相关性检测模块输出的索引值做为平滑模块的输入。把缓存中第到第个数据与三角窗右半边系数相乘,输出信号1;当前输入0频信号与三角窗左半边系数相乘输出信号2;将输出信号1和输出信号2相叠加,输出缓存信号。
进一步的,所述第4部分的压缩模块包括上采样模块,FIR滤波器模块,下采样模块。根据压缩比,可以获得压缩模块输入数据量的大小。上采样模块是对输入的数据进行插值操作。FIR滤波器模块是对上采样后信号滤波,达到抗混叠的效果。下采样模块是对上采样滤波后信号进行抽取。频率转移模块在此是根据步骤1获得的拐点频率,将压缩后信号转移到目标子带范围上。具体包括以下几个步骤:
4.1 从缓存信号中输出个数据,做为上采样模块的输入,两个数据点间插入个个0值,输出上采样后信号。
4.2 对上采样后信号进行低通滤波处理。
4.3 将4.2的输出作为下采样模块的输入,每隔DEC-1个数据取一个值,最终输出压缩后信号。
4.4 通过频率修正模块后,将第1部分获得的拐点频率进行修正。
4.5 将修正了频率的正弦信号与压缩后信号进行相乘,最终输出目标信号和镜像信号,用FIR滤波器去除镜像信号。输出目标信号落在了目标子带上。
进一步的,所述第5部分中将压缩移频后信号与非压缩子带信号合成时,应考虑滤波器延时,做延时匹配。延时为。其中,为FIR滤波器阶数。
相应的,本文公开了一种基于分段处理的非线性移频压缩实时语音处理系统,如图2所示包括:
图2系统整体流程框图
频率子带划分模块:根据患者的听力范围,划分出需要压缩转移的频段、不需要做压缩转移的频段、压缩后的目标频段、各个拐点频率及压缩比。
分帧处理模块:用于对输入时域音频信号进行分帧。
分子带模块:如图3所示,利用FIR滤波器模块产生的滤波器系数,将输入的语音信号进行处理,输出非压缩频段的语音信号和压缩频段的语音信号。
图3 分子带模块框图
频率转移模块:包括频率修正模块和移频模块(如图4)。目的是将所需压缩频段语音信号转移到目标频段上。
图4 移频模块框图
FIR滤波器模块:产生FIR滤波器系数,用于消除镜像,抗混叠等操作。
缓存数据量检测模块:判断缓存中存储的数据量大小。
波形相关性检测模块:匹配出缓存中与当前输入信号相关性最大的信号。
平滑模块:用于消除输入语音信号分帧后出现的帧间不连续性
压缩模块:如图5所示,包括上采样模块、FIR滤波器模块、下采样模块。分别是对处理后帧信号进行时域插值、滤波、抽取等操作。
图5压缩模块框图
信号合成模块:将低频信号及压缩后移频子带信号合并。
本文采用上述技术方案,与现有技术相比,具有如下优点:在灵活调整拐点频率和压缩率的情况下,对频谱进行压缩,不存在不同频段信息的混叠,更不会导致频率信息的丢失,提高了语音识别性能,同时,保留了部分低频信息的特性,因此音质听起来更加自然舒适。
具体实施方式
现结合附图2和具体实施方式对本文进一步说明
首先由上端确认患者的听力图,从而确定压缩子带范围、非压缩子带范围、目标子带范围及拐点频率,压缩比。将这些参数输入到分子带模块,频率转移模块,压缩模块。其次,将分帧后信号输入分子带模块,输出压缩子带信号,并将其输入到频率转移模块中,信号被转移到低频段上,其输出信号为0频信号。然后,判断缓存中存储的0频信号数据长度,若大于预设阈值,则将缓存中信号进行波形检测及平滑处理,若小于等于预设值,则输出信号直接进入压缩和频率转移模块,最后,合成输出移频信号。
在本文的优选实施例中,采样率,采样精度为16bit,一帧信号采样点数为,以帧为单位处理,每帧所需时间2ms。
基于分段的非线性移频算法实施步骤包括:
步骤1:首先将频率划分成压缩子带和非压缩子带,本文非压缩子带范围为,拐点1为。将压缩子带范围分成中频段和高频段两部分和进行压缩频移,中频段左边临界频率为,高频段左边临界频率为。中频段带宽为,高频段带宽为。根据用户可听域范围,划分目标子带,目标子带对应地分为两部分和,拐点2频率值为。压缩子带1的压缩比为的带宽比带宽,压缩子带2的压缩比为的带宽比的带宽分别得出和,因此,中频段压缩上采样倍数,下采样倍数;高频段压缩上采样倍数,下采样倍数。
步骤2.1:对输入的分帧信号进行分子带操作,即分别产生0~2000Hz的低通滤波器系数,2000~4000Hz的带通滤波器系数,40000~8000Hz的高通滤波器系数,分别与输入的分帧信号进行卷积,输出信号分别为(非压缩子带信号),(压缩子带信号1),(压缩子带信号2)。
步骤2.2:对临界频率1进行修正,
,此时中频段修正后的拐点频率仍然为2000Hz。对临界频率进行修正,此时高频段临界频率修正后仍然为4000Hz。此时若修正后频率明显小于拐点频率,,。
其中, 是向下取整符号,是向上取整符号。
步骤2.3:由步骤2.2.可知,中频段和高频段输入正弦信号分别为和。
(1)
(2)
两路压缩子带信号分别与对应的正弦信号相乘,输出分别为
(3)
(4)
将两路移频后信号分别通过带宽为2000Hz=(-0)Hz和带宽为4000Hz=(-0)Hz的FIR低通滤波器,去除镜像频率信号。输出信号表示为和分别存储在缓存 和。
步骤3.1:检测和中存储数据量的大小和,阈值分别为和。本实例中,。若存储数据量大于阈值,则进入波形检测模块,否则,将步骤2.3中输出信号分别存储在缓存中,再进入步骤 4.1。
步骤3.2:将输入信号与缓存中信号进行检测,AMDF函数如式(5)所式
(5)
其中,为缓存的大小,为输入数据帧长,为缓存中数据索引,为1,2。
对输入信号相位做180度翻转后,再做一次检测,AMDF函数最终表示为式(6):
(6)
因此中频段信号进行两次波形相关性检测后,从中获得两个最小值和,若,输出对应的索引值;否则输出对应的索引值,该情况下,当下一帧0频信号运行到步骤3.1时,若要将下一帧0频信号存储在缓存中时,需要先将该0频信号做180度相位翻转,以保证相位的连续性。高频段检测方法同理可得。
步骤3.3:对缓存信号进行平滑操作,中高频段输出缓存分别如式(7)和(8)所示:
(7)
(8)
其中,是三角窗的右半边波形系数,是三角窗的左半边波形系数,为帧长。在三角窗上升和下降的部分,信号相叠加,因此保证了输出一帧信号幅度变化一致,更无严重相位畸变产生,使得信号平滑输出,语音不会有断断续续,时有时无的现象。
步骤4.1:根据步骤1得出两个压缩子带的压缩比,可以获得压缩模块的输入数据长度。将信号做为上采样的输入,则上采样的输入表示为。上采样信号的输出表示为,是初始值为1行列的0序列。对输入上采样信号进行插值,如式(9)所示:
(9)
本实例中,中高频段两路压缩子带信号的压缩比为和,输入数据长度分别为 和,则两压缩子带信号的上采样输出信号可以表示为:
(10)
(11)
最终本实例上采样输出信号分别表示为:
(12)
(13)
步骤4.2:输出上采样信号后,对其做抗混叠低通滤波,其截止频率表示为。由步骤1可知,压缩子带带宽为,则截止频率如式所示:
(14)
因此,两路压缩子带信号的上采样输出进入截止频率为和的低通滤波器
(15)
(16)
由式可得,本实例中
(17)
(18)
假设该抗混叠滤波器的输出信号仍然表示为:和
步骤4.3:若压缩比为分数倍时,需要对信号进行抽取。下采样输出信号如式所示:
(19)
中高频段压缩后信号输出分别表示为:
(20)
(21)
本实例中,压缩比为整数倍,因此不执行步骤4.3,执行完步骤4.2直接进入步骤4.4。
步骤4.4:对拐点2进行修正,,此时若修正后频率明显小于拐点频率,。由步骤2.2可知,拐点1修正频率为2000Hz,拐点2的修正后频率为3000Hz。中频段和高频段输入正弦信号分别可以表示为和。
(22)
(23)
移频后信号分别表示为:
(24)
(25)
步骤4.5:利用FIR滤波器模块生成目标子带范围的带通滤波器系数,由步骤1可知,在本实例中,两个带通滤波器带宽范围分别为[2000,3000]Hz和[3000,4000]Hz。滤波后输出信号表示为和。
步骤5:合成非压缩子带信号和压缩移频后的信号。
拐点频率1以下信号表示如式(26)所示:
(26)
拐点1和拐点2之间信号表示如式(27)所示:
(27)
拐点频率2之上的信号表示如式(28)所示:
(28)
其中,阶数,。
再者,实例一通过扫频音和语音信号对本文的移频算法效果进行了测试,压缩子带1的范围与压缩子带2的范围分别为2000Hz到4000Hz、4000Hz到8000Hz。
图6
图7
图6和图7分别为测试扫频音和语音压缩前语谱图
图8
图9
图8和图9分别为测试扫频音和语音压缩后语谱图,整数倍压缩比为2/1,4/1。
图10
图11
图10和图11分别为分数倍压缩后扫频音和语音的语谱图,压缩比为5/3,8/1。
与图6和图7相比可以看出,图8扫频音压缩子带1频率范围从2000Hz到4000Hz,对其进行2倍压缩,并转移到了2000Hz到3000Hz频段上,压缩子带2的范围从4000Hz到8000Hz,被压缩了4倍,并转移到了3000Hz到4000Hz的频段上。图9语音被压缩到了0到4000Hz范围内。
与图6和图7相比可以看出,图10扫频音2000Hz到4000Hz的信号被压缩频移到了目标子带2000Hz到3200Hz左右,4000Hz到8000Hz被压缩频移到了目标子带3200Hz到3700Hz左右,图11音频信号被压缩到了0到3700Hz左右。
实施例二仍然通过扫频音和语音信号对本文的移频压缩算法效果进行测试,压缩子带1的范围与压缩子带2的范围分别为1500Hz到3500Hz、3500Hz到8000Hz。
图12
图13
图12和图13是整数倍压缩后的扫频音语谱图和语音语谱图,压缩比都为1/2和1/8。
图14
图15
图14和15是分数倍压缩移频后的扫频音和语音的语谱图,压缩比都为6/5和8/3。
与图6和图7相比可以看出,图12扫频音压缩子带1的信号被压缩频移到了目标子带1500到2500Hz左右,而压缩子带2的信号被压缩频移到目标子带2500Hz到3000Hz左右。图13语音信号被压缩到了0到3000Hz左右。
与图6和图7相比可以看出,图14扫频音压缩子带1的信号被压缩频移到了目标子带1500到3100Hz左右,而压缩子带2的信号被压缩频移到目标子带3100Hz到4750Hz左右。图13语音信号被压缩到了0到4750Hz左右。
实施例三仍然通过扫频音和普通语音信号对本文的移频算法效果进行测试,压缩子带只有一段,即3000Hz到8000Hz。
图16
图17
图16和图17是整数倍压缩后的扫频音语谱图和语音语谱图,压缩比都为1/4.
图18
图19
图18和19是分数倍压缩移频后的扫频音和语音的语谱图,压缩比都为8/5。
与图6和图7相比可以看出,图16扫频音压缩子带被压缩到了3000Hz到4200Hz左右,图17语音音频信号被压缩到0到4200Hz左右。
与图6和图7相比可以看出,图18扫频音压缩子带被压缩到了3000Hz到6000Hz左右,图17语音音频信号被压缩到0到6000Hz左右。
结语
本文提出的基于分段处理的非线性移频算法能够灵活有效地对输入语音信号进行压缩转移,保证频域信息不丢失,不混叠。
参考文献
[1]T.Baer,B.C.Moore,K.Kluk,Effects of low pass filtering on the intelligibility of speech in noise for people with and without dead regions at high frequencies,J.Acoust.Soc.Am.112(2002)1133–1144.
[2]D.A.Vickers,B.C.Moore,T.Baer,Effects of low-pass filtering on the intelligibility of speech in quiet for people with and without dead regions at high frequencies,J.Acoust.Soc.Am.110(2000)1164–1175.
[3]P.G.Stelmachowicz,D.Lewis,S.Choi,B.Hoover,Effect of stimulus bandwidth on auditory skills in normal hearing and hearing-impaired children,Ear Hear.28(2007)483–494.
[4]C.W.Turner,R.R.Hurting,Proportional frequency compression of speech for listeners with sensorineural hearing loss,J.Acoust.Soc.Am.106(1999)877-886.
[5]M Holmberg,T Kaulberg,JM De Haan,Sound perception using frequency transposition by moving the envelope.(2015)
[6]Rober Bauml,Ulrich Kornagel,Thomas Pilgrim,Method and device for frequency compression in a hearing aid.(2014)
[7]Ruiyu Liang,Ji Xi,Jian Zhou,Cairong Zou,Li Zhao.An improved method to enhance high-frequency speech intelligibility in noise.(2012)
[8]Frequency translation by high-frequency spectral envelope warping in hearing assistance devices.(2011)