一种回声时延估计及追踪方法转让专利

申请号 : CN201710373057.X

文献号 : CN107333018B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 贺前华王亚楼陈柱良

申请人 : 华南理工大学

摘要 :

本发明公开了一种回声时延估计及追踪方法,所述方法基于SVM分类器中标记音的嵌入/检测来估算回声时延,简化了音频特征提取的过程,同时利用基于人耳听觉掩蔽效应的心理声学模型,对嵌入的标记音的位置、幅值进行控制,以达到嵌入后无听觉失真的目的,最大化保证了原始远端信号的完整性和准确性,另外,标记音的嵌入程序和检测程序交替执行,对于每一次嵌入和检测到的标记音,执行范围检验,根据检验结果对回声时延进行更新,实现了对回声时延的动态追踪,相较于传统的互相关算法,具有实时性高、鲁棒性强、计算复杂度低的优点,而且该方法不依赖背景噪声与远端信号的独立性假设,具有更高的可靠性。

权利要求 :

1.一种回声时延估计及追踪方法,其特征在于,包括以下步骤:

步骤1、选取三种频率、单位帧长的单频音频信号按等幅值叠加后归一化,合成单位幅值的原始标记音s,所述三种频率分别分布在语音信号的低频、中频和高频部分,具体频率值能够根据具体应用场景需要来设置;

步骤2、收集正常纯净语音并进行分帧加窗后,按照标记音嵌入规则选择符合条件的帧并按照掩蔽效应的掩蔽阈值嵌入标记音,然后将嵌入标记音的信号和未嵌入标记音的信号作为SVM分类器的训练数据;

步骤3、标记音嵌入模块接收下一帧远端信号,按照标记音嵌入规则判断是否符合嵌入标志音的信号,如不符合,考察下一帧,如符合则按照掩蔽效应的掩蔽阈值嵌入标记音,在成功嵌入后重置启动计时器T1和定时器T2,其中定时器T2设置为根据上一次时延估计值所计算的本次时延估计的最小值,如果本次标记音嵌入为第一次嵌入,则定时器T2设置为0,然后停止标记音嵌入模块的工作;

步骤4、根据定时器T2的状态来决定是否进入标记音检测模块的检测流程,如果定时器T2还没超时或已经重置,循环进入下一帧的处理流程;当定时器T2超时且未关闭时,将近端信号的当前帧提取特征后输入SVM分类器,判断当前帧是否含有标记音,如果检测到标记音,则读取计时器T1的值作为当前时延估计值,然后利用时延估计范围检测当前时延估计值是否可靠,如果可靠,则将时延估计更新为当前估计值;如果不可靠,则将当前时延估计值丢弃,然后将定时器T2关闭,并开始标记音嵌入模块的工作,跳转到步骤3;

具体地,在上述步骤中,所述标记音嵌入规则的构建方法为:

(1)、对于第n帧,通过FFT计算当前帧的离散傅里叶变换后,利用周期图法计算功率谱S(k),然后根据心理声学理论的临界频带计算公式计算分别以f1、f2、f3为中心频率的临界频带W1、W2、W3,利用功率谱计算临界频带内能量:其中k∈Wi

对于临界频带W1、W2、W3,分别算得临界频带能量E1、E2、E3,取其中的最小值作为当前第n帧的临界频带能量En:En=min(E1,E2,E3);

(2)、根据功率谱计算当前帧中对应选取的三种频率f1、f2、f3频率点的能量E1'、E2'、E3',取其中的最大值作为当前第n帧的频点能量En':En'=max(E1',E2',E3');

(3)、计算前一帧的临界频带能量En-1与当前帧的频点能量En'之比γ:当且仅当γ和En-1分别满足:

则判定当前帧为可嵌入帧,其中γmin、Emin分别为最小能量比和掩蔽音最小能量,可根据具体实施场景确定,根据掩蔽效应中的后掩蔽理论很明显能够看到,γmin和Emin越大,对可嵌入帧的选择条件越苛刻,嵌入后掩蔽效果越好,同时越有利于标记音的检测;

(4)、对于当前第n帧,如果上一步判定结果为可嵌入,计算当前帧的掩蔽阈值Tn:其中α为嵌入因子,在具体实施时取0.05~0.2;

(5)、根据当前帧和前一帧的掩蔽阈值计算的加权平均计算标记音嵌入的幅度A:A=βTn-1+(1-β)Tn

其中β为加权因子,在具体实施中取0.5~1;

(6)、将原始标记音s的幅值扩大至A得到待嵌入标记信号s':

s'=A·s

然后将s'与当前帧相叠加得到嵌入后的帧信号。

2.根据权利要求1所述的一种回声时延估计及追踪方法,其特征在于:步骤1中,原始标记音s由分布在低频100Hz~1000Hz频段的音频信号s1、分布在中频1000Hz~2000Hz频段的音频信号s2和分布在高频2000Hz~3000Hz频段的音频信号s3叠加而成:

3.根据权利要求1所述的一种回声时延估计及追踪方法,其特征在于:在步骤4中,所述标记音检测基于SVM分类器,所述当前帧的特征提取方法为:对于当前帧信号,通过FFT计算当前帧的离散傅里叶变换后,利用周期图法计算功率谱,根据功率谱计算当前帧中对应标记音三个频率点的能量E1'、E2'、E3',构成当前第n帧的特征矢量vn=(E1',E2',E3')。

4.根据权利要求1所述的一种回声时延估计及追踪方法,其特征在于:在步骤3和步骤4中,通过标记音嵌入模块和标记音检测模块的交替工作,从而实现回声时延的动态追踪。

说明书 :

一种回声时延估计及追踪方法

技术领域

[0001] 本发明涉及音频处理领域,具体涉及一种用于回声消除系统的回声时延估计及追踪方法。

背景技术

[0002] 随着移动互联网的普及和发展,以VoIP、车载蓝牙系统等为代表的移动互联网语音通信系统在近几年成为了研究的热点,其中的许多关键性技术已经趋于成熟,但是回声消除技术由于移动终端多样性和差异化的集中体现,目前尚无完美的解决方案。
[0003] 回声分为电子回声和声学回声。电子回声的产生原因较复杂,实际通信效果的影响远小于声学回声,因此目前业界研究的重点是声学回声消除。回声消除的原理为:在移动端通过网络传输获取的语音信号经过解码后得到的信号称为远端信号,作为自适应滤波器的输入;通过麦克风拾取的音频信号称为近端信号,作为自适应滤波器的期望信号,然后将近端信号与滤波后的远端信号之差作为反馈信号对滤波器参数进行动态调整,从而实现回声消除。
[0004] 由于远端信号在经过扬声器播放、空气传播、麦克风采集等过程中,不可避免会产生时延,称为回声时延。因此在实际应用中,通常会首先将远端信号和近端信号对齐后再进行回声消除,而这一过程中最为关键的就是回声时延的估计技术。ITU-TG.168标准对回声时延的定义为:远端信号从通过扬声器播放开始,经过空气传播产生直接回声和间接回声,直到麦克风接收到这一信号的所经历的时间。而在常规应用场景中,从扬声器到麦克风的传播距离一般很小,所以ITU-TG.168所规定的回声时延范围在2ms~16ms内。但是在实际应用中,采用软件回声消除的算法一般将远端信号和近端信号的缓冲时间也算入回声时延内,因此回声时延的范围一般在100ms~300ms内。回声估计的准确度是影响回声消除效果的关键,其难点在于:1、回声时延在通信过程中会动态地随时间变化;2、要想实现高性能的回声消除,必须对回声时延进行动态的追踪。
[0005] 目前业界普遍使用的回声时延计算方法是基于互相关算法,通过近端信号和远端信号的互相关函数峰值来计算回声时延。这种方法有两个缺点:一是计算复杂度较大,很难实现动态的时延追踪;二是这种方法假设了信号与噪声之间相互严格独立,而这一前提在理论上是不成立的,因此计算出的时延并不精确。

发明内容

[0006] 本发明的目的是针对上述现有技术的不足,提供了一种回声时延估计及追踪方法,用于解决回声时延追踪以及精确度的问题。
[0007] 本发明的目的可以通过如下技术方案实现:
[0008] 一种回声时延估计及追踪方法,所述方法包括以下步骤:
[0009] 步骤一、选取三种频率、单位帧长的单频音频信号按等幅值叠加后归一化,合成单位幅值的原始标记音s,所述三种频率分别分布在语音信号的低频、中频和高频部分,具体频率值能够根据具体应用场景需要来设置;
[0010] 步骤二、收集正常纯净语音并进行分帧加窗后,利用掩蔽效应理论以及心理声学的临界频带计算掩蔽阈值,然后利用当前帧和前一帧的掩蔽阈值构建标记音嵌入规则,对于符合嵌入条件的帧,按照掩蔽阈值计算标记音的嵌入幅值后将原始标记音幅值扩大至嵌入幅值后嵌入,并将嵌入过标记音的帧作为训练集B类样本,未嵌入的帧作为A类样本;
[0011] 步骤三、分别提取A类和B类样本的特征矢量,选取合适的核函数训练SVM分类器;
[0012] 步骤四、标记音嵌入模块按帧获取远端信号,按照步骤二中的嵌入规则嵌入标记音并在嵌入完成后启动计时器T1;
[0013] 步骤五、根据上一次时延估计值t计算当前时延的预测范围C,根据C设置并启动定时器T2,如果本次标记音嵌入为第一次嵌入,则T2设置为0;
[0014] 步骤六、标记音检测模块按帧获取近端信号,在定时器T2超时且未关闭时启动标记音检测流程,在检测到标记音后读取计时器T1的值作为当前回声时延准估计值t',并关闭定时器T2;
[0015] 步骤七、检测回声时延准估计值t'是否符合当前时延预测范围C,若符合,则将时延估计更新为t';若不符合,则判定当前时延准估计值无效,将t'丢弃,时延估计t维持不变;
[0016] 步骤八、跳转至步骤四。
[0017] 进一步地,步骤一中,原始标记音s由分布在低频100Hz~1000Hz频段的音频信号s1、分布在中频1000Hz~2000Hz频段的音频信号s2和分布在高频2000Hz~3000Hz频段的音频信号s3叠加而成:
[0018]
[0019] 进一步地,步骤二中,所述标记音嵌入规则的构建方法为:
[0020] 1、对于第n帧,通过FFT计算当前帧的离散傅里叶变换后,利用周期图法计算功率谱S(k),然后根据心理声学理论的临界频带计算公式计算分别以f1、f2、f3为中心频率的临界频带W1、W2、W3,利用功率谱计算临界频带内能量:
[0021]
[0022] 其中k∈Wi
[0023] 对于临界频带W1、W2、W3,分别算得临界频带能量E1、E2、E3,取其中的最小值作为当前第n帧的临界频带能量En:
[0024] En=min(E1,E2,E3);
[0025] 2、根据功率谱计算当前帧中对应选取的三种频率f1、f2、f3频率点的能量E1'、E2'、E3',取其中的最大值作为当前第n帧的频点能量En':
[0026] En'=max(E1',E2',E3');
[0027] 3、计算前一帧的临界频带能量En-1与当前帧的频点能量En'之比γ:
[0028]
[0029] 当且仅当γ和En-1分别满足:
[0030]
[0031] 则判定当前帧为可嵌入帧,其中γmin、Emin分别为最小能量比和掩蔽音最小能量,可根据具体实施场景确定,根据掩蔽效应中的后掩蔽理论很明显可以看到,γmin和Emin越大,对可嵌入帧的选择条件越苛刻,嵌入后掩蔽效果越好,同时越有利于标记音的检测;
[0032] 4、对于当前第n帧,如果上一步判定结果为可嵌入,计算当前帧的掩蔽阈值Tn:
[0033]
[0034] 其中α为嵌入因子,在具体实施时一般取0.05~0.2;
[0035] 5、根据当前帧和前一帧的掩蔽阈值计算的加权平均计算标记音嵌入的幅度A:
[0036] A=βTn-1+(1-β)Tn
[0037] 其中β为加权因子,在具体实施中一般取0.5~1;
[0038] 6、将原始标记音s的幅值扩大至A得到待嵌入标记信号s':
[0039] s'=A·s
[0040] 然后将s'与当前帧相叠加得到嵌入后的帧信号。
[0041] 进一步地,在步骤三中,所述特征矢量的提取方法为:对于当前第n帧信号,通过FFT计算当前帧的离散傅里叶变换后,利用周期图法计算功率谱S(k),根据功率谱计算当前帧中对应选取的三种频率f1、f2、f3频率点的能量E1'、E2'、E3',构成当前第n帧的特征矢量vn:
[0042] vn=(E1',E2',E3')。
[0043] 进一步地,在步骤五中,所述时延的预测范围C的估算方法为:
[0044] C=(t-Δt,t+Δt)
[0045] 其中t为上一次时延估计值,时延偏移Δt可根据具体实施场景的需要确定,也可取经验值50ms,所述定时器T2在非第一次嵌入时设置为时延估计范围C的左端点:
[0046] T2=t-Δt。
[0047] 进一步地,在步骤六中,所述标记音检测方法为:对于接收到的第n帧近端信号,按照步骤三中特征矢量的提取方法提取特征矢量后输入训练好的SVM分类器,如果SVM分类器输出的分类结果为标记音,则读取计时器T1的值作为当前时延估计值t',并将计时器T1清零;检测到当前帧不含标记音,则跳过后续步骤,直接执行步骤八。
[0048] 本发明与现有技术相比,具有如下优点和有益效果:
[0049] 1、本发明采用基于SVM分类器的标记音嵌入/检测的方法来估算回声时延,并且简化了音频特征提取的过程,相较于传统的互相关算法,具有实时性高、鲁棒性强、计算复杂度低的优点,而且该方法不依赖背景噪声与远端信号的独立性假设,具有更高的可靠性。
[0050] 2、本发明利用了基于人耳听觉掩蔽效应的心理声学模型,对嵌入的标记音的位置、幅值进行控制,以达到嵌入后无听觉失真的目的,最大化保证了原始远端信号的完整性和准确性。
[0051] 3、本发明利用标记音的嵌入程序和检测程序交替执行,对于每一次嵌入和检测到的标记音,执行范围检验,根据检验结果对回声时延进行更新,实现了对回声时延的动态追踪。

附图说明

[0052] 图1为常规回声消除方法的原理示意图。
[0053] 图2为本发明实施例SVM分类器训练流程图。
[0054] 图3为本发明实施例标记音嵌入模块的流程图。
[0055] 图4为本发明实施例标记音检测模块的流程图。
[0056] 图5为相同数据用不同核函数训练的SVM分类器实验测试结果图。

具体实施方式

[0057] 下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。
[0058] 实施例:
[0059] 本实施例针对常规的回声消除方法(原理图如图1所示)的不足,提供了一种回声时延估计及追踪方法,该方法包括以下步骤:
[0060] S101、选择f1=500Hz、f2=1500Hz、f3=3000Hz三种频率的正弦波按抽样频率fs=8000Hz抽样后得到等幅值的三段音频s1、s2、s3,将三段音频等比例叠加,将叠加后的信号幅值归一化后得到单位幅值的标记音,作为原始标记音s:
[0061] s=(s1+s2+s3)/3
[0062] S102、按照心理声学的临界带宽计算公式:
[0063]
[0064] 分别计算出500Hz、1500Hz、3000Hz三种频率的临界带宽分别为117Hz、225Hz、479Hz,因此得到分别以三个频率为中心频率的临界频带为W1=(442,558)、W2=(1388,
1612)、W3=(2760,3240),收集纯净语音,进行分帧加窗(帧长20ms,帧移10ms,加汉明窗),对于第n帧,首先利用FFT计算离散傅里叶变换得到离散频谱X(k);然后根据周期图法计算功率谱S(k):
[0065]
[0066] 根据FFT长度N计算频率分辨率fr:
[0067]
[0068] 以fs=8000Hz,FFT长度N=256为例,根据上式计算得频率分辨率fr=31.25Hz。利用频率分辨率和功率谱计算临界频带内能量:
[0069]
[0070] 其中k∈Wi
[0071] 对于临界频带W1、W2、W3,分别算得临界频带能量E1、E2、E3,取其中的最小值作为当前第n帧的临界频带能量En:
[0072] En=min(E1,E2,E3),
[0073] 根据功率谱计算当前帧中对应f1、f2、f3频率点的能量E1'、E2'、E3',取其中的最大值作为当前第n帧的频点能量En':
[0074] En'=max(E1',E2',E3')
[0075] 计算前一帧的临界频带能量En-1与当前帧的频点能量En'之比γ:
[0076]
[0077] 取γmin=20,Emin=108,则当且仅当:
[0078]
[0079] 则判定当前帧为可嵌入帧。
[0080] 对于可嵌入帧,取α=0.2,β=0.8,α为嵌入因子,β为加权因子,计算当前帧的掩蔽阈值Tn,并根据当前帧和前一帧的掩蔽阈值的加权平均计算标记音嵌入的幅度A:
[0081]
[0082] A=βTn-1+(1-β)Tn
[0083] 将原始标记音按照嵌入幅度扩幅后与原始远端信号帧相叠加即可得到嵌入标记音的帧。将检测并嵌入后的帧作为SVM分类器的B类训练集,未嵌入标记音的帧作为SVM分类器的A类训练集。
[0084] S103、对于当前第n帧信号,通过FFT计算当前帧的离散傅里叶变换后,利用周期图法计算功率谱S(k),根据频率分辨率和功率谱计算当前帧中对应的f1=500Hz、f2=1500Hz、f3=3000Hz频率点的k值分别为k1=16,k2=48,k1=96,对应的能量分别为E1'=S(16)、E2'=S(48)、E3'=S(96),用此三个量构成当前第n帧的特征矢量vn:
[0085] vn=(E1',E2',E3')
[0086] S104、提取出每一帧的特征矢量后,用来训练SVM分类器,SVM分类器训练流程图如图2所示,SVM分类器的核函数选取可根据具体实施的环境进行实验确定。根据大量的实验和分析,得到的正常低噪环境下实验结果如图5所示,可以看出,常规低噪环境下选取quadratic或rbf核可获取较高正检率。
[0087] S201、接收到第n帧远端信号后,需要根据标记音嵌入模块的工作状态决定下一步的处理流程,标记音嵌入模块的流程图如图3所示,标记音嵌入模块通过设置一个全局的布尔型变量state来控制标记音嵌入模块的工作状态,当state为true时,表示标记音嵌入模块处于工作状态,当state为false时,表示标记音嵌入模块处于不工作状态;State的初始值设置为true。当标记音嵌入模块处于不工作状态时,跳过全部的远端信号嵌入流程,直接将信号帧传输其他后续处理流程,然后循环进入下一帧的处理流程;当标记音嵌入模块处于工作状态时,进入标记音嵌入流程。
[0088] S202、按照步骤S102的流程检测当前接收到的远端帧是否符合嵌入条件,如果当前帧不符合嵌入条件,直接将信号帧传输其他后续处理流程,然后循环进入下一帧的处理流程;如果当前帧符合嵌入条件,则按照步骤S102的流程计算嵌入幅值后,将原始标记音扩幅后嵌入当前帧。
[0089] S203、启动计时器T1,取时延偏移Δt=50ms,根据上一次时延估计值t计算本次时延估计范围:
[0090] C=(t-50,t+50)
[0091] 将定时器T2设置为时延估计范围C的左端点:
[0092] T2=t-Δt
[0093] 然后启动定时器T2;
[0094] 将标记音嵌入模块的工作状态标记为不工作状态,将信号帧传入其他后续处理流程,然后循环处理下一帧远端信号;
[0095] S301、当录音线程接收到一帧近端信号时,根据定时器T2的状态来决定是否进入标记音检测流程。标记音检测模块的流程图如图4所示,当定时器T2超时后,进入下一步;如果定时器T2还没超时或已经重置,则将信号帧传输其他后续处理流程,然后循环进入下一帧的处理流程。
[0096] S302、首先按照步骤S103的方法提取当前帧的特征矢量,输入训练好的SVM分类器,根据SVM的分类结果判断当前帧是否为含有标记音,如果当前帧不含标记音,则将信号帧传输其他后续处理流程,然后循环进入下一帧的处理流程;如果当前帧含有标记音,则进入下一步。
[0097] S303、读取计时器T1的值,作为时延估计准估计值t',并将计时器T1重置,检测t'是否在步骤S203所确定的时延估计范围C内。如果 则判定当前时延估计无效,丢弃t';如果t'∈C,将时延估计值更新为t',然后重置定时器T2,并将标记音嵌入模块的工作状态state设置为true,循环进入下一帧的处理流程。
[0098] 以上所述,仅为本发明专利较佳的实施例,但本发明专利的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明专利所公开的范围内,根据本发明专利的技术方案及其发明专利构思加以等同替换或改变,都属于本发明专利的保护范围。