一种音频流补偿方法、装置、存储介质及设备转让专利

申请号 : CN202110984899.5

文献号 : CN113436639B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 孙林韩标朱勇刘真

申请人 : 北京百瑞互联技术有限公司

摘要 :

本申请公开了一种音频流补偿方法、装置、存储介质及设备,属于音频控制技术领域。该方法主要包括:对音频播放设备中待播放区的当前音频数据量进行计算;计算当前音频数据量与预设的正常数据量阈值的差值;根据差值,其中正常数据量阈值不超出待播放区的存储阈值范围,对音频播放设备接收到的待播放音频流的数据包进行相应的补偿,获得数据包对应的补偿数据包。本申请通过计算音频播放设备中待播放区的当前音频数据量与预设的正常数据量阈值的差值,对数据包进行相应的补偿,以解决音频录制和、或播放过程中,由于采样速率差而产生的音频数据流断流或溢出的问题,导致录制和、或播放的音频存在异常或明显的噪音等情况。

权利要求 :

1.一种音频流补偿方法,其特征在于,包括:对音频播放设备中待播放区的当前音频数据量进行计算;

计算所述当前音频数据量与预设的正常数据量阈值的差值,其中所述正常数据量阈值不超出所述待播放区的存储阈值范围;以及根据所述差值,对所述音频播放设备当前接收到的待播放音频流的数据包补偿所述差值相应数量的音频流数据,获得所述数据包对应的补偿数据包;

所述计算所述当前音频数据量与预设的正常数据量阈值的差值,进一步包括:根据所述音频播放设备的播放速率与接收速率的大小关系,预先设置所述正常数据量阈值,其中,所述正常数据量阈值包括第一正常数据量阈值和/或第二正常数据量阈值,所述第一正常数据量阈值大于所述第二正常数据量阈值;

当所述播放速率大于所述接收速率时,计算所述当前音频数据量与所述第一正常数据量阈值的差值,获得第一差值;以及当所述播放速率小于所述接收速率时,计算所述当前音频数据量与所述第二正常数据量阈值的差值,获得第二差值;

所述根据所述差值,对所述音频播放设备当前接收到的待播放音频流的数据包补偿所述差值相应数量的音频流数据,获得所述数据包对应的补偿数据包,进一步包括:当所述第一差值不小于预设补偿数量时,根据所述第一差值获取所述数据包对应的补偿值,其中根据所述第一差值获取的所述补偿值为大于0的整数;

根据所述数据包的数据长度与根据所述第一差值获取的所述补偿值,对所述数据包进行相应的插入补偿,获得所述补偿数据包;

当所述第二差值不小于所述预设补偿数量时,根据所述第二差值获取所述数据包对应的补偿值,其中根据所述第二差值获取的所述补偿值为大于0的整数;以及根据所述数据包的数据长度与根据所述第二差值获取的所述补偿值,对所述数据包进行相应的删除补偿,获得所述补偿数据包。

2.根据权利要求1所述的音频流补偿方法,其特征在于,还包括:根据所述数据长度,确定相应的至少一个补偿位置,其中所述数据长度与所述补偿位置之间的间隔正相关;

根据所述补偿位置,在所述数据包补偿根据所述第一差值获取的所述补偿值或根据所述第二差值获取的所述补偿值个音频流数据,获得所述补偿数据包。

3.根据权利要求2所述的音频流补偿方法,其特征在于,所述音频流数据根据所述补偿位置对应的原始音频流数据确定。

4.根据权利要求2所述的音频流补偿方法,其特征在于,在任一所述补偿位置处补偿的所述音频流数据的数量不大于预设数量阈值。

5.一种音频流补偿装置,其特征在于,包括:用于对音频播放设备中待播放区的当前音频数据量进行计算的模块;

用于计算所述当前音频数据量与预设的正常数据量阈值的差值的模块,其中所述正常数据量阈值不超出所述待播放区的存储阈值范围;以及用于根据所述差值,对所述音频播放设备当前接收到的待播放音频流的数据包补偿所述差值相应数量的音频流数据,获得所述数据包对应的补偿数据包的模块;

所述用于计算所述当前音频数据量与预设的正常数据量阈值的差值的模块,进一步包括:

用于根据所述音频播放设备的播放速率与接收速率的大小关系,预先设置所述正常数据量阈值的模块,其中,所述正常数据量阈值包括第一正常数据量阈值和/或第二正常数据量阈值,所述第一正常数据量阈值大于所述第二正常数据量阈值;

用于当所述播放速率大于所述接收速率时,计算所述当前音频数据量与所述第一正常数据量阈值的差值,获得第一差值的模块;以及用于当所述播放速率小于所述接收速率时,计算所述当前音频数据量与所述第二正常数据量阈值的差值,获得第二差值的模块;

所述用于根据所述差值,对所述音频播放设备当前接收到的待播放音频流的数据包补偿所述差值相应数量的音频流数据,获得所述数据包对应的补偿数据包的模块,进一步包括:

用于当所述第一差值不小于预设补偿数量时,根据所述第一差值获取所述数据包对应的补偿值的模块,其中根据所述第一差值获取的所述补偿值为大于0的整数;

用于根据所述数据包的数据长度与根据所述第一差值获取的所述补偿值,对所述数据包进行相应的插入补偿,获得所述补偿数据包的模块;

用于当所述第二差值不小于所述预设补偿数量时,根据所述第二差值获取所述数据包对应的补偿值的模块,其中根据所述第二差值获取的所述补偿值为大于0的整数;以及用于根据所述数据包的数据长度与根据所述第二差值获取的所述补偿值,对所述数据包进行相应的删除补偿,获得所述补偿数据包的模块。

6.一种计算机可读存储介质,其存储有计算机指令,其特征在于,所述计算机指令被操作以执行权利要求1‑4中任一项所述的音频流补偿方法。

7.一种计算机设备,其特征在于,包括:至少一个处理器;以及

与所述至少一个处理器进行通信连接的存储器;

其中,所述存储器存储有可被所述至少一个处理器执行的计算机指令,所述至少一个处理器操作所述计算机指令以执行如权利要求1‑4任一项所述的音频流补偿方法。

说明书 :

一种音频流补偿方法、装置、存储介质及设备

技术领域

[0001] 本申请涉及音频控制技术领域,特别涉及一种音频流补偿方法、装置、存储介质及设备。

背景技术

[0002] 由于音频播放设备的不同,各种音频播放设备中的播放速率不同,录制音频文件的采样率也不同;音频播放设备中播放速率与音频文件或音频采集设备采样率之间的误差
即为该音频播放设备的采样速率差;音频播放或录制设备中由于采样速率差而出现的音频
数据流断流或溢出的问题,从而使得录制和、或播放的音频存在异常或明显的噪音等情况。
[0003] 针对音频播放设备中由于采样速率差而出现的音频数据流断流或溢出的问题,从而导致录制和、或播放的音频存在异常或明显的噪音等情况,目前存在三种解决方案:1)通
过重采样的方式,将音频流数据的原始采样率切换为与播放速率相同速率采样率,对接收
到的音频流数据进行二次重新采样,再将二次重采样的音频流数据进行播放;但是解决方
案1)的算法计算过程复杂,非常依赖MCU的计算性能,在一些低性能MCU上很难实现。2)采用
一个比较大的缓存空间来提前存放音频流数据,当在音频播放器录制和播放的过程中出现
采样速率差时,先储存一定时长的音频流数据,再根据该音频播放器的播放速率将储存的
音频流数据进行播放,以避免出现数据断流的问题,其中一定时长的音频流数据远大于该
音频播放器单位时间内播放的音频流数据;但是解决方案2)的算法非常耗费内存资源。3)
根据采样速率差,对单位时间内采样的音频流数据进行固定的补偿,再将经补偿的音频流
数据就进行播放;但是解决方案3)的方法,只适用于采样速率差比较小音频播放设备,且需
提前获知具体采样速率差,无法适应采样速率差的动态变化。
[0004] 上述的三种解决方法均在一定程度上对音频播放设备中由于采样速率差而出现的音频数据流断流或溢出的问题,从而使得录制和、或播放的音频存在异常或明显的噪音
等情况进行解决,但是均存在一定的限制,以使在解决上述问题是依旧存在一定的问题。

发明内容

[0005] 针对现有技术存在的音频播放设备中由于采样速率差而出现的音频数据流断流或溢出的问题,从而导致录制和、或播放的音频存在异常或明显的噪音等情况问题,本申请
主要提供一种音频流补偿方法、装置、存储介质及设备。
[0006] 为了实现上述目的,本申请采用的一个技术方案是:提供一种音频流补偿方法,其包括:对音频播放设备中待播放区的当前音频数据量进行计算;计算当前音频数据量与预
设的正常数据量阈值的差值,其中正常数据量阈值不超出待播放区的存储阈值范围;根据
差值,对音频播放设备当前接收到的待播放音频流的数据包进行相应的补偿,获得数据包
对应的补偿数据包。
[0007] 本申请采用的另一个技术方案是:提供一种音频流补偿装置,其包括:用于对音频播放设备中待播放区的当前音频数据量进行计算的模块;用于计算当前音频数据量与预设
的正常数据量阈值的差值的模块,其中正常数据量阈值不超出待播放区的存储阈值范围;
以及用于根据差值,对音频播放设备当前接收到的待播放音频流的数据包进行相应的补
偿,获得数据包对应的补偿数据包的模块。
[0008] 本申请采用的另一个技术方案是:提供一种计算机可读存储介质,其存储有计算机指令,该计算机指令被操作以执行方案一中的音频流补偿方法。
[0009] 本申请采用的另一个技术方案是:提供一种计算机设备,其包括:至少一个处理器;以及与至少一个处理器进行通信连接的存储器;其中,存储器存储有可被至少一个处理
器执行的计算机指令,至少一个处理器操作计算机指令以执行方案一中的音频流补偿方
法。
[0010] 本申请的技术方案可以达到的有益效果是:本申请设计了音频流补偿方法、装置、存储介质及设备。该方法通过计算音频播放设备中待播放区的当前音频数据量与预设的正
常数阈值的差值;根据差值,对音频播放设备当前接收到的待播放音频流的数据包进行相
应的补偿,获得数据包对应的补偿数据包;以解决音频播放设备中由于采样速率差而产生
的音频流数据断流或溢出的问题,从而避免录制和、或播放的音频存在异常或明显的噪音
等情况。

附图说明

[0011] 为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作以简单地介绍,显而易见地,下面描述中的附图是本申
请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以
根据这些附图获得其他的附图。
[0012] 图1是本申请一种音频流补偿方法的一个具体实施方式的示意图;
[0013] 图2是本申请一种音频流补偿装置的一个具体实施方式的示意图。
[0014] 通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为
本领域技术人员说明本申请的概念。

具体实施方式

[0015] 下面结合附图对本申请的较佳实施例进行详细阐述,以使本申请的优点和特征能更易于被本领域技术人员理解,从而对本申请的保护范围做出更为清楚明确的界定。
[0016] 需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存
在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖
非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要
素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备
所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括
所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0017] 由于音频播放设备的不同,各种音频播放设备中的播放速率不同,录制音频文件的采样率也不同;音频播放设备中播放速率与音频文件采样率之间的误差即为该音频播放
设备的采样速率差;音频播放设备中由于采样速率差而出现的音频数据流断流或溢出的问
题,从而使得录制和、或播放的音频存在异常或明显的噪音等情况。
[0018] 例如对于播放音频数据,音频文件的采样率一般都是标准的16K(即一秒钟采样16千次),24K,32K等等;当音频文件的采样速率为16K时,理想情况下播放速率应与音频文件
的采样速率保持一致,即以16K的播放速率进行播放。但在实际情况中,由于硬件原因,无法
达到精准的16K的播放速率或者不支持16K的播放速率,出现15K或17K的播放速率等;此时
原有的采样速率和现有的播放速率之间就存在一个差值,最终的结果将导致单位时间内
(如1ms)采样的数据量不足以完成单位时间的播放或者在单位时间内播放不完。比如采样
速率为16K,即1ms采集16个音频流数据,而播放速率为15K,即1ms播放15个音频流数据,就
会出现一个多余的音频流数据。那么对于时长为1S的音频流数据,就会出现1000个多余的
音频流数据。
[0019] 当采样速率差很小或是采样速率差为零时,对音质的影响不是很大,人耳很难察觉。例如录制音频文件或是将提前录制好的音频文件进行播放。其最终产生的结果可能为
1)正常录制时长为3分钟的音频流数据,实际的录制时长为2.55分钟或者3.05分钟;2)正常
播放时长为4分钟的音频流数据,实际播放时长为3.55分钟或者4.05分钟。针对结果2)所表
现的实际现象等同于4分钟的音频流数据被快放或者慢放了3秒钟。而这3秒钟被平均分布
在整个音频流数据的播放过程中,因此人耳几乎无法感知。但是该音频流数据的音质依旧
发生了变化,变化的程度根据该音频播放设备的采样速率差的大小确定。
[0020] 对于音频播放设备需一边进行录制一边进行播放的情况。将录制方表示为A,播放方表示为B;当A以标准16K的采样率实时采样音频流数据并通过某种通讯方式将音频流数
据传输给B,以1ms为时间单位传输一次。那么每1ms,A都将传输16个音频流数据给B。此时B
由于硬件原因没有标准的16K播放速率,其播放速率为17K。那么当B收到第一包音频流数据
的时候开始播放,将16个数据播放完后新的数据还没有到达,这个时候会出现播放不连续,
容易产生底噪,比较影响音质。如果是20ms发一次数据包,那么每20ms,A发送320个音频流
数据,但是B在20ms里需要消耗340个数据,当320个数据播放完,新的数据还未到来,将会有
更长的一段时间没有音频流数据可播放。对于这种情况更致命,播放的音频几乎没法听。反
之亦然,如果是音频流数据太多,则会有相当一部分连续的数据无法被播放。
[0021] 针对音频播放设备中由于采样速率差而出现的音频数据流断流或溢出的问题,从而使得录制和、或播放的音频存在异常或明显的噪音等情况,目前存在三种解决方案:1)通
过重采样的方式,将音频流数据的原始采样率切换为与播放速率相同速率采样率,对接收
到的音频流数据进行二次重新采样,再将二次重采样的音频流数据进行播放;但是解决方
案1)的算法计算过程复杂,非常依赖MCU的计算性能,在一些低性能MCU上很难实现。2)采用
一个比较大的缓存空间来提前存放音频流数据,当在音频播放器录制和播放的过程中出现
采样速率差时,先储存一定时长的音频流数据,再根据该音频播放器的播放速率将储存的
音频流数据进行播放,以避免出现数据断流的问题,其中一定时长的音频流数据远大于该
音频播放器单位时间内播放的音频流数据;当录制方采样率16K,播放方播放速率为16.2K。
那么先存储20ms的音频流数据再开始播放,即提前拥有了320个音频流数据供消耗。由于播
放方每1ms多消耗0.2个音频流数据,320个音频流数据可供B消耗19.75ms,从而保障播放方
在19.75ms内播放不出现问题,即不出现数据断流的情况。若先存储200ms的音频流数据再
开始播放,那就可以在197.53ms内不出现问题,只要连续播放时间不超过197.53ms,只是播
放速度略微的快了而已,而不会出现其它问题,以此类推可以延迟连续播放的时间;但是解
决方案2)的算法非常耗费内存资源。3)根据采样速率差,对单位时间内采样的音频流数据
进行固定的补偿,再将经补偿的音频流数据就进行播放;例如,录制方的采样率16K,播放方
的播放速率为17K,播放方每毫秒差一个音频流数据,可复制第16个音频流数据当做第17个
音频流数据使用或者第17个音频流数据写0。但是解决方案3)的方法,只适用于采样速率差
比较小音频播放设备,且需提前获知具体采样速率差,无法适应采样速率差的动态变化。例
如对于20ms发一次音频流数据的场景,一次需要补20个音频流数据,连续补得音频流数据
太多,连续补20个音频流数据,对整个音频流数据的音质影响非常大。
[0022] 上述的三种解决方法虽然在一定程度上解决了音频播放设备中由于采样速率差而出现的音频数据流断流或溢出的问题,从而使得录制和、或播放的音频存在异常或明显
的噪音等情况,但是均存在一定的限制,以使在解决上述问题是依旧存在一定的问题。
[0023] 本申请的发明构思是:通过计算音频播放设备中待播放区的当前音频数据量与预设的正常数据量阈值的差值;当计算当前音频数据量与第一正常数据量阈值的差值时,根
据计算获得第一差值,获得音频播放设备接收到的待播放音频流的数据包对应的补偿值,
根据数据包的数据长度在当前数据包中插入补偿值个音频流数据,以补足数据包中的音频
流数据,使得在播放时避免了数据断流现象。当计算当前音频数据量与第二正常数据量阈
值的差值时,根据计算获得的第二差值,获得音频播放设备当前接收到的待播放音频流的
数据包对应的补偿值,根据数据包的数据长度在数据包中删除补偿值个音频流数据,以控
制数据包中的音频流数据的数量,使得在播放时避免了数据溢出现象。本申请以通过对数
据包进行相应的补偿,以解决音频播放设备中由于采样速率差而产生的音频流数据断流或
溢出的问题,从而避免录制和、或播放的音频存在异常或明显的噪音等情况。
[0024] 本申请的适用范围是:具有播放功能的音频播放设备,以使音频播放设备能够播放已经录制完成的音频文件;或具有录制及播放功能的音频播放设备,以使音频播放设备
既能够播放已经录制好的音频文件,又能够一边录制音频流数据,一边播放音频流数据。
[0025] 下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。
[0026] 图1示出了本申请一种音频流补偿方法的一个具体实施方式。
[0027] 在图1所示的具体实施方式中,音频流补偿方法主要包括:
[0028] 步骤S101,对音频播放设备中待播放区的当前音频数据量进行计算。
[0029] 本实施例中,待播放区为音频播放设备中播放音频数据之前的缓冲区,其存入录制完成的音频文件或音频播放设备录制的音频流数据,使得待播放区的当前音频数据量保
持在稳定的范围内,以供音频播放设备在后续播放时,能够稳定的播放待播放区的音频流
数据,以免影响音质。
[0030] 步骤S102,计算当前音频数据量与预设的正常数据量范围阈值的差值,其中正常数据量阈值不超出待播放区的存储阈值范围。
[0031] 本实施例中,预设的正常数据量阈值不超出音频播放设备中带播放区的存储阈值范围;其中正常数据量阈值的设定用于当音频播放设备的播放速率大于接收速率时,根据
正常数据量阈值避免后续音频播放设备在播放音频流数据时,出现数据断流的现象,当音
频播放设备的播放速率小于接收速率时,根据正常数据量阈值避免后续音频播放设备在播
放待播放音频流时,出现数据溢出的现象。例如,当音频播放设备中待播放区的存储阈值范
围为[0,100],播放速率为11K,采样速率为10K时,可将正常数据量阈值设置为90;当音频播
放设备中待播放区的存储阈值范围为[0,100],播放速率为9K,采样速率为10K时,则可将预
设正常数据量范围的上限阈值设置为30。
[0032] 以及步骤S103,根据差值,对音频播放设备当前接收到的待播放音频流的数据包进行相应的补偿,获得数据包对应的补偿数据包。
[0033] 本实施例中,当音频播放设备的播放速率小于接收速率时,若正常数据量阈值与当前音频数据量之间存在差值,表示后续音频播放设备在播放待播放音频流时,会出现数
据溢出的现象,使得播放的待播放音频流不完整;当音频播放设备的播放速率大于接收速
率时,若正常数据量阈值与当前音频数据量之间存在差值,表示后续音频播放设备在播放
待播放音频流时,会出现数据断流的现象,影响待播放音频流的音质,使得用户体验感降
低。
[0034] 该具体实施方式中,计算音频播放设备中待播放区中存入的待播放音频流的音频流数据的当前音频数据量,并将当前音频数据量与正常数据量阈值进行比较,计算当前音
频数据量与正常数据量阈值的差值,通过判断音频播放设备中播放速率小于接收速率的情
况,根据差值对音频播放设备当前接收到的数据包进行相应的补偿,从而获得数据包对应
的补偿数据包,以避免音频播放设备在播放待播放音频流的音频流数据和、或补偿数据包
中的音频流数据时出现数据溢出或数据断流的现象,影响待播放音频流的音质;其中待播
放音频包括已经录制完成的音频文件或,音频播放设备录制的音频流数据。
[0035] 在本申请的一个具体实施例中,计算当前音频数据量与预设的正常数据量阈值的差值,进一步包括:预先设置正常数据量阈值,其中,正常数据量阈值包括第一正常数据量
阈值和、或第二正常数据量阈值,第一正常数据量阈值不小于第二正常数据量阈值;当音频
播放设备的播放速率大于音频播放设备的接收速率时,计算当前音频数据量与第一正常数
据量阈值的差值,获得第一差值;以及当播放速率小于接收速率时,计算当前音频数据量与
第二正常数据量阈值的差值,获得第二差值。
[0036] 在该具体实施例中,可根据音频播放设备的历史数据,确定该音频播放设备的播放速率与接收速率的情况,若该音频播放设备只存在播放速率大于接收速率的情况,则预
先设置第一正常数据量阈值即可,若该音频播放设备只存在播放速率小于接收速率的情
况,则预先设置第二正常数据量阈值即可,若该音频播放设备既存在播放速率大于接收速
率的情况,又存在播放速率小于接收速率的情况,则预先分别设置第一正常数据量阈值与
第二正常数据量阈值;在根据该音频播放设备中当前音频数据量与正常数据量阈值的差
值,获得各个情况分别对应的第一差值或第二差值;其中该差值通过利用正常数据量阈值
减去当前音频数据量获得。通过该音频播放设备的播放速率与接收速率的情况,确定准确
的正常数据量阈值,以使计算获得准确的差值,为后续的补偿类型提供条件。
[0037] 在本申请的一个具体实施例中,根据差值,对音频播放设备接收的待播放音频流的数据包进行相应的补偿,获得数据包对应的补偿数据包,进一步包括:当第一差值不小于
预设补偿数量时,根据第一差值获取数据包对应的补偿值,其中补偿值为大于0的整数;以
及根据数据包的数据长度与补偿值,对数据包进行插入补偿,获得补偿数据包。
[0038] 该具体实施例中,若音频播放设备的播放速率大于接收速率,利用第一正常数据量阈值减去当前音频数据量,获得第一差值。将第一差值与预设补偿数量进行比较;当第一
差值小于预设补偿数量时,数据包无补偿值,即无需对该数据包进行补偿;当第一差值大于
或等于预设补偿数量时,将第一差值的整数部分作为补偿值,此时,由于音频播放设备的播
放速率大于接收速率,表示该音频播放设备中待播放区中音频流数据不足以支持音频播放
设备进行稳定的无损播放,因此根据补偿值,对该数据包进行插入补偿,以获得补偿数据
包,避免了后续音频播放器在播放时因出现数据断流而影响音质的现象。
[0039] 需要说明的是,预设补偿数量设定为不小于1的整数。
[0040] 在本申请的一个具体实施例中,根据差值,对音频播放设备当前接收到的待播放音频流的数据包进行相应的补偿,获得数据包对应的补偿数据包,还包括:当第二差值不小
于预设补偿数量时,根据第二差值获取数据包对应的补偿值,其中补偿值为大于0的整数;
以及根据数据包的数据长度与补偿值,对数据包进行相应的删除补偿,获得补偿数据包。
[0041] 该具体实施例中,若音频播放设备的播放速率小于接收速率,利用当前音频数据量减去第二正常数据量阈值,获得第二差值。将第二差值与预设补偿数量进行比较;当第二
差值小于预设补偿数量时,数据包无补偿值,即无需对该数据包进行补偿;当第二差值大于
或等于预设补偿数量时,将第二差值的整数部分作为补偿值,此时,由于音频播放设备的播
放速率小于接收速率,表示待播放区的当前音频流数据不支持音频播放设备进行稳定的无
损播放,因此根据数据包的补偿值,对数据包进行相应的删除补偿,减少了后续音频播放器
在播放时因出现连续的数据溢出而影响音质的现象。其中,具体的删除补偿步骤可以是在
数据包中直接删除补偿值个音频数据流;或先删除大于补偿值个音频数据流,再插入相应
数量的音频数据流,其中删除的音频数据流数量与插入的音频数据流数量的差值与补偿值
一致。
[0042] 在本申请的一个具体实施例中,音频流补偿方法还包括:根据数据长度确定相应的至少一个补偿位置,其中数据长度与补偿位置之间的间隔正相关;根据补偿位置,在数据
包中补偿补偿值个音频流数据,获得补偿数据包。
[0043] 在该具体实施例中,若该数据包对应多个补偿位置,则数据长度越长,各个补偿位置之间的间距越大,以避免补偿位置的间隔太近造成补偿的音频流数据集中,造成补偿的
音频流数据在播放时的音损太大,使得用户体验感降低。根据补偿位置在数据包中补偿补
偿值个音频流数据,以保证该音频播放设备能够稳定的无损播放,避免该音频播放设备产
生数据断流或数据溢出现象。
[0044] 在本申请的一个具体实例中,若音频播放设备的播放速率大于接收速率,该音频播放设备每毫秒接收一个数据包,该数据包的数据长度为16,数据包的补偿值为4时;由于
该数据包的数据长度远大于补偿值,则该数据包可确定1个补偿位置,或2个补偿位置,或3
个补偿位置,或4个补偿位置。其中确定1个补偿位置时,在该补偿位置插入4个音频流数据;
确定2个补偿位置时,在每个补偿位置分别插入2个音频流数据,或在其中1个补偿位置插入
1个音频流数据,在另1个补偿位置插入3个音频流数据;确定3个补偿位置时,在其中1个补
偿位置插入2个音频流数据,在另2个补偿位置插入1个音频流数据;确定2个补偿位置时,在
每个补偿位置分别插入1个音频流数据。
[0045] 若音频播放设备的播放速率小于接收速率,该音频播放设备每毫秒接收一个数据包,该数据包的数据长度为16,数据包的补偿值为4时;由于该数据包的数据长度远大于补
偿值,则该数据包可确定1个补偿位置,或2个补偿位置,或3个补偿位置,或4个补偿位置。其
中,当采用在数据包中直接删除补偿值个音频数据流作为删除补偿的方式时,若确定1个补
偿位置时,在该补偿位置删除4个音频流数据;若确定2个补偿位置时,在每个补偿位置分别
删除2个音频流数据,或在其中1个补偿位置删除1个音频流数据,在另1个补偿位置删除3个
音频流数据;若确定3个补偿位置时,在其中1个补偿位置删除2个音频流数据,在另2个补偿
位置删除1个音频流数据;若确定4个补偿位置时,在每个补偿位置分别删除1个音频流数
据。当采用在数据包中先删除大于补偿值个音频数据流,再插入小于补偿值个音频数据流
作为删除补偿的方式时,若确定1个补偿位置时,优选的,在该补偿位置删除5个音频流数
据,再插入1个音频数据流;若确定2个补偿位置时,优选的,在每个补偿位置分别删除3个音
频流数据,再插入1个音频数据流;若确定3个补偿位置时,优选的,在其中1个补偿位置先删
除3个音频流数据,再插入1个音频数据流,然后在另2个补偿位置分别删除2个音频流数据,
再插入1个音频数据流;若确定4个补偿位置时,在每个补偿位置分别删除2个音频流数据,
再插入1个音频数据流;其中,通过采用在数据包中先删除大于补偿值个音频数据流,再插
入小于补偿值个音频数据流作为删除补偿的方式,以根据删除的音频数据流的值,确定插
入的音频数据流的值,使得该种方式得到的补偿数据包与直接进行删除音频数据流得到的
补偿数据包相比,该方式得到的补偿数据包音频中的音频数据流更加顺滑,不会产生音频
数据流突变的现象,避免影响数据包的音质。
[0046] 在本申请的一个具体实施例中,音频流数据根据补偿位置对应的原始音频流数据确定。
[0047] 在该具体实施例中,音频流数据可设置为与该补偿位置的前一音频流数据一致,或与该补偿位置的后一音频流数据一致,或该补偿位置的前一音频流数据与后一音频流数
据的平均值。音频流数据根据补偿位置的原始音频数据确定,以提高补偿的音频流数据与
数据包中原始音频流数据的连贯性,减小数据包中的音损,提高用户体验感。
[0048] 在本申请的一个具体实例中,根据前述当音频播放设备每毫秒接收一个数据包,该数据包的数据长度为16,数据包的补偿值为4,且确定4个补偿位置时,优选的,若音频播
放设备的播放速率小于接收速率,则在每一补偿位置插入1个音频流数据,其中该音频流数
据的数值为该补偿位置的前一音频流数据与后一音频流数据的平均值;若音频播放设备的
播放速率大于接收速率,则根据每一补偿位置的前一音频流数据与后一音频流数据,将该
前一音频流数据与该后一音频流数据删除,再在该补偿位置插入1个音频流数据,其中该音
频流数据的数值为补偿位置的前一音频流数据与后一音频流数据的平均值。
[0049] 在本申请的一个具体实施例中,在任一补偿位置的音频流数据的数量不大于预设数量阈值。
[0050] 在该具体实施例中,预设数量阈值的设定根据人耳对音质损失的敏感程度确定,例如,若连续缺少或超出4个音频流数据时,人耳几乎未察觉出待播放音频的异常,若连续
缺少5个音频数据流时,人耳察觉出待播放音频的异常;则可将预设数量阈值设置为1、2、3、
或4。预设数量阈值的设定,对连续补偿的同一补偿位置的音频流数据的数量进行控制,其
中补偿包括插入补偿和、或删除补偿;避免在同一补偿位置连续补偿的音频流数据过多,造
成在音频播放设备播放音频流数据时的异常明显,使得用户体验感降低。
[0051] 在本申请的一个具体实例中,优选的,根据前述具体实例中所述数据包的补偿值为4时,若预设数量阈值为3,则可在数据包中选定不同的两处位置作为补偿位置,两处补偿
位置出分别补偿3个音频流数据和1个音频流数据,或在数据包中选定不同的三处位置作为
补偿位置,三处补偿位置的其中一个补偿位置补偿2个音频流数据,在另外两个补偿位置分
别补偿1个音频流数据;或在数据包中选定不同的四处位置作为补偿位置,四处补偿位置出
分别补偿1个音频流数据。
[0052] 在本申请的一个具体实施例中,根据数据长度,确定相应的至少一个补偿位置,还包括:根据数据长度与补偿值的数目,确定补偿间隔;根据补偿间隔确定所述补偿位置。
[0053] 在该具体实施例中,通过计算数据长度补偿值的数目的商,将其作为补偿间隔,根据补偿间隔确定补偿位置;等间隔的对数据包进行相应的补偿,以使对音质的影响降到最
小。
[0054] 在本申请的一个具体实例中,优选的,根据前述当数据包的数据长度为16,补偿值为4时,根据数据长度与补偿值,计算获知数据包的补偿间隔为4,即对于数据包,每4个原始
音频流数据之间补偿1个音频流数据。
[0055] 本申请通过将音频播放设备中待播放区的当前音频数据量与预设的正常数据量阈值进行计算,获得相应的差值;根据差值,对音频播放设备接收到的待播放音频流的数据
包进行相应的补偿,获得数据包对应的补偿数据包;以解决音频播放设备中由于采样速率
差而产生的音频流数据断流或溢出的问题,从而避免录制和、或播放的音频存在异常或明
显的噪音等情况。本申请对音频播放设备接收到的数据包进行插入补偿和、或删除补偿,使
得对数据包对应的补偿数据包播放时潜在存在的略微快放和慢放问题形成抑制,最大限度
的还原数据包的原有波形和原有位置。
[0056] 需要说明的是,当本申请的音频播放设备中待播放区的当前音频数据量达到预设的播放阈值时,音频播放设备启动播放程序,对待播放区的当前音频数据量进行播放,其中
预设的播放阈值不超过待播放区的存储阈值范围。
[0057] 图2示出了本申请一种音频流补偿装置的具体实施方式。
[0058] 在图2所示的具体实施方式中,音频流补偿装置主要包括:用于对音频播放设备中待播放区的当前音频数据量进行计算的模块201;
[0059] 用于计算当前音频数据量与预设的正常数据量阈值的差值的模块202,其中正常数据量阈值不超出待播放区的存储阈值范围;以及
[0060] 用于根据差值,对音频播放设备当前接收到的待播放音频流的数据包进行相应的补偿,获得数据包对应的补偿数据包的模块203。
[0061] 该具体实施方式中,计算音频播放设备中待播放区中存入的待播放音频流的音频流数据的当前音频数据量,并将当前音频数据量与正常数据量阈值进行比较,计算当前音
频数据量与正常数据量阈值的差值,通过判断音频播放设备中播放速率小于接收速率的情
况,根据差值对音频播放设备当前接收到的数据包进行相应的补偿,从而获得数据包对应
的补偿数据包,以避免音频播放设备在播放待播放音频流的音频流数据和、或补偿数据包
中的音频流数据时出现数据溢出或数据断流的现象,影响待播放音频流的音质;其中待播
放音频包括已经录制完成的音频文件或,音频播放设备录制的音频流数据。
[0062] 在本申请的一个具体实例中,当音频播放设备中待播放区的存储阈值范围为[0,100],该音频播放设备的播放速率大于音频播放设备的接收速率,该音频播放设备每毫秒
接收一个数据包,该数据包的数据长度为10,预先设置的第一正常数据量阈值为90时,当待
播放区的当前音频数据量少于90时就对该数据包进行插入补偿;例如,1毫秒后的下一时刻
音频播放设备的待播放区中的当前音频数据量为89,此时接收到数据包,由于计算获知第
一正常数据量阈值与当前音频数据量的第一差值为1,即可对数据包插入补偿一个音频流
数据,获得数据包对应的补偿数据包。
[0063] 在本申请的一个具体实例中,当音频播放设备中待播放区的存储阈值范围为[0,100],该音频播放设备的播放速率小于音频播放设备的接收速率,该音频播放设备每毫秒
接收一个数据包,该数据包的数据长度为10,预先设置的第二正常数据量阈值为30时,当待
播放区的当前音频数据量大于30时就对该数据包进行删除补偿;例如,1毫秒后的下一时刻
音频播放设备的待播放区中的当前音频数据量为31,此时接收到数据包,由于计算获知当
前音频数据量与第二正常数据量阈值的第一差值为1,即可对数据包删除补偿一个音频流
数据,获得数据包对应的补偿数据包。
[0064] 本申请提供的音频流补偿装置,可用于执行上述任一实施例描述的音频流补偿方法,其实现原理和技术效果类似,在此不再赘述。
[0065] 在本申请的另一个具体实施方式中,一种计算机可读存储介质,其存储有计算机指令,计算机指令被操作以执行上述实施例中描述的音频流补偿方法。
[0066] 在本申请的一个具体实施例中,本申请的计算机可读存储介质中各功能模块可直接在硬件中、在由处理器执行的软件模块中或在两者的组合中。
[0067] 软件模块可驻留在RAM存储器、快闪存储器、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可装卸盘、CD‑ROM或此项技术中已知的任何其它形式的存储介质中。示范
性存储介质耦合到处理器,使得处理器可从存储介质读取信息和向存储介质写入信息。
[0068] 处理器可以是中央处理单元(英文:Central Processing Unit,简称:CPU),还可以是其他通用处理器、数字信号处理器(英文:Digital Signal Processor,简称:DSP)、专
用集成电路(英文:Application Specific Integrated Circuit,简称:ASIC)、现场可编程
门阵列(英文:Field Programmable Gate Array,简称:FPGA)或其它可编程逻辑装置、离散
门或晶体管逻辑、离散硬件组件或其任何组合等。通用处理器可以是微处理器,但在替代方
案中,处理器可以是任何常规处理器、控制器、微控制器或状态机。处理器还可实施为计算
装置的组合,例如DSP与微处理器的组合、多个微处理器、结合DSP核心的一个或一个以上微
处理器或任何其它此类配置。在替代方案中,存储介质可与处理器成一体式。处理器和存储
介质可驻留在ASIC中。ASIC可驻留在用户终端中。在替代方案中,处理器和存储介质可作为
离散组件驻留在用户终端中。
[0069] 在本申请的一个具体实施方式中,一种计算机设备,其包括至少一个处理器;以及与至少一个处理器进行通信连接的存储器;其中,存储器存储有可被至少一个处理器执行
的计算机指令,至少一个处理器操作计算机指令被操作以执行上述实施例中描述的音频流
补偿方法。
[0070] 在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅
仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结
合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的
相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通
信连接,可以是电性,机械或其它的形式。
[0071] 所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个
网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目
的。
[0072] 以上所述仅为本申请的实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构变换,或直接或间接运用在其他相关的技术领域,均
同理包括在本申请的专利保护范围内。