一种适用于蓝牙语音通话的丢包隐藏方法、装置及蓝牙语音处理芯片与流程

文档序号:12736587阅读:669来源:国知局
一种适用于蓝牙语音通话的丢包隐藏方法、装置及蓝牙语音处理芯片与流程

本发明属于蓝牙通信技术领域,尤其涉及一种适用于蓝牙语音通话的丢包隐藏方法、装置及蓝牙语音处理芯片。



背景技术:

蓝牙语音通讯是一种短距离无线通讯技术,省去了传统电线,语音数据在空中传输,接收端很容易出现错包和丢包的情况,造成语音通话不连贯,极大的影响了蓝牙语音通话质量及通话距离。丢包隐藏技术(PLC)是利用合成的数据包来补偿丢失的数据包,利用人耳的掩蔽效应,进行丢包隐藏,在很大程度上能够改进蓝牙的语音通话效果,使语音通话连贯,且听不出有数据包丢失或出错。

如图1所示,蓝牙耳机的接收端检测到蓝牙语音包丢包时,通过PLC模块对丢包进行隐藏后,将中断的语音波形转换成连续的语音波形,再通过数模转化器(DAC)将其转换为语音播放出来。

目前丢包隐藏方法主要有插入技术(静音、白噪声、包替换),时域修正技术,基于基音检测的波形替代法。其中插入技术是指用一种简单的替代物来填充由于丢包引起的缺口,常用的替代物有静音,噪音或者前一个语音包,这类方法实现简单,但性能很差,很难起到太大的隐藏效果。时域修正技术是指利用缺口波形的前后语音包,利用滤波技术,尽量使得缺口的数据连续,能起来一定的隐藏效果,但效果并不明显,且方法使用的局限性很大。基于基音周期的波形替代技术是一种通过算法来检测语音的基音周期,对于清音,使用简单的重复技术来填补波形缺口,对于浊音,使用离缺口最近的基音周期来填补缺口,这种方法简单有效,能够起到不错的隐藏效果。然而,在对于连续丢包的情况,隐藏效果仍然不佳,并且,在进行波形替代时,缺口前后的数据连续性不好,导致通话质量不佳。



技术实现要素:

本发明实施例提供了一种适用于蓝牙语音通话的丢包隐藏方法、装置及音蓝牙语音处理芯片,旨在解决现有的问题。

在本发明实施例中,提供一种适用于蓝牙语音通话的丢包隐藏方法,所述方法包括:

基因周期检测步骤:采用相关系数法检测蓝牙语音数据包丢包前的基音周期,并得到所述基因周期对应的相关系数Rmax;

波形替代步骤:根据丢失的数据包前一个基音周期中与所述丢失的数据包相对应的波形生成替代波形,并将所述替代波形对所述丢失的数据包的波形进行替代;

自适应滤波步骤:根据所述丢失的数据包形成的波形缺口两边的波形在前一个基音周期中所对应的波形对所述丢失的数据包形成的波形缺口两边的波形进行自适应平滑滤波。

所述自适应滤波步骤具体包括:

分别提取所述丢失的数据包形成的波形缺口的左边的一个数据包的波形LD和右边的一个数据包的波形RD,其中,每个数据包的语音数据包括30个语音采样点;

分别提取所述波形LD和RD所对应的前一个基音周期的波形LDP和RDP;

利用波形LDP和RDP,分别对波形LD和RD进行滤波,得到平滑处理过后的波形LDC和RDC,滤波公式如下:

LDC[i] =( LDP[i] * (i/Rf) + LD[i] * (30-(i/Rf)))/30,

RDC[i] =( RDP[i] * (30-(i/Rf)) + RD[i] * (i/Rf))/30,

其中,i为0-29之间的整数,Rf = Rmax+1。

在本发明实施例中,在所述基音周期检测步骤前,还包括蓝牙语音数据丢包检测步骤,检测接收到的蓝牙语音数据是否丢包。

在本发明实施例中,所述基音周期检测步骤具体包括:

将从所述丢失的数据包开始左边的连续N个语音数据采样点作设置为模板窗,设置长度与所述模板窗相同的滑动窗,其中,N≥120;

将所述滑动窗从所述丢失的数据包左边的第40个点到所述丢失的数据包左边的第120个语音数据采样点滑动,分别计算所述滑动窗与所述模板窗的相关系数R;

比较上述各个点的相关系数,得到最大的相关系数Rmax并将所述相关系数Rmax对应的基音周期作为所述蓝牙语音数据包丢包前的基音周期。

在本发明实施例中,所述波形替代步骤中,

当所述丢失的数据包为一个时,所述替代波形采用所述丢失的数据包前一个基音周期中与所述丢失的数据包相对应的波形;

当所述丢失的数据包为连续的多个时,将前一个基音周期中与所述第一个丢失的数据包相对应的波形作为所述第一个数据包的替代波形,将前一个基音周期中与另外的丢失数据包相对应的波形的每个语音采样点依次衰减1/(15*30),形成所述另外的丢失数据包的替代波形,如果连续丢失的数据包大于16个,超过16个数据包后的替代波形直接衰减为0。

在本发明实施例中,还提供 一种适用于蓝牙语音通话的丢包隐藏装置,所述装置包括:

基因周期检测单元,用于采用相关系数法检测蓝牙语音数据包丢包前的基音周期,并得到所述基因周期对应的相关系数Rmax;

波形替代单元,用于根据丢失的数据包前一个基音周期中与所述丢失的数据包相对应的波形生成替代波形,并将所述替代波形对所述丢失的数据包的波形进行替代;和

自适应滤波单元,用于根据所述丢失的数据包形成的波形缺口两边的波形在前一个基音周期中所对应的波形对所述丢失的数据包形成的波形缺口两边的波形进行自适应平滑滤波。

所述自适应滤波单元采用的滤波公式如下:

LDC[i] =( LDP[i] * (i/Rf) + LD[i] * (30-(i/Rf)))/30,

RDC[i] =( RDP[i] * (30-(i/Rf)) + RD[i] * (i/Rf))/30,

其中, Rf = Rmax+1,i为0-29之间的整数,

LD和RD分别表示所述丢失的数据包形成的波形缺口的左边的一个数据包的波形和右边的一个数据包的波形,LDP和RDP分别表示所述波形LD和所述波形RD所对应的前一个基音周期的波形,LDC和RDC分别表示所述波形LD和所述波形RD滤波后对应的波形。

在本发明实施例中,所述适用于蓝牙语音通话的丢包隐藏装置还包括蓝牙语音数据检测单元,所述蓝牙语音数据检测单元用于检测所述蓝牙语音数据包是否丢包。

在本发明实施例中,所述基因周期检测单元采用下述步骤进行基因周期检测:

将从所述丢失的数据包开始左边的连续N个语音数据采样点作设置为模板窗,设置长度与所述模板窗相同的滑动窗,其中, N≥120;

将所述滑动窗从所述丢失的数据包左边的第40个点到所述丢失的数据包左边的第120个语音数据采样点滑动,分别计算所述滑动窗与所述模板窗的相关系数R;

比较上述各个点的相关系数,得到最大的相关系数Rmax并将所述相关系数Rmax对应的基音周期作为所述蓝牙语音数据包丢包前的基音周期。

在本发明实施例中,所述波形替代单元采用如下波形替代公式进行生成替代波形:

W[j]= WP[j],1≤j≤30,

W[j]= WP[j] *(1-(j-30)/(15*30),30<j≤480,

W[j]=0,j>480,

其中,W表示所述丢失数据包的替代波形,WP表示前一个基音周期中与所述丢失的数据包相对应的波形,j表示波形中的第j个点。。

本发明实施例中,还提供一种蓝牙语音处理芯片,所述蓝牙语音处理芯片包括至少一处理器、存储器及接口,所述至少一处理器、存储器及接口均通过总线连接;

所述存储器存储计算机执行指令;

所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述蓝牙语音处理芯片执行上述的适用于蓝牙语音通话的丢包隐藏方法。

与现有技术相比较,本发明在进行丢包波形替代时,采用了多帧衰减方法,可以有效避免错音的情况,即使是丢包量大,其实际效果也能够使人耳容易接受,在对替代后的波形进行滤波时,采用了自适应窗口滤波技术,能够自适应调节滤波强度,更适应于语音多变的特质,提高替代波形的平滑度,提高通话质量,也避免了固定窗口灵活性不够缺陷,在蓝牙语音通讯整体丢包率小于15%的情况下,能够有效地隐藏丢包错误,提高蓝牙语音通话质量,增加语音通话距离。

附图说明

图1是现有技术的蓝牙通话丢包处理系统的结构图;

图2是本发明实施例一提供的适用于蓝牙语音通话的丢包隐藏方法的实现流程图;

图3是图2中的基音周期检测的实现流程图;

图4是图2中的基音周期检测的波形示意图;

图5是丢失语音数据包的替代波形示意图;

图6是图2中的自适应平滑滤波的实现流程图;

图7是本发明实施例二提供的适用于蓝牙语音通话的丢包隐藏装置的结构示意图;

图8是本发明实施例三提供的蓝牙语音处理芯片的结构示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

以下结合具体实施例对本发明的实现进行详细描述:

实施例一

图2示出了本发明实施例一提供的适用于蓝牙语音通话的丢包隐藏方法的实现流程,所述方法包括步骤S1至步骤S4,下面分别进行详细说明。

步骤S1:蓝牙语音数据丢包检测。

本步骤中,检测接收到的蓝牙语音数据是否丢包检测接收到的蓝牙语音数据是否丢包。手机蓝牙通话时,将语音进行编码并加密,通过RF发射到接收端,接收端的控制器对空中语音数据进行解码并解密,如果接收成功,校验正确,可以得到正确的语音数据,并通过DAC传到接收的人耳,如果接收失败,校验不成功,则将该包标记为错包或者空包,在后续的步骤中进行丢包隐藏处理,补偿新的语音波形,尽可能的隐秘错误。

步骤S2:基音周期检测。

需要说明的是,人类的声音频率范围为200Hz - 66 Hz,而蓝牙语音通话的语音采样频率为8000 Hz,可以通过计算得出人类的基音周期范围40-120语音数据采样点(samples),也就是说最大的周期为120语音数据采样点。蓝牙的语音包为30语音数据采样点,当出现蓝牙丢包的情况,首先需要求出丢包前的基音周期。

步骤S2中,采用求相关系数的方法来求基音周期的,利用相关系数越大,数据相关性就越强的特点,计算出相关系数R的最大点Rmax,即为基音周期的始发点,如图3和图4所示,基音周期检测的具体步骤包括:

步骤S201:将从所述丢失的数据包开始左边的连续N个语音数据采样点作设置为模板窗,设置长度与所述模板窗相同的滑动窗,其中,N≥120;

步骤S202:将所述滑动窗从所述丢失的数据包左边的第40个点到所述丢失的数据包左边的第120个语音数据采样点滑动,分别计算所述滑动窗与所述模板窗的相关系数R;

步骤S203:比较上述各个点的相关系数,得到最大的相关系数Rmax并将所述相关系数Rmax对应的基音周期作为所述蓝牙语音数据包丢包前的基音周期。

需要说明的是,上述步骤S202中,N的值越大,计算得到的基因周期越准确,N的值过小的话,有可能导致基因周期计算错误,因此,本实施例中,将N的取值设定为N≥120,即超过一个基音周期,从而可以防止基因周期计算错误;上述步骤S202中,根据基音周期的范围是40-120个语音数据采样点,在计算相关系数的时候,将所述滑动窗的滑动范围设置为40-120个语音数据采样点,从而避免了多余的计算,提高了基音周期检测的检测速度。

步骤S3:波形替代,根据丢失的数据包前一个基音周期中与所述丢失的数据包相对应的波形生成替代波形,并将所述替代波形对所述丢失的数据包的波形进行替代。

需要说明的是,由于蓝牙系统的不稳定性,当出现一个丢包后,往往后面还会出现连续丢包的情况,针对蓝牙语音通讯的这个特点,同时又为了让连续丢帧的效果能够为人耳接受,尽可能的隐藏错误,本实施例中,在简单的波形替代的基础上,采用了多帧衰减法进行波形替代。具体波形替代规则如下:

当所述丢失的数据包为一个时,所述替代波形采用所述丢失的数据包前一个基音周期中与所述丢失的数据包相对应的波形;

当所述丢失的数据包为连续的多个时,将前一个基音周期中与所述第一个丢失的数据包相对应的波形作为所述第一个数据包的替代波形,将前一个基音周期中与另外的丢失数据包相对应的波形的每个语音采样点依次衰减1/(15*30),形成所述另外的丢失数据包的替代波形,如果连续丢失的数据包大于16个,超过16个数据包后的替代波形直接衰减为0。

由于每个蓝牙语音数据包包括30个语音数据采样点,上述波形替代规则可以用下述公式进行表述:

W[j]= WP[j],1≤j≤30,

W[j]= WP[j] *(1-(j-30)/(15*30),30<j≤480,

W[j]=0,j>480,

其中,W表示所述丢失数据包的替代波形,WP表示前一个基音周期中与所述丢失的数据包相对应的波形,j表示波形中的第j个点。

通过蓝牙语音丢包实验发现,大量丢包的情况下,使用简单的周期波形替代,会直接引入错音,声音效果难以接受,若使用本实施例所述的波形替代方法可以有效避免错音的情况,即使是丢包量大,其实际效果也能够使人耳容易接受。具体波形替代的示意图如图5所示。

步骤S4:自适应平滑滤波,根据所述丢失的数据包形成的波形缺口两边的波形在前一个基音周期中所对应的波形对所述丢失的数据包形成的波形缺口两边的波形进行自适应平滑滤波。

完成波形替代步骤后,原始语音波形和替代波形之间可能会有比较大的数据落差,不处理的话,往往会出现杂音,为了使原始语音波形和替代波形之间能够平滑过渡,避免出现杂音以提高通话质量,则需要对两组数据进行平滑滤波,平滑滤波可以解决声音过度的杂音问题,但如果滤波过大,会导致声音出现问题,人耳听起来会有闷闷的感觉。为了能让平滑滤波能够起到更好的效果,即能够平滑过渡,又不会引入过多的错误声音,本实施例中,采用了自适应窗口滤波技术,能够自适应调节滤波强度,更适应于语音多变的特质,提高替代波形的平滑度,提高通话质量,也避免了固定窗口灵活性不够缺陷。如图6所示,所述自适应滤波步骤具体包括:

步骤S401:分别提取所述丢失的数据包形成的波形缺口的左边的一个数据包的波形LD和右边的一个数据包的波形RD,其中,每个数据包的语音数据包括30个语音采样点;

步骤S402:分别提取所述波形LD和RD所对应的前一个基音周期的波形LDP和RDP;

步骤S403:利用波形LDP和RDP,分别对波形LD和RD进行滤波,得到平滑处理过后的波形LDC和RDC,滤波公式如下:

LDC[i] =( LDP[i] * (i/Rf) + LD[i] * (30-(i/Rf)))/30,

RDC[i] =( RDP[i] * (30-(i/Rf)) + RD[i] * (i/Rf))/30,

其中,i为0-29之间的整数,Rf = Rmax+1。

实施例二

图7示出了本发明实施例二提供的适用于蓝牙语音通话的丢包隐藏装置,其包括蓝牙语音数据检测单元710、基因周期检测单元720、波形替代单元730和自适应滤波单元740。下面详细进行说明。

所述蓝牙语音数据检测单元710,用于检测所述蓝牙语音数据包是否丢包;

所述基因周期检测单元720,用于采用相关系数法检测蓝牙语音数据包丢包前的基音周期,并得到所述基因周期对应的相关系数Rmax;

所述基因周期检测单元720采用下述步骤进行基因周期检测:

将从所述丢失的数据包开始左边的连续N个语音数据采样点作设置为模板窗,设置长度与所述模板窗相同的滑动窗,其中, N≥120;

将所述滑动窗从所述丢失的数据包左边的第40个点到所述丢失的数据包左边的第120个语音数据采样点滑动,分别计算所述滑动窗与所述模板窗的相关系数R;

比较上述各个点的相关系数,得到最大的相关系数Rmax并将所述相关系数Rmax对应的基音周期作为所述蓝牙语音数据包丢包前的基音周期。

所述波形替代单元730,用于根据丢失的数据包前一个基音周期中与所述丢失的数据包相对应的波形生成替代波形,并将所述替代波形对所述丢失的数据包的波形进行替代;

所述波形替代单元730采用如下波形替代公式进行生成替代波形:

W[j]= WP[j],1≤j≤30,

W[j]= WP[j] *(1-(j-30)/(15*30),30<j≤480,

W[j]=0,j>480,

其中,W表示所述丢失数据包的替代波形,WP表示前一个基音周期中与所述丢失的数据包相对应的波形,j表示波形中的第j个点。

所述自适应滤波单元740,用于根据所述丢失的数据包形成的波形缺口两边的波形在前一个基音周期中所对应的波形对所述丢失的数据包形成的波形缺口两边的波形进行自适应平滑滤波,滤波公式如下:

LDC[i] =( LDP[i] * (i/Rf) + LD[i] * (30-(i/Rf)))/30,

RDC[i] =( RDP[i] * (30-(i/Rf)) + RD[i] * (i/Rf))/30,

其中, Rf = Rmax+1,i为0-29之间的整数,

LD和RD分别表示所述丢失的数据包形成的波形缺口的左边的一个数据包的波形和右边的一个数据包的波形,LDP和RDP分别表示所述波形LD和所述波形RD所对应的前一个基音周期的波形,LDC和RDC分别表示所述波形LD和所述波形RD滤波后对应的波形。

实施例三

如图8所示,本发明实施例三提供一种蓝牙语音处理芯片,所述蓝牙语音处理芯片包括至少一处理器810、存储器820及接口830,所述至少一处理器810、存储器820及接口830均通过总线连接;

所述存储器820存储计算机执行指令;

所述至少一个处理器810执行所述存储器存储的计算机执行指令,使得所述蓝牙语音处理芯片执行实施例一所述的适用于蓝牙语音通话的丢包隐藏方法。

综上所述,采用本发明的方法、装置及芯片,在进行蓝牙语音丢包波形替代时,采用了多帧衰减方法,可以有效避免错音的情况,即使是丢包量大,其实际效果也能够使人耳容易接受,在对替代后的波形进行滤波时,采用了自适应窗口滤波技术,能够自适应调节滤波强度,更适应于语音多变的特质,提高替代波形的平滑度,提高通话质量,也避免了固定窗口灵活性不够的缺陷,在蓝牙语音通讯整体丢包率小于15%的情况下,能够有效地隐藏丢包错误,提高蓝牙语音通话质量,增加语音通话距离。

值得注意的是,本领域普通技术人员可以理解:实现上述方法实施例的步骤或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤,而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1