一种音频信号自动增益控制方法、控制设备及存储介质与流程

文档序号:18904292发布日期:2019-10-18 22:27阅读:335来源:国知局
一种音频信号自动增益控制方法、控制设备及存储介质与流程

本申请涉及信号处理技术领域,具体涉及一种音频信号自动增益控制方法、控制设备及存储介质。



背景技术:

数字信号处理技术已广泛地深入到人们生活的各个领域,在网络语音聊天中,由于对语音信号进行采样的设备精度不高、麦克风质量较差以及通话双方在通话时与麦克风的距离忽远忽近等因素的影响,利用网络传输语音信号可能会出现声音忽大忽小的情况,情况严重时,可能影响通话双方的交流。

在实际应用中,对于在什么条件下要增大音量或降低音量,一般的做法是采用静音检测;一旦检测为静音或噪音,则不做处理,反之利用一定的策略进行处理。利用自动增益控制(agc,automaticgaincontrol)算法对音频信号进行处理可以使输出端或接收端的电平保持在一定范围内,解决在网络上传输语音信号的不均衡问题,得到质量更高的语音;但是为了保证统计的可靠性,并且避免突发异常信号对于统计的不当干扰,需要积累一定的样本再进行统计,通常会以数十毫秒乃至百余毫秒为周期,统计时间较长,响应速度较慢。



技术实现要素:

本申请主要解决的问题是提供一种音频信号自动增益控制方法、控制设备及存储介质,能够动态调整增益系数,快速地跟踪音频信号的波动,提高输出信号的质量。

为解决上述技术问题,本申请采用的技术方案是:提供一种音频信号自动增益控制方法,该方法包括:对输入音频信号的能量进行统计,并根据输入音频信号的能量对输入音频信号对应的初始增益系数进行一次修正,得到输入音频信号的中间增益系数;对中间增益系数进行二次修正,得到最终增益系数;根据输入音频信号和最终增益系数,得到输出信号。

其中,对输入音频信号的能量进行统计,并根据输入音频信号的能量对输入音频信号对应的初始增益系数进行一次修正,得到输入音频信号的中间增益系数的步骤之前,包括:根据预设响度范围和等响度曲线,得到响度增益系数表,并存储响度增益系数表,其中,响度增益系数表包括响度级、频率以及增益系数的映射关系;从预设响度范围中选择一个响度级作为初始响度因子;将初始响度因子与响度增益系数表进行匹配,得到初始增益系数。

其中,对输入音频信号的能量进行统计的步骤,包括:对输入音频信号进行分帧处理,得到多个第一音频帧;利用语音活动检测方法对每个第一音频帧进行检测,以判断每个第一音频帧是否为有效帧;若第一音频帧为有效帧,则获取每个有效帧的能量均方根,并对输入音频信号中全部有效帧的能量均方根进行平均,得到平均能量均方根。

其中,根据输入音频信号的能量对输入音频信号对应的初始增益系数进行一次修正,得到输入音频信号的中间增益系数的步骤,包括:判断平均能量均方根是否大于第一预设能量阈值;若平均能量均方根大于第一预设能量阈值,则将初始响度因子减小至第一中间响度因子;若平均能量均方根小于第一预设能量阈值,则将初始响度因子增加至第二中间响度因子;将第一中间响度因子/第二中间响度因子与响度增益系数表进行匹配,得到中间增益系数。

其中,根据输入音频信号的能量对输入音频信号对应的初始增益系数进行一次修正,得到输入音频信号的中间增益系数的步骤,包括:判断当前时间段的上一时间段对应的输入音频信号的平均能量均方根是否大于第二预设能量阈值;若上一时间段对应的输入音频信号的平均能量均方根大于第二预设能量阈值,则将初始响度因子减小至第三中间响度因子;若上一时间段对应的输入音频信号的平均能量均方根小于第二预设能量阈值,则将初始响度因子增加至第四中间响度因子;将第三中间响度因子/第四中间响度因子与响度增益系数表进行匹配,得到中间增益系数。

其中,对中间增益系数进行二次修正,得到最终增益系数的步骤,包括:对输入音频信号进行分帧处理,得到多个第二音频帧;利用语音端点检测方法对第二音频帧进行分析,得到每个第二音频帧对应的音频概率值,其中,音频概率值用于指示第二音频帧存在音频的概率;根据音频概率值对每个第二音频帧对应的中间增益系数进行二次修正,得到增益系数调整表;其中,增益系数调整表包括多个第二音频帧以及与多个第二音频帧分别对应的最终增益系数。

其中,根据音频概率值对每个第二音频帧对应的中间增益系数进行二次修正,得到增益系数调整表的步骤,包括:判断音频概率值是否大于预设概率门限值;若音频概率值大于预设概率门限值,则将第二音频帧对应的中间增益系数减小至第一最终增益系数;若音频概率值小于预设概率门限值,则将第二音频帧对应的中间增益系数增加至第二最终增益系数。

其中,根据输入音频信号和最终增益系数,得到输出信号的步骤,包括:将第二音频帧与增益系数调整表中的最终增益系数相乘,得到输出信号。

为解决上述技术问题,本申请采用的另一技术方案是:提供一种自动增益控制设备,该自动增益控制设备包括:互相连接的存储器和处理器,其中,存储器用于存储计算机程序,计算机程序在被处理器执行时,用于实现上述的音频信号自动增益控制方法。

为解决上述技术问题,本申请采用的另一技术方案是:提供一种计算机存储介质,该计算机存储介质用于存储计算机程序,计算机程序在被处理器执行时,用于实现上述的音频信号自动增益控制方法。

通过上述方案,本申请的有益效果是:对初始增益系数进行两次修正,第一次修正是根据输入音频信号的能量对初始增益系数进行调整,得到中间增益系数,第二次修正是利用中间增益系数和输入音频信号得到最终增益系数;然后利用输入音频信号和最终增益系数生成输出信号;能够动态调整增益系数,快速地跟踪输入音频信号的波动,对于输入音频信号的波动能够自适应地调整增益系数,使得输出信号的幅度保持在一定范围内,提高输出信号的质量,保证人耳听到稳定的音频。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。其中:

图1是本申请提供的音频信号自动增益控制方法一实施例的流程示意图;

图2是本申请提供的音频信号自动增益控制方法另一实施例的流程示意图;

图3是本申请提供的音频信号自动增益控制方法另一实施例中等响度曲线的示意图;

图4是本申请提供的音频信号自动增益控制方法另一实施例中步骤208的流程示意图;

图5是本申请提供的音频信号自动增益控制方法另一实施例中步骤208的另一流程示意图;

图6是本申请提供的自动增益控制设备一实施例的结构示意图;

图7是本申请提供的计算机存储介质一实施例的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性的劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

目前对于语音信号的增益调整有多种方法,例如,第一种方法:设定语音短时能量的高低门限和过零率的高低门限,计算输入信号的短时能量和过零率,将它们分别与预设的门限进行比较,从而选择增大增益、减小增益或者是保持当前增益值。该方法把过零率和短时能量等语音特征参数作为端点检测判断的标准,在低信噪比和某些特定噪声环境下易出现误判,导致调整后的声音出现忽大忽小的情况。

第二种方法:先对待检测语音进行预处理,然后对语音信号进行语音活动检测(vad,voiceactivitydetection),当检测到待检测信号为语音信号时,比较当前运算窗框和前一运算窗框的语音信号参数,根据比较结果向运算放大器输出相应的增益调整数据;在启动时或判断不是语音信号时,将运算放大器的增益调整为初始值。该方法完全依赖于语音活动检测,如果语音活动检测失败,则整个系统的输出会出现异常。

第三种方法:获取输入语音信号,计算得到累计的统计最高值,计算脉冲编码调制(pcm,pulsecodemodulation)期望调节因子,计算快速agc增益,对输入信号进行agc计算,最后输出处理后的语音信号。该方法没有进行语音活动检测,只计算累计的统计最高值,将输入信号的能量大小与统计最高值进行比较来调整增益,在某些连续大噪声情况下可能会出现误调整。

上述的方法中,自动增益调整时没有进行语音活动检测或只针对某单一特征进行端点检测,在低信噪比下容易发生误调整;算法鲁棒性较差,容易出现声音忽大忽小的情况;算法计算需要长时间的统计,而且处理帧的长度不能过短,再加上线性滤波器的处理需要收敛时间,因此传统方法的生效响应速度较慢。

参阅图1,图1是本申请提供的音频信号自动增益控制方法一实施例的流程示意图,该方法包括:

步骤11:对输入音频信号的能量进行统计,并根据输入音频信号的能量对输入音频信号对应的初始增益系数进行一次修正,得到输入音频信号的中间增益系数。

可以对输入音频信号进行预处理,例如,对输入音频信号进行加窗处理,以实现对输入音频信号进行平滑,减少频谱泄漏;或者对输入音频信号进行快速傅里叶变换(fft,fastfouriertransformation),将输入音频信号从时域变换到频域,在频域进行处理等。

输入音频信号对应一个初始增益系数,该初始增益系数可以为系统默认或用户设置。为了对输入音频信号进行处理,使得处理后生成的输出信号的幅度保持在一定的范围内,对初始增益系数进行两次修正,第一次修正基于输入音频信号的能量,根据输入音频信号的能量对初始增益系数进行修正,将初始增益系数修正为中间增益系数。

步骤12:对中间增益系数进行二次修正,得到最终增益系数。

在获取到中间增益系数之后,再基于中间增益系数和输入音频信号进行修正,得到最终增益系数。

步骤13:根据输入音频信号和最终增益系数,得到输出信号。

在获取到最终增益系数之后,将输入音频信号与最终增益系数相乘,从而得到输出信号。

区别于现有技术,本申请提供了一种音频信号自动增益控制方法,通过对输入音频信号的能量进行统计,根据输入音频信号的能量对初始增益系数进行调整,得到中间增益系数;再利用中间增益系数和输入音频信号得到最终增益系数,以生成输出信号;能够动态调整增益系数,快速地跟踪输入音频信号的波动,对于输入音频信号的波动能够自适应地调整增益系数,使得输出信号的幅度保持在一定范围内,提高输出信号的质量,保证人耳听到稳定的音频。

参阅图2,图2是本申请提供的音频信号自动增益控制方法另一实施例的流程示意图,该方法包括:

步骤201:根据预设响度范围和等响度曲线,得到响度增益系数表,并存储响度增益系数表。

人的听觉对所有频率的感知不是线性的,而是遵循等响度曲线,要让整个频段的频率听起来响度相同,需在响度尺度下调整增益,而不是在频率域调整增益,按照等响度曲线对音频信号的频率进行加权,不能采用一个固定的响度级进行加权。可先确定一个响度级,然后把响度级映射到等响度曲线上,确定各频率对应的增益系数,每个响度级都对应一组增益系数,该增益系数组包括频率以及与其对应的增益系数。

例如,如图3所示,等响度曲线显示出不同频率的声音引起同等的响度所需的声压级,比如,对于110方的响度级,如果要获得与频率200hz、声压级110db同样响度的声音,在5000hz的频率上需要采用100db的声压级,才能使人们听到同样的音量。

预设响度范围可以为[0,lmax],lmax为最大可调响度阈值,其为人耳能够接受的最大响度级;从等响度曲线可以得到每个响度级对应的频率和声压级;为了减小每次增益计算所需的处理时间,提高生效响应速度,可根据预设响度范围和等响度曲线,来建立响度级、频率以及增益系数的映射关系,得到响度增益系数表,即响度增益系数表包括响度级、频率以及增益系数的映射关系,并可将响度增益系数表存储在存储器中。

步骤202:从预设响度范围中选择一个响度级作为初始响度因子。

可以在0到最大可调响度阈值lmax之间取一个响度级作为初始响度因子。

步骤203:将初始响度因子与响度增益系数表进行匹配,得到初始增益系数。

响度增益系数表存储有响度级和增益系数的对应关系,将初始响度因子作为索引,在响度增益系数表中进行查找,从而得到与初始响度因子对应的初始增益系数。

步骤204:对输入音频信号进行分帧处理,得到多个第一音频帧。

为了统计输入音频信号对应的能量,将输入音频信号分成更小的短段来进行处理,每一个短段为一个第一音频帧。

步骤205:利用语音活动检测方法对每个第一音频帧进行检测,以判断每个第一音频帧是否为有效帧。

步骤206:若第一音频帧为有效帧,则获取每个有效帧的能量均方根,并对输入音频信号中全部有效帧的能量均方根进行平均,得到平均能量均方根。

利用语音活动检测方法检测到语音活跃的帧,统计有效帧的能量均方根(rms,rootmeansquare);若判断到第一音频帧不是有效帧,则不做处理。

进一步地,先通过语音活动检测方法对所有第一音频帧进行检测,从中检测出有效的音频帧,记作有效帧;然后统计每个有效帧的能量均方根,并将输入音频信号中全部有效帧的能量均方根进行求和平均,从而得到输入音频信号对应的平均能量均方根。

步骤207:根据输入音频信号的能量对输入音频信号对应的初始增益系数进行一次修正,得到输入音频信号的中间增益系数。

在一具体的实施例中,可将平均能量均方根与第一预设能量阈值进行比较,根据比较结果对初始增益系数进行修正,具体包括以下步骤:

步骤2071:判断平均能量均方根是否大于第一预设能量阈值。

为了进行增益系数的调整,将输入音频信号中多个有效帧的能量均方根的平均值与第一预设能量阈值进行比较。

步骤2072:若平均能量均方根大于第一预设能量阈值,则将初始响度因子减小至第一中间响度因子。

步骤2073:若平均能量均方根小于第一预设能量阈值,则将初始响度因子增加至第二中间响度因子。

第一中间响度因子小于第二中间响度因子;如果平均能量均方根等于第一预设能量阈值,则初始响度因子保持不变;根据平均能量均方根与第一预设能量阈值的大小关系,来对初始响度因子进行调整;如果平均能量均方根偏大,则将初始响度因子调小;如果平均能量均方根偏小,则将初始响度因子调大。

步骤2074:将第一中间响度因子/第二中间响度因子与响度增益系数表进行匹配,得到中间增益系数。

将第一中间响度因子或第二中间响度因子作为索引,在响度增益系数表中进行查找,从而得到与第一中间响度因子/第二中间响度因子对应的中间增益系数。

在另一具体的实施例中,为了对初始增益系数进行修正,还可利用当前时间段的上一时间段所对应的的平均能量均方根来进行修正,具体包括以下步骤:

步骤2075:判断当前时间段的上一时间段对应的输入音频信号的平均能量均方根是否大于第二预设能量阈值。

每个输入音频信号分别对应一个时间段,可以将当前在处理的输入音频信号的上一时间段所对应的的输入音频信号,作为增益系数调整的依据。

步骤2076:若上一时间段对应的输入音频信号的平均能量均方根大于第二预设能量阈值,则将初始响度因子减小至第三中间响度因子。

如果上一时间段对应的输入音频信号的平均能量均方根大于第二预设能量阈值,则表明上一时间段的输入音频信号的平均能量均方根比较大,根据音频信号的连续性,可将初始响度因子降低至第三中间响度因子,并将第三中间响度因子作为当前处理的输入音频信号所对应的响度因子。

步骤2077:若上一时间段对应的输入音频信号的平均能量均方根小于第二预设能量阈值,则将初始响度因子增加至第四中间响度因子。

如果上一时间段对应的输入音频信号的平均能量均方根小于第二预设能量阈值,则表明上一时间段的输入音频信号的平均能量均方根比较小,可将初始响度因子升高至第四中间响度因子,并将第四中间响度因子作为当前处理的输入音频信号所对应的响度因子。

步骤2078:将第三中间响度因子/第四中间响度因子与响度增益系数表进行匹配,得到中间增益系数。

将第三中间响度因子或第四中间响度因子作为索引,在响度增益系数表中进行查找,从而得到与第三中间响度因子/第四中间响度因子对应的中间增益系数。

上述的方法对于语音不活跃的第一音频帧不进行增益系数的调整,对语音活跃的第一音频帧进行增益系数的粗调;响度因子不再是固定不变的,而是动态可调的,可以快速地适应音频的波动,并尽可能避免放大噪声。

步骤208:对输入音频信号进行分帧处理,得到多个第二音频帧。

在获取到中间增益系数之后,将输入音频信号分成多个第二音频帧。

步骤209:利用语音端点检测方法对第二音频帧进行分析,得到每个第二音频帧对应的音频概率值。

该音频概率值用于指示第二音频帧存在音频的概率,利用语音端点检测方法(epd,endpointdetection)求取每个第二音频帧存在语音的概率,以便根据音频概率值来对中间增益系数进行修正。

步骤210:根据音频概率值对每个第二音频帧对应的中间增益系数进行二次修正,得到增益系数调整表。

该增益系数调整表包括多个第二音频帧以及与多个第二音频帧分别对应的最终增益系数。

步骤211:判断音频概率值是否大于预设概率门限值。

步骤212:若音频概率值大于预设概率门限值,则将第二音频帧对应的中间增益系数减小至第一最终增益系数。

步骤213:若音频概率值小于预设概率门限值,则将第二音频帧对应的中间增益系数增加至第二最终增益系数。

第一最终增益系数和第二最终增益系数为增益系数调整表中的最终增益系数;对增益系数进行细调,如果音频概率值小于预设概率门限值,则减小增益系数,即将中间增益系数减小至第一最终增益系数;如果音频概率值大于预设概率门限值,则将中间增益系数增加至第二最终增益系数,第一最终增益系数小于第二最终增益系数;如果音频概率值等于预设概率门限值,则不进行调整;增益系数的调整步长可由用户定义或系统默认。另外,为了进行限幅保护,最大增益系数需小于系统设定的增益系数极值,以免对输入音频信号过分放大。

步骤214:将第二音频帧与增益系数调整表中的最终增益系数相乘,得到输出信号。

对于输入音频信号中的多个第二音频帧,将它们分别乘以增益系数调整表中的最终增益系数,从而得到输出信号。

区别于现有技术,本申请提供了一种音频信号自动增益控制方法,将音频信号的能量均方根统计和语音活动检测两种先验检测相结合,通过语音活动检测得到有效帧,并进行能量均方根统计,得到中间响度因子,查询响度增益系数表得到中间增益系数,实现增益系数的第一次修正,由于响度因子变成动态可调,可以快速地跟踪语音的波动;然后利用语音端点检测对中间增益系数进行微调,得到修正后的增益系数,保证了增益系数统计的可靠性,提升调整效果;由于预先得到响度增益系数表,并将该响度增益系数表存储到存储器中作为查找表,能够减少计算增益系数所需要的处理时间和整体计算量,提高生效响应速度。

参阅图6,图6是本申请提供的自动增益控制设备一实施例的结构示意图,自动增益控制设备60包括:互相连接的存储器61和处理器62,其中,存储器61用于存储计算机程序,计算机程序在被处理器62执行时,用于实现上述实施例中的音频信号自动增益控制方法。

处理器62能够根据输入音频信号的能量来动态调整增益系数,对于音频信号的波动能够自适应地调整增益,保证输出信号的幅度保持在一定范围内,提高输出信号的质量。

参阅图7,图7是本申请提供的计算机存储介质一实施例的结构示意图,计算机存储介质70用于存储计算机程序71,计算机程序71在被处理器执行时,用于实现上述实施例中的音频信号自动增益控制方法。

其中,该存储介质70可以是服务端、u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

在本申请所提供的几个实施方式中,应该理解到,所揭露的方法以及设备,可以通过其它的方式实现。例如,以上所描述的设备实施方式仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。

作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。

另外,在本申请各个实施方式中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

以上仅为本申请的实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。

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