发明内容
有鉴于此,本发明的目的在于提出一种基于语音端点检测的人工耳蜗自动增益控制方法和系统,提升了人工耳蜗使用者的听音能力,改善植入者对声强输入波动较大时的言语识别效果。
基于上述目的本发明提供的一种基于语音端点检测的人工耳蜗自动增益控制方法,包括以下步骤:
采集外界的声信号,并将采集的声信号进行放大处理;其中,放大处理的增益值设置有默认增益和嘈杂环境默认增益;在对初次采集的声信号进行放大处理时,初始增益值设置成默认增益;
将放大后的声信号转换成数字信号;
计算数字信号的短时能量,然后根据短时能量计算背景噪声值;
读取当前增益值,若读取的增益值为默认增益,则设置语音短时能量的高门限,将输入的短时能量与语音短时能量的高门限进行比较,找出将放大处理时的初始增益值进行调整的语音端点的帧,即增益值调整的开始;若读取的增益值为嘈杂环境默认增益,则设置语音短时能量的低门限和过零率的高门限,将输入的短时能量与语音短时能量的低门限进行比较,再通过过零率的判断,确定语音的间隙,并在语音间隙将放大处理的增益值恢复为初始值;
对转换的数字信号进行分频处理,并将处理的结果合并为N个通道;对N个通道的每个包络能量进行声-电刺激压缩并输出。
可选地,计算数字信号的短时能量:首先,令输入的短时语音(通常取一帧20ms)信号为S(n);根据公式:Sw(n)=S(n)*G,得到放大后的语音信号Sw(n);其中,G为当前放大处理时的增益值;
然后,根据放大后的语音信号Sw(n)得到短时能量E为:
进一步地,根据短时能量计算背景噪声值:
首先,分别计算4个连续的20ms短时能量的均值;
然后,对此连续80ms的短时能量进行累加平均:En=(E1+E2+E3+E4)/4;其中,E1,E2,E3,E4分别为4个连续20ms短时能量的均值;根据上述方法计算8s左右的时间内,每连续80ms的短时能量的均值,即En(1)至En(100);
最后,在8s左右的时间内,找出短时能量最小值,即为En(1)至En(100)之间的最小值,作为声信号背景噪声值。
进一步地,读取当前增益值,若读取的增益值为默认增益,则设置语音短时能量的高门限:
当输入的短时能量小于语音短时能量的高门限时,保持当前增益值;
当输入的短时能量大于语音短时能量的高门限时,将下次对采集的声信号进行放大处理时的增益值调整为嘈杂环境默认增益。
进一步地,若读取的增益值为嘈杂环境默认增益,则设置语音短时能量的低门限:
当输入的短时能量大于语音短时能量的低门限时,保持当前增益值;
当输入的短时能量小于语音短时能量的低门限时,计算当前帧信号的过零率,并且设置过零率高门限:
其中,当所得的过零率大于过零率高门限时,保持当前增益值;
其中,当所得的过零率小于过零率高门限时,保持当前增益值;当连续检测到3帧信号的输入的短时能量小于语音短时能量的低门限,且同时满足得到的过零率小于过零率高门限,将放大处理的增益值恢复为初始值默认增益。
基于上述目的,本发明还提供了一种基于语音端点检测的人工耳蜗自动增益控制系统,包括:
声信号采集单元,用于采集外界的声信号;
声信号放大单元,与声信号采集单元相连,用于将采集的声信号进行放大处理;其中,放大处理的增益值设置有默认增益和嘈杂环境默认增益;在对初次采集的声信号进行放大处理时,初始增益值设置成默认增益;
转换单元,与声信号放大单元相连,用于将放大后的声信号转换成数字信号;
短时能量和背景噪声值获取单元,与转换单元相连,用于计算数字信号的短时能量,然后根据短时能量计算背景噪声值;
增益状态读取单元,与短时能量和背景噪声值获取单元相连,用于读取当前声信号放大单元的增益值;若增益值为默认增益,则增益状态读取单元与增益状态1处理单元相连;若增益值为嘈杂环境默认增,则增益状态读取单元与增益状态2处理单元相连;
增益状态1处理单元,用于设置语音短时能量的高门限,将输入的短时能量与语音短时能量的高门限进行比较,找出将放大处理时的初始增益值进行调整的语音端点的帧,即增益值调整的开始;
增益状态2处理单元,用于设置语音短时能量的低门限和过零率的高门限,将输入的短时能量与语音短时能量的低门限进行比较,再通过过零率的判断,确定即语音的间隙,并在语音间隙将放大处理的增益值恢复为初始值;
分频和合并通道处理单元,用于对转换的数字信号进行分频处理,并将处理的结果合并为N个通道;
声-电刺激压缩单元,与声-电刺激压缩单元相连,用于对N个通道的每个包络能量进行声-电刺激压缩并输出。
可选地,所述的短时能量和背景噪声值获取单元在计算数字信号的短时能量时,首先,令输入的短时语音(通常取一帧20ms)信号为S(n);根据公式:Sw(n)=S(n)*G,得到放大后的语音信号Sw(n);其中,G为当前放大处理时的增益值;
然后,根据放大后的语音信号Sw(n)得到短时能量E为:
进一步地,所述的短时能量和背景噪声值获取单元在根据短时能量计算背景噪声值时,首先,分别计算4个连续的20ms短时能量的均值;
然后,对此连续80ms的短时能量进行累加平均:En=(E1+E2+E3+E4)/4;其中,E1,E2,E3,E4分别为4个连续20ms短时能量的均值;根据上述方法计算8s左右的时间内,每连续80ms的短时能量的均值,即En(1)至En(100);
最后,在8s左右的时间内,找出短时能量最小值,即为En(1)至En(100)之间的最小值,作为声信号背景噪声值。
进一步地,所述的增益状态1处理单元设置语音短时能量的高门限,当输入的短时能量小于语音短时能量的高门限时,保持当前增益值;当输入的短时能量大于语音短时能量的高门限时,将下次对采集的声信号进行放大处理时的增益值调整为嘈杂环境默认增益。
进一步地,所述的增益状态2处理单元设置语音短时能量的低门限:
当输入的短时能量大于语音短时能量的低门限时,保持当前增益值;
当输入的短时能量小于语音短时能量的低门限时,计算当前帧信号的过零率,并且设置过零率高门限:
其中,当所得的过零率大于过零率高门限时,保持当前增益值;
其中,当所得的过零率小于过零率高门限时,保持当前增益值;当连续检测到3帧信号的输入的短时能量小于语音短时能量的低门限,且同时满足得到的过零率小于过零率高门限,将放大处理的增益值恢复为初始值默认增益。
从上面所述可以看出,本发明提供的基于语音端点检测的人工耳蜗自动增益控制方法和系统,设置语音短时能量的高门限,将输入的短时能量与语音短时能量的高门限进行比较,找出增益值调整的开始;设置语音短时能量的低门限,将输入的短时能量与语音短时能量的低门限进行比较,找出语音间隙将放大处理的增益值恢复为初始值。对输入的大声强进行了修正,并且仅在语音的间隙恢复增益值。从而,提升人工耳蜗使用者的听音能力,改善植入者对声强输入波动较大时的言语识别效果。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。
参阅图2所示,为本发明基于语音端点检测的人工耳蜗自动增益控制方法的一个实施例流程示意图,其中:
步骤201,采集外界的声信号。
步骤202,将采集的声信号进行放大处理:将采集的声信号经过可以调整增益值的放大器,即能够根据需要设置放大器的增益值,将采集的声信号根据设置的增益值进行放大处理。
在本发明的一个实施例中,放大器设置有两种增益值,即默认增益Gain_Default和嘈杂环境默认增益Gain_Loud。其中,在对初次采集的声信号进行放大处理时,放大器的初始增益值设置成默认增益Gain_Default。
步骤203,将放大后的声信号转换成数字信号。具体实现过程如下:
在本发明的一个实施例中,将放大后的声信号转换成数字信号,为了达到一定的转换精度,使用16位的模数转换器。较佳地,对转换后的数字信号进行预加重处理,是对输入的数字信号通过高通滤波,对低于12kHZ的数字信号做每十倍频程有6dB衰减的预加重处理。
步骤204,计算数字信号的短时能量,然后根据短时能量计算背景噪声值。具体实现过程如下:
1)计算数字信号的短时能量:首先,令输入的短时语音(通常取一帧20ms)信号为S(n)。根据公式:Sw(n)=S(n)*G,得到放大后的语音信号Sw(n)。其中,G为当前放大处理时的增益值。
然后,根据放大后的语音信号Sw(n)得到短时能量E为:
最后,通过查表的方法,将短时能量E转换为声强的分贝值。
2)根据短时能量计算背景噪声值NOISE:首先,分别计算4个连续的20ms短时能量的均值。然后,对此连续80ms的短时能量进行累加平均:En=(E1+E2+E3+E4)/4。其中,E1,E2,E3,E4分别为4个连续20ms短时能量的均值。根据上述方法计算8s左右的时间内,每连续80ms的短时能量的均值,即En(1)至En(100)。最后,在8s左右的时间内,找出短时能量最小值,作为声信号背景噪声值NOISE。背景噪声NOISE是8s内En的最小值,即为En(1)至En(100)之间的最小值。同时,每8s按照上述方法计算并更新一次背景噪声值NOISE。
步骤205,读取当前的增益状态。
在本发明的实施例中,设置有增益状态1和增益状态2。其中,增益状态1是对采集的声信号进行放大处理时的增益值为默认增益Gain_Default;增益状态2是对采集的声信号进行放大处理时的增益值为嘈杂环境默认增益Gain_Loud。
读取当前的增益状态,若读取的增益状态为增益状态1,则进入步骤206。若读取的增益状态为增益状态2时,则进入步骤207。
步骤206,读取对采集的声信号进行放大处理时的增益值为默认增益Gain_Default,即读取增益值为增益状态1时,进行处理的具体实现过程如下:
1)设置语音短时能量的高门限S_MAX。
2)将输入的短时能量E与语音短时能量的高门限S_MAX进行比较:若输入的短时能量E小于语音短时能量的高门限S_MAX,则保持对采集的声信号进行放大处理时的默认增益Gain_Default,并且进行步骤208。
若输入的短时能量E大于语音短时能量的高门限S_MAX,则将下次对采集的声信号进行放大处理时的增益值调整为嘈杂环境默认增益Gain_Loud,然后进行步骤208。需要说明的是,此时将放大处理时的增益值调整为嘈杂环境默认增益Gain_Loud,也就是将放大处理时的初始增益值进行了调整,即增益值调整的开始。
步骤207,读取对采集的声信号进行放大处理时的增益值为嘈杂环境默认增益Gain_Loud,即读取增益值为增益状态2时,进行处理的具体实现过程如下:
1)设置语音短时能量的低门限S_MIN:在设置语音短时能量的低门限S_MIN时,是将背景噪声值NOISE再加上8dB-15dB得到语音短时能量的低门限S_MIN。其中,较佳地将背景噪声值NOISE加上10dB得到语音短时能量的低门限S_MIN。
2)将输入的短时能量E与语音短时能量的低门限S_MIN进行比较:当输入的短时能量E大于语音短时能量的低门限S_MIN时,则保持对采集的声信号进行放大处理时的嘈杂环境默认增益Gain_Loud,并且进行步骤208。
当输入的短时能量E小于语音短时能量的低门限S_MIN时,则计算当前帧信号的过零率。并且设置过零率高门限Z_MAX。其中,过零率的选择需要基于如下条件:数字信号16K采样,20ms为一帧,每帧包括320个采样点。
若计算所得的过零率大于过零率高门限Z_MAX,则认为当前输入声强为辅音,保持对采集的声信号进行放大处理时的嘈杂环境默认增益Gain_Loud,并且进行步骤208。
若计算所得的过零率小于过零率高门限Z_MAX,保持对采集的声信号进行放大处理时的嘈杂环境默认增益Gain_Loud,并且进行步骤208。当连续检测到3帧信号的输入的短时能量E小于语音短时能量的低门限S_MIN,且同时满足得到的过零率小于过零率高门限Z_MAX,则认为是噪声,可以判断是语音的间隙,此时将声信号的输入增益值,即步骤202中的放大处理时的增益值调整为默认增益Gain_Defaul,从而能够使下次对采集的声信号进行放大处理时的增益值为默认增益Gain_Defaul,也就是将放大处理的增益值恢复为初始值默认增益Gain_Defaul,然后进行步骤208。
较佳地,设置有计数器用于累加输入的短时能量E小于语音短时能量的低门限S_MIN,且同时满足过零率小于过零率高门限Z_MAX的连续帧数。
在本发明实施例中,增益值的恢复调整只在语音的间隙进行,是通过声音能量来判断,辅音的能量比较小,可能会被认为是噪声(非语音),加入过零率判断就是要判断该声音是辅音还是噪声,如果是辅音,就不改变放大处理时的增益值。如果是噪声,则改变放大处理时的增益值,从而将进行放大处理时的增益值恢复到初始值。
步骤208,对转换的数字信号进行分频处理,并将处理的结果合并为N个通道,具体实现过程如下:
1)对转换的数字信号进行分频处理:可以利用数字信号处理芯片(DSP)对转换的数字信号进行分频处理。较佳地,数字信号处理芯片(DSP)采用快速傅里叶变换(FFT)方法完成,把信号分解为M个频段。其中,M的取值范围为32-128。
2)将分频处理后的M个频段合并为N个通道:根据电子耳蜗系统可用电极的数目N,可以利用Greenwood公式将该M个频段合并为N个通道。分别计算该N个通道的能量,并且获得每个通道的包络能量。其中,N的取值范围为2-24。
步骤209,对N个通道的每个通道包络能量进行声-电刺激压缩并输出,具体实现过程如下:
1)对N个通道的每个通道包络能量进行声-电刺激压缩:每个通道的包络能量值Ai(i=1、2、3···N),输出的电刺激设为Bi(i=1、2、3···N)。
则Ai<Amin时,Bi=Bmin;
则Amin<Ai<Amax时,Bi=Bmin+(Bmax-Bmin)*k;
则Ai>Amax时,Bi=Bmax;
其中,k=[(Ai-Amin)/(Amax-Amin)]^p;
p的取值范围为0.2-0.5,较佳地,在本发明实施例中p为0.2;Bmin和Bmax分别对应于植入者电极的电刺激感知阈值和舒适阈值的参数;Amin和Amax分别对应于调整单元传送的声信号的最大能量和最小能量。
2)将最后压缩的信号输出。
值得说明的是,在本发明的另一个实施例中,在步骤203将放大后的声信号转换成数字信号完成之后,一方面执行步骤204计算数字信号的短时能量和背景噪声值,然后读取当前的增益状态,根据不同的增益状态进行处理,找到放大处理时的增益值调整开始和恢复的语音端点的帧,并进行增益值的调整。
另一方面就可以直接执行步骤208对转换的声信号进行分频处理,并将处理的结果合并为N个通道,最后对N个通道的每个通道包络能量进行声-电刺激压缩并输出。
参阅图3所示,为本发明基于语音端点检测的人工耳蜗自动增益控制系统的一个实施例结构示意图,包括:
声信号采集单元301,采集外界的声信号。
声信号放大单元302,与声信号采集单元301相连,主要功能包括:
将采集的声信号经过可以调整增益值的放大器,即能够根据需要设置放大器的增益值,将采集的声信号根据设置的增益值进行放大处理。
在本发明的一个实施例中,放大器设置有两种增益值,即默认增益Gain_Default和嘈杂环境默认增益Gain_Loud。其中,在对初次采集的声信号进行放大处理时,放大器的初始增益值设置成默认增益Gain_Default。
转换单元303,与声信号放大单元302相连,主要功能包括:
在本发明的一个实施例中,将放大后的声信号转换成数字信号,为了达到一定的转换精度,使用16位的模数转换器。较佳地,对转换后的数字信号进行预加重处理,是对输入的数字信号通过高通滤波,对低于12kHZ的数字信号做每十倍频程有6dB衰减的预加重处理。
短时能量和背景噪声值获取单元304,与转换单元303相连,主要功能包括:
1)计算数字信号的短时能量:首先,令输入的短时语音(通常取一帧20ms)信号为S(n)。根据公式:Sw(n)=S(n)*G,得到放大后的语音信号Sw(n)。其中,G为当前放大处理时的增益值。
然后,根据放大后的语音信号Sw(n)得到短时能量E为:
最后,通过查表的方法,将短时能量E转换为声强的分贝值。
2)根据短时能量计算背景噪声值NOISE:首先,分别计算4个连续的20ms短时能量的均值。然后,对此连续80ms的短时能量进行累加平均:En=(E1+E2+E3+E4)/4。其中,E1,E2,E3,E4分别为4个连续20ms短时能量的均值。根据上述方法计算8s左右的时间内,每连续80ms的短时能量的均值,即En(1)至En(100)。最后,在8s左右的时间内,找出短时能量最小值,作为声信号背景噪声值NOISE。背景噪声NOISE是8s内En的最小值,即为En(1)至En(100)之间的最小值。同时,每8s按照上述方法计算并更新一次背景噪声值NOISE。
增益状态读取单元305,与短时能量和背景噪声值获取单元304相连,主要功能包括:
1)设置有增益状态1和增益状态2。增益状态1是增益值为默认增益Gain_Default;增益状态2是增益值为嘈杂环境默认增益Gain_Loud。
2)读取当前的增益状态:若读取的为默认增益时,则增益状态读取单元305与增益状态1处理单元306相连。若读取的为嘈杂环境默认增益时,则增益状态读取单元305与增益状态2处理单元307相连。
增益状态1处理单元306,主要功能包括:
1)设置语音短时能量的高门限S_MAX。
2)将输入的短时能量E与语音短时能量的高门限S_MAX进行比较:若输入的短时能量E小于语音短时能量的高门限S_MAX,则保持对采集的声信号进行放大处理时的默认增益Gain_Default,并且将转换单元303转换的数字信号传送给分频和合并通道处理单元308。
若输入的短时能量E大于语音短时能量的高门限S_MAX,下次对采集的声信号进行放大处理时的增益值调整为嘈杂环境默认增益Gain_Loud,并且将转换单元303转换的数字信号传送给分频和合并通道处理单元308。需要说明的是,此时将放大处理时的增益值调整为嘈杂环境默认增益Gain_Loud,也就是将放大处理时的初始增益值进行了调整,即增益值调整的开始。
增益状态2处理单元307,主要功能包括:
1)设置语音短时能量的低门限S_MIN:在设置语音短时能量的低门限S_MIN时,是将背景噪声值NOISE再加上8dB-15dB得到语音短时能量的低门限S_MIN。其中,较佳地将背景噪声值NOISE加上10dB得到语音短时能量的低门限S_MIN。
2)将输入的短时能量E与语音短时能量的低门限S_MIN进行比较:当输入的短时能量E大于语音短时能量的低门限S_MIN时,则保持对采集的声信号进行放大处理时的嘈杂环境默认增益Gain_Loud,并且将转换单元303转换的数字信号传送给分频和合并通道处理单元308。
当输入的短时能量E小于语音短时能量的低门限S_MIN时,则计算当前帧信号的过零率。并且设置过零率高门限Z_MAX。其中,过零率的选择需要基于如下条件:数字信号16K采样,20ms为一帧,每帧包括320个采样点。
若计算所得的过零率大于过零率高门限Z_MAX,则认为当前输入声强为辅音,保持对采集的声信号进行放大处理时的嘈杂环境默认增益Gain_Loud,并且将转换单元303转换的数字信号传送给分频和合并通道处理单元308。
若计算所得的过零率小于过零率高门限Z_MAX,保持对采集的声信号进行放大处理时的嘈杂环境默认增益Gain_Loud,并且将转换单元303转换的数字信号传送给分频和合并通道处理单元308。当连续检测到3帧信号的输入的短时能量E小于语音短时能量的低门限S_MIN,且同时满足得到的过零率小于过零率高门限Z_MAX,则认为是噪声,可以判断是语音的间隙,此时将声信号的输入增益值,即声信号放大单元302中的放大增益值调整为默认增益Gain_Defaul,从而能够使下次对采集的声信号进行放大处理时的增益值为默认增益Gain_Defaul,也就是将放大处理的增益值恢复为初始值默认增益Gain_Defaul。然后将转换单元303转换的数字信号传送给分频和合并通道处理单元308。
较佳地,设置有计数器用于累加输入的短时能量E小于语音短时能量的低门限S_MIN,且同时满足过零率小于过零率高门限Z_MAX的连续帧数。
在本发明实施例中,增益值的恢复调整只在语音的间隙进行,是通过声音能量来判断,辅音的能量比较小,可能会被认为是噪声(非语音),加入过零率判断就是要判断该声音是辅音还是噪声,如果是辅音,就不改变放大处理时的增益值。如果是噪声,则改变放大处理时的增益值,从而将进行放大处理时的增益值恢复到初始值。
分频和合并通道处理单元308,主要功能包括:
1)对转换的数字信号进行分频处理:可以利用数字信号处理芯片(DSP)对转换的数字信号进行分频处理。较佳地,数字信号处理芯片(DSP)采用快速傅里叶变换(FFT)方法完成,把信号分解为M个频段。其中,M的取值范围为32-128。
2)将分频处理后的M个频段合并为N个通道:根据电子耳蜗系统可用电极的数目N,可以利用Greenwood公式将该M个频段合并为N个通道,分别获得每个通道的包络能量。其中,N的取值范围为2-24。
3)将N个通道以及每个通道的包络能量传送给声-电刺激压缩单元309。
声-电刺激压缩单元309,与分频和合并通道处理单元308相连,主要功能包括:
1)接收分频和合并通道处理单元308传送的N个通道以及每个通道的包络能量。
2)对N个通道的每个通道包络能量进行声-电刺激压缩:每个通道的包络能量值Ai(i=1、2、3···N),输出的电刺激设为Bi(i=1、2、3···N)。
则Ai<Amin时,Bi=Bmin;
则Amin<Ai<Amax时,Bi=Bmin+(Bmax-Bmin)*k;
则Ai>Amax时,Bi=Bmax;
其中,k=[(Ai-Amin)/(Amax-Amin)]^p;
p的取值范围为0.2-0.5,较佳地,在本发明实施例中p为0.2;Bmin和Bmax分别对应于植入者电极的电刺激感知阈值和舒适阈值的参数;Amin和Amax分别对应于调整单元传送的声信号的最大能量和最小能量。
3)将最后压缩的信号输出。
值得说明的是,在本发明的另一个实施例中,在转换单元303将放大后的声信号转换成数字信号完成之后,一方面可以与短时能量和背景噪声值获取单元304相连,计算数字信号的短时能量和背景噪声值。然后短时能量和背景噪声值获取单元304与增益状态读取单元305相连,最后根据读取的不同增益状态进行处理,找到放大增益值调整开始和恢复的语音端点的帧,并进行增益值的调整。
另一方面就可以直接与分频和合并通道处理单元308相连,执行对转换的数字信号分频处理,并将处理的结果合并为N个通道。然后分频和合并通道处理单元308与声-电刺激压缩单元309相连,对N个通道的每个通道包络能量进行声-电刺激压缩并输出。
从上面所述的可以看出,本发明基于语音端点检测的人工耳蜗自动增益控制方法和系统,创造性地提出了计算短时能量和背景噪声值,并且按照短时能量与过零率检测结合的方法进行语音端点的检测;而且,在读取增益值为默认增益时,设置语音短时能量的高门限,将输入的短时能量与语音短时能量的高门限进行比较,找出将放大处理时的初始增益值进行调整的语音端点的帧,即增益值调整的开始,从而对输入的大声强进行了修正;同时,读取增益值为嘈杂环境默认增益时,设置语音短时能量的低门限,将输入的短时能量与语音短时能量的低门限进行比较,找出将放大处理的增益值恢复为初始值默认增益的语音端点的帧,仅在语音的间隙恢复进行增益调整,保持了语句的连贯性;最后,整个基于语音端点检测的人工耳蜗自动增益控制方法和系统实现起来简便易行。
所属领域的普通技术人员应当理解:以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。