CN1291308C - 一种消除回音的方法 - Google Patents

一种消除回音的方法 Download PDF

Info

Publication number
CN1291308C
CN1291308C CNB2005100634421A CN200510063442A CN1291308C CN 1291308 C CN1291308 C CN 1291308C CN B2005100634421 A CNB2005100634421 A CN B2005100634421A CN 200510063442 A CN200510063442 A CN 200510063442A CN 1291308 C CN1291308 C CN 1291308C
Authority
CN
China
Prior art keywords
echo
voice data
voice
thread
volume
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CNB2005100634421A
Other languages
English (en)
Other versions
CN1687894A (zh
Inventor
傅群
杨劲松
施健标
焉勇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Vimicro Corp
Original Assignee
Vimicro Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Vimicro Corp filed Critical Vimicro Corp
Priority to CNB2005100634421A priority Critical patent/CN1291308C/zh
Publication of CN1687894A publication Critical patent/CN1687894A/zh
Application granted granted Critical
Publication of CN1291308C publication Critical patent/CN1291308C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Circuit For Audible Band Transducer (AREA)
  • Telephone Function (AREA)

Abstract

本发明公开了一种消除回音的方法。在软件语音交互系统初始化时,启动线程一,通过系统音频播放设备循环播放预先保存在系统内存缓冲区一中的音频数据;同时启动线程二,通过麦克风设备采集外界音频数据;然后启动线程三,将外界音频数据与内存缓冲区一中的音频数据相比较,根据比较结果调整系统声卡音量,直至回音消失为止。该方法以软件方式,依靠语音交互系统中常规的硬件配置,自动完成对系统声卡音量的调整,并且在语音交互功能启动前完成回音消除过程,使得其后的语音交互过程始终处于安静平稳的状态中。

Description

一种消除回音的方法
技术领域
本发明涉及音频处理领域,特别是一种消除回音的方法,用于语音交互系统中。
背景技术
在用电脑进行语音聊天、网络会议或其它音频活动的时候,如果用麦克风采集自己的声音,用音箱播放别人的声音,或者在使用耳麦时,音量设置过大,都会出现回音问题。比如对方说了一句话,通过我们的音箱播放出来,结果又被我们的麦克风采集进去,又发送给了对方,于是对方就感觉到了自己的回音。
目前,比较成熟的回音消除技术都主要集中在硬件实现领域,常见的包括以下的技术途径:
1、以简单声音抵消逻辑电路实现回音消除功能,这是目前广泛使用的最为普遍的一种方法,例如普通的电话听筒中就采用了相关的回音抵消逻辑电路。使用这种方法来消除回音,不仅实现起来较为简单,而且效果也不错。
2、以对距离递差度灵敏的逻辑电路实现回音消除功能,这种方式被广泛应用在高保真效果的麦克风设备中。所谓的距离递差度,是指麦克风在采集不同距离的语音时,对这些语音使用不同的采集强度的变化额度。有些麦克风不仅仅对于距离较近的声源采集得好,对于距离稍远的声源,采集效果往往也很好,这样的麦克风距离递差度较小。另外一些麦克风,只有对离该设备一定距离范围内的声源采集得较好,当声源超出一定距离范围时,该设备几乎采集不到它所发出的任何声音,这样的麦克风的距离递差度就较高。使用距离递差度高的麦克风对于回音的消除往往是很有效的,因为说话者离麦克风的距离往往较近,而音响等发音设备离麦克风的距离往往较远。高距离递差度的麦克风在采集语音时,采集的多是说话者的语音,对于距离较远的音箱,几乎不采集任何声音。
目前在普通的多媒体电脑中,依靠常规的硬件设备,达到消除回音的目的,最简单的方法就是使用耳机来代替音箱。因为耳机的功率很小,往往使得麦克风不能采集到耳机的发声,从而最大限度地降低了回音现象的产生。但是,使用耳机并不能完全避免回音现象的发生。现在,由于电脑配备的耳机和麦克风往往做成了一体,两者之间的距离非常有限,所以仍然容易产生回音现象。同时,在某些场合下,使用音箱比耳机更为方便,因此人们更愿意使用音箱设备而不是耳机,这就使得回音问题在有些场合是不可避免的。
采用高距离递差度的麦克风虽然可以较好地避免回音的产生,但是由于其具有高度的专业性,价格也往往偏高,所以并不为大多数普通多媒体电脑所配备。
而在普通的多媒体电脑中,依靠常规的硬件设备,以软件方式消除回音,目前仍然处于摸索阶段。
发明内容
有鉴于此,本发明的主要目的在于提供一种利用软件来消除回音的方法,在语音交互系统初始化时就完成对系统声卡的自动调整功能,达到消除回音的目的。
为达到上述目的,本发明提供一种消除回音的方法,具体为:
步骤一、启动线程一,通过系统音频播放设备循环播放保存在系统内存缓冲区一中的音频数据一;
步骤二、启动线程二,通过麦克风设备采集外界音频数据二,并将其保存在系统内存缓冲区二中;
步骤三、启动线程三,将音频数据二和音频数据一的波形进行比对,根据比对结果调整系统声卡波形输出设备的音量值,直至回音消失为止;
步骤四、结束回音消除程序。
步骤三具体为:
a)将所述音频数据二和音频数据一的波形进行比对,若有回音出现,则转向步骤b),否则转向步骤d);
b)将当前系统声卡波形输出设备的音量减小1个数值;
c)判断上一次音量调整是否为步骤c)中所述的将音量增加1个数值,如果不是,转向步骤a),否则结束当前回音消除程序;
d)将当前系统声卡波形输出设备的音量增加1个数值,转向步骤a)。
所述的内存缓冲区二中,有若干个内存缓冲区列表成员,所有列表成员的存储空间大小都相等。
所述内存缓冲区列表成员的存储空间的大小,由系统声卡的当前采样率和内存缓冲区一中的音频数据的时间长度相乘得到,可以存储与内存缓冲区一中的音频数据时间长度相等的音频数据。
当一个内存缓冲区列表成员的存储空间存满数据后,即启用下一个列表成员进行数据存储,所有列表成员都存满后,再从头依次使用各个成员进行音频数据的存储。
步骤四中所述结束当前回音消除程序具体为:依次结束线程三、线程二和线程一,释放内存缓冲区一和内存缓冲区二。
步骤一中所述的系统音频播放设备为音箱。
步骤一中所述的系统音频播放设备为耳机。
音频数据的格式包括MP3格式、WMA格式、WAV格式、ASF格式、AAC格式、Mp3Pro格式、VQF格式。
本发明针对目前回音消除技术多在硬件领域实现,而利用软件方法进行回音消除还不成熟的情况,提出在软件语音交互系统初始化时,启动回音消除程序,先循环播放预先保存在系统内存缓冲区一中的音频数据,然后将通过麦克风采集到的外界音频数据与上述内存缓冲区一中的音频数据相比较,根据比较结果调整系统声卡音量,直至不再有回音出现。该回音消除方法相对于现有技术来说,完全以软件实现,对多媒体电脑的硬件没有特殊要求;对系统声卡的调整自动完成,整个过程无须人工干预;在语音交互功能启动前完成回音消除过程,使其后的语音交互过程始终处于一个安静平稳的环境之中,避免了在语音交互过程中进行回音消除而带来的系统开销。
附图说明
图1为回音消除方法的流程图;
图2为调整系统声卡音量的流程图;
图3a为预先存储在内存缓冲区一中的音频数据一示意图;
图3b为通过麦克风采集到的外界音频数据二示意图。
具体实施方式
本发明核心思想为:在软件语音交互系统初始化时,先循环播放预先保存在系统内存缓冲区一中的音频数据,然后将通过麦克风采集到的外界音频数据与上述内存缓冲区一中的音频数据相比较,根据比较结果调整系统声卡音量,直至不再有回音出现。
下面参照说明书附图并结合实施例,对本发明做进一步详细的说明。
步骤101,在语音交互系统启动并初始化时,回音消除程序启动。
例如启动一个网络电话会议系统,在此系统初始化时,启动回音消除程序,预先进行回音的消除。这时的系统声卡音量值记为n。
步骤102,启动线程一,循环播放预先存储在系统内存缓冲区一中的音频数据一。
将预先准备好的一段音频数据,例如mp3格式、时间长度为三秒钟的鸟鸣声,如图3a所示,存入系统内存缓冲区B中,记为A,并通过音箱循环播放。
步骤103,启动线程二,采集外界音频数据二并将其保存在内存缓冲区二中。
首先在系统内存中开辟内存缓冲区M,包括两个列表成员:M1和M2。两者存储空间大小相同,都可以保存时间长度为三秒的音频数据。
然后通过麦克风采集外界音频数据,采集到的外界音频数据波形中包括音箱播放出的音频数据A,还可能包括环境噪声以及人说话的声音,将其保存在M1中,M1存满后波形如图3b所示,标记为N1
M1中数据存满后,进入步骤104,同时M2开始存储数据。
步骤104,启动线程三,对音频数据一和二进行比对,并根据比对结果调整系统声卡音量,直至回音消失。
将音频数据N1与音频数据A的波形相比较,并根据比较结果调整系统声卡音量,比较两音频数据以及调整系统声卡音量的具体步骤如图2所示。
步骤201,音频数据一在音频数据二中出现的概率是否大于回音判定阈值?
关于波形识别比对的方法非常多,基本原理就是把两段波形(在这里即指音频数据A与N1的波形)作为比对对象,然后调用波形识别比对模块,最后根据它返回的结果(其结果是一个百分数,表示前者的波形在后者中出现的概率)来进行判断。在此不予赘述。
若音频数据A在音频数据N1中出现的概率大于回音判定阈值95%,则认为有回音出现,进入步骤202,否则进入步骤203。此回音判定阈值也可以根据用户对系统的要求自己进行设定,可略高或略低。
步骤202,将系统声卡音量减小一个数值。
将声卡音量值减小一个数值,即音量值经调整后变为n-1。
步骤203,将系统声卡音量增加一个数值。
将系统声卡音量值增加一个数值,即音量值经调整后变为n+1。
步骤204,判断上一次音量调整是否为增加一个数值?
所谓“上一次”对系统声卡音量的调整,是指在此次调整之前的最后一次音量调整过程。
若判断结果为是,则进入步骤105;若结果为否,则转入步骤201,再次进行音频数据的比较和对系统声卡音量的调整。
假设在语音交互系统启动时,系统声卡音量过大,有回音产生,这时的系统声卡音量值为n。那么依据本发明的回音消除方法,在进行到步骤201时,判断结果为是,进入步骤202,将系统声卡音量值减小一个数值,为n-1,进入步骤204,判断上一次音量调整是否为增加一个数值?因为本次音量调整是第一次,在此之前并没有对音量进行调整,所以判断结果为否,进入步骤201。
上述步骤201、202、204循环进行,直至在步骤201中判断结果为否,这时回音消失,系统声卡音量已经调整为回音消失的临界音量值,即在此音量时,没有回音出现,而如果音量值增加一个数值,就会有回音出现。假设这时声卡音量值为n-m,转入步骤203。
在步骤203中将系统声卡音量增加一个数值,即音量值为n-m+1,然后进入步骤201,再次比较两音频数据,判断结果为是,进入步骤202,将音量减小一个数值,为n-m,在步骤204中判断结果为是,进入步骤105,结束回音消除程序。
在上述实施例中,采用了音箱作为系统音频播放设备,在实际应用中也可为耳机。
而对于系统内存缓冲区二,采取两个列表成员的方式,这样可以节省时间。因为在调用一个已存满数据的成员中的音频数据进行比较和声卡音量调整之后,不必等待即可调用另一个成员中的音频数据进入下一周期的音频数据比较和声卡音量调整过程。除了两个列表成员的方式,也可采用一个列表成员或三个及三个以上列表成员的方式。但在一个列表成员的情况下,只能在两个音频数据比较和声卡音量调整的一个过程完毕后,才能对外界音频数据进行下一周期的采集存储,所以比用两个或两个以上列表成员要消耗更多时间来完成回音消除。因此最好令列表成员为两个及两个以上,这样回音消除程序所需时间较少。
另外,在本实施例中,为了使算法更为简单,对于回音消失时声卡音量值的确定,是将系统声卡音量调整为回音消失的临界音量值,即在达到此值时,回音消失,但若音量值增加一个数值,回音将会再次出现。如果语音交互系统启动时,并没有回音出现,该实施例中的方法会增加系统声卡音量,直至回音第一次出现,然后将声卡音量减小一个数值,达到上述回音消失的临界音量值。在实际应用中也可以在回音消除程序启动时,先判断是否有回音出现,如果没有,则结束回音消除程序,启动语音交互功能;若有回音出现,则继续进行回音消除过程。这样做会更节省时间,但是有可能最初的音量过小,所以回音才没有出现,如果在语音交互功能启动后,说话人感觉音量太小而将音量调大,又出现了回音,这时就必须手动调整音量进行回音的消除了。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (6)

1、一种消除回音的方法,具体为:
步骤一、启动线程一,通过系统音频播放设备循环播放保存在系统内存缓冲区一中的音频数据一;
步骤二、启动线程二,通过麦克风设备采集外界音频数据二,并将其保存在系统内存缓冲区二中;
步骤三、启动线程三,将音频数据二和音频数据一的波形进行比对,根据比对结果调整系统声卡波形输出设备的音量值,直至回音消失为止;
步骤四、结束回音消除程序。
2、根据权利要求1所述的消除回音的方法,其特征在于,步骤三具体为:
a)将所述音频数据二和音频数据一的波形进行比对,若有回音出现,则转向步骤b),否则转向步骤d);
b)将当前系统声卡波形输出设备的音量减小1个数值;
c)判断上一次音量调整是否为步骤d)中所述的将音量增加1个数值,如果不是,转向步骤a),否则结束当前回音消除程序,所述上一次音量调整为此次调整之前的最后一次音量调整过程;
d)将当前系统声卡波形输出设备的音量增加1个数值,转向步骤a)。
3、根据权利要求1所述的消除回音的方法,其特征在于,步骤四中所述结束当前回音消除程序具体为:依次结束线程三、线程二和线程一,释放内存缓冲区一和内存缓冲区二。
4、根据权利要求1所述的消除回音的方法,其特征在于,步骤一中所述的系统音频播放设备为音箱。
5、根据权利要求1所述的消除回音的方法,其特征在于,步骤一中所述的系统音频播放设备为耳机。
6、根据权利要求1或2所述的消除回音的方法,其特征在于,所述音频数据一和音频数据二的格式包括MP3格式、WMA格式、WAV格式、ASF格式、AAC格式、Mp3Pro格式、VQF格式。
CNB2005100634421A 2005-04-08 2005-04-08 一种消除回音的方法 Expired - Fee Related CN1291308C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2005100634421A CN1291308C (zh) 2005-04-08 2005-04-08 一种消除回音的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2005100634421A CN1291308C (zh) 2005-04-08 2005-04-08 一种消除回音的方法

Publications (2)

Publication Number Publication Date
CN1687894A CN1687894A (zh) 2005-10-26
CN1291308C true CN1291308C (zh) 2006-12-20

Family

ID=35305935

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2005100634421A Expired - Fee Related CN1291308C (zh) 2005-04-08 2005-04-08 一种消除回音的方法

Country Status (1)

Country Link
CN (1) CN1291308C (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100552775C (zh) * 2006-09-28 2009-10-21 南京大学 无损语音质量的立体声回音抵消方法
CN103312911B (zh) * 2012-03-12 2015-03-04 联想(北京)有限公司 数据处理方法和电子终端
SG11201406152SA (en) * 2012-03-29 2014-10-30 Haebora Wired and wireless earset using ear-insertion-type microphone
CN103402038B (zh) * 2013-07-23 2016-05-04 广东欧珀移动通信有限公司 手机免提状态下消除对方听筒回音的方法及装置
WO2017124445A1 (zh) * 2016-01-23 2017-07-27 张阳 一种音箱设备的音量调整方法及系统
CN105681513A (zh) * 2016-02-29 2016-06-15 上海游密信息科技有限公司 通话语音信号发送方法、系统及通话终端
CN107316652B (zh) * 2017-06-30 2020-06-09 北京睿语信息技术有限公司 侧音消除方法及装置
CN107750038B (zh) * 2017-11-09 2020-11-10 广州视源电子科技股份有限公司 音量调节方法、装置、设备及存储介质
CN107966910B (zh) * 2017-11-30 2021-08-03 深圳Tcl新技术有限公司 语音处理方法、智能音箱及可读存储介质
CN110035374B (zh) * 2019-04-19 2021-07-30 宁波启拓电子设备有限公司 调试音频采集设备的方法及装置
CN111601201A (zh) * 2020-04-28 2020-08-28 深圳市友杰智新科技有限公司 回声消除方法、装置、计算机设备和存储介质
CN112037808B (zh) * 2020-09-01 2024-04-19 杭州岁丰信息技术有限公司 一种用于电梯轿厢的回音消除方法及其装置

Also Published As

Publication number Publication date
CN1687894A (zh) 2005-10-26

Similar Documents

Publication Publication Date Title
CN1291308C (zh) 一种消除回音的方法
US11115541B2 (en) Post-teleconference playback using non-destructive audio transport
US9324322B1 (en) Automatic volume attenuation for speech enabled devices
CN1287353C (zh) 语音处理装置
CN107995360B (zh) 通话处理方法及相关产品
CN1689073A (zh) 基于语音来控制设备
CN101917656A (zh) 音量自动调节装置及自动调节音量的方法
WO2014171915A1 (en) System and method for acoustic echo cancellation
CN1820542A (zh) 具有声反馈抑制的助听器
WO2013009949A1 (en) Microphone array processing system
CN1805278A (zh) 使用波束形成算法来记录信号的方法和设备
US9373338B1 (en) Acoustic echo cancellation processing based on feedback from speech recognizer
CN111199751B (zh) 一种麦克风的屏蔽方法、装置和电子设备
CN113205803A (zh) 一种具有自适应降噪能力的语音识别方法及装置
EP4371112A1 (en) Speech enhancement
TW201637003A (zh) 音訊處理系統
CN103021419A (zh) 一种混合音频的处理方法及装置
CN110265038B (zh) 一种处理方法及电子设备
CN103366758A (zh) 一种移动通信设备的语音降噪方法和装置
CN116312564A (zh) 一种基于声纹技术的视频会议用啸叫抑制设备
CN1822092A (zh) 一种消除语音输入中背景噪声的方法及其装置
CN114743571A (zh) 一种音频处理方法、装置、存储介质及电子设备
GB2516208A (en) Noise reduction in voice communications
CN113744732A (zh) 设备唤醒相关方法、装置及故事机
JP5369055B2 (ja) 通話単位検出装置、方法及びプログラム

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20061220

Termination date: 20120408