一种上下行语音驱动处理方法、装置及系统的制作方法

文档序号:7697401阅读:185来源:国知局
专利名称:一种上下行语音驱动处理方法、装置及系统的制作方法
技术领域
本发明涉及通信领域,尤其涉及一种上下行语音驱动处理方法、装置及系统。
背景技术
终端如手机等非常重要的一个功能在于语音传输。在语音传输中保证语音质量非 常重要,而影响语音质量的关键因素之一是回声。目前,终端在进行语音传输时,一般使用声学回声消除(AEC)方法进行回声抑制。 AEC方法的原理是以扬声器信号与由扬声器信号产生的多路径回声的相关性为基础,建 立远端信号的语音模型,利用该语音模型对回声进行估计,并不断修改滤波器的系数,使得 回声估计值更加逼近真实的回声,然后,将回声估计值从话筒的输入信号中去除,从而达到 消除回声的目的。图1为终端TD/GSM模式下的语音处理流程,如图1所示,终端中包括语音的上行 处理以及语音的下行处理;其中,AEC处理模块用于使用AEC方法对上行语音数据进行回声 抑制。AEC处理模块进行回声抑制时,是在上行语音驱动处理模块开始接收上行语音数据帧 的时刻,从同一时刻的下行语音数据帧中进行采样得到下行语音参考数据,计算回声估计 值,从而将上行语音驱动处理模块接收到的上行语音数据中的回声消除。而由于进行下行语音数据的采样时,在下行语音数据帧启动发送的时刻采集最为 准确,因此,AEC处理模块进行下行语音参考数据的采样时,需要确定上行语音数据帧对应 的下行语音数据帧,之后,在下行语音数据帧确定发送的时刻进行下行语音参考数据的采 集,从而,AEC算法要稳定实现回声抑制的条件为上行语音数据帧开始传输的时间与该数 据帧对应的下行语音数据帧开始传输的时间之间时间差稳定,而且需要尽可能的小。如图 Ia所示,即为上下行语音数据帧启动传输的时间之间的时间差稳定时的关系示例图。然而,在实际应用中,现有的上行语音驱动处理模块以及下行语音驱动处理模块 在对上下行语音数据进行接收或发送处理时,很容易出现上下行语音数据帧传输时间差不 稳定的问题。导致该问题的因素包括但不限于网络延时、上下行语音线程不同步等。除上 述因素之外,网络在某个时间段无下行语音数据发送、网络误码等也将导致上下行语音数 据帧传输时间差的不稳定。基于以上描述可知,现有的上下行语音驱动方法无法确保上下行语音数据帧之间 的传输时间差稳定,进而使得终端在使用AEC方法进行上行语音数据的回声抑制时无法达 到稳定的回声抑制效果。

发明内容
有鉴于此,本发明要解决的技术问题是,提供一种上下行语音驱动处理方法、装置 及系统,确保上下行语音数据帧之间的传输时间差稳定,进而使得终端能够使用AEC算法 稳定抑制上行语音数据中的回声。为此,本发明实施例采用如下技术方案
本发明实施例提供一种上下行语音驱动处理方法,包括下行语音驱动处理步骤确定进行下行语音数据发送时,检测是否存在下行有效 数据包,如果不存在,发送空包;上行语音驱动处理步骤接收上行语音数据,判断上行接收队列中各个数据包是 否均已满,如果是,将接收到的上行语音数据添加到接收队列的最后一个数据包中。其中,下行语音驱动处理步骤还包括检测存在下行有效数据包时,发送所述下行有效数据包。上行语音驱动处理步骤还包括判断上行接收队列存在空数据包时,依照接收队列中数据包的顺序,将接收到的 上行语音数据添加到相应的空数据包中。下行语音驱动处理步骤中,所述确定之前,进一步包括接收下行语音数据并缓存,当接收到的下行语音数据达到η帧时,确定开始进行 所述下行语音数据的发送,所述η为大于1的整数。本发明实施例还提供一种上下行语音驱动处理系统,包括下行语音驱动处理装 置以及上行语音驱动处理装置,其中,下行语音驱动处理装置包括检测单元,用于确定进行下行语音数据发送时,检测是否存在下行有效数据包;发送单元,用于当检测单元检测结果为不存在下行有效数据包时,发送空包;上行语音驱动处理装置包括判断单元,用于接收上行语音数据,判断上行接收队列中各个数据包是否均已
俩;存储单元,用于判断单元判断上行接收队列中各个数据包均已满时,将接收到的 上行语音数据添加到接收队列的最后一个数据包中。所述下行语音驱动处理装置中的所述发送单元还用于当检测单元检测结果为存在下行有效数据包时,发送所述下行有效数据包。所述下行语音驱动处理装置还包括接收单元,用于接收下行语音数据并缓存,当接收到的下行语音数据达到η帧时, 确定开始进行所述下行语音数据的发送,η为大于1的整数。所述上行语音驱动处理装置中的所述存储单元还用于判断单元判断上行接收队 列存在空数据包时,依照接收队列中数据包的顺序,将接收到的上行语音数据添加到相应 的空数据包中。本发明实施例还提供一种下行语音驱动处理方法,包括确定进行下行语音数据发送时,检测是否存在下行有效数据包,如果不存在,发送 空包。还包括检测存在下行有效数据包时,发送所述下行有效数据包。所述确定之前还包括接收下行语音数据并缓存,当接收到的下行语音数据达到η帧时,确定开始进行 所述下行语音数据的发送,η为大于1的整数。本发明实施例同时提供一种下行语音驱动处理装置,包括
检测单元,用于确定进行下行语音数据发送时,检测是否存在下行有效数据包;发送单元,用于当检测单元检测结果为不存在下行有效数据包时,发送空包。其中,所述发送单元还用于当检测单元检测结果为存在下行有效数据包时,发送 下行有效数据包。还包括接收单元,用于接收下行语音数据并缓存,当接收到的下行语音数据达到 η帧时,控制检测单元开始进行所述下行语音数据的发送,η为大于1的整数。本发明实施例还同时提供一种上行语音驱动处理方法,包括接收上行语音数据,判断上行接收队列中各个数据包是否均已满,如果是,将接收 到的上行语音数据添加到接收队列的最后一个数据包中。还包括判断上行接收队列存在空数据包时,依照接收队列中数据包的顺序,将接 收到的上行语音数据添加到相应的空数据包中。本发明实施例还提供一种上行语音驱动处理装置,包括判断单元,用于接收上行语音数据,判断上行接收队列中各个数据包是否均已
俩;存储单元,用于判断单元判断上行接收队列中各个数据包均已满时,将接收到的 上行语音数据添加到接收队列的最后一个数据包中。存储单元还用于判断单元判断上行接收队列存在空数据包时,依照接收队列中 数据包的顺序,将接收到的上行语音数据依次添加到相应的空数据包中。对于上述技术方案的技术效果分析如下本发明实施例的上下行语音数据驱动处理方法中,当下行无有效数据包时,发送 空包,使得下行语音驱动处理模块持续稳定的发送下行语音数据;上行接收队列的各个数 据包均已满时,在最后一个数据包中不断更新存储接收到的新上行语音数据,使得AEC处 理模块采集到的下行语音参考数据与上行语音数据相对应;从而确保上下行语音数据帧之 间的传输时间差稳定,进而使得终端能够使用AEC算法稳定抑制上行语音数据中的回声。


图1为现有技术终端上下行语音数据处理示意图;图Ia为上下行语音数据帧启动传输的时间之间的时间差稳定时的关系示例图;图2为本发明实施例下行语音驱动处理方法流程示意图;图2a为本发明实施例下行语音数据帧启动传输的时间发生漂移时的采样时间差 关系示例图;图3为本发明实施例上行语音驱动处理方法流程示意图;图4为本发明实施例上下行语音驱动处理系统结构示意图;图5为本发明实施例一种下行语音驱动处理装置结构示意图;图5a为本发明实施例另一种下行语音驱动处理装置结构示意图;图6为本发明实施例上行语音驱动处理装置结构示意图。
具体实施例方式为了解决现有技术上下行语音数据帧之间的传输时间差不稳定的问题,保证上下行语音数据稳定同步,本发明实施例提供一种上下行语音驱动处理方法及装置,当下行无 有效数据包时,发送空包;上行接收队列的各个数据包均已满时,不断将最后一个数据包中 存储的数据更新为接收到的新上行语音数据;从而,确保上下行语音数据帧之间的传输时 间差稳定,进而使得终端能够使用AEC算法稳定抑制上行语音数据中的回声。图2为本发明实施例下行语音驱动处理方法流程示意图,该方法可以应用于终端 的下行语音驱动处理模块中,进行下行语音数据的驱动处理。如图2所示,包括步骤201 确定进行下行语音数据发送时,检测是否存在下行有效数据包,如果不 存在,执行步骤202 ;否则,执行步骤203。步骤202 发送空包。所述空包也即为内容全部为0的数据包。在视频电话(VP,Video Phone)等业务中,可能存在通话对方不说话的情况,这时, 如果使用现有技术的下行语音数据驱动方法,由于无下行有效数据包,则将不进行下行语 音数据包的发送。从而导致进行回声抑制时,无法在采样的时间点采集到稳定时间差的下 行语音参考数据的问题。本步骤中,通过发送空包,使得一直存在下行语音数据,从而保证 了在采样的时间点,能够采集到稳定时间差的下行语音数据包,进而使得AEC处理模块进 行回声抑制时达到良好的回声抑制效果。步骤203 发送相应的下行有效数据包。本步骤中所述相应的是指发送队列中当前需要发送的下行有效数据包。当步骤 201中判断存在下行有效数据包时,执行本步骤,本步骤可参考现有技术中数据包的发送方 法完成,这里不赘述。步骤202和步骤203中将数据包发送给终端的模拟输出设备,例如听筒、扬声器等 模拟输出设备。图2所示本发明实施例下行语音驱动处理方法中,如果检测不存在下行有效数据 包,则发送空包,从而保证下行语音驱动处理模块持续发送下行语音数据,从而,AEC处理模 块能够从下行语音驱动处理模块中采样到稳定时间差的下行语音参考数据。进一步的,在实际应用中,还可能出现短暂没有数据发送的情况。在现有技术中, 当有下行语音数据时,即将下行语音数据发送给模拟输出设备;没有下行语音数据时,不进 行任何操作;这样,就会出现下行语音驱动处理模块中未接收到下行语音数据,或者,接收 到下行语音数据的时间发生漂移的问题,从而导致AEC模块在固定的采样时间点无法采集 到下行语音参考数据,导致采样时间点的漂移。如图2a所示,下行语音驱动处理模块接收 到前一帧下行语音数据后的第22ms才接收到第2帧下行语音数据帧,从而导致第2帧下行 语音数据帧发送到模拟输出设备的时间发生了 2ms的漂移,从而采集下行语音参考数据的 采集点也发生了 2ms的漂移,使得采集到的下行语音参考数据之间的时间差不稳定。为了 解决上述下行语音数据帧发送时间的漂移问题,在步骤201中确定进行下行语音数据发送 之前,还可以进一步包括如下步骤步骤201’ 接收下行语音数据,判断接收到的下行语音数据是否达到η帧,如果达 到,确定开始执行所述下行语音数据的发送步骤,否则,继续接收下行语音数据,直到接收 到η帧下行语音数据后,开始执行所述下行语音数据的发送步骤。其中,所述η为大于1的 整数。例如,可以为3帧。通过对于接收到的下行语音数据的缓冲处理,可以有效解决接收到的下行语音数据存在时间漂移的问题,从而进一步使得下行语音数据发送均勻,保证终端在采样的时间 点采集到稳定时间差的下行语音数据包。例如,假设当前已经缓存了 3帧下行语音数据,而22ms后才接收到下一帧下行语音数 据。此时,对于下行语音数据来说,已经有3帧数据需要发送,而每一帧发送的时间都为 20ms ο第一个20ms时间内,发送第一帧下行语音数据。第二个20ms时间内,发送第二帧下行语音数据。当第二帧下行语音数据发送后 2ms,接收到了新一帧的下行语音数据,此数据会填满刚刚被发送的那一帧下行语音数据所 对应的缓存空间,但会受到“收满3帧下行语音数据才启动发送”的限制而暂存在缓存之 中。下行语音驱动处理模块正常发送第二帧下行语音数据,做到第二帧下行语音数据的发 送时间与接收到的下行语音数据的时间无关。从上面的分析中可以看出,执行步骤201’后,发送到下行语音驱动处理模块的下 行语音数据的时间不会对下行语音数据的发送产生影响。这样,即使下一次在20ms多一点 时间,才有下行语音数据发送到下行语音驱动处理模块,也能保证下行语音驱动处理模块 对于下行语音数据的发送持续进行,不出现中断。图3为本发明实施例上行语音数据驱动处理方法流程示意图,如图3所示,包括步骤301 接收上行语音数据,判断上行接收队列中各数据包是否均已满,如果 是,执行步骤302 ;否则,执行步骤303。其中,上行接收队列中的数据包用于存储接收到的上行语音数据。步骤302 将接收到的上行语音数据添加到接收队列的最后一个数据包中。其中,一般预先设置数据包所能存储数据的数据量,相应的,接收到的上行语音数 据发送给上行语音数据驱动处理模块时,将发送相应数据量的上行语音数据。如果步骤301 中判断上行接收队列中各个数据包中均已存储满数据,这时,将接收到的数据添加到接收 队列的最后一个数据包中,从而保证最后一个数据包中始终存储有最新的上行语音数据。步骤303 依照接收队列中数据包的顺序,将接收到的上行语音数据添加到相应 的空数据包中。其中,如果步骤301中判断得出接收队列未满,则将依次将上行语音数据添加到 未存储上行语音数据的数据包中。图3所示的上行语音数据驱动处理方法中,如果上行接收队列中的数据包均已 满,则将新接收到的上行语音数据不断添加到接收队列的最后一个数据包中,也即使得在 接收队列中数据包均已满的情况下,接收队列的最后一个数据包中始终存储最新的上行语 音数据,从而解决了现有技术中上行语音驱动处理模块在上行接收队列中数据包已满的情 况下,不接收新的上行语音数据导致的上下行语音参考不准确的问题。通过图2和图3所示的上下行语音数据驱动处理方法,当下行无有效数据包时, 发送空包,使得下行语音驱动处理模块持续稳定的发送下行语音数据;上行接收队列的各 个数据包均已满时,在最后一个数据包中不断更新存储接收到的新上行语音数据,使得AEC 处理模块采集到的下行语音参考数据与上行语音数据相互对应,从而确保上下行语音数据 帧之间的传输时间差稳定,进而使得终端能够使用AEC算法稳定抑制上行语音数据中的回 声。
图4为本发明实施例一种上下行语音驱动处理系统,可以设置于终端中。包括下 行语音驱动处理装置410和上行语音驱动处理装置420 ;所述下行语音驱动处理装置410 可以设置于终端的下行语音驱动处理模块中;所述上行语音驱动处理装置420可以设置于 终端的上行语音驱动处理模块中。下行语音驱动处理装置410,用于确定进行下行语音数据发送时,检测是否存在下 行有效数据包,如果不存在,发送空包。上行语音驱动处理装置420,用于接收上行语音数据,判断上行接收队列中各个数 据包是否均已满,如果是,将接收到的上行语音数据添加到接收队列的最后一个数据包中。进一步地,所述下行语音驱动处理装置410还可以用于检测存在下行有效数据 包时,发送所述下行有效数据包。进一步地,所述下行语音驱动处理装置410还可以用于确定之前,接收下行语音 数据并缓存,当接收到的下行语音数据达到η帧时,确定开始进行所述下行语音数据的发 送,η为大于1的整数。另外,所述上行语音驱动处理装置420还可以用于判断上行接收队列存在空数 据包时,依照接收队列中数据包的顺序,将接收到的上行语音数据添加到相应的空数据包 中。一般的,上行语音驱动处理装置420还用于将上行接收队列中的数据包依次发送 给AEC处理模块进行回声抑制,这里不再赘述。所述下行语音驱动处理装置410可以通过图5所示的结构实现,包括检测单元510,确定进行下行语音数据发送时,检测是否存在下行有效数据包。发送单元520,用于当检测单元510检测结果为不存在下行有效数据包时,发送空 包。进一步地,所述发送单元520还用于当检测单元检测结果为存在下行有效数据 包时,发送下行有效数据包。优选地,如图5a所示,该装置还可以进一步包括接收单元530,用于接收下行语 音数据并缓存,当接收到的下行语音数据达到η帧时,控制检测单元510开始进行所述下行 语音数据的发送,所述η为大于1的整数。所述上行语音驱动处理装置420可以通过图6所示的结构实现,包括判断单元610,接收上行语音数据,判断上行接收队列中各个数据包是否均已满。存储单元620,用于判断单元610判断上行接收队列中各个数据包均已满时,将接 收到的上行语音数据添加到接收队列的最后一个数据包中。进一步地,存储单元620还可以用于判断单元610判断上行接收队列存在空数据 包时,依照接收队列中数据包的顺序,将接收到的上行语音数据依次添加到相应的空数据 包中。一般的,下行语音驱动处理装置中还包括发送单元,用于将上行接收队列中的数 据包发送到AEC处理模块中进行回声抑制处理,这里不再赘述。图4 图6所示的上下行语音数据驱动处理系统及装置,当下行无有效数据包时, 发送空包,使得下行语音驱动处理模块持续稳定的发送下行语音数据;上行接收队列的各 个数据包均已满时,在最后一个数据包中不断更新存储接收到的新上行语音数据,使得AEC处理模块采集到的下行语音参考数据与上行语音数据相互对应,从而确保上下行语音数据 帧之间的传输时间差稳定,进而使得终端能够使用AEC算法稳定抑制上行语音数据中的回声。本领域普通技术人员可以理解,实现上述实施例上下行语音驱动处理方法的过程 可以通过程序指令相关的硬件来完成,所述的程序可以存储于可读取存储介质中,该程序 在执行时执行上述方法中的对应步骤。所述的存储介质可以如R0M/RAM、磁碟、光盘等。以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人 员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应 视为本发明的保护范围。
权利要求
一种上下行语音驱动处理方法,其特征在于,包括下行语音驱动处理步骤确定进行下行语音数据发送时,检测是否存在下行有效数据包,如果不存在,发送空包;上行语音驱动处理步骤接收上行语音数据,判断上行接收队列中各个数据包是否均已满,如果是,将接收到的上行语音数据添加到接收队列的最后一个数据包中。
2.根据权利要求1所述的方法,其特征在于,下行语音驱动处理步骤还包括 检测存在下行有效数据包时,发送所述下行有效数据包。
3.根据权利要求1或2所述的方法,其特征在于,上行语音驱动处理步骤还包括判断上行接收队列存在空数据包时,依照接收队列中数据包的顺序,将接收到的上行 语音数据添加到相应的空数据包中。
4.根据权利要求1或2所述的方法,其特征在于,下行语音驱动处理步骤中,所述确定 之前,进一步包括接收下行语音数据并缓存,当接收到的下行语音数据达到η帧时,确定开始进行所述 下行语音数据的发送,所述η为大于1的整数。
5.一种上下行语音驱动处理系统,其特征在于,包括下行语音驱动处理装置以及上 行语音驱动处理装置,其中,下行语音驱动处理装置包括检测单元,用于确定进行下行语音数据发送时,检测是否存在下行有效数据包; 发送单元,用于当检测单元检测结果为不存在下行有效数据包时,发送空包; 上行语音驱动处理装置包括判断单元,用于接收上行语音数据,判断上行接收队列中各个数据包是否均已满; 存储单元,用于判断单元判断上行接收队列中各个数据包均已满时,将接收到的上行 语音数据添加到接收队列的最后一个数据包中。
6.根据权利要求5所述的系统,其特征在于,所述下行语音驱动处理装置中的所述发 送单元还用于当检测单元检测结果为存在下行有效数据包时,发送所述下行有效数据包。
7.根据权利要求5或6所述的系统,其特征在于,所述下行语音驱动处理装置还包括 接收单元,用于接收下行语音数据并缓存,当接收到的下行语音数据达到η帧时,确定开始进行所述下行语音数据的发送,η为大于1的整数。
8.根据权利要求5或6所述的系统,其特征在于,所述上行语音驱动处理装置中的所述 存储单元还用于判断单元判断上行接收队列存在空数据包时,依照接收队列中数据包的 顺序,将接收到的上行语音数据添加到相应的空数据包中。
9.一种下行语音驱动处理方法,其特征在于,包括确定进行下行语音数据发送时,检测是否存在下行有效数据包,如果不存在,发送空包。
10.根据权利要求9所述的方法,其特征在于,还包括 检测存在下行有效数据包时,发送所述下行有效数据包。
11.根据权利要求9或10所述的方法,其特征在于,所述确定之前还包括接收下行语音数据并缓存,当接收到的下行语音数据达到η帧时,确定开始进行所述下行语音数据的发送,η为大于1的整数。
12.—种下行语音驱动处理装置,其特征在于,包括检测单元,用于确定进行下行语音数据发送时,检测是否存在下行有效数据包;发送单元,用于当检测单元检测结果为不存在下行有效数据包时,发送空包。
13.根据权利要求12所述的装置,其特征在于,所述发送单元还用于当检测单元检测 结果为存在下行有效数据包时,发送下行有效数据包。
14.根据权利要求12或13所述的装置,其特征在于,还包括接收单元,用于接收下行语音数据并缓存,当接收到的下行语音数据达到η帧时,控制 检测单元开始进行所述下行语音数据的发送,η为大于1的整数。
15.一种上行语音驱动处理方法,其特征在于,包括接收上行语音数据,判断上行接收队列中各个数据包是否均已满,如果是,将接收到的 上行语音数据添加到接收队列的最后一个数据包中。
16.根据权利要求15所述的方法,其特征在于,还包括判断上行接收队列存在空数据包时,依照接收队列中数据包的顺序,将接收到的上行 语音数据添加到相应的空数据包中。
17.—种上行语音驱动处理装置,其特征在于,包括判断单元,用于接收上行语音数据,判断上行接收队列中各个数据包是否均已满;存储单元,用于判断单元判断上行接收队列中各个数据包均已满时,将接收到的上行 语音数据添加到接收队列的最后一个数据包中。
18.根据权利要求17所述的装置,其特征在于,存储单元还用于判断单元判断上行接 收队列存在空数据包时,依照接收队列中数据包的顺序,将接收到的上行语音数据依次添 加到相应的空数据包中。
全文摘要
本发明公开了一种上下行语音驱动处理方法、装置及系统,所述方法包括下行语音驱动处理步骤确定进行下行语音数据发送时,检测是否存在下行有效数据包,如果不存在,发送空包;上行语音驱动处理步骤接收上行语音数据,判断上行接收队列中各个数据包是否均已满,如果是,将接收到的上行语音数据添加到接收队列的最后一个数据包中。所述方法、装置及系统能够确保上下行语音数据帧启动传输的时间之间的时间差稳定,进而使所终端能够使用AEC算法实现稳定抑制回声的目标。
文档编号H04M9/08GK101958984SQ20091005504
公开日2011年1月26日 申请日期2009年7月13日 优先权日2009年7月13日
发明者陶然, 高兵 申请人:联芯科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1