一种音频缺陷定位方法、装置及终端设备转让专利
申请号 : CN201811591010.1
文献号 : CN111354383B
文献日 : 2021-07-27
发明人 : 熊友军 , 潘宇超
申请人 : 深圳市优必选科技有限公司
摘要 :
权利要求 :
1.一种音频缺陷定位方法,其特征在于,包括:接收应用程序传输的音频数据,控制本地层依次对所述音频数据执行应用程序数据交互操作、音频处理操作以及硬件设备数据交互操作以实现对所述音频数据的播放,并对每个所述操作接收的所述音频数据进行缓存,得到与每个所述操作分别对应的所述音频缓存;
接收音频检测指令,并基于所述音频检测指令中包含的音频数据信息,读取本地层中多个所述操作分别对应的多个所述音频缓存;
对多个所述音频缓存按照多个所述操作的执行顺序依次进行分析,直至查找出其中首个存在音频缺陷的音频缓存;
将负责对所述首个存在音频缺陷的音频缓存对应的音频数据进行处理的所述操作,判定为产生音频缺陷的操作。
2.如权利要求1所述的音频缺陷定位方法,其特征在于,所述接收应用程序传输的所述音频数据,控制所述本地层依次对所述音频数据执行所述应用程序数据交互操作、所述音频处理操作以及所述硬件设备数据交互操作以实现对所述音频数据的播放,并对每个所述操作接收的所述音频数据进行缓存,得到与每个所述操作分别对应的所述音频缓存,包括:接收应用程序传输的所述音频数据,控制所述本地层执行所述应用程序数据交互操作,并对接收的所述音频数据进行缓存,得到与所述应用程序数据交互操作对应的所述音频缓存;
控制所述本地层对执行所述应用程序数据交互操作后的所述音频数据进行所述音频处理操作,并对执行所述应用程序数据交互操作后的所述音频数据进行缓存,得到与所述音频处理操作对应的所述音频缓存;
控制所述本地层执行所述硬件设备数据交互操作,将进行所述音频处理操作后的所述音频数据传输至对应的音频硬件设备,并对所述音频处理操作后的所述音频数据进行缓存,得到与所述硬件设备数据交互操作对应的所述音频缓存。
3.如权利要求1所述的音频缺陷定位方法,其特征在于,所述对每个所述操作接收的所述音频数据进行缓存,得到与每个所述操作分别对应的所述音频缓存,包括:将所述音频数据缓存至对应的本地缓存文件,并判断所述本地缓存文件的文件体积是否大于预设体积阈值;
若所述本地缓存文件的文件体积大于所述预设体积阈值,按照缓存时间的从先到后顺序,对所述本地缓存文件中包含的所述音频缓存进行删除,直至所述本地缓存文件的文件体积小于或等于所述预设体积阈值。
4.如权利要求1所述的音频缺陷定位方法,其特征在于,所述对每个所述操作接收的所述音频数据进行缓存,得到与每个所述操作分别对应的所述音频缓存,包括:将所述音频数据缓存至对应的缓存文件夹内,并判断所述缓存文件夹内包含所述音频缓存的文件体积是否大于预设体积阈值;
若所述缓存文件夹内包含所述音频缓存的文件体积大于所述预设体积阈值,按照缓存时间的从先到后顺序,对所述缓存文件夹内包含的所述音频缓存进行删除,直至所述本地缓存文件的所述音频缓存大小小于或等于所述预设体积阈值。
5.如权利要求1至4任意一项所述的音频缺陷定位方法,其特征在于,对音频数据进行缓存得到对应的音频缓存的过程,包括:对所述音频数据进行压缩,并对压缩后的所述音频数据进行缓存,得到对应的所述音频缓存;和/或
对缓存得到的所述音频缓存进行文件压缩处理。
6.如权利要求1所述的音频缺陷定位方法,其特征在于,所述对多个所述音频缓存按照多个所述操作的执行顺序依次进行分析中,对每个所述音频缓存分析的过程,包括:对所述音频缓存进行时长和振幅分析,判断是否存在时长大于预设时长阈值,且振幅均小于预设振幅阈值的音频数据段;
若存在所述音频数据段,判定所述音频缓存存在音频缺陷。
7.如权利要求1或6所述的音频缺陷定位方法,其特征在于,所述对多个所述音频缓存按照多个所述操作的执行顺序依次进行分析中,对每个所述音频缓存分析的过程,包括:获取所述音频缓存对应的音频数据的第一音频时长,并统计所述音频缓存的第二音频时长,并判断所述第一音频时长与所述第二音频时长是否相等;
若所述第一音频时长与所述第二音频时长不相等,判定所述音频缓存存在音频缺陷。
8.一种音频缺陷定位装置,其特征在于,包括:缓存读取模块,用于接收应用程序传输的音频数据,控制本地层依次对所述音频数据执行应用程序数据交互操作、音频处理操作以及硬件设备数据交互操作以实现对所述音频数据的播放,并对每个所述操作接收的所述音频数据进行缓存,得到与每个所述操作分别对应的所述音频缓存;接收音频检测指令,并基于所述音频检测指令中包含的音频数据信息,读取本地层中多个所述操作分别对应的多个所述音频缓存;
缓存分析模块,用于对多个所述音频缓存按照多个所述操作的执行顺序依次进行分析,直至查找出其中首个存在音频缺陷的音频缓存;
缺陷定位模块,用于将负责对所述首个存在音频缺陷的音频缓存对应的音频数据进行处理的所述操作,判定为产生音频缺陷的操作。
9.一种终端设备,其特征在于,所述终端设备包括存储器、处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述方法的步骤。
说明书 :
一种音频缺陷定位方法、装置及终端设备
技术领域
背景技术
言,由本地层内的安卓本地框架API类声轨(AudioTrack)进行应用程序数据交互操作,接收
应用程序的音频数据,再将接收到的音频数据传输至本地层的音频管理器
(AudioFlinger),由音频管理器进行音频数据的重采样、音效、声道转换等音频处理操作,
并将处理后的音频数据传输至音频硬件抽象层,由音频硬件抽象层与音频硬件设备进行硬
件设备数据交互操作,将接收到的音频数据传输至音频硬件设备进行音频数据的播放。
出现断续卡顿等情况,而现有技术中的安卓日志中并不会记录本地层传输处理操作的详细
数据,因此即使实际应用中出现了音频数据播放断续卡顿等情况,现有技术也无法对本地
层进行分析,确定出音频数据产生缺陷的具体传输处理操作,因此,现有技术中急需一种在
音频数据播放出现断续卡顿等情况时,对本地层各个传输处理操作进行音频数据产生缺陷
操作的准确定位。
发明内容
产生缺陷的具体传输处理操作的问题。
机程序时实现如上所述的音频缺陷定位方法的步骤。
况,需要对本地层进行分析时,对本地层每个操作对应的音频缓存数据依次进行分析,确定
出其中存在音频缺陷的音频缓存,最后再确定出该存在音频缺陷的音频缓存对应的操作,
即可实现对本地层各个传输处理操作后音频数据是否产生了缺陷的快速准确识别,实现了
对安卓系统本地层中,音频数据产生缺陷的具体传输处理操作的快速准确定位。
附图说明
实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些
附图获得其他的附图。
具体实施方式
细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的系统、装置、电
路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。
而现有技术中又没有对本地层各个操作相关数据进行记录,因此即使已知了本地层中可能
存在问题,现有技术中也无法实现对出现问题操作进行准确定位,从而无法实现针对性的
处理。为了实现对出现问题操作的准确定位,本发明实施例中对本地层设置了缓存机制,即
会对本地层中每个操作处理的音频数据进行音频缓存,并在用户需要进行问题操作的定位
时,对这些音频缓存进行分析,确定出存在缺陷的音频缓存,进而实现对问题操作的定位。
接,并读取安卓设备中对本地层中多个操作分别对应的多个音频缓存,以下以执行主体为
安卓设备为例进行说明,详述如下:
行分析确定音频数据产生缺陷的操作时,用户只需确定好自己所需分析的音频数据(即具
体存在缺陷的音频数据),输入对应的包含用户选取音频数据的信息的音频检测指令即可。
其中,音频数据信息既可以是音频数据的名称,也可以是其他可以确定音频数据的音频属
性信息。多个操作具体包含的操作由技术人员根据实际需求设定,既可以是本地层中包含
的所有操作,也可以是包含的部分操作,例如由本地层AudioTrack负责的应用程序数据交
互操作、AudioFlinger负责的音频处理操作以及硬件抽象层负责的硬件设备数据交互操
作。
过的音频数据很能有很多,从而使得每个操作都有可能对应有多个不同的音频缓存,因此,
本发明实施例中会根据音频检测指令中的音频数据信息,从已存储的本地层操作对应的音
频缓存中,查找出用户所需分析的音频数据的音频缓存。其中,每个操作对应着一个音频缓
存。
本地层中操作的实际执行顺序来依次对各个操作对应的音频缓存进行分析,并查找其中首
个存在音频缺陷的音频缓存,从而避免了后续的重复无用操作。其中,具体的音频缺陷分析
方法可由技术人员自行设定,包括但不限于如检查音频缓存中的空白音频数据段等,或者
参考本发明实施例七和本发明实施例八进行处理。
言,将其处理操作完成后得到的音频数据进行缓存。具体选取何种缓存方案此处不予限定,
技术人员可以根据实际需求自行设定,但由于两者缓存方案的音频缓存时机存在差异,从
而导致了音频缓存实际对应音频缺陷产生的操作存在了差异,对于方案1而言,由于其对应
缓存的是每个操作步骤接收到的音频数据,即是上一操作才是负责处理该音频缓存对应的
音频数据的操作,当该音频缓存存在音频缺陷时,说明上一操作是产生音频缺陷的操作,对
于方案2而言,由于其对应缓存的是每个操作步骤自行处理后得到的音频数据,因此其自身
就是负责处理该音频缓存对应的音频数据的操作,当该音频缓存存在音频缺陷时,其自身
就是产生音频缺陷的操作。
缓存的音频缓存出现缺陷时,说明负责对该音频缓存对应的音频数据进行a处理的操作A是
产生音频缺陷的操作,而对于方案2而言,操作A缓存的是a处理之后得到的音频数据,操作B
缓存的是b处理后得到的音频数据,因此当操作B缓存的音频缓存出现缺陷时,说明负责对
该音频缓存对应的音频数据进行b处理的操作B是产生音频缺陷的操作。
存对应的音频数据的操作判定为产生音频缺陷的操作,例如上述实例之中,假设操作B缓存
的音频缓存出现缺陷,当是采用方案1进行缓存时,则可以直接判定操作A为产生音频缺陷
的操作,当是采用方案2进行缓存时,则可以直接判定操作B为产生音频缺陷的操作。
地层每个操作对应的音频缓存数据依次进行分析,确定出其中存在音频缺陷的音频缓存,
最后再确定出该存在音频缺陷的音频缓存对应的操作,即可实现对本地层各个传输处理操
作后音频数据是否产生了缺陷的快速准确识别,实现了对安卓系统本地层中,音频数据产
生缺陷的具体传输处理操作的快速准确定位。
AudioFlinger负责的音频处理操作以及硬件抽象层负责的硬件设备数据交互操作,如图2
所示,在接收音频检测指令之前,本地层对音频数据进行处理以播放音频数据时,本发明实
施例二,包括:
每个操作接收的音频数据进行缓存,得到与每个操作分别对应的音频缓存。
安卓系统中,AudioTrack是Java层应用程序在本地层的实例,AudioFlinge在本地的服务,
AudioFlinger管理着多个服务端播放线程,用于处理播放数据;每个客户端AudioTrack在
AudioFlinger中都对应着一个服务端播放线程中的一个Track,硬件抽象层负责操控输出
设备,诸如喇叭、耳机等硬件,在本发明实施例中,针对的是本地层中AudioTrack负责的应
用程序数据交互操作、AudioFlinger负责的音频处理操作以及硬件抽象层负责的硬件设备
数据交互操作在音频数据播放过程中进行音频数据的缓存,以实现对这三个操作是否存在
问题的识别定位。
音频缓存。
备数据交互操作对应的音频缓存。
频数据进行缓存,从而得到每一步操作对应的音频缓存。
进行限制,以节约安卓设备存储资源的,如图4所示,包括:
存文件,若不存在该本地缓存文件,则新建一个本地缓存文件并按照从先到后的时间顺序
将音频数据缓存于该本地缓存文件。为了实现对缓存占用存储资源的限制,本发明实施例
中由技术人员预先设置一个缓存文件体积上限的体积阈值,并会在每次音频缓存后,检测
本地缓存文件是否超出该体积阈值。其中,预设阈值的具体值大小可由技术人员根据实际
需求自行设定,优选地,可以设置为240兆。
等于预设体积阈值。
删除,即仅保留最新的音频缓存,直至删除后的本地缓存文件的文件体积小于或等于体积
阈值。
体积阈值,并在本地缓存文件体积大于体积阈值时,删除其中旧的音频缓存。
进行限制,以节约安卓设备存储资源的,如图5所示,包括:
缓存大小小于或等于预设体积阈值。
缓存之后,检测该缓存文件夹下所有音频缓存文件的总文件体积是否超出预设的体积阈
值,若超出,则对音频缓存按照缓存的时间顺序进行删除,即仅保留最新的音频缓存,直至
删除后缓存文件夹包含的音频缓存文件总体积小于或等于体积阈值。其中,体积阈值的具
体值大小可由技术人员自行设定,优选地,可以设置为240兆。
发明实施例一至五的基础上,本发明实施例,包含:
理得到的音频缓存体积更小,占用存储资源更少。
示,本发明实施例六,包括:
查找音频缓存中是否存在连续一段时间内振幅极小的音频数据段,其中,具体的预设时间
阈值和预设振幅阈值大小,可由技术人员自行设置。
施例七,包括:
应的音频数据的理论音频时长(这个在音频数据中会记录,在进行音频数据缓存时也会一
并缓存记录,直接读取即可),并将两个时长进行对比,若不相等,则说明出现了丢帧情况。
装置可以是前述实施例一提供的音频缺陷定位方法的执行主体。
交互操作以实现对所述音频数据的播放,并对每个所述操作接收的所述音频数据进行缓
存,得到与每个所述操作分别对应的所述音频缓存。
音频缓存;
所述音频处理操作对应的所述音频缓存;
缓存,得到与所述硬件设备数据交互操作对应的所述音频缓存。
文件体积小于或等于所述预设体积阈值。
本地缓存文件的所述音频缓存大小小于或等于所述预设体积阈值。
定。
与另一元素区分开。例如,第一表格可以被命名为第二表格,并且类似地,第二表格可以被
命名为第一表格,而不背离各种所描述的实施例的范围。第一表格和第二表格都是表格,但
是它们不是同一表格。
程序92。所述处理器90执行所述计算机程序92时实现上述各个音频缺陷定位方法实施例中
的步骤,例如图1所示的步骤101至103。或者,所述处理器90执行所述计算机程序92时实现
上述各装置实施例中各模块/单元的功能,例如图8所示模块81至83的功能。
仅仅是终端设备9的示例,并不构成对终端设备9的限定,可以包括比图示更多或更少的部
件,或者组合某些部件,或者不同的部件,例如所述终端设备还可以包括输入发送设备、网
络接入设备、总线等。
(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field‑
Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、
分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器
等。
插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪
存卡(Flash Card)等。进一步地,所述存储器91还可以既包括所述终端设备9的内部存储单
元也包括外部存储设备。所述存储器91用于存储所述计算机程序以及所述终端设备所需的
其他程序和数据。所述存储器91还可以用于暂时地存储已经发送或者将要发送的数据。
元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计
算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上
述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代
码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质
可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁
碟、光盘、计算机存储器、只读存储器(Read‑Only Memory,ROM)、随机存取存储器(Random
Access Memory,RAM)、电载波信号、电信信号以及软件分发介质等。
实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改
或者替换,并不使对应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应
包含在本发明的保护范围之内。