消除回声的优化方法、装置及系统的制作方法

文档序号:2833053阅读:502来源:国知局
专利名称:消除回声的优化方法、装置及系统的制作方法
技术领域
本发明涉及计算机通信技术领域,尤其涉及一种消除回声的优化方法、装置及系统。
背景技术
在语音通信中,有一个很影响通话质量的因素就是回声。回声就是指,说话者通过通信设备发送给其他人的语音又重新回到自己听筒里的现象。回声会对说话者产生严重的干扰,必须想办法消除。一般,回声分为两种,即“电路回声”和“声学回声”。“电路回声”可以通过硬件设备的合理设计而消除,在此不作讨论。而本发明则是对“声学回声”所作的优化处理。“声学回声”是指远端用户的声音从听筒出来以后,经过空气或其他的传播媒介传到近端用户的话筒,再通过话筒录音后又重新传到远端用户的听筒中形成的回声。当近端用户的放音音量比较大而录音设备和放音设备距离比较近时回声尤其明显。“声学回声”受近端用户环境的影响,可能产生多路回声,各个回声的路径不同,延迟各异,因而难以消除。对于声学回声消除,常见的消除算法有2类,S卩回声抑制(acoustic echosuppression)算法禾口声学回声消除(acoustic echo cancellation)算法。回声抑制算法是较早的一种回声控制算法。回声抑制是一种非线性的回声消除。它通过简单的比较器将准备由扬声器播放的声音与当前话筒拾取的声音的电平进行比较,如果前者高于某个阈值,那么就允许传至扬声器,而且话筒被关闭,以阻止它拾取扬声器播放的声音而引起远端回声。如果话筒拾取的声音电平高于某个阈值,扬声器被禁止,以达到消除回声的目的。由于回声抑制是一种非线性的回声控制方法,会引起扬声器播放的不连续,影响回声消除的效果,随着高性能的回声消除器的出现,回声抑制已经很少有人使用了。声学回声消除算法(AEC,ACOustiC Echo Canceller)的回声消除接口的一般形式为AecFunction (input frame, playback frame, out frame),其是对扬声器信号与由它产生的多路径回声的相关性为基础,以等量的播放数据输入作为建立回声模型的参考数据,利用它对回声进行估计,并不断地修改滤波器的系数,使得估计值更加逼近真实的回声;然后,将回声估计值从话筒的输入信号中减去,从而达到消除回声的目的。其中,回声消除器的初始化需要两个参数一次处理的数据量(帧长)和估计的录音中回声相对于录音开头的偏移量,该偏移量即回声相对于录音的延迟的最大值,主要由两放音延迟和录音延迟两部分组成。由于所有的回声消除器支持的尾长都有一个范围,偏移量超过这个范围的回声就无法消除了,因此回声消除的效果则跟回声偏移量的大小息息相关。然而现有的消除回声的技术大多存在录音开头偏移量无法控制的缺陷,从而导致回声消除的效果欠佳。

发明内容
本发明的主要目的在于公开一种消除回声的优化方法、装置及系统,以解决现有的回声消除器因尾长过长而导致的消除效果不佳的问题。为达上述目的,本发明公开一种消除回声的优化方法,包括以下步骤通过录音线程获取录音数据,其中所述录音线程先于放音线程启动;获取放音采样率及其对应的放音缓冲区长度,根据所述放音采样率及其对应的放音缓冲区长度计算放音延迟时长;当放音数据传送至回声消除器以启动所述回声消除器后,分离出所述回声消除器启动后所得到的录音数据中排列在前的且对应一个所述放音延迟时长的录音数据;将所述回声消除器启动后得到的录音数据中排列在一个放音延迟时长之后的录音数据发送给所述回声消除器,供其进行回声消除处理。为达上述目的,本发明还公开一种消除回声的优化装置,包括录音数据获取模块,用于通过录音线程获取录音数据,其中所述录音线程先于放音线程启动;放音延迟时长计算模块,用于获取放音采样率及其对应的放音缓冲区长度,根据所述放音采样率及其对应的放音缓冲区长度计算放音延迟时长;录音数据发送模块,用于当放音数据传送至回声消除器以启动所述回声消除器后,分离出所述回声消除器启动后所述录音数据获取模块所得到的录音数据中排列在前的且对应一个所述放音延迟时长计算模块所计算的放音延迟时长的录音数据;将所述回声消除器启动后得到的录音数据中排列在一个放音延迟时长之后的录音数据发送给所述回声消除器,供其进行回声消除处理。为达上述目的,本发明还公开一种消除回声的优化系统,包括用于获取放音数据和录音数据以进行AEC回声消除的回声消除器以及与该回声消除器建立通信连接的优化装置,其中,该优化装置用于执行下述的操作通过录音线程获取录音数据,其中所述录音线程先于放音线程启动;获取放音采样率及其对应的放音缓冲区长度,根据所述放音采样率及其对应的放音缓冲区长度计算放音延迟时长;当放音数据传送至回声消除器以启动所述回声消除器后,分离出所述回声消除器启动后所得到的录音数据中排列在前的且对应一个所述放音延迟时长的录音数据;将所述回声消除器启动后得到的录音数据中排列在一个放音延迟时长之后的录音数据发送给所述回声消除器,供其进行回声消除处理。与现有技术相比,本发明公开的消除回声消除的优化方法、装置及系统至少具有以下优点录音线程先于放音线程启动,放音数据先于录音数据到达回声消除器,确保了回声消除效果的完整性。且在回声消除器启动后,分离出回声消除器启动后所得到的录音数据中排列在前的且对应一个所述放音延迟时长的录音数据,只对回声消除器启动后得到的录音数据中排列在一个放音延迟时长之后的录音数据进行回声消除处理,使得回声消除器处理的录音数据相对于放音数据的延迟减小了放音延迟这么长,减少了回声消除器处理回声的尾长;尾长越小,则同样长度的数据回声消除器的处理时间越短,回声消除算法的收敛也越快,即开始消除回声的时间越早;从而对回声消除的效果起到了很好的优化作用。


图1是本发明实施例公开的消除回声的优化方法的流程图;图2是本发明实施例公开的消除回声的优化系统的架构图;图3是本发明实施例公开的一种消除回声的优化装置的结构框图;图4为本发明实施例公开的又一种消除消除回声的优化装置的结构框图。
具体实施例方式下面结合说明书附图对本发明的具体实现方式做一详细描述。AEC 回声消除器其接口的一般形式为AecFunction(input frame, playbackframe, out frame),对录音数据进行回声消除需要等量的播放数据输入作为建立回声模型的参考数据。其中,回声消除器的初始化需要两个参数一次处理的数据量(即帧长)和估计的录音中回声相对于录音开头的偏移量,即回声相对于录音的延迟的最大值(即尾长)。本发明实施例所作的优化主要是针对回声消除器的参数所作出的,其优化方法,如图1所示,具体包括步骤Si、通过录音线程获取录音数据,其中录音线程先于放音线程启动。该步骤中,录音线程先于放音线程启动的时间应尽量控制在一个比较短的时间内,而不是两者之间的时间差越大越好;较佳的,可以将录音线程先于放音线程启动的时间控制在一个录音延迟时长内;而通常,只要录音线程开始工作了就可以去启动放音线程了。该步骤中,所谓录音线程主要是指从通信终端的录音接口获取录音数据的线程;所谓放音线程主要是指向通信终端的放音接口提供放音数据的线程;其中该录音接口和放音接口大多由该通信终端的声卡提供。与本发明实施例不同的,如果先启动放音线程,那么放音一开始,有数据就会给回声消除器,而这个时候如果录音线程还没开始收集录音数据,那么开头的那一段放音数据就不会在录音数据里得到体现,录音数据里一开始体现的就是较为靠后的放音数据;因为回声消除器只能消除它“看到过”的回声,这样的话回声消除器要消除的回声要在后面的放音数据里才出现,那么就一定消不掉。而本发明实施例所采用的“录音线程先于放音线程启动”,那么放音线程里给系统播放的所有数据一定会被完整地在录音线程得到的录音数据里体现,从而使得回声消除处理的效果更彻底。步骤S2、获取放音采样率及其对应的放音缓冲区长度,根据放音采样率及其对应的放音缓冲区长度计算放音延迟时长。该步骤中,通信终端的每个放音采样率(注采样率即单位时间内的采样数)都对应有一个最小的放音缓冲区长度,即每种采样率下的放音缓冲区不能设置的比这个长度短,其中本发明实施例所述的长度是指数据占用的物理空间,一般以采样数来进行表征,后续不再赘述。其中,获取放音采样率及其对应的放音缓冲区长度可以通过调用一个系统的API接口或与通信终端的中央处理器进行交互来具体实现,为本领域技术人员所能轻易实现的技术,在此不做赘述。在该步骤S2之前,需要通过放音线程或者其它方式设定好放音采样率及其对应的放音缓冲区长度。在放音过程中,基于近端的通信终端与远端通信终端在软硬件上的差异,每次给放音API播放的数据会先根据近端通信终端的软硬件属性对放音帧进行重采样,然后再以重采样的数据去填充放音缓冲区,只有当放音缓冲区被填满以后才会真正拿到声卡去播放。如果放音帧比放音缓冲区长,那么放音不会有延迟。如果放音帧比放音缓冲区短,那么就要等若干个放音帧来填充放音缓冲区,直到填满以后才开始播放第一帧数据。在这段时间内产生的录音数据也会被送到回声消除器里去处理,因此这段时间内造成的数据延迟为(以时长为单位)
放音延迟=-1] *放音帧的时长+声卡延迟I重米样到放首米样率后的放首帧的长度 」(公式一)上述公式一中,〖1表示向上取整,即取不小于该数的最小整数,
示“放音巾贞缓冲长度”除以“重采样到放音巾贞采
重米样到放首米样率后的放首帧的长度
样率后的放音帧的长度”,“*”为乘法符号。而重采样到放音采样率的放音帧的长度=放音帧原始长度/放音帧原始采样率*放音采样率(注“/”为除法符号,“*”为乘法符号)。其中,放音帧原始的长度及采样率分别是指远端通信终端编码发送的语音帧的帧长和采样率。其中声卡延迟是指声卡得到放音数据以后到它开始播放这段数据的固有延迟,该延迟一般不超过“最小放音缓冲区播放时长”。通常,移动设备支持的放音采样率有多种,本发明实施例中,为使通信终端及时地向用户放音,需将放音延迟控制在比较小的范围内。为此,参照上述公式一,本发明实施例
优选择取的放音采样率为使丨二-1 *放音帧的时长
、重米样到放首米样率后的放首帧的长度 」
的值最小的放音采样率,并将其对应的放音缓冲区长度设置为重采样到放音采样率下的放音帧长度的不小于其要求的最小放音缓冲区长度的最小整数倍(即满足两个条件,1、将放音缓冲区的长度设置为对应放音采样率下放音帧长度的整数倍;2、满足条件1所设置的放音缓冲区的长度的值应大于或等于该放音采样率所要求的下限值,若大于该下限值,则设置后的值应与该下限值之差越小越好)。其中,当步骤S3、当放音数据传送至回声消除器以启动回声消除器后,分离出回声消除器启动后所得到的录音数据中排列在前的且对应一个放音延迟时长的录音数据。本发明实施例中,通常在放音线程提交第一个放音帧数据的同时开启回声消除器,因此只有在回声消除器启动后才有放音数据的播放,从而使得回声消除器启动前的录音数据中是不含有回声信息的,即该步骤中分离出的录音数据是不包含有回声信息的,因此不参与回声消除器的回声处理,可直接转交给编码器进行编码传输处理以传送至远端的通信终端,以确保数据传输的完整性。步骤S4、将回声消除器启动后得到的录音数据中排列在一个放音延迟时长之后的录音数据发送给回声消除器,供其进行回声消除处理。本发明实施例中,我们假设声音一放出来立即被录到录音文件里,忽略其在媒介中的传播时间,因为实际中最突出的回声是直接回声,即声音从播放设备出来,通过空气或手机本身直接传输到录音设备,而不是经过反射回到录音设备,一般直接回声从放音设备出来再回到录音设备的时间是很短的,一般不到1毫秒,可以忽略。在该步骤S4中,由于放音延迟的时间是大致固定的(计算公式为式一),作为一种优化方式,我们可以把回声消除器处理的录音数据从头部(即按时间顺序排列在前的)先丢掉与放音延迟对应时长的数据,那么回声消除器所处理的录音和放音数据之间的延迟就只剩下录音引起的延迟。由于这部分延迟的长度是不确定的,我们就把这部分延迟可能的最大值再加上一个估计的其他因素(比如移动设备处理数据的时间)引起的延迟作为“尾长”。通过上述步骤,使得回声消除器处理的录音数据相对于放音数据的延迟减小了放音延迟这么长,减少了回声消除器处理回声的尾长;尾长越小,则同样长度的数据回声消除器的处理时间越短,回声消除算法的收敛也越快,即开始消除回声的时间越早;从而对回声消除的效果起到了很好的优化作用。实施例二本实施例是在上述实施例一的基础上对播放数据的声音对应的回声在录音数据中出现的位置相对于录音的开头的偏移量做进一步的优化。具体的,由于回声偏移量的大小主要是由放音延迟和录音延迟两部分组成,本实施例则是在实施例一的基础上,对录音延迟做进一步的优化处理。录音也和放音一样,在每种录音采样率下录音缓冲区长度都有一个下限,录音缓冲区只能设置得比这个长度长或和这个下限值一样。当录音数据填满第一个缓冲区以后, 我们才能从录音API中获得第一个录音块,由于回声消除的原因,我们每次都要从录音数据里取得和放音帧“等长”(这里的“等长”是指播放时长相等)的录音帧来进行处理。在放音线程得到第一个放音帧、开始回声消除这个时刻之后,我们从录音API里得到的录音数据里包含有多少在回声消除开始之前就录到的正常数据(即录音延迟)则跟录音帧长度以及录音缓冲区的长度都有关。如果录音缓冲区的长度不是录音帧长度的整数倍,录音数据里录到的回声消除前的声音数据的时长最大可能是一个录音帧时长加上填满一个录音缓冲区需要的数据对应的播放时长之和。举例说明比如录音缓冲区长度是录音帧长度的 1. 5倍,可能上一次取录音帧的时候录音缓冲区里只剩下0. 99倍录音帧长度的数据,从而导致不能取得录音帧,而这时又刚好开始下一个录音缓冲区的填充,从而下一次取得录音帧又得等这个缓冲区完全填满,因此到缓冲区填满以后,这时残留的录音数据就是0. 99倍录音帧长度加上缓冲区的长度,就是2. 49倍录音帧长度,接近2. 5倍了。而如果录音缓冲区长度是录音帧长度的整数倍,那么录到的回声消除前的声音的最大时长就是填满一个录音缓冲区需要的数据对应的等待/录制时长,如下述公式二。
^该录音采样率所对应的录音帧长度的不小于其要求的录音缓冲E下限值的最小整数倍
求日她迟<-_丄U^+-
录首米样率(公式二)因此本实施例优选将通信终端的录音缓冲区长度设置(该设置的具体实现可以通过一个系统的API接口调用就可以实现了,上述实施例一中对通信终端放音采样率及其对应的放音缓冲区的参数的择取及设置也与此类似,为本领域技术人员所熟知的技艺,在此不做详述)为对应录音采样率下的录音帧长度的不小于其要求的录音缓冲区下限值的最小整数倍(即满足两个条件,1、将录音缓冲区的长度设置为对应录音采样率下录音帧长度的整数倍;2、满足条件1所设置的录音缓冲区长度的值大于或等于该录音采样率所要求的下限值,若大于该下限值,则设置后的值与该下限值之差越小越好)。根据上述公式二,录音延迟跟录音采样率和录音缓冲区的大小(及能容纳该采样率下录音帧的个数)息息相关。藉此,当通信终端可设置的录音采样率为两个或两个以上时,择取的录音采样率则为使“对应的录音采样率所对应的录音帧长度的不小于其要求的录音缓冲区下限值的最小整数倍”与该对应的“录音采样率”之商的值最小的录音采样率。 依此,则尽可能地缩短了录音延迟,使得回声消除器处理的尾长进一步缩短,尾长越缩短, 则同样长度的数据回声消除器的处理时间越短,回声消除算法的收敛也越快,即开始消除回声的时间越早;从而对回声消除的效果起到了进一步的优化作用。进一步的当“最小录音缓冲区长度”与对应的“录音采样率”之商存在两个或两个以上的最小值时,优选择取与放音帧原始采样率最接近的录音采样率,以减少回声消除过程中重采样所导致的失真。值得说明的是,在本发明实施例中,在回声消除器进行回声消除时,为达到良好的回声消除效果,播放数据的产生速度要和录音数据的产生速度达到动态平衡,为此如果录放音数据的采样率不同,那么需要在回声消除器进行回声消除处理前,把他们统一成同一采样率下的数据以后再进行回声消除。因此,本发明可在执行上述实施例一中步骤S4 “将回声消除器启动后得到的录音数据中排列在一个放音延迟时长之后的录音数据发送给回声消除器,供其进行回声消除处理”的过程中,首先以回声消除器的采样率对回声消除器启动后得到的录音数据中排列在一个放音延迟时长之后的录音数据进行重新采样,然后再将重新采样后的录音数据发送给回声消除器。而后,回声消除器处理之后的数据再按编码采样率重采样,然后编码、发送。此外,对于实时的语音处理而言,由于网络的不稳定性,数据包可能在网络上丢失或者由于过大的延迟而被其他的处理环节丢弃,那么来自远端的放音帧可能会少于近端录音产生的数据量,对于这种情况我们必须补充播放数据,以保证放音数据的量和录音数据量达到平衡。可选的,本发明实施例可以对放音线程数据产生的速度进行控制,当放音数据未均勻缓存至放音数据队列中时,通过在该放音数据队列中填充静音数据或是通过wsola算法来模拟连续语音数据,以控制拿给声卡播放的数据量和从声卡获得的录音数据量总是保持一致。综上,在本发明实施例中,通信终端可以结合自身的属性和回声消除效果而灵活设置放音采样率、放音缓冲区长度、录音采样率以及录音缓冲区长度等参数,以优化通话的实时性、确保数据传输的完整性并提高语音数据的信噪比。实施例三与上述方法实施例所对应的,本实施例提供一种消除回声的优化系统及其装置, 以供通信终端结合自身的属性和回声消除效果而灵活设置放音采样率、放音缓冲区长度、 录音采样率以及录音缓冲区长度等参数,以优化通话的实时性、确保数据传输的完整性并提高语音数据的信噪比。如图2所示,该系统包括用于获取放音数据和录音数据以进行AEC 回声消除的回声消除器1以及与该回声消除器1建立通信连接的优化装置2,其中,该优化装置用于执行下述的操作通过录音线程获取录音数据,其中该录音线程先于放音线程启动;获取放音采样率及其对应的放音缓冲区长度,根据该放音采样率及其对应的放音缓冲区长度计算放音延迟时长;当放音数据传送至回声消除器以启动回声消除器后,分离出回声消除器启动后所得到的录音数据中排列在前的且对应一个放音延迟时长的录音数据;将回声消除器启动后得到的录音数据中排列在一个放音延迟时长之后的录音数据发送给回声消除器,供其进行回声消除处理。可选的,上述优化装置2的内部功能模块的架构如图3所示,包括录音数据获取模块21,用于通过录音线程获取录音数据,其中录音线程先于放音线程启动;放音延迟时长计算模块23,用于获取放音采样率及其对应的放音缓冲区长度,根据放音采样率及其对应的放音缓冲区长度计算放音延迟时长(计算公式可参照上述实施例一种的公式一);录音数据发送模块25,用于当放音数据传送至回声消除器以启动回声消除器后, 分离出回声消除器启动后录音数据获取模块21所得到的录音数据中排列在前的且对应一个放音延迟时长计算模块23所计算的放音延迟时长的录音数据;将回声消除器启动后得到的录音数据中排列在一个放音延迟时长之后的录音数据发送给回声消除器,供其进行回声消除处理。较佳的,如图4所示,上述放音延迟时长计算模块23还包括放音线程管理单元231,用于对放音线程数据产生的速度进行控制,当放音数据未均勻缓存至放音数据队列中,通过在该放音数据队列中填充静音数据或是通过wsola算法来模拟连续语音数据,控制拿给声卡播放的数据量和从声卡获得的录音数据量总是保持一致。进一步的,该放音线程管理单元231还用于获取通信终端的放音采样率及其对应的最小放音缓冲区长度,并将放音缓冲区的时长设置为重采样到放音采样率后的放音帧长度的不小于该最小放音缓冲区长度的最小整数倍;以及当通信终端可设置的放音采样率为两个或两个以上时,择取的放音采样率为使当L·』,,7:!^··」-l]*放音帧的时长存在两个或两个 、重米样到放首米样率后的放首帧的长度 」
以上的最小值时,从中择取与放音帧原始采样率最接近的放音采样率。较佳的,如图4所示,上述录音数据获取模块21还可以进一步包括用于执行下述操作的录音线程管理单元211 获取通信终端的录音采样率及其对应的最小录音缓冲区长度,并将录音缓冲区的长度设置为对应录音采样率下的放录音帧长度的不小于该最小录音缓冲区长度的最小整数倍;以及当通信终端可设置的录音采样率为两个或两个以上时,择取的录音采样率为使 “对应的录音采样率所对应的录音帧长度的不小于其要求的录音缓冲区下限值的最小整数倍”与对应的“录音采样率”之商最小的录音采样率;以及当“对应的录音采样率所对应的录音帧长度的不小于其要求的录音缓冲区下限值的最小整数倍”与对应的“录音采样率”之商存在两个或两个以上的最小值时,从中择取与该通信终端的编码采样率最接近的录音采样率。本实施例中,可选的,上述录音数据发送模块2在执行将回声消除器启动后得到的录音数据中排列在一个放音延迟时长之后的录音数据发送给回声消除器的操作具体为 以回声消除器的采样率对回声消除器启动后得到的录音数据中排列在一个放音延迟时长之后的录音数据及回声消除器启动后的录音数据进行重新采样;将重新采样后的录音数据发送给回声消除器。进一步的,该录音数据发送模块2还用于将分离出的回声消除器启动后所得到的录音数据中排列在前的且对应一个放音延迟时长的录音数据及回声消除器启动前的录音数据直接发送给编码器,供其按编码采样率重采样及编码发送给对端的通信终端。其中该编码器还用于对回声消除后的录音数据以编码采样率进行重采样及编码发送给对端的通信终端。本实施例公开的消除回声消除的优化系统及装置至少还具有以下优点录音线程先于放音线程启动,放音数据先于录音数据到达回声消除器,确保了回声消除效果的完整性。且在回声消除器启动后,分离出回声消除器启动后所得到的录音数据中排列在前的且对应一个所述放音延迟时长的录音数据,只对回声消除器启动后得到的录音数据中排列在一个放音延迟时长之后的录音数据进行回声消除处理,使得回声消除器处理的录音数据相对于放音数据的延迟减小了放音延迟这么长,减少了回声消除器处理回声的尾长;尾长越小,则同样长度的数据回声消除器的处理时间越短,回声消除算法的收敛也越快,即开始消除回声的时间越早;从而对回声消除的效果起到了很好的优化作用。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。
权利要求
1.一种消除回声的优化方法,其特征在于,包括以下步骤通过录音线程获取录音数据,其中所述录音线程先于放音线程启动; 获取放音采样率及其对应的放音缓冲区长度,根据所述放音采样率及其对应的放音缓冲区长度计算放音延迟时长;当放音数据传送至回声消除器以启动所述回声消除器后,分离出所述回声消除器启动后所得到的录音数据中排列在前的且对应一个所述放音延迟时长的录音数据;将所述回声消除器启动后得到的录音数据中排列在一个放音延迟时长之后的录音数据发送给所述回声消除器,供其进行回声消除处理。
2.根据权利要求1所述的消除回声的优化方法,其特征在于,启动放音线程时还包括 对放音线程数据产生的速度进行控制,当放音数据未均勻缓存至放音数据队列中时,通过在该放音数据队列中填充静音数据或是通过wsola算法来模拟连续语音数据,以控制拿给声卡播放的数据量和从声卡获得的录音数据量总是保持一致。
3.根据权利要求2所述的消除回声的优化方法,其特征在于,所述启动放音线程之前还包括获取通信终端的放音采样率及其对应的最小放音缓冲区长度,并将所述放音缓冲区的时长设置为重采样到放音采样率后的放音帧长度的不小于该最小放音缓冲区长度的最小整数倍。
4.根据权利要求3所述的消除回声的优化方法,其特征在于,当通信终端可设置的放音采样率为两个或两个以上时,择取的放音采样率为使L^M J^S7二,SSiMMJ^I —1 *放音帧的时长的值最小的放音采样率。 、重米样到放首米样率后的放首帧的长度 」
5.根据权利要求4所述的消除回声的优化方法,其特征在于,当- O *放音巾贞的时长存在两个或两个以上的最小 、重米样到放首米样率后的放首帧的长度」值时,从中择取与所述放音帧原始采样率最接近的放音采样率。
6.根据权利要求1至5任一所述的消除回声的优化方法,其特征在于,所述启动录音线程之前还包括获取通信终端的录音采样率及其对应的最小录音缓冲区长度,并将所述录音缓冲区的长度设置为对应录音采样率下的录音帧长度的不小于该最小录音缓冲区长度的最小整数倍。
7.根据权利要求6所述的消除回声的优化方法,其特征在于,当通信终端可设置的录音采样率为两个或两个以上时,择取的录音采样率为使“对应的录音采样率所对应的录音帧长度的不小于其要求的录音缓冲区下限值的最小整数倍”与对应的“录音采样率”之商最小的录音采样率。
8.根据权利要求7所述的消除回声的优化方法,其特征在于,当“对应的录音采样率所对应的录音帧长度的不小于其要求的录音缓冲区下限值的最小整数倍”与对应的“录音采样率”之商存在两个或两个以上的最小值时,从中择取与该通信终端的编码采样率最接近的录音采样率。
9.根据权利要求8所述的消除回声的优化方法,其特征在于,所述将所述回声消除器启动后得到的录音数据中排列在一个放音延迟时长之后的录音数据发送给所述回声消除器,供其进行回声消除处理具体为以回声消除器的采样率对所述回声消除器启动后得到的录音数据中排列在一个放音延迟时长之后的录音数据进行重新采样;将重新采样后的录音数据发送给回声消除器,供其进行回声消除处理。
10.根据权利要求8所述的消除回声的优化方法,其特征在于,还包括将分离出所述回声消除器启动后所得到的录音数据中排列在前的且对应一个所述放音延迟时长的录音数据及所述回声消除器启动前的录音数据直接发送给编码器,供其按编码采样率重采样之后编码发送给对端的通信终端,其中该编码器还用于对回声消除后的录音数据以编码采样率进行重采样及编码发送。
11.一种消除回声的优化装置,其特征在于,包括录音数据获取模块,用于通过录音线程获取录音数据,其中所述录音线程先于放音线程启动;放音延迟时长计算模块,用于获取放音采样率及其对应的放音缓冲区长度,根据所述放音采样率及其对应的放音缓冲区长度计算放音延迟时长;录音数据发送模块,用于当放音数据传送至回声消除器以启动所述回声消除器后,分离出所述回声消除器启动后所述录音数据获取模块所得到的录音数据中排列在前的且对应一个所述放音延迟时长计算模块所计算的放音延迟时长的录音数据;将所述回声消除器启动后得到的录音数据中排列在一个放音延迟时长之后的录音数据发送给所述回声消除器,供其进行回声消除处理。
12.根据权利要求11所述的消除回声的优化装置,其特征在于,所述放音延迟时长计算模块还包括放音线程管理单元,用于对放音线程数据产生的速度进行控制,当放音数据未均勻缓存至放音数据队列中时,通过在该放音数据队列中填充静音数据或是通过wsola算法来模拟连续语音数据,以控制拿给声卡播放的数据量和从声卡获得的录音数据量总是保持一致。
13.根据权利要求12所述的消除回声的优化方法,其特征在于,所述放音线程管理单元还用于获取通信终端的放音采样率及其对应的最小放音缓冲区长度,并将所述放音缓冲区的长度设置为重采样到放音采样率后的放音帧长度的不小于该最小放音缓冲区长度的最小整数倍;以及当通信终端可设置的放音采样率为两个或两个以上时,择取的放音采样率为使丨J^S 二,^^立^/^曲]-1 *放音巾贞的时长的值最小的放音采样率;以 、重米样到放首米样率后的放首帧的长度 」及当- 1I *放音_时长存在两个或两个以上的最小值时,从中择取与所述放音帧原始采样率最接近的放音采样率。
14.根据权利要求11至13所述的消除回声的优化装置,其特征在于,所述录音数据获取模块还包括用于执行下述操作的录音线程管理单元获取通信终端的录音采样率及其对应的最小录音缓冲区长度,并将所述录音缓冲区的长度设置为对应录音采样率下的放录音帧长度的不小于该最小录音缓冲区长度的最小整数倍;以及当通信终端可设置的录音采样率为两个或两个以上时,择取的录音采样率为使“对应的录音采样率所对应的录音帧长度的不小于其要求的录音缓冲区下限值的最小整数倍”与对应的“录音采样率”之商最小的录音采样率;以及当“对应的录音采样率所对应的录音帧长度的不小于其要求的录音缓冲区下限值的最小整数倍”与对应的“录音采样率”之商存在两个或两个以上的最小值时,从中择取与该通信终端的编码采样率最接近的录音采样率。
15.根据权利要求11至13所述的消除回声的优化装置,其特征在于,所述录音数据发送模块在执行将所述回声消除器启动后得到的录音数据中排列在一个放音延迟时长之后的录音数据发送给所述回声消除器的操作具体为以回声消除器的采样率对所述回声消除器启动后得到的录音数据中排列在一个放音延迟时长之后的录音数据及回声消除器启动后的录音数据进行重新采样;将重新采样后的录音数据发送给回声消除器。
16.根据权利要求15所述的消除回声的优化装置,其特征在于,所述录音数据发送模块还用于将分离出所述回声消除器启动后所得到的录音数据中排列在前的且对应一个所述放音延迟时长的录音数据及所述回声消除器启动前的录音数据直接发送给编码器,供其编码发送给对端的通信终端。
17.一种消除回声的优化系统,其特征在于,包括用于获取放音数据和录音数据以进行 AEC回声消除的回声消除器以及与该回声消除器建立通信连接的优化装置,其中,该优化装置用于执行下述的操作通过录音线程获取录音数据,其中所述录音线程先于放音线程启动;获取放音采样率及其对应的放音缓冲区长度,根据所述放音采样率及其对应的放音缓冲区长度计算放音延迟时长;当放音数据传送至回声消除器以启动所述回声消除器后,分离出所述回声消除器启动后所得到的录音数据中排列在前的且对应一个所述放音延迟时长的录音数据;将所述回声消除器启动后得到的录音数据中排列在一个放音延迟时长之后的录音数据发送给所述回声消除器,供其进行回声消除处理。
全文摘要
本发明公开一种消除回声的优化方法、装置及系统,以解决现有的回声消除器消除效果不佳的问题。本发明公开的消除回声的方法包括通过录音线程获取录音数据,其中所述录音线程先于放音线程启动;获取放音采样率及其对应的放音缓冲区长度,根据所述放音采样率及其对应的放音缓冲区长度计算放音延迟时长;当放音数据传送至回声消除器以启动所述回声消除器后,分离出所述回声消除器启动后所得到的录音数据中排列在前的且对应一个所述放音延迟时长的录音数据;将所述回声消除器启动后得到的录音数据中排列在一个放音延迟时长之后的录音数据发送给所述回声消除器,供其进行回声消除处理。
文档编号G10L21/02GK102568494SQ20121008808
公开日2012年7月11日 申请日期2012年3月29日 优先权日2012年2月23日
发明者周平, 晏利平, 李晓鹏, 杨晓东, 潘年华, 王海, 罗光喜, 胡海, 黄国宏 申请人:贵阳朗玛信息技术股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1