可防止非线性失真的语音数字信号自动增益控制方法与流程

文档序号:13284683阅读:393来源:国知局
可防止非线性失真的语音数字信号自动增益控制方法与流程

本发明涉及语音信号处理领域,更准确地说涉及自动增益控制处理,提升语音信号质量的解决方案。

技术背景

语音信号在空气中传播的时候,其声波是球型发散的,而且声波能量随着传播距离的增加而呈指数衰减。当使用麦克风来进行拾音时,声源距离增加时,麦克风所采集到的信号幅度(或能量)会衰减的非常严重。因此通常会在麦克风采集信号之后,使用自动增益控制(agc,automaticgaincontrol)处理来对弱信号进行增强。

自动增益控制处理通常可以使用硬件电路处理的方式或者是软件处理的方式。硬件电路处理针对的是模拟信号,软件处理针对的是数字信号。本发明所关注的是针对语音数字信号的agc处理。

传统自动增益控制方法是通过设定期望调整到的功率值和当前接收语音信号的功率值的比较来计算期望调整增益,再把此增益加之在输入原始信号之上。功率值的计算一般是基于周期信号能量均方根(rms,rootmeansquare)的统计,一个周期信号通常称之为一帧,一帧的长度可以是数十毫秒。传统做法的好处在于使得语音信号的能量调整变化明显,可以将输入语音信号整体调节到预期的功率水平,感官体验明显。而缺陷在于,当输入信号能量变化动荡较大时,使用如此单一且比较固定的增益方法会造成一定的非线性失真,影响语音信号音质。

本发明针对上述存在的问题,提供了一种可以有效防止非线性失真的语音数字信号自动增益控制方法,既保证了agc效果,同时又可以有效的防止出现非线性失真。



技术实现要素:

本发明的目的在于发明一种可以有效防止非线性失真的语音数字信号自动增益控制方法,其中包括:

计算当前帧信号的平均功率;

基于所述帧信号的平均功率计算功率调节值;

基于所述功率调节值计算信号幅值的agc增益参数;

基于所述agc增益参数计算agc期望调节的pcm峰值;

基于在agc期望调节的pcm峰值划分线性子区间,并定义各子区间的期望增益系数;

遍历当前数据帧中每个采样的pcm值;

根据每个采样的pcm值与线性子区间的对应关系,选取对应的期望增益系数;

根据选定的期望增益系数和所述agc增益参数进行agc计算,并输出处理后的语音信号。

具体来说:

对于当前帧信号,计算平均功率rms;

以此平均功率功率和预期平均功率的差来计算功率调节值:

power_scaling=(power_expect-power_frame)(单位为db);

基于功率调节值计算出幅值的agc增益参数:

基于最大pcm功率和agc增益参数计算agc期望调节pcm峰值:pcm_expect=32767*agc_gain;

基于agc期望调节pcm峰值,以pcm信号的幅值来界定线性区间,预设采样值的上下限阈值,设上限阈值和下限阈值。认为绝对值在上限阈值以上的信号,属于溢出危险信号,应尽量把信号控制在上限阈值左右或者以内,当语音数字信号采样值低于下限阈值时,认为信号接近下溢,是无效的语音信号或底噪;

划分线性子区间,并定义各子区间的期望增益系数section_factor;

遍历当前数据帧中每个采样input_pcm;

判断input_pcm位于哪个子区间中,进而选取对应的子区间期望增益系数section_factor;

最终计算出agc处理后输出的语音信号:output_pcm=input_pcm*agc_gain*section_factor。

通过本发明提出的一种可以有效防止非线性失真的语音数字信号自动增益控制方法,可以在保证对信号进行良好的自动增益控制效果的同时又可以有效的防止出现非线性失真。

附图说明

通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:

图1是本发明一个实施例提供的可防止非线性失真的自动增益控制模块在一个电子设备中的示例位置系统逻辑框图;

图2是一个传统的自动增益控制方法对语音信号进行处理的流程图;

图3是本发明一个实施例提供的可防止非线性失真的自动增益控制方法的处理流程图;

图4是使用传统的agc方法对语音信号进行处理前后的信号频率响应曲线对比图;

图5是本发明一个实施例提供的使用可防止非线性失真的自动增益控制方法对语音信号进行处理前后的信号频率响应曲线对比图;

图6是本发明一个实施例提供的对语音信号的时域信号放大进入到某一区间,原始语音信号、经过传统agc方法处理后的语音信号和使用可防止非线性失真的自动增益控制方法处理后的语音信号的对比图。

附图中相同或相似的附图标记代表相同或相似的部件。

具体实施方式

为使本发明的目的、内容和优点更加清楚,下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。

图1显示了本发明的可防止非线性失真的自动增益控制模块在一个电子设备中的示例位置系统逻辑框图。来自外部的语音声波101被电子设备的麦克风110所捕获,转换为102的模拟电信号。在经过120模数转换器之后,转换为103数字语音信号。传送给130快速自动增益控制模块处理,处理之后的数字信号104再传送给该电子设备的其它语音处理模块使用。

以下具体阐述本发明的防止非线性失真的语音数字信号自动增益控制方法。

语音数字信号的理论最大能量值为0dbfs(dbfullscale),其含义为满电平幅值数字信号采样所计算出的功率。假如采用16bit采样位宽,那么语音数字信号的幅值绝对值最大为32767。而功率值是统计语音信号的rms,必须要在一定周期内做平均统计,因此0dbfs不是针对一个最大值为32767的采样的功率计算,而是一组周期信号的平均能量统计。设预置期望agc调整信号能量到power_expect(单位dbfs,此值为负数)。

图2显示的是一个传统的自动增益控制方法对语音信号进行处理的流程图。对于一帧信号,其中内含x个inputpcm采样,基于公式统计这一帧rms功率:(单位为dbfs)。以此功率和预期功率的差来计算功率调节值:power_scaling=(power_expect-power_frame)(单位为db)。再计算出幅值的agc增益参数:最终计算出agc处理后输出pcm数据:output_pcm=input_pcm*agc_gain。这种传统自动增益调节的问题在于当输入信号能量变化动荡较大时,使用如此单一且比较固定的增益方法会造成一定的非线性失真,影响语音信号音质。

本发明相对于传统自动增益控制做法的改进在于针对一个数据帧内的语音信号,根据其幅值分成若干类,对不同区间内的信号除了乘以agc增益参数之外,还附加乘以一个分类系数,使得不同区间内的具有不同特性的pcm信号能够得到最合理的增益控制,且保持线性特征。

以pcm信号的幅值来界定,预设采样值的上下限阈值,设上限阈值为upper_limit,下限阈值为lower_limit。认为绝对值在upper_limit以上的信号,属于溢出危险信号,应尽量把信号控制在upper_limit左右或者以内。当语音数字信号采样值低于lower_limit时,认为信号接近下溢,是无效的语音信号或底噪。例如可以取upper_limit的值为30000,取lower_limit的值为500。在lower_limit和upper_limit之间的信号为线性区间有效信号。

以0dbfs所对应的理论信号是峰值为32767的正弦波为例,那么可以计算出power_expect所对应的能量等效正弦波信号峰值,基于此式:也就是说,期望经过agc调节之后的信号,其峰值绝对值应该位于pcm_expect的峰值附近。

在有效信号线性区间内再划分子区间,对不同子区间内的信号除了乘以agc增益参数之外,还附加乘以一个期望增益系数section_factor,各子区间信号采用针对其特性的不同的section_factor来进行处理。例如划定[500,10000]为线性子区间1,[10000,20000]为线性子区间2,[20000,30000]为线性子区间3。假设power_expect为-5dbfs,那么pcm_expect为18426,位于子区间2内且趋向上边界。则设置子区间1的section_factor为1.2,设置子区间2的section_factor为1.1,设置子区间3的section_factor为1.0。参照此类方法来进行设置,可以使得线性有效信号的各子区间能够更迅速的向pcm_expect趋近,且整体平均能量更贴近于power_expect,信号增益更明显,同时还避免了溢出和非线性失真。

图3显示的是本发明的可有效防止非线性失真的语音信号自动增益控制方法的流程图。流程描述为:

对于当前帧信号,计算rms功率;

以此功率和预期功率的差来计算功率调节值:power_scaling=(power_expect-power_frame)(单位为db);

计算出幅值的agc增益参数:

计算agc期望调节pcm峰值:pcm_expect=32767*agc_gain;

基于agc期望调节pcm峰值的划分线性子区间,并定义各子区间的期望增益系数section_factor;

遍历当前数据帧中每个采样input_pcm;

判断input_pcm位于哪个子区间中,进而选取对应的子区间期望增益系数section_factor;

最终计算出agc处理后输出的语音信号:output_pcm=input_pcm*agc_gain*section_factor。

以下是以实际对一段原始语音数字信号进行本发明的自动增益控制处理为例,来说明本发明的工作效果。

图4使用传统的agc方法对语音信号进行处理前后的信号频率响应扫描分析。其中410是原始语音信号的频率响应曲线,420是经过传统agc方法处理后信号的频率响应曲线。由图中可以看出,在420曲线的421(低频)和422(中频)的位置有部分非线性失真,在423(中高频)的位置有非常严重的非线性失真,整体信号的线性特征是比较差的。

图5使用本发明的agc方法对语音信号进行处理前后的信号频率响应扫描分析。其中510是原始语音信号的频率响应曲线,520是经过本发明的agc方法处理后信号的频率响应曲线。由图中可以看出,520在全频带信号上线性的进行了放大,放大幅度约为15db,而且没有任何频谱畸变或失真,线性度非常好。

如果放大进入到语音信号的时域某一区间的细节信号处理效果对比,能够更加具体的说明本发明的线性度优势。

在图6中描述了3种不同的语音信号。其中610为原始语音信号,620为经过传统agc方法处理后的语音信号,630为本发明的agc方法处理后的语音信号。其中可以看出,由于传统agc方法采用统一的放大增益方式,将信号无论强弱都放大到期望功率值附近,因此在如601和602区域,620的信号会发生非线性失真;而630的信号就会自然很多,基本保持了原始信号中的强弱相对关系。

通过以上具体实施例的说明,可以看出本发明的方法,确实可以在保证对信号进行良好的自动增益控制效果的同时又可以有效的防止出现非线性失真。

本发明可以使用在任何音频采样率的系统中。任何语音信号的处理都是本发明的应用范围。

本发明可以使用硬件,软件或它们的组合来实现,也可以用一个计算机系统或其它处理器系统来实现。计算机和其它处理器系统有多种形式,包括无线移动手机,平板电脑,笔记本电脑,台式电脑,智能音箱、智能监控设备、可视对讲设备、机器人或其它任何形式的智能硬件电子设备。

虽然关于示例实施例及其优点已经详细说明,应当理解在不脱离本发明的精神和所附权利要求限定的保护范围的情况下,可以对这些实施例进行各种变化、替换和修改。对于其他例子,本领域的普通技术人员应当容易理解在保持本发明保护范围内的同时,测量方法的次序可以变化。

此外,本发明的应用范围不局限于说明书中描述的特定实施例的工艺、机构、制造、物质组成、手段、方法及步骤。从本发明的公开内容,作为本领域的普通技术人员将容易地理解,对于目前已存在或者以后即将开发出的工艺、机构、制造、物质组成、手段、方法或步骤,其中它们执行与本发明描述的对应实施例大体相同的功能或者获得大体相同的结果,依照本发明可以对它们进行应用。因此,本发明所附权利要求旨在将这些工艺、机构、制造、物质组成、手段、方法或步骤包含在其保护范围内。

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