一种蓝牙音箱通话音质的调试方法和装置的制造方法
【专利摘要】本发明公开了一种蓝牙音箱通话音质的调试方法和装置,以解决蓝牙音频数据分析能力和分析效率低下的问题。该装置包括:接收模块、数据解析模块和语音数据保存模块,其中,接收模块用于获取蓝牙模组控制端的数据包,数据包包括数据包的数据和数据包的状态标识两部分;数据解析模块,用于解析获取到的数据包,获得数据包的解析结果,并依据解析结果,筛选出语音数据包保存到语音数据保存模块;语音数据保存模块,用于将筛选出的语音数据包拆分为语音数据和状态标识两部分,将语音数据部分保存到左声道中以及将放大x倍后的状态标识部分保存到右声道中,并进行左右声道数据的同步输出,从而,能够提升蓝牙音频数据的分析能力和分析效率。
【专利说明】
一种蓝牙音箱通话音质的调试方法和装置
技术领域
[0001] 本发明涉及蓝牙技术领域,尤其涉及一种蓝牙音箱通话音质的调试方法和装置。
【背景技术】
[0002] 参阅图1所示,手机通话时,将语音数据编码并加密,然后通过无线射频信号 (RF)发送给音箱。音箱的控制器(Controller)端接收空中的语音数据并解析,然后通过 UART (串口)发送给音箱的Host (主控)端。Host (主控)收到数据后进行一些后期处理然 后才丢给DAC(数模转换器)从音箱的Speaker (喇叭)端输出声音,其中Controller (控 制器)是外接的蓝牙模组,Host (主控)是蓝牙音箱的主控芯片。当我们想实时的分析 Controller (控制器)发送给Host (主控)的语音数据时,往往需要借助第三方工具,因为 Host (主控)端的硬件资源(主频、内存、存储)受限。第三方工具即UART sniffer (串口 监听器),通常使用的有Ellisys或者Frontline两家的蓝牙协议分析仪。
[0003] 这些蓝牙协议分析仪可以抓取空中或者UART(串口)的所有蓝牙数据,并实时的 在PC端配套软件将数据解析,对平时蓝牙协议栈的研究和调试都有很大帮助。
[0004] 但是这些分析工具都仅支持将抓取到的所有导出为wav格式的语音数据。当使用 音频分析工具分析导出的wav文件时,可能会发现某段声音不正常,这时需要确认这部分 音频数据是否出现丢包或者错包,需要返回到sniffer配套的PC工具中,从抓取到的蓝牙 数据里头找出对应的数据帧,根据帧头的状态信息确认是否丢包或者错包,这是一个相当 繁琐和效率低下的过程。
[0005] 如图2所示白色位置明显出现断音,当我们想确认白色部分的音频数据是否出现 丢包时,我们需要先从PC工具中找到音频数据起始位置的时间戳,如图3为148. 316s,再 加上图2中想查看位置的时间偏移6. 588s,得到154. 904s。找到图4所示位置,即为该音 频数据对应的原始数据,分析其数据帧的状态(status)为数据部分丢失(data partially loss),即对应的音频数据有丢包。
[0006] 而对于错包,则无法从音频分析工具上发现。
[0007] 另外,利用UART sniffer导出的音频文件无法在PC上模拟主控端(Host)进行丢 包补偿处理,无法方便的统计出音频数据的错误率和错误分布情况,进而大大地限制了对 音频数据的分析能力。
【发明内容】
[0008] 本发明的目的是提供一种蓝牙音箱通话音质的调试方法和装置,以解决现有技术 蓝牙音频数据分析能力和分析效率低下的问题。
[0009] 本发明的目的是通过以下技术方案实现的:
[0010] -种蓝牙音箱通话音质的调试装置,包括:
[0011] 接收模块,用于获取蓝牙模组控制端的数据包,所述数据包包括数据包的数据和 数据包的状态标识两部分;
[0012] 数据解析模块,用于解析获取到的数据包,获得数据包的解析结果,并依据解析结 果,筛选出语音数据包保存到语音数据保存模块;
[0013] 所述语音数据保存模块,用于将筛选出的语音数据包拆分为语音数据和状态标识 两部分,将语音数据部分保存到左声道中以及将放大X倍后的状态标识部分保存到右声道 中,并进行左右声道数据的同步输出,其中X为设定的正数。
[0014] 这样通过自制的蓝牙调试装置来分析语音数据,能够避免购买UARTsniffer产生 的较大开销,而且自制调试工具的实现方法简单,硬件要求低,只需具有能够接收控制器端 UART接口数据功能的开发板即可,更重要的是通过自制的蓝牙调试装置抓取后的音频数据 直观明了,易于分析,可用于仿真Host端对音频数据的处理过程,从而对Host端处理进行 优化,还能进一步对实时通话的语音数据进行评估。
[0015] 可选的,所述接收模块从蓝牙模组控制端获取的数据包类型为主机控制器接口 HCI命令数据包、HCI异步数据包、HCI同步数据包和HCI事件包的任意种组合,其中HCI同 步数据包为语音数据包。
[0016] 可选的,解析获取到的数据包,获得数据包的解析结果时,所述数据解析模块具体 用于:
[0017] 在接收模块获取到所述数据包后,针对数据包的数据部分,获取1字节的数据,确 定数据包的类型和数据包的包头长度;
[0018] 基于数据包的包头长度,获取数据包的包头数据,确定数据包的数据长度,获得解 析结果。
[0019] 可选的,依据解析结果,筛选出语音数据包保存到语音数据保存模块时,所述数据 解析模块具体用于:
[0020] 依据数据包的解析结果,判断所述数据包的类型是否为HCI同步数据包,若是,则 将所述数据包标记为语音数据包;否则,依据所述数据包的数据长度,将所述数据包丢掉;
[0021] 筛选出所有标记为语音数据包的数据包,基于所述语音数据包的解析结果将所述 语音数据包保存到所述语音数据保存模块。
[0022] 可选的,将筛选出的语音数据包拆分为语音数据和状态标识两部分,将语音数据 部分保存到左声道中以及将放大X倍后的状态标识部分保存到右声道中,并进行左右声道 数据的同步输出时,所述语音数据保存模块具体用于:
[0023] 将筛选出的语音数据包拆分为语音数据和状态标识两部分,将语音数据部分保存 到左声道中以及将放大X倍后的状态标识部分保存到右声道中,以及将左声道中的语音数 据部分和对应的右声道中状态标识部分进行对齐处理,并进行同步输出。
[0024] -种蓝牙音箱通话音质的分析装置,包括:
[0025] 语音数据提取模块,用于接收上述蓝牙音箱通话音质的调试装置中输出的语音数 据包,从所述语音数据包中提取语音数据,将语音数据包的语音数据部分和状态标识部分 进行分离,获取所述语音数据包的语音数据和状态标识;
[0026] 语音数据重对齐模块,用于基于所述语音数据包的语音数据和状态标识,将语音 数据包的大小调整为空中传输的语音数据包的大小,以及针对语音数据包的状态标识进行 修正处理,得到修正后的语音数据包,并输出到语音数据保存模块;
[0027] 语音数据PLC处理模块,用于获取修正后的语音数据包,并根据数据包的状态标 识判断对应的数据包的数据是否进行丢包补偿处理,若是,则进行丢包补偿处理;否则,进 行简单平滑处理,得到处理后的语音数据包,并输出到所述语音数据保存模块;
[0028] 语音数据统计模块,用于从语音数据重对齐模块和语音数据PLC处理模块获取处 理中的数据包进行统计分析,得到统计结果,并输出到所述语音数据保存模块;
[0029] 语音数据保存模块,用于将语音数据重对齐模块,语音数据PLC处理模块和语音 数据统计模块的输出文件进行保存。
[0030] 这样,能够进一步针对蓝牙调试装置输出的语音数据进行详细分析,分析过程直 观,分析效率高,提高了针对音频数据的分析能力,且分析结果直观。
[0031] 一种蓝牙音箱通话音质的调试方法,包括:
[0032] 获取蓝牙模组控制端的数据包,所述数据包包括数据包的数据和数据包的状态标 识两部分;
[0033] 解析获取到的数据包,获得数据包的解析结果,并依据解析结果,筛选出语音数据 包并进行保存;
[0034] 将筛选出的语音数据包拆分为语音数据和状态标识两部分,将语音数据部分保存 到左声道中以及将放大X倍后的状态标识部分保存到右声道中,并进行左右声道数据的同 步输出,其中X为设定的正数。
[0035] 这样抓取后的音频数据直观明了,易于分析,可用于仿真Host端对音频数据的处 理过程,从而对Host端处理进行优化,还能进一步对实时通话的语音数据进行评估。
[0036] 可选的,从蓝牙模组控制端获取的数据包类型为主机控制器接口 HCI命令数据 包、HCI异步数据包、HCI同步数据包和HCI事件包的任意种组合,其中HCI同步数据包为语 音数据包。
[0037] 可选的,解析获取到的数据包,获得数据包的解析结果,具体包括:
[0038] 在获取到所述数据包后,针对数据包的数据部分,获取1字节的数据,确定数据包 的类型和数据包的包头长度;
[0039] 基于数据包的包头长度,获取数据包的包头数据,确定数据包的数据长度,获得解 析结果。
[0040] 可选的,依据解析结果,筛选出语音数据包保存到语音数据保存模块,具体包括:
[0041] 依据数据包的解析结果,判断所述数据包的类型是否为HCI同步数据包,若是,则 将所述数据包标记为语音数据包;否则,依据所述数据包的数据长度,将所述数据包丢掉;
[0042] 筛选出所有标记为语音数据包的数据包,基于所述语音数据包的解析结果将所述 语音数据包进行保存。
[0043] 可选的,将筛选出的语音数据包拆分为语音数据和状态标识两部分,将语音数据 部分保存到左声道中以及将放大X倍后的状态标识部分保存到右声道中,并进行左右声道 数据的同步输出,具体包括:
[0044] 将筛选出的语音数据包拆分为语音数据和状态标识两部分,将语音数据部分保存 到左声道中以及将放大X倍后的状态标识部分保存到右声道中,以及将左声道中的语音数 据部分和对应的右声道中状态标识部分进行对齐处理,并进行同步输出。
[0045] -种蓝牙音箱通话音质的分析方法,包括:
[0046] 接收按照蓝牙音箱通话音质的调试方法中输出的语音数据包,从所述语音数据包 中提取语音数据,将语音数据包的语音数据部分和状态标识部分进行分离,获取所述语音 数据包的语音数据和状态标识;
[0047] 基于所述语音数据包的语音数据和状态标识,将语音数据包的大小调整为空中传 输的语音数据包的大小,以及针对语音数据包的状态标识进行修正处理,得到修正后的语 音数据包,并进行输出;
[0048] 获取修正后的语音数据包,并根据数据包的状态标识判断对应的数据包的数据是 否进行丢包补偿处理,若是,则进行丢包补偿处理;否则,进行简单平滑处理,得到处理后的 语音数据包,并进行输出;
[0049] 从语音数据重对齐模块和语音数据PLC处理模块获取处理中的数据包进行统计 分析,得到统计结果,并进行输出;
[0050] 获取输出的文件进行保存。
[0051] 这样,能够进一步针对蓝牙调试装置输出的语音数据进行详细分析,分析过程直 观,分析效率高,提高了针对音频数据的分析能力,且分析结果直观。
【附图说明】
[0052] 图1为现有技术中通话语音数据的调试装置示意图;
[0053] 图2为音频数据出现丢包的示意图;
[0054] 图3和图4为现有通过音频分析工作分析结果示意图;
[0055] 图5为本发明实施中的通话语音数据的调试装置示意图;
[0056] 图6为本发明实施中UART tool的结构示意图;
[0057] 图7为本发明实施例中UART tool的结构连接示意图;
[0058] 图8为本发明实施例中UART tool的工作原理示意图;
[0059] 图9为本发明实施例中UART数据解析流程示意图;
[0060] 图10为本发明实施例中UART tool保存的语音数据示意图;
[0061] 图11为本发明实施例中UART tool保存的语音数据经放大后的示意图;
[0062] 图12为本发明实施例中蓝牙音箱通话音质分析装置的工作原理示意图;
[0063] 图13为本发明实施例中分析装置的结构框架示意图;
[0064] 图14为本发明实施例中空中数据包和UART端语音数据包的状态示意图;
[0065] 图15为本发明实施例中分析装置的输出结果示意图;
[0066] 图16为本发明实施例中图11中的语音数据经过重对齐处理后的语音数据示意 图;
[0067] 图17为本发明实施例中图11中的语音数据经过PLC处理前和处理后的语音数据 示意图;
[0068] 图18为本发明实施例中图17的部分语音数据经放大后的示意图;
[0069] 图19为本发明实施中分析装置的语音数据分析统计模块的输出结果示意图;
[0070] 图20为本发明实施例中输入到分析装置的影响PLC处理的部分语音数据示意图。
【具体实施方式】
[0071] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,并不是全部的实施例。基于 本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他 实施例,都属于本发明保护的范围。
[0072] 为了解决串口监听器(UART sniffer)无法满足对音频数据高效分析的缺点,结合 自身需求,采用自制的UART tool,具体架构参阅图5所示,自制串口监听工具(UART tool) 主要由UART接收模块、UART数据解析模块和UART语音数据保存模块三部分组成,具体模 块构成参阅图6所示。UART接收模块负责UART相关硬件接口的初始化及UART数据的接收 和发送(这里只需要接收功能);UART数据解析模块主要负责从UART接收模块获取UART 数据并按照蓝牙主机控制器接口(HCI)数据的格式进行数据解析,从而得到想要的SCO数 据包交给UART语音数据保存模块;UART语音数据保存模块主要负责将语音数据按照特定 的格式保存到存储介质中,既可以保存到存储卡中,也可以通过通用串行总线(USB)传输 到PC上保存。
[0073] 由于UART tool对硬件的要求比较低,所以能够容易的在平时的研发资源中方便 的找到满足条件的开发板进行制作。本发明实施中选择了旧的UTS2825方案遗留下来的板 子作为UART tool,其具有满足RS232标准的UART接口及卡槽。将蓝牙音箱开发板蓝牙模 组的UART TX 口引线,连接到UART tool的UART RX 口引线上,插入一张足够容量的安全数 码卡(SD卡),给板子上电就可以实时抓取通话时的语音数据进行分析。此外还有一点需要 保证的是两块板子共地,否则UART无法正常收发数据,具体示意图参阅图7所示
[0074] 下面以UART接收模块、UART数据解析模块和UART语音数据保存模块为例,介绍 UART tool工作原理如下,具体可参阅图8所示:
[0075] 步骤800 :UART tool接收模块获取蓝牙模组控制端的数据包,数据包包括数据包 的数据和数据包的状态标识两部分。
[0076] 进一步的,UART tool接收模块从蓝牙模组控制端获取的数据包类型为HCI命令 数据包、HCI异步数据包、HCI同步数据包和HCI事件包的任意种组合,其中HCI同步数据包 为语音数据包。
[0077] 根据蓝牙核心规范定义,Controller端和Host端的交互是通过HCI来完成的,HCI 分为如下4种类型包,具体见表1所示.
[0078] 表 1
[0079]
[0080] 具体的,协议中规定的HCI的数据包的格式可参阅图9所示,这里将4种HCI数据 包格式归纳为如下4条表达式。
[0081] HCI Command Packet :lbyte type+3bytes header+N bytes data(N = header [2])
[0082] HCI ACL Data Packet :lbyte type+4bytes header+N bytes data(N = header[2]|(header[3]〈〈8))
[0083] HCI Synchronous Data Packet :lbyte type+3bytes header+N bytes data(N = header [2])
[0084] HCI Event Packet :lbyte type+2bytes header+N bytes data(N = header[1])
[0085] 具体的,语音数据包包括数据包的数据和数据包的状态标识两部分。参阅表2所 示,语音数据包的状态标识用二进制表示法来表示,具有〇〇、〇1、10、11四种类型,而数据则 为分析时真正需要的语音数据。状态标识四种类型值的对应意义可以大概理解为好包、错 包、丢包、部分丢包,其中数据包的状态标识,由蓝牙模组控制器发送并包含在数据包内。
[0086] 表 2
[0087]
[0088] 步骤801 :UART too 1的数据解析模块解析获取到的数据包,获得数据包的解析结 果,并依据解析结果,筛选出语音数据包保存到UART tool的语音数据保存模块。
[0089] 具体的,UART tool的数据解析模块解析获取到的数据包,获得数据包的解析结 果,具体过程为:在UART tool接收模块获取到数据包后,针对数据包的数据部分,获取1字 节的数据,确定数据包的类型和数据包的包头长度;进一步基于数据包的包头长度,获取数 据包的包头数据,确定数据包的数据长度,获得解析结果。
[0090] 具体的,UART tool的数据解析模块依据依据解析结果,筛选出语音数据包保存到 UART tool的语音数据保存模块,具体过程为:依据数据包的解析结果,判断数据包的类型 是否为HCI同步数据包,若是,则将该数据包标记为语音数据书包;否则,依据该数据包的 数据长度,将该数据包丢掉;筛选出所有标记为语音数据包的数据包,基于该语音数据包的 解析结果将该语音数据包保存到UART tool的语音数据保存模块。
[0091] 例如,参阅图9所示,UART tool的数据解析主要是一个状态转换的循环过程,首 先初始时获取1字节数据解析数据包的类型状态,即执行步骤901,接着转换为解析包头状 态,即执行步骤902,获取数据包的包头数据进行解析,确定数据的长度,最后是解析数据包 的数据,即执行步骤903,若是语音数据包,则将该数据包发往UART tool的语音数据保存 模块,若不是语音数据包,则依据该数据包的长度将该语音数据包进行丢弃处理。在这三个 过程中,任何一个状态出现异常都会回到解析包类型的初始状态即步骤901,当解析到HCI 同步数据包(Synchronous Data Packet)时,即为需要的语音数据包,将该语音数据包交给 UART tool的语音数据保存模块处理,而对于其它三种类型的数据包,则直接略过,继续解 析剩余的数据包。
[0092] 步骤802 :UART tool的语音数据保存模块将筛选出的语音数据包拆分为语音数 据和状态标识两部分,将语音数据部分保存到左声道中以及将放大X倍后的状态标识部分 保存到右声道中,并进行左右声道数据的同步输出,其中X为设定的正数。
[0093] 例如,UART tool的语音数据保存模块将从UART tool的数据解析模块接收到的 语音数据包(Synchronous Data Packet)拆分为语音数据(Data)和状态标识两部分。
[0094] 具体的,UART tool的语音数据保存模块将筛选出的语音数据包拆分为语音数据 和状态标识两部分,将语音数据部分保存到左声道中以及将放大X倍后的状态标识部分保 存到右声道中,以及将左声道中的语音数据部分和对应的右声道中状态标识部分进行对齐 处理,并进行同步输出。
[0095] 为了使保存下来的语音数据结果更加直观,较佳的,语音数据保存模块将语音数 据部分保存到左声道中,而状态标识的值进行1〇〇〇倍放大并保存到语音数据对应的右声 道中。参阅图10所示,白色椭圆1所示的白线分割的上边为左声道数据,下边为右声道数 据,即上边是通话时的原始语音数据,下边是语音数据对应的status。将白色椭圆2所示的 白色底对应的左右声道放大后得到如图11所示的图像,可以直观的看出白色椭圆1所示的 数据是一条数值都为〇的平直线,出现丢包,同时其对应的右声道数值如白色椭圆2所示为 一条数值为2000的平直线,也意味着对应的语音数据出现丢包。而从图10中可以初略的 看出本次通话的语音数据比较理想,出现丢包和错包的地方较少,由此可以看出UART Tool 针对语音数据分析更加的快速准确。
[0096] UART Tool的语音数据保存模块最终输出一个名为sco. pcm的文件,已经从图10 中看到音频分析工具UART Tool输出的结果示意图。
[0097] 本发明实施例中还提供一种蓝牙音箱通话音质的分析装置,应用在客户端,能够 通过在PC端运行程序实现该分析装置的功能,下面以语音数据提取模块、语音数据重对齐 模块、语音数据PLC处理模块、语音数据统计模块和语音数据保存模块为例,介绍该分析装 置的工作原理如下,具体可参阅图12所示,其中,分析装置的架构可参阅图13所示:
[0098] 步骤120 :分析装置的语音数据提取模块接收UART Tool中输出的语音数据包,从 该语音数据包中提取语音数据,将语音数据包的语音数据部分和状态标识部分进行分离, 获取该语音数据包的语音数据和状态标识;
[0099] 步骤121 :分析装置的语音数据重对齐模炔基于该语音数据包的语音数据和状态 标识,将语音数据包的大小调整为空中传输的语音数据包的大小,以及针对语音数据包的 状态标识进行修正处理,得到修正后的语音数据包,并输出到语音数据保存模块;
[0100] 步骤122 :分析装置的语音数据PLC处理模块获取修正后的语音数据包,并根据数 据包的状态标识判断是否需要进行丢包补偿处理,若是,则进行丢包补偿处理;否则,进行 简单的平滑处理,得到处理后的语音数据包,并输出到语音数据保存模块。
[0101] 步骤123 :分析装置的语音数据统计模块从语音数据重对齐模块和语音数据PLC 处理模块获取处理中的数据包进行统计分析,得到统计结果,并输出到语音数据保存模块。
[0102] 步骤124 :分析装置的语音数据保存模块将语音数据重对齐模块、语音数据PLC处 理模块和语音数据统计模块的输出结果进行保存。
[0103] 例如,该分析装置将sco. pcm文件作为输入,利用PC上强大的资源可以快速的开 发一个控制台应用程序,仿真主控(Host)端的处理,从而可以对Host端的处理算法进行分 析和优化。
[0104] 参阅图13所示,pC端控制台应用程序(分析装置)主要由5个模块构成。其中, 语音数据提取模块130负责从输入的sco. pcm文件提取语音数据,将语音数据和状态标识 分离开来并交给语音数据重对齐模块131。语音数据重对齐模块131的目的是尝试恢复空 中真正数据包及其状态。参阅图14所示,由于控制器(Controller)端的重组导致送给的主 控(Host)端的数据包(Packet)大小变为48bytes,与空中实际传输时使用的Packet大小 60bytes不等,进而导致由于状态标记为丢包而浪费了空中实际上没有丢包的部分数据。针 对此等浪费,语音数据重对齐模块131会将Packet的大小从48bytes恢复为60bytes并修 正其对应的状态;语音数据重对齐模块131会将处理后的数据送给语音数据PLC处理模块 132进行PC端仿真处理,送给语音数据统计模块133辅助分析,送给各阶段数据保存模块 134进行输出结果保存;语音数据PLC处理模块132主要是将蓝牙音箱上Host端的PLC处 理代码移植到PC上进行同步仿真处理。该模块包括了根据状态判断是否进行丢包补偿处 理;语音数据统计模块133主要统计由于没有足够的前向有效数据导致无法得到最优PLC 处理效果时的附近语音数据某段时间内的错误率;语音数据保存模块134主要将语音数据 重对齐模块131、语音数据PLC处理模块132及语音数据统计模块133的输出结果保存到文 件中。
[0105] 参阅图15所示,将sco. pcm文件作为输入,PC端控制台应用程序(分析装置)最 终输出realign_sco. pcm、plc_sco. pcm和info_sco. txt三个文件分别对应语音数据重对 齐模块131、语音数据PLC处理模块132及语音数据统计模块133的处理结果。参阅16显 示的是前面图11经过语音数据重对齐模块131处理后的结果,可以看到图11白色椭圆3 所示原先标记为部分丢包的数据经过修正后如图16白色椭圆所示没有丢包的相应位置标 记为好包(00)。
[0106] 用户用音频分析工具打开plc_sco. pcm文件可以看到是一个采样率为8KHz的立 体声音频文件,如图17所示。其中,白色横线上部分为左声道数据代表了进行PLC补偿前 的语音数据,白色横线下部分为右声道数据代表了进行PLC补偿后的语音数据。将图17中 白色底所示的数据进行放大,得到图18所示结果。图18的框中,上边语音数据有断的部分 在下边的语音数据是连续的,那就是PLC补偿后的结果。通过这样子的比对,用户可以对处 理结果不满意处的声音数据进行分析,看是否有处理不当的地方。
[0107] 图19是语音数据分析统计模块的结果,首先第一行的意思是在11. 100s处的前向 有效数据不够,可能导致PLC处理效果不理想,其前向60ms内有25%的数据无效,并且实际 进行PLC处理后,前向60ms内有50%的数据是无效的。图20中垂直虚线处就是11. 100s 的位置,可以看到垂直虚线前确实存在一段较长时间的丢包,会影响PLC处理效果。但是由 于该时间段内恰好是静音数据,所以最终声音输出时只有很轻微的影响。
[0108] 蓝牙模组控制器(Controller)端与主控(Host)端通信的硬件接口除了使用 UART (H4),还可能使用USB、SD、UART (H5)、PCM其它接口。无论使用何种硬件通信接口,均 可使用一样的调试方法,只是数据的获取方法不同。
[0109] 综上所述,本发明实施例中通过自制的UART tool获取蓝牙模组控制端的数据包, 数据包包括数据包的数据和数据包的状态标识两部分;并解析获取到的数据包,获得数据 包的解析结果,并依据解析结果,筛选出语音数据包保存到语音数据保存模块;以及将筛选 出的语音数据包拆分为语音数据和状态标识两部分,将语音数据部分保存到左声道中以及 将放大X倍后的状态标识部分保存到右声道中,并进行左右声道数据的同步输出,这样通 过自制的蓝牙调试装置来分析语音数据,能够避免购买UART sniffer产生的较大开销,而 且自制UART tool实现方法简单,硬件要求低,只需具有能够接收控制器端UART接口数据 功能的开发板即可,更重要的是通过UART tool抓取后的音频数据直观明了,易于分析,可 用于仿真Host端对音频数据的处理过程,从而对Host端处理进行优化,还能进一步对实时 通话的语音数据进行评估。
[0110] 本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序 产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实 施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机 可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产 品的形式。
[0111] 本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程 图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一 流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算 机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理 器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生 用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能 的装置。
[0112] 这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特 定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指 令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或 多个方框中指定的功能。
[0113] 这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计 算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或 其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图 一个方框或多个方框中指定的功能的步骤。
[0114] 尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造 性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优 选实施例以及落入本发明范围的所有变更和修改。
[0115] 显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发 明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求 及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
【主权项】
1. 一种蓝牙音箱通话音质的调试装置,其特征在于,包括: 接收模块,用于获取蓝牙模组控制端的数据包,所述数据包包括数据包的数据和数据 包的状态标识两部分; 数据解析模块,用于解析获取到的数据包,获得数据包的解析结果,并依据解析结果, 筛选出语音数据包保存到语音数据保存模块; 所述语音数据保存模块,用于将筛选出的语音数据包拆分为语音数据和状态标识两部 分,将语音数据部分保存到左声道中以及将放大X倍后的状态标识部分保存到右声道中, 并进行左右声道数据的同步输出,其中X为设定的正数。2. 如权利要求1所述的装置,其特征在于,所述接收模块从蓝牙模组控制端获取的数 据包类型为主机控制器接口 HCI命令数据包、HCI异步数据包、HCI同步数据包和HCI事件 包的任意种组合,其中HCI同步数据包为语音数据包。3. 如权利要求1所述的装置,其特征在于,解析获取到的数据包,获得数据包的解析结 果时,所述数据解析模块具体用于: 在接收模块获取到所述数据包后,针对数据包的数据部分,获取1字节的数据,确定数 据包的类型和数据包的包头长度; 基于数据包的包头长度,获取数据包的包头数据,确定数据包的数据长度,获得解析结 果。4. 如权利要求1、2或3所述的装置,其特征在于,依据解析结果,筛选出语音数据包保 存到语音数据保存模块时,所述数据解析模块具体用于: 依据数据包的解析结果,判断所述数据包的类型是否为HCI同步数据包,若是,则将所 述数据包标记为语音数据包;否则,依据所述数据包的数据长度,将所述数据包丢掉; 筛选出所有标记为语音数据包的数据包,基于所述语音数据包的解析结果将所述语音 数据包保存到所述语音数据保存模块。5. 如权利要求1所述的装置,其特征在于,将筛选出的语音数据包拆分为语音数据和 状态标识两部分,将语音数据部分保存到左声道中以及将放大X倍后的状态标识部分保存 到右声道中,并进行左右声道数据的同步输出时,所述语音数据保存模块具体用于: 将筛选出的语音数据包拆分为语音数据和状态标识两部分,将语音数据部分保存到左 声道中以及将放大X倍后的状态标识部分保存到右声道中,以及将左声道中的语音数据部 分和对应的右声道中状态标识部分进行对齐处理,并进行同步输出。6. -种蓝牙音箱通话音质的分析装置,其特征在于,包括: 语音数据提取模块,用于接收权利要求1中的所述装置中输出的语音数据包,从所述 语音数据包中提取语音数据,将语音数据包的语音数据部分和状态标识部分进行分离,获 取所述语音数据包的语音数据和状态标识; 语音数据重对齐模块,用于基于所述语音数据包的语音数据和状态标识,将语音数据 包的大小调整为空中传输的语音数据包的大小,以及针对语音数据包的状态标识进行修正 处理,得到修正后的语音数据包,并输出到语音数据保存模块; 语音数据PLC处理模块,用于获取修正后的语音数据包,并根据数据包的状态标识判 断对应的数据包的数据是否进行丢包补偿处理,若是,则进行丢包补偿处理;否则,进行简 单平滑处理,得到处理后的语音数据包,并输出到所述语音数据保存模块; 语音数据统计模块,用于从语音数据重对齐模块和语音数据PLC处理模块获取处理中 的数据包进行统计分析,得到统计结果,并输出到所述语音数据保存模块; 语音数据保存模块,用于将语音数据重对齐模块,语音数据PLC处理模块和语音数据 统计模块的输出文件进行保存。7. -种蓝牙音箱通话音质的调试方法,其特征在于,包括: 获取蓝牙模组控制端的数据包,所述数据包包括数据包的数据和数据包的状态标识两 部分; 解析获取到的数据包,获得数据包的解析结果,并依据解析结果,筛选出语音数据包并 进行保存; 将筛选出的语音数据包拆分为语音数据和状态标识两部分,将语音数据部分保存到左 声道中以及将放大X倍后的状态标识部分保存到右声道中,并进行左右声道数据的同步输 出,其中X为设定的正数。8. 如权利要求7所述的方法,其特征在于,从蓝牙模组控制端获取的数据包类型为主 机控制器接口 HCI命令数据包、HCI异步数据包、HCI同步数据包和HCI事件包的任意种组 合,其中HCI同步数据包为语音数据包。9. 如权利要求7所述的方法,其特征在于,解析获取到的数据包,获得数据包的解析结 果,具体包括: 在获取到所述数据包后,针对数据包的数据部分,获取1字节的数据,确定数据包的类 型和数据包的包头长度; 基于数据包的包头长度,获取数据包的包头数据,确定数据包的数据长度,获得解析结 果。10. 如权利要求7、8或9所述的方法,其特征在于,依据解析结果,筛选出语音数据包保 存到语音数据保存模块,具体包括: 依据数据包的解析结果,判断所述数据包的类型是否为HCI同步数据包,若是,则将所 述数据包标记为语音数据包;否则,依据所述数据包的数据长度,将所述数据包丢掉; 筛选出所有标记为语音数据包的数据包,基于所述语音数据包的解析结果将所述语音 数据包进行保存。11. 如权利要求7所述的方法,其特征在于,将筛选出的语音数据包拆分为语音数据和 状态标识两部分,将语音数据部分保存到左声道中以及将放大X倍后的状态标识部分保存 到右声道中,并进行左右声道数据的同步输出,具体包括: 将筛选出的语音数据包拆分为语音数据和状态标识两部分,将语音数据部分保存到左 声道中以及将放大X倍后的状态标识部分保存到右声道中,以及将左声道中的语音数据部 分和对应的右声道中状态标识部分进行对齐处理,并进行同步输出。12. -种蓝牙音箱通话音质的分析方法,其特征在于,包括: 接收按照权利要求7中的方法输出的语音数据包,从所述语音数据包中提取语音数 据,将语音数据包的语音数据部分和状态标识部分进行分离,获取所述语音数据包的语音 数据和状态标识; 基于所述语音数据包的语音数据和状态标识,将语音数据包的大小调整为空中传输的 语音数据包的大小,以及针对语音数据包的状态标识进行修正处理,得到修正后的语音数 据包,并进行输出; 获取修正后的语音数据包,并根据数据包的状态标识判断对应的数据包的数据是否进 行丢包补偿处理,若是,则进行丢包补偿处理;否则,进行简单平滑处理,得到处理后的语音 数据包,并进行输出; 从语音数据重对齐模块和语音数据PLC处理模块获取处理中的数据包进行统计分析, 得到统计结果,并进行输出; 获取输出的文件进行保存。
【文档编号】H04R1/20GK105992093SQ201510099083
【公开日】2016年10月5日
【申请日】2015年3月5日
【发明人】陈金宏, 林繁锋
【申请人】炬新(珠海)微电子有限公司