回声消除数据同步控制方法和装置制造方法及图纸

技术编号:11833781 阅读:93 留言:0更新日期:2015-08-05 20:30
本发明专利技术涉及一种回声消除数据同步控制方法和装置,所述方法包括:估计声卡延时值;等待参考音频缓冲区队列长度减去近端音频缓冲区队列长度的差值大于或等于声卡延时值所对应的音频数据长度;按音频帧从参考音频缓冲区队列和近端音频缓冲区队列队首取出音频数据以进行回声消除处理;获取进行回声消除处理所生成的相对延时值;根据所述相对延时值调整所述声卡延时值。本发明专利技术提供的回声消除数据同步控制方法和装置,可以提高启动过程中的抗抖动能力,而且能够在各种不同的终端上实现有效的回声消除,提高了兼容性。

【技术实现步骤摘要】

本专利技术涉及音频处理
,特别是涉及一种回声消除数据同步控制方法和装置
技术介绍
参照图1,目前可以通过麦克风102采集人说话的语音,经过计算机声卡104的处理后,通过扬声器106播放出来。然后播放的语音经过环境传播、反射,会被麦克风采集到,这样就形成了回声,或称为回音。回声会影响到语音品质,给听者理解说话人的语音带来困难,会影响到语音的准确表达,有必要通过一定手段来消除回声。目前可以采用AEC(Acoustic Echo Cancellat1n,声学回声消除)算法来实现回声消除。AEC算法的基本原理是用采集到的近端语音减去回声,而由于回声产生模型复杂,可以粗略认为回声就等于播放的远端语音,这样消除回声的过程就是用近端语音减去远端语音。这里近端语音是指从麦克风采集进来的语音数据,而远端语音则是指由扬声器播放的语音数据。目前采用AEC算法进行回声消除的过程可参照图2,接收到语音数据后,放入接收缓冲区,再从接收缓冲区中取出语音数据放入声卡播放缓冲区进行播放,并同时将取出的语音数据放入参考音频缓冲区。通过扬声器播放的语音数据被麦克风采集到后放入声卡采集缓冲区,再将声卡采集缓冲区的语音数据送入到近端音频缓冲区,通过同步控制模块从参考音频缓冲区和近端音频缓冲区同时取出音频帧,送入回声消除模块通过AEC算法进行回声消除处理,最后将经过回声消除处理后的语音数据发送出去。同步控制模块的作用是,控制近端音频缓冲区的近端语音与参考音频缓冲区的远端语音对齐,保证回声消除算法达到最佳效果。这里的对齐不要求近端语音与远端语音完全对齐,而是要求延时保持稳定值,避免发生抖动和偏移。设音频数据从进入声卡播放缓冲区到在声卡采集缓冲区停留的总延时为声卡延时值sndCardDeIayMs ;参考音频缓冲区队列长度为refBufLen,近端音频缓冲区队列长度为nearBufLen,音频帧长为kFrameSize。如果参考音频缓冲区与近端音频缓冲区中缓冲的音频数据完全同步,有式(I)成立:式(I):(refBufLen-nearBufLen)/kFrameSize = sndCardDelayMs.所以,保证参考音频缓冲区与近端音频缓冲区中缓冲的音频数据相对同步的目标是使得式(2)成立:式⑵:(refBufLen-nearBufLen)/kFrameSize = kRat1*sndCardDelayMs.其中式⑵中的kRat1是一个大于等于I的系数。上述式(2)中,refBufLen和nearBufLen都是计算机运行过程中可计算的值,现在问题是,对于固定设备来说,声卡延时值sndCardDelayMs是固定的,但是对于不同的设备,声卡延时值sndCardDelayMs通常是不同的,尤其是对手机等移动终端来说差异性更加明显。目前在进行回声消除处理时将声卡延时值sndCardDelayMs设为固定值,为了兼容不同的设备,该固定值普遍小于已知设备的声卡延时值sndCardDelayMs的真实值。然而,声卡延时值sndCardDelayMs使用较小的固定值,会使得参考音频缓冲区的语音数据长度保持在一个较低的水平,声卡抖动较大的设备容易产生参考音频缓冲区数据空的现象,无法消除回声;对于声卡延时值较大的设备,有可能超出AEC回声消除算法处理范围,最终同样无法消除回声。若声卡延时值sndCardDelayMs使用较大的固定值,对于声卡延时值较小的设备,可能使用的固定值比自身声卡延时还要大,就有可能导致负延时,同样会导致无法消除回声。因此,采用将声卡延时值设为固定值来进行回声消除,兼容性弱,容易出现无法消除回声的情况。
技术实现思路
基于此,有必要针对目前将声卡延时值设为固定值来进行回声消除时,兼容性弱,容易出现无法消除回声的情况的问题,提供一种回声消除数据同步控制方法和装置。一种回声消除数据同步控制方法,所述方法包括:估计声卡延时值;等待参考音频缓冲区队列长度减去近端音频缓冲区队列长度的差值大于或等于声卡延时值所对应的音频数据长度;按音频帧从参考音频缓冲区队列和近端音频缓冲区队列队首取出音频数据以进行回声消除处理;获取进行回声消除处理所生成的相对延时值;根据所述相对延时值调整所述声卡延时值。一种回声消除数据同步控制装置,所述装置包括:估计模块,用于估计声卡延时值;延时等待模块,用于等待参考音频缓冲区队列长度减去近端音频缓冲区队列长度的差值大于或等于声卡延时值所对应的音频数据长度;回声消除处理模块,用于按音频帧从参考音频缓冲区队列和近端音频缓冲区队列队首取出音频数据以进行回声消除处理;获取模块,用于获取进行回声消除处理所生成的相对延时值;延时值调整模块,用于根据所述相对延时值调整所述声卡延时值。上述回声消除数据同步控制方法和装置,在估计声卡延时值后,等待参考音频缓冲区和近端音频缓冲区满足采用该估计的声卡延时值进行回声消除的条件时,进行回声消除处理。然后利用回声消除处理所产生的相对延时值来反馈调整估计的声卡延时值,使得后续回声消除处理时使用调整后的声卡延时值。这样即使估计的声卡延时值并不准确,也能够在回声消除过程中通过反馈调整来优化估计的声卡延时值,可以提高启动过程中的抗抖动能力,而且能够在各种不同的终端上实现有效的回声消除,提高了兼容性。【附图说明】图1为回声的产生原理示意图;图2为回声消除数据同步控制的过程示意图;图3为一个实施例中终端的结构示意图;图4为一个实施例中回声消除数据同步控制方法的流程示意图;图5为一个实施例中估计声卡延时值的步骤的流程示意图;图6为一个实施例中动态调整参考音频缓冲区队列的步骤的流程示意图;图7为一个实施例中调整相对延时值的步骤的流程示意图;图8为另一个实施例中回声消除数据同步控制方法的流程示意图;图9为一个实施例中回声消除数据同步控制装置的结构框图;图10为一个实施例中图9中的估计模块的结构框图;图11为另一个实施例中回声消除数据同步控制装置的结构框图;图12为再一个实施例中回声消除数据同步控制装置的结构框图;图13为一个实施例中回声消除数据同步控制装置的结构框图。【具体实施方式】为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。如图3所示,在一个实施例中,提供了一种终端,该终端包括通过系统总线连接的处理器、内存、非易失性存储介质、网络接口、声卡、麦克风和扬声器。其中,该终端的非易失性存储介质存储有操作系统和一种回声消除数据同步控制装置,该回声消除数据同步控制装置用于实现一种回声消除数据同步控制方法。该终端的处理器被配置为执行一种回声消除数据同步控制方法。该终端的声卡用于提供音频处理能力,该声卡可以是独立声卡或者集成声卡。该终端可以是台式计算机或者移动终端,移动终端包括但不限于手机、平板电脑以及PDA (个人数字处理)。如图4所示,在一个实施例中,提供了一种回声消除数据同步控制方法,本实施例以该方法应用于上述图3中的终端来举例说明,该方法的实现条件如图2所示,终端上设有接收缓冲区、声卡播放缓冲区、参考音频缓冲区、声卡采集缓冲区和近端音频缓冲区,每个缓冲区用一个先进先出的队列实现。本文档来自技高网
...

【技术保护点】
一种回声消除数据同步控制方法,所述方法包括:估计声卡延时值;等待参考音频缓冲区队列长度减去近端音频缓冲区队列长度的差值大于或等于声卡延时值所对应的音频数据长度;按音频帧从参考音频缓冲区队列和近端音频缓冲区队列队首取出音频数据以进行回声消除处理;获取进行回声消除处理所生成的相对延时值;根据所述相对延时值调整所述声卡延时值。

【技术特征摘要】

【专利技术属性】
技术研发人员:周小星彭远疆
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1