CN107294655B - 蓝牙通话信号恢复方法、装置、存储介质和计算机设备 - Google Patents
蓝牙通话信号恢复方法、装置、存储介质和计算机设备 Download PDFInfo
- Publication number
- CN107294655B CN107294655B CN201710398581.2A CN201710398581A CN107294655B CN 107294655 B CN107294655 B CN 107294655B CN 201710398581 A CN201710398581 A CN 201710398581A CN 107294655 B CN107294655 B CN 107294655B
- Authority
- CN
- China
- Prior art keywords
- data
- bluetooth
- fifo
- data packet
- packet
- 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.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0072—Error control for data other than payload data, e.g. control data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0075—Transmission of coding parameters to receiver
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明涉及一种蓝牙通话信号恢复方法、装置、存储介质和计算机设备,在接收到蓝牙数据包后,根据预设校验信息判断当前蓝牙数据包是否正常;若是,则通过解码器对当前蓝牙数据包进行解码,将解码得到的数据存入FIFO中,获取FIFO导出的数据并输出;根据预设校验信息对上一蓝牙数据包进行检测,在上一蓝牙数据包不正常时,对当前蓝牙数据包进行预解码,并根据预解码得到的数据对解码器进行参数校正;若否,则根据FIFO中的已有数据在FIFO中进行数据修复,获取FIFO导出的数据并输出。通过有效地恢复错误的数据包,且利用正确数据包对解码器进行参数校正,避免因蓝牙信号的数据错误或解码器解码错误而影响蓝牙通话效果,提高了蓝牙通话质量,改善了用户体验感。
Description
技术领域
本发明涉及通信技术领域,特别是涉及一种蓝牙通话信号恢复方法、装置、存储介质和计算机设备。
背景技术
目前,蓝牙是一种支持设备短距离通信的无线通讯对话技术,经过近几年的发展,我们对它已不再陌生,它也是目前数码产品中不可或缺的模块,蓝牙技术的出现让我们在连接各种设备的时候不再被繁多的数据线所束缚。
蓝牙通话以其安全方便备受人们喜爱,传统的蓝牙通信和其他众多无线设备一样,使用的是2.4GHz频道进行传输,在各种无线协议混杂的情况下,非常容易出现信道拥塞的情况,导致数据包在无线传输过程丢失,用户听到的声音信号断断续续,卡顿的情况时有发生,严重影响了用户的体验。如何对丢失的蓝牙信号进行恢复以提高蓝牙通话质量,是亟待解决的问题。
发明内容
基于此,有必要针对上述问题,提供一种可提高蓝牙通话质量的蓝牙通话丢失信号恢复方法、装置、存储介质和计算机设备。
一种蓝牙通话信号恢复方法,包括以下步骤:
在接收到蓝牙数据包后,根据预设校验信息判断当前蓝牙数据包是否正常;
若是,则通过解码器对所述当前蓝牙数据包进行解码,将解码得到的数据存入FIFO中,获取所述FIFO导出的数据并输出;
根据所述预设校验信息对上一蓝牙数据包进行检测,在上一蓝牙数据包不正常时,对所述当前蓝牙数据包进行预解码,并根据预解码得到的数据对所述解码器进行参数校正;
若否,则根据所述FIFO中的已有数据在所述FIFO中进行数据修复,获取所述FIFO导出的数据并输出。
一种蓝牙通话信号恢复装置,包括:
数据包校验模块,用于在接收到蓝牙数据包后,根据预设校验信息判断当前蓝牙数据包是否正常;
数据包解码模块,用于在当前蓝牙数据包正常时,通过解码器对所述当前蓝牙数据包进行解码,将解码得到的数据存入FIFO中,获取所述FIFO导出的数据并输出;
解码器参数校正模块,用于在当前蓝牙数据包正常时,根据所述预设校验信息对上一蓝牙数据包进行检测,在上一蓝牙数据包不正常时对所述当前蓝牙数据包进行预解码,并根据预解码得到的数据对所述解码器进行参数校正;
数据包修复模块,用于在当前蓝牙数据包不正常时,根据所述FIFO中的已有数据在所述FIFO中进行数据修复,获取所述FIFO导出的数据并输出。
一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述方法的步骤。
一种计算机设备,包括存储器、处理器以及存储在存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方法的步骤。
上述蓝牙通话信号恢复方法、装置、存储介质和计算机设备,在接收到蓝牙数据包后,根据预设校验信息判断当前蓝牙数据包是否正常;若是,则通过解码器对当前蓝牙数据包进行解码,将解码得到的数据存入FIFO中,获取FIFO导出的数据并输出;根据预设校验信息对上一蓝牙数据包进行检测,在上一蓝牙数据包不正常时,对当前蓝牙数据包进行预解码,并根据预解码得到的数据对解码器进行参数校正;若否,则根据FIFO中的已有数据在FIFO中进行数据修复,获取FIFO导出的数据并输出。在当前蓝牙数据包不正常时候利用FIFO中的已有数据进行数据修复,实现对丢失的蓝牙信号的恢复。此外,在当前蓝牙数据包正常且上一蓝牙数据包不正常时,利用当前蓝牙数据包预解码得到的数据对解码器进行参数校正,从而校正解码器的初始数据,避免解码器在接收到的正确数据包进行解码时出现解码错误的问题。通过有效地恢复错误的数据包,且利用正确数据包对解码器进行参数校正,避免因蓝牙信号的数据错误或解码器解码错误而影响蓝牙通话效果,提高了蓝牙通话质量,改善了用户体验感。
附图说明
图1为一实施例中蓝牙通话信号恢复方法的流程图;
图2为另一实施例中蓝牙通话信号恢复方法的流程图;
图3为一实施例中根据FIFO中的已有数据在FIFO中进行数据修复的原理图;
图4为一实施例中蓝牙通话信号恢复装置的结构图;
图5为另一实施例中蓝牙通话信号恢复装置的结构图。
具体实施方式
在一个实施例中,一种蓝牙通话信号恢复方法,蓝牙通话信号具体可以是CVSD(Continuously Variable Slope Delta,连续可变斜率增量调制)编码传输的蓝牙信号,也可以是其他编码格式的蓝牙信号。如图1所示,该方法包括以下步骤:
步骤S120:在接收到蓝牙数据包后,根据预设校验信息判断当前蓝牙数据包是否正常。
根据编码类型不同,蓝牙数据包的具体格式也对应有所不同,蓝牙数据包的内容具体包括当前蓝牙传输数据和校验码。每当接收到一个蓝牙数据包时,都根据预设校验信息对当前接收的蓝牙数据包进行校验检测。预设校验信息的具体内容并不唯一,根据预设校验信息内容的不同,对应判断当前蓝牙数据包是否正常的方式也对应不同。预设校验信息可以是格式校验信息或校验码验证信息,若预设校验信息为格式校验信息,则检测当前蓝牙数据包的格式与格式校验信息是否符合,若是,则当前蓝牙数据包正常;若预设校验信息为校验码验证信息,则检测当前蓝牙数据包中的校验码与校验码验证信息是否符合,若是,则当前蓝牙数据包正常。在当前蓝牙数据包正常时进行步骤S130,否则进行步骤S150。
步骤S130:通过解码器对当前蓝牙数据包进行解码,将解码得到的数据存入FIFO中,获取FIFO导出的数据并输出。
FIFO(First Input First Output,先入先出队列)是一种先进先出的数据缓存器,先进入的数据先使用并引退,FIFO的存储空间大小可根据需求调整,且根据存入顺序对数据进行保存。当在FIFO存入新数据,FIFO会从最早存入的数据开始导出与新数据等长的数据。具体地,解码器里面遗留有历史数据供当前包数据解码使用,在判断当前蓝牙数据包正常后,将该数据包输入解码器进行解码,提取当前蓝牙传输数据得到数据帧,并将数据帧存入FIFO中,获取FIFO导出的与数据帧等长的数据作为输出,并且移动FIFO中的数据。
可以理解,若连续多次都接收到正常的蓝牙数据包,则每次都是将蓝牙数据包输入解码器进行解码,将解码得到的数据存入FIFO中,以及获取FIFO导出的数据并输出。
步骤S140:根据预设校验信息对上一蓝牙数据包进行检测,在上一蓝牙数据包不正常时,对当前蓝牙数据包进行预解码,并根据预解码得到的数据对解码器进行参数校正。
以CVSD编码的蓝牙通信信号为例,由于蓝牙通话中的CVSD编码是一种线性预测编码,解码的时候如果初始值错误,则连续比较长一段数据都会是错误的。而在蓝牙传输过程中,由于干扰或者其它原因很容易导致接收数据包丢失或者错误,一旦出现错误数据包,那么接下来接收到的正确数据包在解码的时候,由于没有正确的初始值所以下一包数据在解码的时候也会错误相当长的一段数据。
不同编码格式的蓝牙通信信号,对应的解码器参数校正方式也会不同。同样以蓝牙通话常用格式CVSD为例,预解码为了让数据错误误差尽量小,一种较好实施方案为将CVSD的初值设为零,差值通过之前的正常帧数据解码时的差值,预测出当前位置的差值。以此配置的初始数据解码出的数据明显优于不使用这种配置初始数据解码出来的数据。本发明提出进一步的数据修正方法,以上面提到的配置初始化数据解码出当前数据包,由预测解码的特性我们知道,错误误差会慢慢收敛,所以我们可以用当前包数据后面一点的数据与FIFO中T周期的数据计算相关性或者通过自相关计算,找到相关点后再反推出当前解码帧初始值位置对应周期数据中的点或者自相关算法得到的后面数据的点,将这个点的值设置为当前帧解码的初始值。在当前蓝牙数据包正常且上一蓝牙数据包不正常时,还对当前蓝牙数据包进行预解码,提取预解码得到的数据对解码器进行参数校正,校正解码器的初始数据,避免由于初始数据的错误导致解码器出现解码错误,提高了蓝牙通话质量。
步骤S150:根据FIFO中的已有数据在FIFO中进行数据修复,获取FIFO导出的数据并输出。
若当前蓝牙数据包不正常,则根据FIFO中的已有数据进行数据包修复,将修复得到的数据存入FIFO中,获取FIFO导出的与存入数据等长的数据作为输出,并且移动FIFO中的数据。具体地,在一个实施例中,步骤S150包括步骤152至步骤156。
步骤152:通过FIFO中已有数据得到蓝牙语音信号的基音周期。
基音周期用于记录基音的时间长度,不同语音信号的基音周期不同。利用FIFO中已经存储的数据提取基音周期的方式并不唯一,具体可采用自相关函数法、平均幅度差函数法和倒谱方法进行基音周期提取,先将FIFO中数据分为长度一定的语音帧,然后对每一帧语音求平均基音周期作为蓝牙语音信号的基音周期。
步骤154:根据基音周期在FIFO中进行数据修复并获取修复数据的长度。
修复数据的长度大于预设时间基准的长度。预设时间基准具体采用长度可调时间窗,时间窗的长度可根据蓝牙数据包的长度进行调整。在获取蓝牙语音信号的基音周期之后,利用基音周期合成语音再现原始语音信号,实现数据修复。具体地,通过基音周期修复可以理解为A[n]=A[n-T],就是位置n点的值可以近似的等于位置n-T点的值,其中T为基音周期。将修复得到的数据替代错误的蓝牙数据包存储在FIFO中。此外,在将数据填充在FIFO中时还可对数据进行衰减处理,使得恢复数据质量更佳。
步骤156:从FIFO中获取与修复数据的长度等长的数据输出。
在FIFO中进行数据修复之后,从FIFO中最先存储的数据开始,获取与修复数据的长度等长的数据作为输出,然后移动FIFO中的数据。
在一个实施例中,如图2所示,步骤S120之前,该方法还可包括步骤S110。
步骤S110:检测是否接收到蓝牙数据包。
具体地,可通过判断在预设时长内是否接收到蓝牙数据包,若是,则进行步骤S120,对当前蓝牙数据包进行校验;若没有接收到蓝牙数据包的时长超过预设时长,则可判定为当前蓝牙数据包丢失,直接进行步骤S150,在FIFO中对丢失数据包进行数据修复并输出FIFO导出的数据。
本实施例中,即是对于发生数据包丢失或错误时均进行数据修复处理,可有效地恢复错误的或者丢失的数据,避免因数据丢失或错误而影响蓝牙通信,进一步提高了蓝牙通话质量。
在一个实施例中,继续参照图2,步骤S150之后,该方法还可包括步骤S160。
步骤S160:根据预设校验信息对下一蓝牙数据包进行检测,在下一蓝牙数据包不正常时,根据基音周期从完成修复的位置继续进行数据修复,直至修复数据总长度大于预设的最大修复长度。
预设的最大修复长度的具体取值并不唯一,可根据实际情况调整。具体地,在当前蓝牙数据包发生丢包或者错误,并根据FIFO中的已有数据进行数据修复和数据输出之后,若接收到的下一蓝牙数据包进行校验后也判断为非正常数据包,则将下一蓝牙数据包作为新的当前数据包再次进行步骤S150,从上一次完成数据修复的位置继续进行数据修复,直至修复数据总长度大于预设的最大修复长度。
可以理解,若再一次发生数据包丢失时同样可再次进行步骤S150,从上一次完成数据修复的位置继续进行数据修复。也就是说,当连续出现数据包丢失或数据包错误时,则在FIFO中持续进行数据修复操作。当修复数据总长度大于预设的最大修复长度之后,此时可淡出处理或者在接近零值的位置结束修复输出零值,淡出处理即指使信号呈现从有到无的渐变效果。
在一个实施例中,步骤S150之后,该方法还可包括在步骤S170。
步骤S170:根据预设校验信息对下一蓝牙数据包进行检测,在下一蓝牙数据包正常时,根据下一蓝牙数据包解码得到的数据与预设时间基准内数据的相关性获取关联区域,并将下一蓝牙数据包解码得到的数据替换FIFO中关联区域对应的数据。
具体地,在当前蓝牙数据包发生丢包或者错误,并根据FIFO中的已有数据进行数据修复和数据输出之后,若接收到的下一蓝牙数据包进行校验后判断为正常数据包,则在将下一蓝牙数据包通过解码器进行解码后,分析解码得到的数据与预设时间基准内数据的相关性。分析数据相关性的具体方式并不唯一,具体可通过分析预设时间基准内数据的变化趋势,找到解码得到的数据的关联区域进行数据拼接。本实施例中,通过查找关联区域中与解码得到的数据最相关位置,然后将解码得到的数据拼接到FIFO中最相关位置,替换FIFO中最相关位置原来的数据。
为了便于更好地理解上述蓝牙通话信号恢复方法,下面对根据FIFO中的已有数据在FIFO中进行数据修复进行详细的解释说明。
如图3所示,F0的位置是一帧数据的长度,起始位置为A1,结束位置为A0,Fn和A为FIFO中的已有数据,同时A1也为数据A的结束位置,MN为时间基准。该帧数据若是正常数据,则填入F0数据,输出Fn数据,然后移动FIFO的数据,当F0数据丢失或者错误时,则通过其前面正常数据A计算出基音周期开始填充数据。具体地,从正常数据A结束位置A1前一段距离开始,即从数据B的结束位置开始按照基音周期T进行数据填充,依次填充T0,T1等数据,填充数据要大于基准时间点A0到达图上N的位置。记录当前基音周期,同时填充的时候可以对数据作适当的衰减,使得恢复数据质量更佳。如果下一帧数据也不正常则通过存储的基音周期接着上一帧数据修复的位置继续修复,直到修复长度大于预设最大修复长度,则淡出处理或者在接近零值的位置结束修复输出零值;如果下一帧数据是正常数据,则通过计算下一帧数据与M到N点之间数据的相关性,找到最相关位置,然后把正常数据包拼接到FIFO数据中。
上述蓝牙通话信号恢复方法,在当前蓝牙数据包不正常时候利用FIFO中的已有数据进行数据修复,实现对丢失的蓝牙信号的恢复。此外,在当前蓝牙数据包正常且上一蓝牙数据包不正常时,利用当前蓝牙数据包预解码得到的数据对解码器进行参数校正,从而校正解码器的初始数据,避免解码器在接收到的正确数据包进行解码时出现解码错误的问题。通过有效地恢复错误的数据包,且利用正确数据包对解码器进行参数校正,避免因蓝牙信号的数据错误或解码器解码错误而影响蓝牙通话效果,提高了蓝牙通话质量,改善了用户体验感。
在一个实施例中,一种蓝牙通话信号恢复装置,蓝牙通话信号具体可以是CVSD编码传输的蓝牙信号,也可以是其他编码格式的蓝牙信号。如图4所示,该装置包括数据包校验模块120、数据包解码模块130、解码器参数校正模块140和数据包修复模块150。
数据包校验模块120用于在接收到蓝牙数据包后,根据预设校验信息判断当前蓝牙数据包是否正常。
根据编码类型不同,蓝牙数据包的具体格式也对应有所不同,蓝牙数据包的内容具体包括当前蓝牙传输数据和校验码。每当接收到一个蓝牙数据包时,都根据预设校验信息对当前接收的蓝牙数据包进行校验检测。预设校验信息的具体内容并不唯一,根据预设校验信息内容的不同,对应判断当前蓝牙数据包是否正常的方式也对应不同。
数据包解码模块130用于在当前蓝牙数据包正常时,通过解码器对当前蓝牙数据包进行解码,将解码得到的数据存入FIFO中,获取FIFO导出的数据并输出。
在判断当前蓝牙数据包正常后,将该数据包输入解码器进行解码,提取当前蓝牙传输数据得到数据帧,并将数据帧存入FIFO中,获取FIFO导出的与数据帧等长的数据作为输出,并且移动FIFO中的数据。
解码器参数校正模块140用于在当前蓝牙数据包正常时,根据预设校验信息对上一蓝牙数据包进行检测,在上一蓝牙数据包不正常时对当前蓝牙数据包进行预解码,并根据预解码得到的数据对解码器进行参数校正。
在当前蓝牙数据包正常且上一蓝牙数据包不正常时,还对当前蓝牙数据包进行预解码,提取预解码得到的数据对解码器进行参数校正,校正解码器的初始数据,避免由于初始数据的错误导致解码器出现解码错误,提高了蓝牙通话质量。
数据包修复模块150用于在当前蓝牙数据包不正常时,根据FIFO中的已有数据在FIFO中进行数据修复,获取FIFO导出的数据并输出。
若当前蓝牙数据包不正常,则根据FIFO中的已有数据进行数据包修复,将修复得到的数据存入FIFO中,获取FIFO导出的与存入数据等长的数据作为输出,并且移动FIFO中的数据。具体地,在一个实施例中,数据包修复模块150包括第一修复单元、第二修复单元和第三修复单元。
第一修复单元用于通过FIFO中已有数据得到蓝牙语音信号的基音周期。
基音周期用于记录基音的时间长度,不同语音信号的基音周期不同。利用FIFO中已经存储的数据提取基音周期的方式并不唯一,具体可采用自相关函数法、平均幅度差函数法和倒谱方法进行基音周期提取。
第二修复单元用于根据基音周期在FIFO中进行数据修复并获取修复数据的长度。
修复数据的长度大于预设时间基准的长度。预设时间基准具体采用长度可调时间窗,时间窗的长度可根据蓝牙数据包的长度进行调整。在获取蓝牙语音信号的基音周期之后,利用基音周期合成语音再现原始语音信号,实现数据修复。将修复得到的数据替代错误的蓝牙数据包存储在FIFO中。此外,在将数据填充在FIFO中时,第二修复单元还可对数据进行衰减处理,使得恢复数据质量更佳。
第三修复单元用于从FIFO中取出与修复数据的长度等长的数据输出。
在FIFO中进行数据修复之后,从FIFO中最先存储的数据开始,获取与修复数据的长度等长的数据作为输出,然后移动FIFO中的数据。
在一个实施例中,如图5所示,该装置还包括数据包检测模块110。
数据包检测模块110用于在数据包校验模块120根据预设校验信息判断当前蓝牙数据包是否正常之前,检测是否接收到蓝牙数据包;若是,则控制数据包校验模块120根据预设校验信息判断当前蓝牙数据包是否正常;若否,则控制数据包修复模块150根据FIFO中的已有数据在FIFO中进行数据修复,获取FIFO导出的数据并输出。
具体地,可通过判断在预设时长内是否接收到蓝牙数据包,若是,则对当前蓝牙数据包进行校验;若没有接收到蓝牙数据包的时长超过预设时长,则可判定为当前蓝牙数据包丢失,直接在FIFO中对丢失数据包进行数据修复并输出FIFO导出的数据。
本实施例中,即是对于发生数据包丢失或错误时均进行数据修复处理,可有效地恢复错误的或者丢失的数据,避免因数据丢失或错误而影响蓝牙通信,进一步提高了蓝牙通话质量。
在一个实施例中,数据包修复模块150根据FIFO中的已有数据在FIFO中进行数据修复,获取FIFO导出的数据并输出之后,根据预设校验信息对下一蓝牙数据包进行检测,在下一蓝牙数据包不正常时,根据基音周期从完成修复的位置继续进行数据修复,直至修复数据总长度大于预设的最大修复长度。
预设的最大修复长度的具体取值并不唯一,可根据实际情况调整。具体地,在当前蓝牙数据包发生丢包或者错误,并根据FIFO中的已有数据进行数据修复和数据输出之后,若接收到的下一蓝牙数据包进行校验后也判断为非正常数据包,则将下一蓝牙数据包作为新的当前数据包,从上一次完成数据修复的位置继续进行数据修复,直至修复数据总长度大于预设的最大修复长度。
可以理解,若再一次发生数据包丢失时同样可再次进行数据修复。也就是说,当连续出现数据包丢失或数据包错误时,则在FIFO中持续进行数据修复操作。当修复数据总长度大于预设的最大修复长度之后,此时可淡出处理或者在接近零值的位置结束修复输出零值,淡出处理即指使信号呈现从有到无的渐变效果。
在一个实施例中,数据包修复模块150根据FIFO中的已有数据在FIFO中进行数据修复,获取FIFO导出的数据并输出之后,根据预设校验信息对下一蓝牙数据包进行检测,在下一蓝牙数据包正常时,根据下一蓝牙数据包解码得到的数据与预设时间基准内数据的相关性获取关联区域,并将下一蓝牙数据包解码得到的数据替换FIFO中关联区域对应的数据。
具体地,在当前蓝牙数据包发生丢包或者错误,并根据FIFO中的已有数据进行数据修复和数据输出之后,若接收到的下一蓝牙数据包进行校验后判断为正常数据包,则在将下一蓝牙数据包通过解码器进行解码后,分析解码得到的数据与预设时间基准内数据的相关性,找到解码得到的数据的关联区域进行数据拼接。本实施例中,通过查找关联区域中与解码得到的数据最相关位置,然后将解码得到的数据拼接到FIFO中最相关位置,替换FIFO中最相关位置原来的数据。
上述蓝牙通话信号恢复装置,在当前蓝牙数据包不正常时候利用FIFO中的已有数据进行数据修复,实现对丢失的蓝牙信号的恢复。此外,在当前蓝牙数据包正常且上一蓝牙数据包不正常时,利用当前蓝牙数据包预解码得到的数据对解码器进行参数校正,从而校正解码器的初始数据,避免解码器在接收到的正确数据包进行解码时出现解码错误的问题。通过有效地恢复错误的数据包,且利用正确数据包对解码器进行参数校正,避免因蓝牙信号的数据错误或解码器解码错误而影响蓝牙通话效果,提高了蓝牙通话质量,改善了用户体验感。
在一个实施例中,一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述方法的步骤。存储介质具体可以是软盘、光盘、DVD、硬盘、闪存、U盘等,具体类型并不唯一。
上述计算机可读存储介质,通过有效地恢复错误的数据包,且利用正确数据包对解码器进行参数校正,避免因蓝牙信号的数据错误或解码器解码错误而影响蓝牙通话效果,提高了蓝牙通话质量,改善了用户体验感。
在一个实施例中,一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现上述方法的步骤。
上述计算机设备,通过有效地恢复错误的数据包,且利用正确数据包对解码器进行参数校正,避免因蓝牙信号的数据错误或解码器解码错误而影响蓝牙通话效果,提高了蓝牙通话质量,改善了用户体验感。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种蓝牙通话信号恢复方法,其特征在于,包括以下步骤:
在接收到蓝牙数据包后,根据预设校验信息判断当前蓝牙数据包是否正常;
若是,则通过解码器对所述当前蓝牙数据包进行解码,将解码得到的数据存入FIFO中,获取所述FIFO导出的数据并输出;
根据所述预设校验信息对上一蓝牙数据包进行检测,在上一蓝牙数据包不正常时,对所述当前蓝牙数据包进行预解码,并根据预解码得到的数据对所述解码器进行参数校正;所述对所述当前蓝牙数据包进行预解码,并根据预解码得到的数据对所述解码器进行参数校正,具体为:用所述当前蓝牙数据包中后面的数据与FIFO中基音周期的数据计算相关性或者通过自相关计算,找到相关点后再反推出当前解码帧初始值位置对应周期数据中的点或者自相关算法得到的后面数据的点,将这个点的值设置为当前帧解码的初始值;
若否,则根据所述FIFO中的已有数据在所述FIFO中进行数据修复,获取所述FIFO导出的数据并输出。
2.根据权利要求1所述的蓝牙通话信号恢复方法,其特征在于,所述在接收到蓝牙数据包后,根据预设校验信息判断当前蓝牙数据包是否正常的步骤之前,还包括以下步骤:
检测是否接收到蓝牙数据包;
若接收到蓝牙数据包,则进行所述根据预设校验信息判断当前蓝牙数据包是否正常的步骤;
若未接收到蓝牙数据包,则进行所述根据所述FIFO中的已有数据在所述FIFO中进行数据修复,获取所述FIFO导出的数据并输出的步骤。
3.根据权利要求1所述的蓝牙通话信号恢复方法,其特征在于,根据FIFO中的已有数据在所述FIFO中进行数据修复,获取所述FIFO导出的数据并输出的步骤,包括以下步骤:
通过所述FIFO中已有数据得到蓝牙语音信号的基音周期;
根据所述基音周期在所述FIFO中进行数据修复并获取修复数据的长度;所述修复数据的长度大于预设时间基准的长度;
从所述FIFO中获取与所述修复数据的长度等长的数据输出。
4.根据权利要求3所述的蓝牙通话信号恢复方法,其特征在于,所述根据所述FIFO中的已有数据在所述FIFO中进行数据修复,获取所述FIFO导出的数据并输出的步骤之后,还包括以下步骤:
根据所述预设校验信息对下一蓝牙数据包进行检测,在下一蓝牙数据包不正常时,根据所述基音周期从完成修复的位置继续进行数据修复,直至修复数据总长度大于预设的最大修复长度。
5.根据权利要求3所述的蓝牙通话信号恢复方法,其特征在于,所述根据所述FIFO中的已有数据在所述FIFO中进行数据修复,获取所述FIFO导出的数据并输出的步骤之后,还包括以下步骤:
根据所述预设校验信息对下一蓝牙数据包进行检测,在下一蓝牙数据包正常时,根据下一蓝牙数据包解码得到的数据与所述预设时间基准内数据的相关性获取关联区域,并将所述下一蓝牙数据包解码得到的数据替换所述FIFO中所述关联区域对应的数据。
6.一种蓝牙通话信号恢复装置,其特征在于,包括:
数据包校验模块,用于在接收到蓝牙数据包后,根据预设校验信息判断当前蓝牙数据包是否正常;
数据包解码模块,用于在当前蓝牙数据包正常时,通过解码器对所述当前蓝牙数据包进行解码,将解码得到的数据存入FIFO中,获取所述FIFO导出的数据并输出;
解码器参数校正模块,用于在当前蓝牙数据包正常时,根据所述预设校验信息对上一蓝牙数据包进行检测,在上一蓝牙数据包不正常时对所述当前蓝牙数据包进行预解码,并根据预解码得到的数据对所述解码器进行参数校正;所述对所述当前蓝牙数据包进行预解码,并根据预解码得到的数据对所述解码器进行参数校正,具体为:用所述当前蓝牙数据包中后面的数据与FIFO中基音周期的数据计算相关性或者通过自相关计算,找到相关点后再反推出当前解码帧初始值位置对应周期数据中的点或者自相关算法得到的后面数据的点,将这个点的值设置为当前帧解码的初始值;
数据包修复模块,用于在当前蓝牙数据包不正常时,根据所述FIFO中的已有数据在所述FIFO中进行数据修复,获取所述FIFO导出的数据并输出。
7.根据权利要求6所述的蓝牙通话信号恢复装置,其特征在于,还包括:
数据包检测模块,用于在所述数据包校验模块根据预设校验信息判断当前蓝牙数据包是否正常之前,检测是否接收到蓝牙数据包;
若是,则控制所述数据包校验模块根据预设校验信息判断当前蓝牙数据包是否正常;
若否,则控制所述数据包修复模块根据所述FIFO中的已有数据在所述FIFO中进行数据修复,获取所述FIFO导出的数据并输出。
8.根据权利要求6所述的蓝牙通话信号恢复装置,其特征在于,所述数据包修复模块包括:
第一修复单元,用于通过所述FIFO中已有数据得到蓝牙语音信号的基音周期;
第二修复单元,用于根据所述基音周期在所述FIFO中进行数据修复并获取修复数据的长度;所述修复数据的长度大于预设时间基准的长度;
第三修复单元,用于从所述FIFO中取出与所述修复数据的长度等长的数据输出。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1-5中任意一项所述方法的步骤。
10.一种计算机设备,包括存储器、处理器以及存储在存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1-5中任意一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710398581.2A CN107294655B (zh) | 2017-05-31 | 2017-05-31 | 蓝牙通话信号恢复方法、装置、存储介质和计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710398581.2A CN107294655B (zh) | 2017-05-31 | 2017-05-31 | 蓝牙通话信号恢复方法、装置、存储介质和计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107294655A CN107294655A (zh) | 2017-10-24 |
CN107294655B true CN107294655B (zh) | 2019-12-20 |
Family
ID=60094122
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710398581.2A Active CN107294655B (zh) | 2017-05-31 | 2017-05-31 | 蓝牙通话信号恢复方法、装置、存储介质和计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107294655B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112492251A (zh) * | 2020-11-24 | 2021-03-12 | 维沃移动通信有限公司 | 视频通话方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1731718A (zh) * | 2004-08-06 | 2006-02-08 | 北京中星微电子有限公司 | 针对ip网络语音数据包丢失的降噪方法及装置 |
CN1901431A (zh) * | 2006-07-04 | 2007-01-24 | 华为技术有限公司 | 一种丢帧隐藏方法和装置 |
CN101834964A (zh) * | 2010-03-31 | 2010-09-15 | 耿直 | 语音数据传输处理方法及语音数据传输处理器 |
CN102810314A (zh) * | 2011-06-02 | 2012-12-05 | 华为终端有限公司 | 音频编码方法及装置、音频解码方法及装置、编解码系统 |
CN102810313A (zh) * | 2011-06-02 | 2012-12-05 | 华为终端有限公司 | 音频解码方法及装置 |
CN104768025A (zh) * | 2015-04-02 | 2015-07-08 | 无锡天脉聚源传媒科技有限公司 | 一种视频坏帧修复方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8335970B2 (en) * | 2009-09-28 | 2012-12-18 | Broadcom Corporation | Encoder/decoder with unfolding error correction |
-
2017
- 2017-05-31 CN CN201710398581.2A patent/CN107294655B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1731718A (zh) * | 2004-08-06 | 2006-02-08 | 北京中星微电子有限公司 | 针对ip网络语音数据包丢失的降噪方法及装置 |
CN1901431A (zh) * | 2006-07-04 | 2007-01-24 | 华为技术有限公司 | 一种丢帧隐藏方法和装置 |
CN101834964A (zh) * | 2010-03-31 | 2010-09-15 | 耿直 | 语音数据传输处理方法及语音数据传输处理器 |
CN102810314A (zh) * | 2011-06-02 | 2012-12-05 | 华为终端有限公司 | 音频编码方法及装置、音频解码方法及装置、编解码系统 |
CN102810313A (zh) * | 2011-06-02 | 2012-12-05 | 华为终端有限公司 | 音频解码方法及装置 |
CN104768025A (zh) * | 2015-04-02 | 2015-07-08 | 无锡天脉聚源传媒科技有限公司 | 一种视频坏帧修复方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN107294655A (zh) | 2017-10-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100563293B1 (ko) | 음성 복호화에서 음성 프레임 오류 은폐를 위한 방법 및시스템 | |
EP2438592B1 (en) | Method, apparatus and computer program product for reconstructing an erased speech frame | |
KR101422379B1 (ko) | 서브 밴드 코딩 디코더에서 손실 패킷들의 은닉 | |
KR101570589B1 (ko) | 워터마킹된 신호를 인코딩 및 검출하는 디바이스들 | |
US8321216B2 (en) | Time-warping of audio signals for packet loss concealment avoiding audible artifacts | |
US8185384B2 (en) | Signal pitch period estimation | |
RU2713605C1 (ru) | Устройство кодирования аудио, способ кодирования аудио, программа кодирования аудио, устройство декодирования аудио, способ декодирования аудио и программа декодирования аудио | |
JP2001513598A (ja) | 可変レート通信システムにて受信データのレートを決定する方法及び装置 | |
JP3155952B2 (ja) | 音声復号装置 | |
EP1316087A1 (fr) | Dissimulation d'erreurs de transmission dans un signal audio | |
US8631295B2 (en) | Error concealment | |
KR20090051760A (ko) | 에코 제거/억압 방법 및 장치 | |
JP2013541731A (ja) | 過渡フレームの符号化及び復号化 | |
KR20140067512A (ko) | 신호 처리 장치 및 그 신호 처리 방법 | |
CN107294655B (zh) | 蓝牙通话信号恢复方法、装置、存储介质和计算机设备 | |
JPH10190498A (ja) | 不連続伝送中に快適雑音を発生させる改善された方法 | |
TR201909562T4 (tr) | Ses kodlamada DTX kalıntısı için usuller ve aygıtlar. | |
EP1323238A4 (en) | DEVICE AND METHOD FOR DETECTING THE TRANSMITTERS OF A TURBO DECODER | |
KR102380642B1 (ko) | 스테레오 신호 인코딩 방법 및 인코딩 장치 | |
JP2003526261A (ja) | 誤った信号パラメータを検出するエラー隠蔽方法 | |
JP6012620B2 (ja) | エンコーダおよび予測的に符号化する方法、デコーダおよび復号化する方法、予測的に符号化および復号化するシステムおよび方法、および予測的に符号化された情報信号 | |
CN113314128B (zh) | 语音业务迟后接入方法、装置、系统及相关产品 | |
US7386082B2 (en) | Method and related apparatus for searching the syncword of a next frame in an encoded digital signal | |
CN109286533B (zh) | 语音数据包的验错方法及装置、存储介质、终端 | |
EP2512052A1 (en) | Method and device for determining in-band signalling decoding mode |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP02 | Change in the address of a patent holder |
Address after: 519000 No. 333, Kexing Road, Xiangzhou District, Zhuhai City, Guangdong Province Patentee after: ZHUHAI JIELI TECHNOLOGY Co.,Ltd. Address before: Floor 1-107, building 904, ShiJiHua Road, Zhuhai City, Guangdong Province Patentee before: ZHUHAI JIELI TECHNOLOGY Co.,Ltd. |
|
CP02 | Change in the address of a patent holder |