一种实现参考信号调整的方法及装置与流程

文档序号:13143470阅读:433来源:国知局
技术领域本发明涉及语音通信技术,尤指一种实现参考信号调整的方法及装置。

背景技术:
在语音通信中,回声是影响通话质量的一个重要因素,回声是指说话者通过通信设备发送给其他人的语音又重新回到自己的听筒里的现象。一般,回声分为电路回声和声学回声。电路回声可以通过硬件设备的合理设计来消除,而声学回声复杂且很难消除。图1是声学回声产生的示意图,如图1所示,远端语音信号从听筒出来以后,经过空气或其他的传播媒介传到近端用户的话筒,再通过话筒录音后又重新传到远端用户的听筒中形成回声。当近端用户的放音音量比较大而录音设备和放音设备距离比较近时回声尤其明显。声学回声受近端用户环境的影响,又可能产生多路回声。所以在语音通信功能上,回声抵消算法是一个非常关键核心技术,回声抵消的效果好坏不仅仅取决于算法本身,应用中音频主信号和参考信号的输入也很关键,音频主信号跟远端语音信号的相对时延要恒定在某个算法能识别的范围内,算法才能起作用,一般来说远端语音信号与音频主信号之间时延差在30ms-150ms为佳。安卓(Android)系统中的音频处理通过Android框架的标准音频类进行处理,处理过程中,使用Android获取音频流(AudioRecord)类来做音频的采集,使用Android播放音频流(AudioTrack)类来做音频的播放。由于Android系统自身的架构,所有Android应用共用Android音频框架中的输出缓冲区(buffer),音频框架考虑了实现不同频率声音混音的功能后,语音信号不再仅以音频输出频率来管理数据输出而替代用音频输出buffer来管理输出,所以音频数据传到音频框架后,数据何时输出就变得非常不确定了,例如通话之前有铃音或按键音时,音频buffer会比较满,应用的音频数据要等待buffer到达一定的阈值后,才能继续输出,因此Android系统中音频数据输出延时大而且间隔不稳定的问题非常突出。图2为现有技术中回音处理的示意图,如图2所示,基于Android框架,通过获取应用音频输出缓冲区的声音信息作为参考信号进行回声处理,虽然获取音频输出缓冲区的声音信息作为参考信号进行回声处理可以实现对回声信号进行处理,但是Android框架中通过获取音频流(AudioRecord)类和播放音频流(AudioTrack)类进行音频的播放,使参考信号相对音频主信号存在较大的延时和抖动,该部分时间偏差将很大程度影响回声抵消算法的效果,造成声学回声。在android智能终端尤其机顶盒等类似终端中对语音通话中会有越来越高的要求,基于易用性的考虑,目前都选用集成麦克(MIC)的一体化摄像头,摄像头设备可以很方便的挂在任意电视机上,而实际说话者却离摄像头距离远,这种场景会有非常明显的回声。

技术实现要素:
为了解决上述技术问题,本发明提供一种实现参考信号调整的的方法及装置,能够对通话过程中的回声进行有效处理,提高通话质量。为了达到本发明目的,本发明提供了一种实现参考信号调整的方法,包括:当检测到音频采集设备输入语音信号时,按照预设时长周期性的同时获取音频采集设备的输入语音信号和底层音频输出设备的输出语音信号;将输入语音信号作为音频主信号,将输出语音信号加上固定延时后作为回声抵消的参考信号;当各预设时长内音频主信号与参考信号之间存在的时间偏差大于调整阈值时,调整参考信号,使音频主信号与参考信号之间存在的时间偏差在调整阈值之内。进一步地,调整参考信号具体包括:当预设时长内音频主信号与参考信号之间存在的时间偏差为正且时间偏差绝对值大于调整阈值时,删除该预设时长内参考信号中最先获取的大于调整阈值部分的参考信号;当预设时长内音频主信号与参考信号之间存在的时间偏差为负且时间偏差绝对值大于调整阈值时,选取该预设时长内参考信号中最先获取的参考信号中时间偏差大小相同的部分,将选取的所述参考信号中时间偏差大小相同的部分到添加到最先获取该预设时长参考信号的位置。进一步地,固定延时为:预先设置的延时;或,在每次检测到音频采集设备输入语音信号时,对预设时长内所述输入语音信号和所述输出语音信号进行对比,确定的该次输出语音信号的延时。进一步地,获取的音频主信号和所述参考信号被分别存放于相应的内存缓冲区中。另一方面,本申请还提供一种实现参考信号调整的装置,包括:获取单元、确定单元及判断调整单元;其中,获取单元,用于当检测到音频采集设备输入语音信号时,按照预设时长周期性的同时获取音频采集设备的输入语音信号和底层音频输出设备的输出语音信号;确定单元,用于将输入语音信号作为音频主信号,将输出语音信号加上固定延时后作为回声抵消的参考信号;判断调整单元,用于当各预设时长内音频主信号与参考信号之间存在的时间偏差大于调整阈值时,调整参考信号,使音频主信号与参考信号之间存在的时间偏差在调整阈值之内。进一步地,判断调整单元具体用于,当预设时长内音频主信号与参考信号之间存在的时间偏差为正且时间偏差绝对值大于调整阈值时,删除该预设时长内参考信号中最先获取的大于调整阈值部分的参考信号;当预设时长内音频主信号与参考信号之间存在的时间偏差为负且时间偏差绝对值大于调整阈值时,选取该预设时长内参考信号中最先获取的参考信号中时间偏差大小相同的部分,将选取的所述参考信号中时间偏差大小相同的部分到添加到最先获取该预设时长参考信号的位置。与现有技术相比,本申请技术方案包括:当检测到音频采集设备输入语音信号时,按照预设时长周期性的同时获取音频采集设备的输入语音信号和底层音频输出设备的输出语音信号;将输入语音信号作为音频主信号,将输出语音信号加上固定延时后作为回声抵消的参考信号;当各预设时长内音频主信号与参考信号之间存在的时间偏差大于调整阈值时,调整参考信号,使时间偏差在调整阈值之内。本发明通过从音频输出设备提取输出语音信号作为回声抵消的参考信号,在预设时长内对出现的时间偏差进行监测,在超过调整阈值时,通过调整参考信号数据同步时钟偏差,避免了由于音频主信号和参考信号的时间偏差产生的回声对通话质量造成影响。附图说明此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:图1是声学回声产生的示意图;图2为现有技术中回音处理的示意图;图3为本发明实现参考信号调整的方法的流程图;图4为本发明回音处理过程中获取参考信号的示意图;图5为本发明实现参考信号调整的装置的结构框图;图6为本发明实现参考信号调整的装置在现有结构中连接的示意图。具体实施方式为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。本发明方法主要针对安卓系统中,由于Android系统框架影响回声抵消算法的效果,造成声学回声的问题。图3为本发明实现参考信号调整的方法的流程图,如图3所示,包括:步骤300、当检测到音频采集设备输入语音信号时,按照预设时长周期性的同时获取音频采集设备的输入语音信号和底层音频输出设备获取输出语音信号;需要说明的是,预设时长是基于音频采样率要求设定的。如果网络出现缓冲卡顿时,在预设时长内,系统可以通过卡顿的消失自动完成调整;如果出现时间偏差而未进行调整,将出现回声,影响通话质量,因此必须进行参考信号的调整,预设时长是本领域技术人员通过分析获得的数值。一般的,预设时长在240~260个采样周期之间,例如,当设置8Khz声音采样率时,每10ms就会产生160byte数据,按照本发明方法预设时长可以取2.5S;如果对每20ms的数据进行一次输入语音信号和输出语音信号的获取,则每20ms理论上会有320byte的声音输入和输出数据产生,此时预设时长可以取5S。这里,同时获取音频采集设备的输入语音信号和音频输出设备的输出语音信号的方法可以包括:设置一个定时器,在音频采集设备开始输入语音信号时,通过定时器同时触发进行预设时长内音频采集设备的输入语音信号和音频输出设备的输出语音信号的获取;这里,定时器是通过设置一个定时器类实现触发,同时获取相应的信号。或,在两个线程内分别设置音频采集设备和音频输出设备的定时器,当音频采集设备开始采集输入语音信号时,同时开启音频采集设备和音频输出设备上设置的定时器,进行预设时长的音频采集设备的输入语音信号和音频输出设备的输出语音信号的获取。步骤301、将输入语音信号作为音频主信号,将输出语音信号加上固定延时后作为回声抵消的参考信号。需要说明的是,与现有技术相比,本发明采用音频输出设备的输出语音信号作为回声抵消的参考信号,使Android框架中通过获取音频流(AudioRecord)类和播放音频流(AudioTrack)类进行音频的采集和播放存在的时间偏差得到处理,避免了音频的采集和播放存在的时间偏差不稳定造成回声的现象发生。图4为本发明回音处理过程中获取参考信号的示意图,如图4所示,在AudioTrack类数据播放的音频送到物理输出单元后采集参考信号,使Android框架中通过获取音频流(AudioRecord)类和播放音频流(AudioTrack)类进行音频的采集和播放存在的时间偏差得到处理。本步骤中,固定延时为:预先设置的延时;或,在每次检测到音频采集设备输入语音信号时,对预设时长内输入语音信号和输出语音信号进行对比,确定的该次输出语音信号的延时。需要说明的是,对输入语音信号和输出语音信号进行对比是指通过检查输入语音信号和输出语音信号的个数确定的,属于本领域技术人员的惯用技术手段。步骤302、当预设时长内音频主信号与参考信号之间存在的时间偏差大于调整阈值时,调整参考信号,使音频主信号与参考信号之间存在的时间偏差在调整阈值之内。本步骤中,调整参考信号具体包括:当预设时长内音频主信号与参考信号之间存在的时间偏差为正且时间偏差绝对值大于调整阈值时,删除该预设时长内参考信号中最先获取的大于调整阈值部分的参考信号;当预设时长内音频主信号与参考信号之间存在的时间偏差为负且时间偏差绝对值大于调整阈值时,选取该预设时长内参考信号中最先获取的参考信号中时间偏差大小相同的部分,将选取的所述参考信号中时间偏差大小相同的部分到添加到最先获取该预设时长参考信号的位置。这里,假设预设时长内按照时间先后获得编号的1、2、3、4、5的参考信号,当预设时长内音频主信号与参考信号之间存在的时间偏差为负且时间偏差绝对值(假设为2)大于调整阈值(假设是1)时,此时为了避免时间偏差造成回声,需要增加2-1=1个音频信号到参考信号中,为了与原有声音信号接近,这里选择参考信号中,最先获得的那个声音信号添加的参考信号,即编号为1的参考信号,将编号为1的参考信号添加到该预设时长参考信号最先获取的位置,及在编号1、2、3、4、5的参考信号之前添加编号为1的参考信号。另外,音频主信号与参考信号之间存在的时间偏差是通过检查缓冲区存放的主音频信号和参考信号的个数来实现的,由于声音是按固定时间频率输出的,所以通过音频主信号与参考信号在缓冲区的数据个数的计算,可以计算两个信号之间数据存在的时间偏差。属于本领域技术人员的公知常识。理论上声音的输入输出的时钟频率是一致,主音频信号和参考信号个数差就是一个固定值,但由于通信装置中,麦克、不同设备(例如机顶盒)时钟之间以及程序的分时处理等各方面的误差都会带来累积的时间偏差,这些时间偏差如果不进行及时处理,将影响通话质量,一般的时间偏差为2~3个缓冲区数据时,将影响通话质量。因此调整阈值为2~3个缓冲区数据,具体设置根据通话质量需求确定,通话质量越高,调整阈值越小。本发明方法中,获取的音频主信号和参考信号被分别存放于相应的内存缓冲区中。存放在内存缓冲区中,可以实现快速存取数据,对主音频信号进行及时的处理。本发明通过音频输出设备的输出语音信号作为回声抵消的参考信号,在预设时长内出现的时间偏差进行调整阈值的判断,在超过调整阈值时,通过调整参考信号,避免了由于参考信号和音频主信号的时间偏差产生的回声对通话质量造成影响。图5为本发明实现参考信号调整的装置的结构框图,如图5所示,包括:获取单元、确定单元及判断调整单元;其中,获取单元、确定单元及判断调整单元;其中,获取单元,用于当检测到音频采集设备输入语音信号时,按照预设时长周期性的同时获取音频采集设备的输入语音信号和音频输出设备的输出语音信号;获取单元具体用于,当检测到音频采集设备输入语音信号时,设置一个定时器,在音频采集设备开始输入语音信号时,通过定时器同时触发进行预设时长内音频采集设备的输入语音信号和音频输出设备的输出语音信号的获取;这里,定时器是通过设置一个定时器类实现触发,同时获取相应的信号。或,在两个线程内分别设置音频采集设备和音频输出设备的定时器,当音频采集设备开始采集输入语音信号时,同时开启音频采集设备和音频输出设备上设置的定时器,进行预设时长的音频采集设备的输入语音信号和音频输出设备的输出语音信号的获取。确定单元,用于将输入语音信号作为音频主信号,将输出语音信号加上固定延时后作为回声抵消的参考信号;判断调整单元,用于当各预设时长内音频主信号与参考信号之间存在的时间偏差大于调整阈值时,调整参考信号,使音频主信号与参考信号之间存在的时间偏差在调整阈值之内。判断调整单元具体用于,当预设时长内音频主信号与参考信号之间存在的时间偏差为正且时间偏差绝对值大于调整阈值时,删除该预设时长内参考信号中最先获取的大于调整阈值部分的参考信号;当预设时长内音频主信号与参考信号之间存在的时间偏差为负且时间偏差绝对值大于调整阈值时,选取该预设时长内参考信号中最先获取的参考信号中时间偏差大小相同的部分,将选取的所述参考信号中时间偏差大小相同的部分到添加到最先获取该预设时长参考信号的位置。图6为本发明实现参考信号调整的装置在现有结构中连接的示意图;如图6所示,对获取音频采集设备的输入语音信号和音频输出设备的输出语音信号后,通过确定单元对参考信号加上固定延时后,确定与音频主信号对应的参考信号;通过判断调整单元判断调整后输出,避免了回声信号对通话质量造成影响。虽然本发明所揭露的实施方式如上,但所述的内容仅为便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式及细节上进行任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1