一种应用于语音数字信号的实时自动增益控制方法与流程

文档序号:23472292发布日期:2020-12-29 13:19阅读:210来源:国知局

本发明涉及语音信号处理领域,具体是一种应用于语音数字信号的实时自动增益控制方法。



背景技术:

随着计算机和互联网技术的发展,实时语音通话和视频通话的应用越来越广泛,音视频技术也越来越得到重视。语音自动增益控制(automaticgaincontrol简称agc)是音视频技术中音频处理的重要环节,语音自动增益控制主要目标是解决语音通话时声音忽大忽小的情况,语音自动增益控制处理效果将直接影响着用户的体验。近些年来,出现了许多实用的语音实时自动增益控制方法,他们大多都是基于语音的峰值比较和门限比较的方法,这类方法的增益响应速度往往不够快,对音量极小的语音信号往往增益不够明显。



技术实现要素:

本发明的目的是针对现有技术的不足,而提供一种应用于语音数字信号的实时自动增益控制方法。这种方法能自适应调整语音的增益、增益小音量的语音、减小语音音量的动态范围,使得语音的音量变得相对统一,从而提高用户的听感体验。

实现本发明目的的技术方案是:

一种应用于语音数字信号的实时自动增益控制方法,与现有技术不同处在于,所述方法是采用归一化最小均方(normalizedleastmeansquare简称nlms)自适应滤波器为核心控制单元,通过增益控制信息、包络提取和增益平滑滤波器控制整个增益过程,包括如下步骤:

1)在语音流的处理过程中,接收到经过降噪、消回声和去混响处理过后的数字语音信号x(n)和语音活动检测vad(voiceactivitydetection简称vad)的结果v(n),每次处理的语音流以采样点为单位或以帧为单位,若语音流处理单位为样点,则系统的输入语音为x(n)=x(t)、vad信息为v(n)=v(t),n代表当前时刻,t代表当前采样点;若语音流处理单位为帧,则输入语音和vad信息分别为:

x(n)=max[x(l)],

v(n)=v(l),

其中,l代表当前帧,x(l)表示当前帧的采样点向量,max表示取向量的最大值;

2)对步骤1)接受到的语音信号x(n)做绝对值处理,并求得语音信号x(n)近似包络xenv(n);

3)将步骤2)中近似包络xenv(n)作为nlms自适应滤波器的输入,根据步骤1)得到的vad结果v(n)选择nlms的目标参考值,将nlms的自适应权重作为系统的快速增益gf(n),包括如下过程:

3-1)将步骤2)中得到的近似包络作为nlms自适应滤波器的输入,根据步骤1)中接收到的vad结果v(n)选取nlms的参考值ref,假设语音采样点的值为-1到1之间,当语音活动时,参考值ref取0.001;当非语音时,参考值ref取0.5;

3-2)所述nlms自适应滤波器为一阶自适应滤波器,滤波器权重gf(n)即为系统的快速增益,快速增益的迭代公式为:

gf(n)=gf(n-1){1+μxenv(n)[ref-yf(n-1)]},

yf(n)=gf(n)xenv(n),

步长根据自适应滤波器的输入的大小自适应调节,表达式为:

μ=μ0/(r+xenv(n)),

其中,初始步长μ0根据输入单位的采样点数设置,当以采样点输入时,μ0取0.1,r为避免分子过小而设置的,取0.0001;

4)根据步骤1)中的vad信息和预设的最大增益阀值,调整步骤3)中系统的快速增益gf(n),过程为:

4-1)系统设置一个静默的限制时间tl,根据步骤1)中接收的vad结果v(n),若连续非语音时间超过tl,则系统将切换为静默模式,tl设置为1秒;

4-2)若系统处于静默模式,则将步骤3)中的快速增益gf(n)将直接设为1;

4-3)若系统不处于静默模式,且步骤3)得到的快速增益gf(n)大于最大增益阀值gmax,则将快速增益gf(n)设置为gmax;

5)将步骤4)中调整后的快速增益gf(n)输入自适应平滑滤波器得到系统的平滑增益g(n),自适应平滑滤波器的递归表达式为:

g(n)=αsg(n-1)+(1-αs)gf(n),

自适应平滑滤波器的平滑时间ts设置的越小,增益的变化就越快,底噪变化也会变快,使得听感变得突兀,ts根据底噪的大小,设置在0.01秒到0.5秒之间;

6)将步骤5)中得到的系统平滑增益g(n)和步骤1)中的输入语音信号x(n)相乘,得到输出语音信号y(n),表达式如下:

y(n)=x(n)*g(n),

若输入单位不是采样点而是帧,则整帧乘以g(n)并输出;

7)重复上述步骤1)至步骤6),将新的语音连续输入,最终实现实时的自动增益控制,在第一次运行时,需要初始值,将步骤2)中的近似包络xenv初值设为0、步骤3)的快速增益gf(n)初值设为1、步骤5)的平滑增益gf(n)初值设为1。

步骤2)中所述的求得语音信号x(n)近似包络xenv(n)的过程为:先对步骤1)接收到的语音信号x(n)先求绝对值xabs(n),然后采用attack/release滤波器求得近似包络xenv(n),公式如下:

其中,n-1代表上一时刻,上升沿即attack和下降沿即release分别采用不同的滤波因子αea和αer,滤波因子由平滑时间获得:

上升平滑时间tea和下降平滑时间ter分别取0.001秒和1秒,fs为输入语音单位的采样率,若输入为采样点,则取值为语音采样率fs;若输入为帧,则取值为:fs=fs/l。

本技术方案能有效地解决语音通话中声音忽大忽小的问题,处理过后的语音听感提升明显,相较于其他现有的技术,本技术方案对极小音量的语音信号的增益效果更加明显,增益的自适应速度更快,此外,增益能根据预设的平滑时间平滑,使得系统当输入信号底噪较高时也能保持良好的听感。

这种方法能自适应调整语音的增益、增益小音量的语音、减小语音音量的动态范围,使得语音的音量变得相对统一,从而提高用户的听感体验。

附图说明

图1为实施例的原理流程框图;

图2为实施例中输入语音及输入语音的近似包络示意图;

图3为实施例中快速增益和输入vad信息示意图;

图4为实施例中平滑增益示意图;

图5为实施例中处理过后的输出语音示意图。

具体实施方式

下面结合附图和实施例对本发明的内容做进一步阐述,但不是对本发明的限定。

实施例:

参照图1,一种应用于语音数字信号的实时自动增益控制方法,所述方法是采用nlms自适应滤波器为核心控制单元,通过增益控制信息、包络提取和增益平滑滤波器控制整个增益过程,包括如下步骤:

1)在语音流的处理过程中,接收到经过降噪、消回声和去混响处理过后的数字语音信号x(n)和语音活动检测(voiceactivitydetection简称vad)的结果v(n),每次处理的语音流以采样点为单位或以帧为单位,若语音流处理单位为样点,则系统的输入语音为x(n)=x(t)、vad信息为v(n)=v(t),n代表当前时刻,t代表当前采样点;若语音流处理单位为帧,则输入语音和vad信息分别为:

x(n)=max[x(l)],

v(n)=v(l),

其中,l代表当前帧,x(l)表示当前帧的采样点向量,max表示取向量的最大值;

2)对步骤1)接受到的语音信号x(n)做绝对值处理,并求得语音信号x(n)近似包络xenv(n);

3)将步骤2)中近似包络xenv(n)作为nlms自适应滤波器的输入,根据步骤1)得到的vad结果v(n)选择nlms的目标参考值,将nlms的自适应权重作为系统的快速增益gf(n),包括如下过程:

3-1)将步骤2)中得到的近似包络作为nlms自适应滤波器的输入,根据步骤1)中接收到的vad结果v(n)选取nlms的参考值ref,假设语音采样点的值为-1到1之间,当语音活动时,参考值ref取0.001;当非语音时,参考值ref取0.5;

3-2)所述nlms自适应滤波器为一阶自适应滤波器,滤波器权重gf(n)即为系统的快速增益,快速增益的迭代公式为:

gf(n)=gf(n-1){1+μxenv(n)[ref-yf(n-1)]},

yf(n)=gf(n)xenv(n),

步长根据自适应滤波器的输入的大小自适应调节,表达式为:

μ=μ0/(r+xenv(n)),

其中,初始步长μ0根据输入单位的采样点数设置,当以采样点输入时,μ0取0.1,r为避免分子过小而设置的,取0.0001;

4)根据步骤1)中的vad信息和预设的最大增益阀值,调整步骤3)中系统的快速增益gf(n),过程为:

4-1)系统设置一个静默的限制时间tl,根据步骤1)中接收的vad结果v(n),若连续非语音时间超过tl,则系统将切换为静默模式,tl设置为1秒;

4-2)若系统处于静默模式,则将步骤3)中的快速增益gf(n)将直接设为1;

4-3)若系统不处于静默模式,且步骤3)得到的快速增益gf(n)大于最大增益阀值gmax,则将快速增益gf(n)设置为gmax;

5)将步骤4)中调整后的快速增益gf(n)输入自适应平滑滤波器得到系统的平滑增益g(n),自适应平滑滤波器的递归表达式为:

g(n)=αsg(n-1)+(1-αs)gf(n),

自适应平滑滤波器的平滑时间ts设置的越小,增益的变化就越快,底噪变化也会变快,使得听感变得突兀,ts根据底噪的大小,设置在0.01秒到0.5秒之间;

6)将步骤5)中得到的系统平滑增益g(n)和步骤1)中的输入语音信号x(n)相乘,得到输出语音信号y(n),表达式如下:

y(n)=x(n)*g(n),

若输入单位不是采样点而是帧,则整帧乘以g(n)并输出;

7)重复上述步骤1)至步骤6),将新的语音连续输入,最终实现实时的自动增益控制,在第一次运行时,需要初始值,将步骤2)中的近似包络xenv初值设为0、步骤3)的快速增益gf(n)初值设为1、步骤5)的平滑增益gf(n)初值设为1。

步骤2)中所述的求得语音信号x(n)近似包络xenv(n)的过程为:先对步骤1)接收到的语音信号x(n)先求绝对值xabs(n),然后采用attack/release滤波器求得近似包络xenv(n),公式如下:

其中,n-1代表上一时刻,上升沿即attack和下降沿即release分别采用不同的滤波因子αea和αer,滤波因子由平滑时间获得:

上升平滑时间tea和下降平滑时间ter分别取0.001秒和1秒,fs为输入语音单位的采样率,若输入为采样点,则取值为语音采样率fs;若输入为帧,则取值为:fs=fs/l。

如图2-图5所示,由图2和图5的实验变化结果可以明显看出,本例方法能够对忽大忽小的语音自适应的调整增益,使输入语音能够增益为一段音量相对统一的语音并输出,另外,由图3可以看出,滤波过后的增益曲线相对平滑,这使得本例方法即使是在有少量底噪的情况下,最终输出的语音也能保证良好的听感。

当前第1页1 2 
当前第1页1 2 
网友询问留言 留言:0条
  • 还没有人留言评论。精彩留言会获得点赞!
1