一种语音信号自动增益控制方法与流程

文档序号:20268284发布日期:2020-04-03 18:40阅读:597来源:国知局
一种语音信号自动增益控制方法与流程

本发明涉及信号增益的技术领域,尤其是指一种具有多输出支路独立检测的电源时序器。



背景技术:

随着数字技术的发展,观众越来越注重视听上的感受,在会议系统中,常伴有声音信号远近大小不一的情况,为了达到一个使听者感觉舒适和清晰声音的目的,语音信号处理领域中通过采用vad算法区分语音帧和静音帧,对静音信号进行噪声抑制,对语音帧进行自动增益控制,其增益算法依赖增益比例因子控制语音信号增益大小,该算法会导致语音帧与静音帧之间连接出现断层的可能,同时会出现语音帧过渡不自然的情况。



技术实现要素:

本发明的目的在于克服现有技术的不足,提供采用静态增益与动态增益的线性组合方法,从而使语音信号实现平滑过渡的一种语音信号自动增益控制方法。

为了实现上述的目的,本发明所提供的一种语音信号自动增益控制方法,包括有以下步骤:

步骤s1.输入语音信号,并计算该语音信号的有效功率值xd’;

步骤s2.比较判断有效功率值xd’是否介于预定agc算法的最低门限阈值和最高门限阈值之间,其中,若满足条件则更新静态增益,反之,若不满条件则更新静态增益为1;

步骤s3.基于更新后的静态增益与动态增益之间的线性组合,从而计算更新动态增益,随后基于动态增益输出增益后的语音信号。

进一步,在步骤s3中,结合更新后的静态增益和预定的agc算法的释放时间计算更新动态增益。

进一步,基于计算公式g’=(1-rt)*g+rt*f’计算更新动态增益,其中,g’为更新后的动态增益,g为动态增益初始值,rt为释放时间,f’为更新后的静态增益。

进一步,在步骤s1中,计算有效功率值xd’之前,根据所输入的语音信号对应初始化agc算法,以计算确认其启动时间、释放时间、平均时间和对数斜率值。

进一步,还设置有用于限制更新后的动态增益大小的增益保护值,其中,更新后的动态增益至多为增益保护值。

本发明采用上述的方案,其有益效果在于:通过静态增益与动态增益的线性组合,达到语音信号平滑变换的目的,使声音从听觉上感受稳定,不会出现声音大小骤变的感觉,同时不会引起其他杂音。

附图说明

图1为本发明的增益控制方法的流程示意图。

具体实施方式

为了便于理解本发明,下面参照附图对本发明进行更全面的描述。附图中给出了本发明的较佳实施方式。但是,本发明可以以许多不同的形式来实现,并不限于本文所描述的实施方式。提供这些实施方式的目的是使对本发明的公开内容理解得更加透彻全面。

参见附图1所示,在本实施例中,语音信号自动增益控制方法,在输入语音信号时需预先初始化,即,初始化agc算法以计算确认其启动时间、释放时间、平均时间和对数斜率值,其中,启动时间at用于控制有效功率值达到最低门限阈值时agc算法所启动的时间,启动时间越大、声音变化越平稳。释放时间用于控制在agc执行期间,有效功率值低于最低门限阈值时agc算法所用的时间,启动时间越大、声音变化越平稳。对数斜率值用于控制语音能量变化的斜率,对数斜率值越大、声音变化越大。平均时间用于控制有效功率值的平稳变化。

本实施例的语音信号自动增益控制方法包括有以下步骤:

步骤s1.输入语音信号,并计算该语音信号的有效功率值xd’,其中,计算有效功率值xd’之前,根据所输入的语音信号对应初始化agc算法,以计算确认其启动时间、释放时间、平均时间和对数斜率值。

步骤s2.比较判断有效功率值xd’是否介于预定agc算法的最低门限阈值threshold和最高门限阈值target_lever之间,即,xd’是否介于[threshold,target_lever]之间。若满足条件则更新对应的静态增益,反之,若不满足条件则更新静态增益为1;

通过步骤s2中利用有效功率值xd’作为判定是否启动agc算法的依据,从而可以保证在语音信号频幅突然变化较大时,避免影响语音信号连续性的判断而造成增益变化过大,导致输出声音不连贯的情况。

另外,计算确定的有效功率值xd’作用于静态增益,即,在步骤s2中,满足条件的静态增益与有效功率值xd’之间呈反比,其中,当有效功率值xd’过大,则需要降低信号增益,此时的静态增益小;反之,当有效功率值xd’过小,则需要增强信号增益,此时的静态增益大。

步骤s3.基于更新后的静态增益与动态增益之间的线性组合,从而计算更新动态增益,随后基于动态增益输出增益后的语音信号。

在步骤s3中,静态增益与释放时间at结合以计算更新动态增益,即,基于计算公式g’=(1-rt)*g+rt*f’,其中,g’为更新后的动态增益,g为动态增益初始值,rt为释放时间,f’为更新后的静态增益,从而计算更新得出动态增益g’。基于更新后的动态增益g’输出语音信号,即,xnew=g’*x,其中xnew为输出语音信号,x为输入语音信号,在输出的过程中,根据启动时间、释放时间、平均时间和对数斜率值对应执行agc算法。

通过公式g’=(1-rt)*g+rt*f’,可确定此式中的变量值仅为更新后的静态增益f’,由此,仅当有效功率值xd’符合额定的启动阈值范围(介于[threshold,target_lever]之间)时,静态增益才会发生改变,方会启动信号增益。反之,当语音信号未达到启动阈值时,不产生任何增益,此时并不会瞬间下降增益,而是线性下降,使得声音变化自然。

进一步,为了防止增益过大的问题,通过设置有用于限制更新后的动态增益大小的增益保护值,其中,更新后的动态增益至多为增益保护值,即:g’≤增益保护值(本实施例优选3.5)。

基于上述方法实现了当输入语音信号功率值过小时,提高信号增益,当输入语音信号功率过大时,降低信号增益,最终稳定输出信号。

以上所述之实施例仅为本发明的较佳实施例,并非对本发明做任何形式上的限制。任何熟悉本领域的技术人员,在不脱离本发明技术方案范围情况下,利用上述揭示的技术内容对本发明技术方案作出更多可能的变动和润饰,或修改均为本发明的等效实施例。故凡未脱离本发明技术方案的内容,依据本发明之思路所做的等同等效变化,均应涵盖于本发明的保护范围内。

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