一种蓝牙音箱通话音质的处理方法和装置制造方法及图纸

技术编号:13800644 阅读:164 留言:0更新日期:2016-10-07 06:19
本发明专利技术公开了一种蓝牙音箱通话音质的处理方法和装置,以优化蓝牙音箱通话音质,该方法为在接收到待处理的语音数据后,确定当前空中传输的语音数据包的数量q;依次获取读取的每个语音数据包携带的数据和状态标识,并根据获取结果确定该语音数据的第一位置,根据该第一位置确定处理起始位置;从该处理起始位置开始,在每一个周期内,确定对应的空中传输的各个语音数据包携带的数据和状态标识,以及基于空中传输的各个语音数据包携带的数据和状态标识,对在当前周期接收的语音数据进行补偿处理,这样,能够实现有针对性地进行丢包补偿处理,从而减少有效数据的浪费,优化通话音质,降低语音数据的错误率。

【技术实现步骤摘要】

本专利技术涉及蓝牙
,尤其涉及一种蓝牙音箱通话音质的处理方法和装置
技术介绍
参阅图1所示,手机通话时,将语音数据编码并加密,然后通过射频(RF)发送给音箱。音箱的控制(Controller)端接收空中的语音数据并解析,然后通过UART发送给音箱的主控(Host)端。Host收到数据后进行一些后期处理然后才丢给数字模拟转换器(Digital to analog converter,DAC)从音箱的喇叭(Speaker)端输出声音,其中Controller是外接的蓝牙模组,host是蓝牙音箱的主控芯片。当我们想实时的分析Controller发送给Host的语音数据时,往往需要借助第三方工具,因为Host端的硬件资源(主频、内存、存储)受限。第三方工具即UART sniffer,通常使用的有Ellisys或者Frontline两家的蓝牙协议分析仪。由于硬件的制造原因,可能导致controller通过主机控制器接口(Host Controller Interface,HCI)送语音数据给host的语音数据(Synchronous Connection-Oriented,sco)包大小不是空中sco包大小的整数倍。例如:空中的sco包大小是60bytes,controller输出的sco包大小是48bytes。即controller在输出语音数据给host前需要进行数据包的重组。而controller输出的sco包的状态标识位是根据空中sco包的接收情况判定的,各标识值的含义具体为:0表示正确的数据即空中收到该数据并校验通过;1表示接收到有错的数据即空中至少一个sco包收到的数据校验不通过;2表示没有数据收到即空中出现丢包的情况;3表示部分数据丢失,即对应的空中sco包中有丢包的也有正确接收的。为了保证声音的正确性,我们需要将controller端输出的标志为1、2、3的sco包都认为是坏的数据,在host端进行丢包补偿。参阅图2所示,空中出现60bytes的sco包丢失,由于controller输出的sco包大小是48bytes,此时controller端sco包的重组导致输出为两个标志为3的48bytes的sco包,按照处理的原则host端会将该数据认为是坏数据,丢弃后进行丢包补偿即丢弃96bytes的坏数据,而实际上只有60bytes的坏数据,这将导致36bytes的有效数据被浪费了,同理当这种浪费的情况碰巧每次都发生时,则最终会导致原本只有1%出错的数据量变成了2%出错的数据量,使得有效的数据量变小,增加了有效数据的浪费,降低了通话音质。
技术实现思路
本专利技术的目的是提供一种蓝牙音箱通话音质的处理方法和装置,以优化蓝牙音箱通话音质。本专利技术的目的是通过以下技术方案实现的:一种蓝牙音箱通话音质的处理方法,包括:在接收到待处理的语音数据后,蓝牙装置周期性的从所述语音数据中读取p个m字节的语音数据包,并根据读取的语音数据包的大小和数量p,以及预设的空中传输的语音数据包的大小,确定当前空中传输的语音数据包的数量q,其中空中传输的语音数据包的大小为n字节,p,m,n均为设定的正整数,且m<n;依次获取读取的每个语音数据包携带的数据和状态标识,并根据获取结果确定所述语音数据的第一位置,根据所述第一位置确定处理起始位置;从所述处理起始位置开始,在每一个周期内,从接收的语音数据中读取p个语音数据包,并根据读取的p个语音数据包携带的数据和状态标识,确定对应的空中传输的各个语音数据包携带的数据和状态标识,以及基于空中传输的各个语音数据包携带的数据和状态标识,对在当前周期内接收的语音数据进行补偿处理。这样,能够实现利用接收端的语音数据包携带的语音数据和状态标识,反推出空中传输的语音数据的状态标识,有针对性的进行丢包补偿处理,从而减少有效数据的浪费,提高通话音质,降低语音数据的错误率。可选的,在接收到待处理的语音数据后,蓝牙装置从所述语音数据中读取p个m字节的语音数据语音数据包,并根据读取的语音数据包的大小和数量p,以及预设的空中传输的语音数据包的大小,确定当前空中传输的语音数据包的数量q,包括:当前空中传输的语音数据包的数量q满足当前空中传输的所有语音数据包的大小等于蓝牙装置从所述语音数据中读取的所有语音数据包的大小,其中p*m=q*n。可选的,从所述语音数据中读取到的语音数据包的状态标识包括第一标识、第二标识、第三标识和第四标识,其中第一标识指示所述语音数据包接收到正确的数据,第二标识指示所述语音数据包接收到错误的数据,第三标识指示所述语音数据包没有接收到任何数据,第四标识指示所述语音数据包接收到部分数据;空中传输的语音数据包的状态标识包括第一标识、第二标识和第三标识,其中第一标识指示所述空中传输的语音数据包校验正确,第二标识指示空中传输的语音数据包校验错误,第三标识指示空中传输的语音数据包丢失;若空中传输的语音数据包的状态标识为第三标识,则对应的蓝牙装置接收到的语音数据全部置为0。可选的,在接收到待处理的语音数据后,蓝牙装置周期性的从所述语音数据中读取p个m字节的语音数据包,进一步包括:在接收到待处理的语音数据后,蓝牙装置周期性的从所述语音数据中读取p个m字节的语音数据包,所述待处理的语音数据从第一个语音数据开始为x字节的第三标识的初始化语音数据,剩余的语音数据为从空中传输的语音数据,其中x字节的语音数据全部为0,且x<w,w为待处理的语音数据的字节
个数。可选的,依次获取读取的每个语音数据包携带的数据和状态标识,并根据获取结果确定所述语音数据的第一位置,根据所述第一位置确定处理起始位置,包括:依次获取读取的每个语音数据包携带的数据和状态标识,基于获取到的每个数据包的数据和状态标识,记录第一次出现状态标识不是第三标识的语音数据包的位置作为第一位置,并统计所述第一位置所在的语音数据包数据开头能够连续获取到的0数据的个数y,判断y的大小是否为0,若是,则将第一周期读取的第一个语音数据包作为处理起始位置,否则,计算i=((y*p)/m)+1,从第一位置开始再统计p-i个的语音数据包后的位置作为处理起始位置。这样,通过检测数据0的个数能够快速准确的确定出待处理的语音数据的处理起始位置。可选的,从所述处理起始位置开始,在每一个周期内,从接收的语音数据中读取p个语音数据包,并根据读取的p个语音数据包携带的数据和状态标识,确定对应的空中传输的各个语音数据包携带的数据和状态标识,具体包括:确定p大于q且小于2q时,从所述处理起始位置开始,在每一个周期内,从接收的语音数据中读取p个语音数据包,将所述p个语音数据包与空中传输的q个语音数据包进行对齐处理,根据读取的p个语音数据包携带的数据确定空中传输的各个语音数据包携带的数据,以及根据读取的第一个语音数据包的状态标识,确定空中传输的第一个语音数据包的状态标识;根据空中传输的第一个语音数据包的状态标识、读取的p个语音数据包的状态标识和空中传输的各个语音数据包携带的数据,确定对应的空中传输的各个语音数据包的状态标识,其中空中传输的第一个语音数据包的状态标识和读取的第一个语音数据包的状态标识相同。可选的,根据空中传输的第一个语音数据包的状态标识、读取的p个语本文档来自技高网
...

【技术保护点】
一种蓝牙音箱通话音质的处理方法,其特征在于,包括:在接收到待处理的语音数据后,周期性的从所述语音数据中读取p个m字节的语音数据包,并根据读取的语音数据包的大小和数量p,以及预设的空中传输的语音数据包的大小,确定当前空中传输的语音数据包的数量q,其中空中传输的语音数据包的大小为n字节,p,m,n均为设定的正整数,且m<n;依次获取读取的每个语音数据包携带的数据和状态标识,并根据获取结果确定所述语音数据的第一位置,根据所述第一位置确定处理起始位置;从所述处理起始位置开始,在每一个周期内,从接收的语音数据中读取p个语音数据包,并根据读取的p个语音数据包携带的数据和状态标识,确定对应的空中传输的各个语音数据包携带的数据和状态标识,以及基于空中传输的各个语音数据包携带的数据和状态标识,对在当前周期内接收的语音数据进行补偿处理。

【技术特征摘要】
1.一种蓝牙音箱通话音质的处理方法,其特征在于,包括:在接收到待处理的语音数据后,周期性的从所述语音数据中读取p个m字节的语音数据包,并根据读取的语音数据包的大小和数量p,以及预设的空中传输的语音数据包的大小,确定当前空中传输的语音数据包的数量q,其中空中传输的语音数据包的大小为n字节,p,m,n均为设定的正整数,且m<n;依次获取读取的每个语音数据包携带的数据和状态标识,并根据获取结果确定所述语音数据的第一位置,根据所述第一位置确定处理起始位置;从所述处理起始位置开始,在每一个周期内,从接收的语音数据中读取p个语音数据包,并根据读取的p个语音数据包携带的数据和状态标识,确定对应的空中传输的各个语音数据包携带的数据和状态标识,以及基于空中传输的各个语音数据包携带的数据和状态标识,对在当前周期内接收的语音数据进行补偿处理。2.如权利要求1所述的方法,其特征在于,在接收到待处理的语音数据后,蓝牙装置从所述语音数据中读取p个m字节的语音数据语音数据包,并根据读取的语音数据包的大小和数量p,以及预设的空中传输的语音数据包的大小,确定当前空中传输的语音数据包的数量q,包括:当前空中传输的语音数据包的数量q满足当前空中传输的所有语音数据包的大小等于蓝牙装置从所述语音数据中读取的所有语音数据包的大小,其中p*m=q*n。3.如权利要求1所述的方法,其特征在于,包括:从所述语音数据中读取到的语音数据包的状态标识包括第一标识、第二标识、第三标识和第四标识,其中第一标识指示所述语音数据包接收到正确的数据,第二标识指示所述语音数据包接收到错误的数据,第三标识指示所述语音数据包没有接收到任何数据,第四标识指示所述语音数据包接收到部分数据;空中传输的语音数据包的状态标识包括第一标识、第二标识和第三标识,
\t其中第一标识指示所述空中传输的语音数据包校验正确,第二标识指示空中传输的语音数据包校验错误,第三标识指示空中传输的语音数据包丢失;若空中传输的语音数据包的状态标识为第三标识,则对应的蓝牙装置接收到的语音数据全部置为0。4.如权利要求1所述的方法,其特征在于,在接收到待处理的语音数据后,蓝牙装置周期性的从所述语音数据中读取p个m字节的语音数据包,进一步包括:在接收到待处理的语音数据后,蓝牙装置周期性的从所述语音数据中读取p个m字节的语音数据包,所述待处理的语音数据从第一个语音数据开始为x字节的第三标识的初始化语音数据,剩余的语音数据为从空中传输的语音数据,其中x字节的语音数据全部为0,且x<w,w为待处理的语音数据的字节个数。5.如权利要求1所述的方法,其特征在于,依次获取读取的每个语音数据包携带的数据和状态标识,并根据获取结果确定所述语音数据的第一位置,根据所述第一位置确定处理起始位置,具体包括:依次获取读取的每个语音数据包携带的数据和状态标识,基于获取到的每个数据包的数据和状态标识,记录第一次出现状态标识不是第三标识的语音数据包的位置作为第一位置,并统计所述第一位置所在的语音数据包数据开头能够连续获取到的0数据的个数y,判断y的大小是否为0,若是,则将第一周期读取的第一个语音数据包作为处理起始位置,否则,计算i=((y*p)/m)+1,从第一位置开始再统计p-i个的语音数据包后的位置作为处理起始位置。6.如权利要求1-5任一项所述的方法,其特征在于,从所述处理起始位置开始,在每一个周期内,从接收的语音数据中读取p个语音数据包,并根据读取的p个语音数据包携带的数据和状态标识,确定对应的空中传输的各个语音数据包携带的数据和状态标识,具体包括:确定p大于q且小于2q时,从所述处理起始位置开始,在每一个周期内,
\t从接收的语音数据中读取p个语音数据包,将所述p个语音数据包与空中传输的q个语音数据包进行对齐处理,根据读取的p个语音数据包携带的数据确定空中传输的各个语音数据包携带的数据,以及根据读取的第一个语音数据包的状态标识,确定空中传输的第一个语音数据包的状态标识;根据空中传输的第一个语音数据包的状态标识、读取的p个语音数据包的状态标识和空中传输的各个语音数据包携带的数据,确定对应的空中传输的各个语音数据包的状态标识,其中空中传输的第一个语音数据包的状态标识和读取的第一个语音数据包的状态标识相同。7.如权利要求6所述的方法,其特征在于,根据空中传输的第一个语音数据包的状态标识、读取的p个语音数据包的状态标识和空中传输的各个语音数据包携带的数据,确定对应的空中传输的各个语音数据包的状态标识,具体包括:在空中传输的一个语音数据包的状态标识不是第二标识时,根据对应的读取的下一个语音数据包的状态标识,确定空中传输的下一个语音数据包的状态标识,并建立空中传输的下一个语音书包的状态标识与所述空中传输的一个语音数据包的状态标识、读取的下一个语音数据包的状态标识之间的第一映射关系;在确定空中传输的第一个语音数据包的状态标识不是第二标识时,根据空中传输的第一个语音数据包的状态标识和读取的第二个语音数据包的状态标识,利用第一映射关系确定空中传输的第二个语音数据包的状态标识;在确定空中传输的第一个语音数据包的状态标识是第二标识时,根据空中传输的第二个语音数据包携带的数据和读取的第三个语音数据包的状态,确定空中传输的第二个语音数据包的状态标识;继续根据空中传输的一个语音数据包的状态标识、读取的下一个语音数据包的状态标识和空中传输的下一个语音数据包携带的数据、确定空中传输的下一个语音数据包的状态标识,直到确定出空中传输的每一个语音数据包的状态
\t标识为止。8.如权利要求7所述的方法,其特征在于,在确定空中传输的第一个语音数据包的状态标识是第二标识时,根据空中传输的第二个语音数据包携带的数据和读取的第三个语音数据包的状态,确定空中传输的第二个语音数据包的状态标识,具体包括:在确定空中传输的第一个语音数据包的状态标识是第二标识时,获取空中传输的第二个语音数据包携带的数据,判断空中传输的第二个语音数据包携带的数据是否全为0,若是,则判定空中传输的第二个语音数据包的状态标识为第三标识;否则,进一步判断读取的第三个语音数据包的状态标识是否为第二标识,若是,则判定空中传输的第二个语音数据包的状态标识为第二标识;否则,判定空中传输的第二个语音数据包的状态标识为第一标识。9.如权利要求1-5任一项所述的方法,其特征在于,从所述处理起始位置开始,在每一个周期内,从接收的语音数据中读取p个语音数据包,并根据读取的p个语音数据包携带的数据和状态标识,确定对应的空中传输的各个语音数据包携带的数据和状态标识,具体包括:确定p不小于2q时,从所述处理起始位置开始,在每一个周期内,从接收的语音数据中读取p个语音数据包,将所述p个语音数据包与空中传输的q个语音数据包进行对齐处理,根据读取的p个语音数据包携带的数据确定空中传输的各个语音数据包携带的数据;获取读取的p个语音数据包的状态标识,确定空中传输的各个语音数据包的状态标识,其中空中传输的第i个语音数据包的状态标识与读取的第a个语音数据包的状态标识相同,a=(p*i/q),a取正整数,i为大于0且不大于q的正整数。10.如权利要求1所述的方法,其特征在于,基于空中传输的各个语音数据包携带的数据和状态标识,对在当前周期内接收的语音数据进行补偿处理,
\t包括:若空中传输的一个语音数据包的状态标识为第三标识时,对当前周期内接收的语音数据中对应于所述一个语音数据包的语音数据进行补偿处理。11.一种蓝牙音箱通话音质的处理装置,其特征在于,包括:读取单元,用于在接收到待处理...

【专利技术属性】
技术研发人员:陈金宏
申请(专利权)人:炬新珠海微电子有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1