一种基于回声消除的麦克风信号延时补偿控制方法.pdf

上传人:Y94****206 文档编号:19748 上传时间:2018-01-12 格式:PDF 页数:10 大小:606.38KB
返回 下载 相关 举报
摘要
申请专利号:

CN201410018479.1

申请日:

2014.01.15

公开号:

CN104778950A

公开日:

2015.07.15

当前法律状态:

实审

有效性:

审中

法律详情:

实质审查的生效IPC(主分类):G10L 21/02申请日:20140115|||公开

IPC分类号:

G10L21/02(2013.01)I; H04R3/02

主分类号:

G10L21/02

申请人:

华平信息技术股份有限公司

发明人:

刘睿; 余立成

地址:

200433上海市杨浦区国定路335号

优先权:

专利代理机构:

上海光华专利事务所31219

代理人:

余明伟

PDF下载: PDF下载
内容摘要

本发明提供一种基于回声消除的麦克风信号延时补偿控制方法,通过对麦克风信号和扬声器信号做短时间的数据分析后,较准确的计算出两种信号之间的时间差,然后通过对缓冲区进行扩展和对齐操作来实现两种数字信号源之间无延时。本发明的基于回声消除的麦克风信号延时补偿控制方法能够有效解决在非实时系统如Android系统中麦克风信号和扬声器信号之间的延时导致的声学回声消除模块无法正常使用的问题;在不对系统平台做任何底层驱动的修改的前提下,能简单有效的解决了麦克风信号和扬声器信号之间的延时问题,使得回声消除功能在Android下可以在应用软件层完成和直接加到底层驱动一样的技术效果。

权利要求书

1.  一种基于回声消除的麦克风信号延时补偿控制方法,其特征在于,至少包括以下步骤:
步骤S1:获取一组麦克风音频数字信号和一组扬声器音频数字信号;
步骤S2:将麦克风音频数字信号和扬声器音频数字信号由时域信号转换为频域信号, 分别得到麦克风频域信号队列和扬声器频域信号队列;
步骤S3:计算扬声器频域信号的二进制谱值,得到扬声器频域信号的二进制谱值队 列;
步骤S4:计算当前麦克风频域信号的二进制谱值;
步骤S5:将麦克风频域信号的当前帧的二进制谱值逐个与扬声器频域信号的二进制 谱值队列中的二进制谱值进行异或运算,得到有效比特位个数队列,其中,有效比特位个 数为异或运算结果中值为1的比特位的个数;
步骤S6:初始化最优延时值best为二进制谱值的比特个数,最差延时值worst为0; 将有效比特位个数队列中的数值逐个与best和worst做比较,当满足当前有效比特位个数 小于best且大于worst时,延时估计值标记为当前有效比特位个数在队列中的对应序列值 delay_index,否则延时估计值为0;同时更新best为当前有效比特位个数,worst为当前有 效比特位个数;
步骤S7:根据延时估计值计算出麦克风音频数字信号或扬声器音频数字信号的偏移 量,并根据偏移量对麦克风音频数字信号或扬声器音频数字信号进行偏移处理,完成两路 信号在时间上的延时补偿。

2.
  根据权利要求1所述的基于回声消除的麦克风信号延时补偿控制方法,其特征在于:步骤 S2中,通过采用FFT变换将音频数字信号由时域信号转换为频域信号。

3.
  根据权利要求1所述的基于回声消除的麦克风信号延时补偿控制方法,其特征在于:步骤 S5中还包括:计算麦克风频域信号的二进制谱值和扬声器频域信号的二进制谱值的均值, 并由麦克风频域信号当前帧的二进制谱值的均值逐个与扬声器频域信号的二进制谱值均 值队列中的二进制谱值均值进行异或运算来得到有效比特位个数队列。

4.
  根据权利要求3所述的基于回声消除的麦克风信号延时补偿控制方法,其特征在于:计算 二进制谱值的均值时,采用以下公式:Mn=Mn-1+(NEW-Mn-1)/64,其中,Mn表示当前帧 的二进制谱值的均值,Mn-1表示前一帧的二进制谱值的均值,NEW表示当前帧的二进制 谱值。

5.
  根据权利要求1所述的基于回声消除的麦克风信号延时补偿控制方法,其特征在于:步骤 S6中还包括初始化最小延时期望值为min_pro为二进制谱值的比特个数,最大延时期望 值max_pro为0;
延时估计值标记为当前有效比特位个数在队列中的对应序列值delay_index,还需满 足:worst>(best+2)且best<min_pro;
另外,当worst>(best+2)且best<max_pro时,delay_index为0,并更新max_pro= best;
当min_pro>17、(worst-best)>5且(best+2)<min_pro时,更新min_pro=(best+2)。

6.
  根据权利要求1所述的基于回声消除的麦克风信号延时补偿控制方法,其特征在于:步骤 S7中,
如果偏移量>0,则判定麦克风信号往后延时了偏移量大小的长度,将扬声器信号 Speak_Buff_Queue往后延时偏移量大小的长度;
如果偏移量<0,则判定扬声器信号往后延时了偏移量大小的长度,将麦克风信号 Mic_Buff_Queue往后延时偏移量大小的长度。

7.
  根据权利要求1所述的基于回声消除的麦克风信号延时补偿控制方法,其特征在于:还包 括步骤S8:将处理后的麦克风音频数字信号和扬声器音频数字信号送入声学回声消除模 块中,完成声学回声消除。

说明书

一种基于回声消除的麦克风信号延时补偿控制方法
技术领域
本发明涉及回声消除的技术领域,特别是涉及一种基于回声消除的麦克风信号延时补偿 控制方法。
背景技术
回声的产生是由于扬声器和麦克风之间存在声学回路。来自远端的声音信号,经过通讯 连接,到达近端后通过近端的扬声器放出,然后被麦克风采集到后传回远端。此时,远端说 话的人就能听到自己的回声,因而严重的影响了通话质量。
由于从扬声器到麦克风的声学回路是未知并且时变的,因而,现有技术中通常采用的回 声消除方案中,广泛的采用了自适应滤波的方法。如申请号为:200610058449.9、发明名称 为《一种麦克风回声消除系统》的中国专利申请,以及申请号为:200610144055.5、发明名 称为《一种麦克风回声消除装置及回声消除方法》的中国专利申请中均公开了相关技术方案。
然而,在非实时系统上实现高效的声学回声消除功能是很困难的。由于音频驱动和硬件 时钟的差异导致了参考音频信号(即扬声器播放的音频信号)和麦克风信号之间存在较大的 延时。例如在Android系统中,根据实际采集和播放数据测试结果可发现:除了声学反射的 延时之外,系统带来的延时高达200到300ms之间,且延时的数值每一次都不固定,运行启 动都会有较大变化。目前,基于ARM的Android移动平台成为主流和热门的智能终端设备。 而音频的采集播放以及通信等应用功能更是在Android移动平台上广泛使用。在Android本 身系统软件架构的设计上,音频驱动和架构上产生了较多的数据延时,甚至相比来看PC电 脑的声卡的延时已经足够低和稳定了。因此,为了在类似这种系统的产品上完成高效率的回 声消除功能,首先需要解决上述的延时问题。
发明内容
鉴于以上所述现有技术的缺点,本发明的目的在于提供一种基于回声消除的麦克风信号 延时补偿控制方法,通过对麦克风信号和扬声器信号做短时间的数据分析后,较准确的计算 出两种信号之间的时间差,然后通过对缓冲区进行扩展和对齐操作来实现两种数字信号源之 间无延时。
为实现上述目的及其他相关目的,本发明提供一种基于回声消除的麦克风信号延时补偿 控制方法,至少包括以下步骤:步骤S1:获取一组麦克风音频数字信号和一组扬声器音频数 字信号;步骤S2:将麦克风音频数字信号和扬声器音频数字信号由时域信号转换为频域信号, 分别得到麦克风频域信号队列和扬声器频域信号队列;步骤S3:计算扬声器频域信号的二进 制谱值,得到扬声器频域信号的二进制谱值队列;步骤S4:计算当前麦克风频域信号的二进 制谱值;步骤S5:将麦克风频域信号的当前帧的二进制谱值逐个与扬声器频域信号的二进制 谱值队列中的二进制谱值进行异或运算,得到有效比特位个数队列,其中,有效比特位个数 为异或运算结果中值为1的比特位的个数;步骤S6:初始化最优延时值best为二进制谱值的 比特个数,最差延时值worst为0;将有效比特位个数队列中的数值逐个与best和worst做比 较,当满足当前有效比特位个数小于best且大于worst时,延时估计值标记为当前有效比特 位个数在队列中的对应序列值delay_index,否则延时估计值为0;同时更新best为当前有效 比特位个数,worst为当前有效比特位个数;步骤S7:根据延时估计值计算出麦克风音频数 字信号或扬声器音频数字信号的偏移量,并根据偏移量对麦克风音频数字信号或扬声器音频 数字信号进行偏移处理,完成两路信号在时间上的延时补偿。
根据上述的基于回声消除的麦克风信号延时补偿控制方法,其中:步骤S2中,通过采用 FFT变换将音频数字信号由时域信号转换为频域信号。
根据上述的基于回声消除的麦克风信号延时补偿控制方法,其中:步骤S5中还包括:计 算麦克风频域信号的二进制谱值和扬声器频域信号的二进制谱值的均值,并由麦克风频域信 号当前帧的二进制谱值的均值逐个与扬声器频域信号的二进制谱值均值队列中的二进制谱值 均值进行异或运算来得到有效比特位个数队列。
进一步地,根据上述的基于回声消除的麦克风信号延时补偿控制方法,其中:计算二进 制谱值的均值时,采用以下公式:Mn=Mn-1+(NEW-Mn-1)/64,其中,Mn表示当前帧的二进 制谱值的均值,Mn-1表示前一帧的二进制谱值的均值,NEW表示当前帧的二进制谱值。
根据上述的基于回声消除的麦克风信号延时补偿控制方法,其中:步骤S6中还包括初始 化最小延时期望值为min_pro为二进制谱值的比特个数,最大延时期望值max_pro为0;
延时估计值标记为当前有效比特位个数在队列中的对应序列值delay_index,还需满 足:worst>(best+2)且best<min_pro;
另外,当worst>(best+2)且best<max_pro时,delay_index为0,并更新max_pro= best;
当min_pro>17、(worst-best)>5且(best+2)<min_pro时,更新min_pro=(best+2)。 根据上述的基于回声消除的麦克风信号延时补偿控制方法,其中:步骤S7中,
如果偏移量>0,则判定麦克风信号往后延时了偏移量大小的长度,将扬声器信号 Speak_Buff_Queue往后延时偏移量大小的长度;
如果偏移量<0,则判定扬声器信号往后延时了偏移量大小的长度,将麦克风信号 Mic_Buff_Queue往后延时偏移量大小的长度。
根据上述的基于回声消除的麦克风信号延时补偿控制方法,其中:还包括步骤S8:将处 理后的麦克风音频数字信号和扬声器音频数字信号送入声学回声消除模块中,完成声学回声 消除。
如上所述,本发明的基于回声消除的麦克风信号延时补偿控制方法,具有以下有益效果:
(1)本发明能够有效解决在非实时系统如Android系统中麦克风信号和扬声器信号之间 的延时导致的声学回声消除模块无法正常使用的问题;
(2)本发明在不对系统平台做任何底层驱动的修改的前提下,能简单有效的解决了麦克 风信号和扬声器信号之间的延时问题,使得回声消除功能在Android下可以在应用软件层完 成和直接加到底层驱动一样的技术效果。
附图说明
图1显示为本发明的基于回声消除的麦克风信号延时补偿控制方法的流程图;
图2显示为本发明的一个优选实施例中基于回声消除的麦克风信号延时补偿控制方法的 流程图。
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露 的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加 以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精 神下进行各种修饰或改变。
需要说明的是,本实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式 中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际 实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
本发明解决了在非实时音频系统中存在的麦克风信号和扬声器信号之间的抖动延时较大 的问题,在延时较大且有变化的情况下,也可以稳定正常的计算出延时值,并通过缓冲区控 制的方法,使得回声消除的自适应滤波器能够正常收敛和学习。
参照图1,本发明的基于回声消除的麦克风信号延时补偿控制方法,具体包括以下步骤:
步骤S1:分别保存一组麦克风音频数字信号Mic_Buff_Queue和一组扬声器音频数字信 号Speak_Buff_Queue。
优选地,可以各选取50帧的音频队列,或者各选取500ms的音频队列。其中每帧定义 为10ms。音频队列保存在设备内存中。
步骤S2:将上述两组音频数字信号由时域信号转换为频域信号。
具体地,通过采用FFT变换将音频队列由时域信号转换为频域信号。
步骤S3:计算当前扬声器音频数字信号Speak_Buff_Queue的二进制谱值SpeakBinValue, 并将二进制谱值保存在队列中。
其中,队列的长度根据系统的最大延时长度来计算。比如当系统的最大延时长度为 200ms,帧长为10ms时,队列的长度则为20。
步骤S4:计算当前麦克风音频数字信号Mic_Buff_Queue的二进制谱值MicBinValue。
步骤S5:将麦克风频域信号的当前帧的二进制谱值逐个与扬声器频域信号的二进制谱值 队列中的二进制谱值进行异或运算,得到有效比特位个数队列,其中,有效比特位个数为异 或运算结果中值为1的比特位的个数。
优选地,可以计算出麦克风频域信号的二进制谱值和扬声器频域信号的二进制谱值的均 值,并由麦克风频域信号当前帧的二进制谱值的均值逐个与扬声器频域信号的二进制谱值均 值队列中的二进制谱值均值进行异或运算来得到有效比特位个数队列。通过二进制谱值的均 值来计算有效比特位个数,能够更好地平滑音频中的变化,更准确地确定延时值。
具体地,计算二进制谱值的均值时,采用以下公式:Mn=Mn-1+(NEW-Mn-1)/64,其中, Mn表示当前帧的二进制谱值的均值,Mn-1表示前一帧的二进制谱值的均值,NEW表示当前 帧的二进制谱值。
步骤S6:初始化最优延时值best为二进制谱值的比特个数,最差延时值worst为0;将有 效比特位个数队列中的数值逐个与best和worst做比较,当满足当前有效比特位个数小于best 且大于worst时,延时估计值标记为当前有效比特位个数在队列中的对应序列值delay_index, 否则延时估计值为0;同时更新best为当前有效比特位个数,worst为当前有效比特位个数。
优选地,本发明中还可以对上述best和worst值进行进一步优化,从而保证延时估计值的 准确性。具体包括初始化最小延时期望值为min_pro为二进制谱值的比特个数,最大延时期 望值max_pro为0。延时估计值标记为当前有效比特位个数在队列中的对应序列值 delay_index,还需满足:worst>(best+2)且best<min_pro。另外,当worst>(best+2)且 best<max_pro时,delay_index为0,并更新max_pro=best;当min_pro>17、(worst-best)> 5且(best+2)<min_pro时,更新min_pro=(best+2)。
步骤S7:根据延时估计值计算出麦克风音频数字信号Mic_Buff_Queue或扬声器音频数 字信号Speak_Buff_Queue的偏移量,并根据偏移量对麦克风音频数字信号Mic_Buff_Queue 或扬声器音频数字信号Speak_Buff_Queue进行偏移处理。
根据delay_index和一帧数据单位为10ms长度的规定,可以得出缓冲区的偏移量为 10*delay_index。
如果偏移量>0,则判定麦克风信号往后延时了偏移量大小的长度,将扬声器信号 Speak_Buff_Queue往后延时偏移量大小的长度;
如果偏移量<0,则判定扬声器信号往后延时了偏移量大小的长度,将麦克风信号 Mic_Buff_Queue往后延时偏移量大小的长度;
至此,即可完成两路信号在时间上的延时补偿,恢复到零延时的数据状态。
待延时补偿完成之后,将处理后的两个缓冲区数据队列送入声学回声消除(Acoustic Echo  Cancellation,AEC)模块中处理,以消除声学回声。最后,可将AEC模块的输出信号存入输 出缓冲队列中,等待其他模块从其中取数据进行相关任务的处理。
如图2所示,在本发明的一个优选实施例中,基于回声消除的麦克风信号延时补偿控制 方法应用在Android系统中,具体包括以下步骤:
S1、麦克风采集的模拟信号通过声卡转化为一帧数字信号Digital_Mic,保存在队列A; 扬声器采集的模拟信号通过声卡转化为一帧数字信号Digital_Spk,保存在队列B;
S2、将一帧数字信号Digital_Mic和一帧数字信号Digital_Spk分别做FFT变换,转化为 频域信号Freq_Mic和Freq_Spk;
S3、对频域信号Freq_Mic做二进制谱值运算,得到二进制谱值MicBinValue;对频域信 号Freq_Spk做二进制谱值运算,得到二进制谱值SpkBinValue;将SpkBinValue值保存在队 列C中;
S4、对MicBinValue和队列C中的数据逐一进行异或运算,得出有效比特位个数队列;
S5、求出当前的延时估计值,并更新best、worst、min_pro和max_pro;
S6、由延时估计值推算出Digital_Mic或Digital_Spk的偏移量FrameOffset;
S7、当FrameOffset>0,判断麦克风信号延后了FrameOffset的长度,则将队列B的数据 指针往后移动FrameOffset的长度,队列B变为B';当FrameOffset<0,判断扬声器信号 延后了FrameOffset的长度,则将队列A的数据指针往后移动FrameOffset的长度;队列A 变为A'。
最后将处理后的扬声器音频数据和麦克风音频数据分别送到回声消除输入接口,以得到 去除回声后的音频数据,并存放到队列D。
综上所述,本发明的基于回声消除的麦克风信号延时补偿控制方法能够有效解决在非实 时系统如Android系统中麦克风信号和扬声器信号之间的延时导致的声学回声消除模块无法 正常使用的问题;在不对系统平台做任何底层驱动的修改的前提下,能简单有效的解决了麦 克风信号和扬声器信号之间的延时问题,使得回声消除功能在Android下可以在应用软件层 完成和直接加到底层驱动一样的技术效果。所以,本发明有效克服了现有技术中的种种缺点 而具高度产业利用价值。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技 术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡 所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等 效修饰或改变,仍应由本发明的权利要求所涵盖。

一种基于回声消除的麦克风信号延时补偿控制方法.pdf_第1页
第1页 / 共10页
一种基于回声消除的麦克风信号延时补偿控制方法.pdf_第2页
第2页 / 共10页
一种基于回声消除的麦克风信号延时补偿控制方法.pdf_第3页
第3页 / 共10页
点击查看更多>>
资源描述

《一种基于回声消除的麦克风信号延时补偿控制方法.pdf》由会员分享,可在线阅读,更多相关《一种基于回声消除的麦克风信号延时补偿控制方法.pdf(10页珍藏版)》请在专利查询网上搜索。

本发明提供一种基于回声消除的麦克风信号延时补偿控制方法,通过对麦克风信号和扬声器信号做短时间的数据分析后,较准确的计算出两种信号之间的时间差,然后通过对缓冲区进行扩展和对齐操作来实现两种数字信号源之间无延时。本发明的基于回声消除的麦克风信号延时补偿控制方法能够有效解决在非实时系统如Android系统中麦克风信号和扬声器信号之间的延时导致的声学回声消除模块无法正常使用的问题;在不对系统平台做任何底层。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 乐器;声学


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1