CN113436639B - 一种音频流补偿方法、装置、存储介质及设备 - Google Patents
一种音频流补偿方法、装置、存储介质及设备 Download PDFInfo
- Publication number
- CN113436639B CN113436639B CN202110984899.5A CN202110984899A CN113436639B CN 113436639 B CN113436639 B CN 113436639B CN 202110984899 A CN202110984899 A CN 202110984899A CN 113436639 B CN113436639 B CN 113436639B
- Authority
- CN
- China
- Prior art keywords
- compensation
- data
- audio
- difference
- audio stream
- 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
- 238000000034 method Methods 0.000 title claims abstract description 46
- 230000000875 corresponding effect Effects 0.000 claims description 49
- 238000012217 deletion Methods 0.000 claims description 10
- 230000037430 deletion Effects 0.000 claims description 10
- 238000003780 insertion Methods 0.000 claims description 6
- 230000037431 insertion Effects 0.000 claims description 6
- 230000002596 correlated effect Effects 0.000 claims description 2
- 238000005070 sampling Methods 0.000 abstract description 43
- 230000002159 abnormal effect Effects 0.000 abstract description 12
- 230000008569 process Effects 0.000 abstract description 8
- 238000012952 Resampling Methods 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 6
- 230000008859 change Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000005856 abnormality Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L21/00—Speech or voice signal processing techniques to produce another audible or non-audible signal, e.g. visual or tactile, in order to modify its quality or its intelligibility
- G10L21/02—Speech enhancement, e.g. noise reduction or echo cancellation
- G10L21/0208—Noise filtering
Landscapes
- Engineering & Computer Science (AREA)
- Computational Linguistics (AREA)
- Quality & Reliability (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
本申请公开了一种音频流补偿方法、装置、存储介质及设备,属于音频控制技术领域。该方法主要包括:对音频播放设备中待播放区的当前音频数据量进行计算;计算当前音频数据量与预设的正常数据量阈值的差值;根据差值,其中正常数据量阈值不超出待播放区的存储阈值范围,对音频播放设备接收到的待播放音频流的数据包进行相应的补偿,获得数据包对应的补偿数据包。本申请通过计算音频播放设备中待播放区的当前音频数据量与预设的正常数据量阈值的差值,对数据包进行相应的补偿,以解决音频录制和、或播放过程中,由于采样速率差而产生的音频数据流断流或溢出的问题,导致录制和、或播放的音频存在异常或明显的噪音等情况。
Description
技术领域
本申请涉及音频控制技术领域,特别涉及一种音频流补偿方法、装置、存储介质及设备。
背景技术
由于音频播放设备的不同,各种音频播放设备中的播放速率不同,录制音频文件的采样率也不同;音频播放设备中播放速率与音频文件或音频采集设备采样率之间的误差即为该音频播放设备的采样速率差;音频播放或录制设备中由于采样速率差而出现的音频数据流断流或溢出的问题,从而使得录制和、或播放的音频存在异常或明显的噪音等情况。
针对音频播放设备中由于采样速率差而出现的音频数据流断流或溢出的问题,从而导致录制和、或播放的音频存在异常或明显的噪音等情况,目前存在三种解决方案:1)通过重采样的方式,将音频流数据的原始采样率切换为与播放速率相同速率采样率,对接收到的音频流数据进行二次重新采样,再将二次重采样的音频流数据进行播放;但是解决方案1)的算法计算过程复杂,非常依赖MCU的计算性能,在一些低性能MCU上很难实现。2)采用一个比较大的缓存空间来提前存放音频流数据,当在音频播放器录制和播放的过程中出现采样速率差时,先储存一定时长的音频流数据,再根据该音频播放器的播放速率将储存的音频流数据进行播放,以避免出现数据断流的问题,其中一定时长的音频流数据远大于该音频播放器单位时间内播放的音频流数据;但是解决方案2)的算法非常耗费内存资源。3)根据采样速率差,对单位时间内采样的音频流数据进行固定的补偿,再将经补偿的音频流数据就进行播放;但是解决方案3)的方法,只适用于采样速率差比较小音频播放设备,且需提前获知具体采样速率差,无法适应采样速率差的动态变化。
上述的三种解决方法均在一定程度上对音频播放设备中由于采样速率差而出现的音频数据流断流或溢出的问题,从而使得录制和、或播放的音频存在异常或明显的噪音等情况进行解决,但是均存在一定的限制,以使在解决上述问题是依旧存在一定的问题。
发明内容
针对现有技术存在的音频播放设备中由于采样速率差而出现的音频数据流断流或溢出的问题,从而导致录制和、或播放的音频存在异常或明显的噪音等情况问题,本申请主要提供一种音频流补偿方法、装置、存储介质及设备。
为了实现上述目的,本申请采用的一个技术方案是:提供一种音频流补偿方法,其包括:对音频播放设备中待播放区的当前音频数据量进行计算;计算当前音频数据量与预设的正常数据量阈值的差值,其中正常数据量阈值不超出待播放区的存储阈值范围;根据差值,对音频播放设备当前接收到的待播放音频流的数据包进行相应的补偿,获得数据包对应的补偿数据包。
本申请采用的另一个技术方案是:提供一种音频流补偿装置,其包括:用于对音频播放设备中待播放区的当前音频数据量进行计算的模块;用于计算当前音频数据量与预设的正常数据量阈值的差值的模块,其中正常数据量阈值不超出待播放区的存储阈值范围;以及用于根据差值,对音频播放设备当前接收到的待播放音频流的数据包进行相应的补偿,获得数据包对应的补偿数据包的模块。
本申请采用的另一个技术方案是:提供一种计算机可读存储介质,其存储有计算机指令,该计算机指令被操作以执行方案一中的音频流补偿方法。
本申请采用的另一个技术方案是:提供一种计算机设备,其包括:至少一个处理器;以及与至少一个处理器进行通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的计算机指令,至少一个处理器操作计算机指令以执行方案一中的音频流补偿方法。
本申请的技术方案可以达到的有益效果是:本申请设计了音频流补偿方法、装置、存储介质及设备。该方法通过计算音频播放设备中待播放区的当前音频数据量与预设的正常数阈值的差值;根据差值,对音频播放设备当前接收到的待播放音频流的数据包进行相应的补偿,获得数据包对应的补偿数据包;以解决音频播放设备中由于采样速率差而产生的音频流数据断流或溢出的问题,从而避免录制和、或播放的音频存在异常或明显的噪音等情况。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作以简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一种音频流补偿方法的一个具体实施方式的示意图;
图2是本申请一种音频流补偿装置的一个具体实施方式的示意图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
下面结合附图对本申请的较佳实施例进行详细阐述,以使本申请的优点和特征能更易于被本领域技术人员理解,从而对本申请的保护范围做出更为清楚明确的界定。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
由于音频播放设备的不同,各种音频播放设备中的播放速率不同,录制音频文件的采样率也不同;音频播放设备中播放速率与音频文件采样率之间的误差即为该音频播放设备的采样速率差;音频播放设备中由于采样速率差而出现的音频数据流断流或溢出的问题,从而使得录制和、或播放的音频存在异常或明显的噪音等情况。
例如对于播放音频数据,音频文件的采样率一般都是标准的16K(即一秒钟采样16千次),24K,32K等等;当音频文件的采样速率为16K时,理想情况下播放速率应与音频文件的采样速率保持一致,即以16K的播放速率进行播放。但在实际情况中,由于硬件原因,无法达到精准的16K的播放速率或者不支持16K的播放速率,出现15K或17K的播放速率等;此时原有的采样速率和现有的播放速率之间就存在一个差值,最终的结果将导致单位时间内(如1ms)采样的数据量不足以完成单位时间的播放或者在单位时间内播放不完。比如采样速率为16K,即1ms采集16个音频流数据,而播放速率为15K,即1ms播放15个音频流数据,就会出现一个多余的音频流数据。那么对于时长为1S的音频流数据,就会出现1000个多余的音频流数据。
当采样速率差很小或是采样速率差为零时,对音质的影响不是很大,人耳很难察觉。例如录制音频文件或是将提前录制好的音频文件进行播放。其最终产生的结果可能为1)正常录制时长为3分钟的音频流数据,实际的录制时长为2.55分钟或者3.05分钟;2)正常播放时长为4分钟的音频流数据,实际播放时长为3.55分钟或者4.05分钟。针对结果2)所表现的实际现象等同于4分钟的音频流数据被快放或者慢放了3秒钟。而这3秒钟被平均分布在整个音频流数据的播放过程中,因此人耳几乎无法感知。但是该音频流数据的音质依旧发生了变化,变化的程度根据该音频播放设备的采样速率差的大小确定。
对于音频播放设备需一边进行录制一边进行播放的情况。将录制方表示为A,播放方表示为B;当A以标准16K的采样率实时采样音频流数据并通过某种通讯方式将音频流数据传输给B,以1ms为时间单位传输一次。那么每1ms,A都将传输16个音频流数据给B。此时B由于硬件原因没有标准的16K播放速率,其播放速率为17K。那么当B收到第一包音频流数据的时候开始播放,将16个数据播放完后新的数据还没有到达,这个时候会出现播放不连续,容易产生底噪,比较影响音质。如果是20ms发一次数据包,那么每20ms,A发送320个音频流数据,但是B在20ms里需要消耗340个数据,当320个数据播放完,新的数据还未到来,将会有更长的一段时间没有音频流数据可播放。对于这种情况更致命,播放的音频几乎没法听。反之亦然,如果是音频流数据太多,则会有相当一部分连续的数据无法被播放。
针对音频播放设备中由于采样速率差而出现的音频数据流断流或溢出的问题,从而使得录制和、或播放的音频存在异常或明显的噪音等情况,目前存在三种解决方案: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个音频流数据,对整个音频流数据的音质影响非常大。
上述的三种解决方法虽然在一定程度上解决了音频播放设备中由于采样速率差而出现的音频数据流断流或溢出的问题,从而使得录制和、或播放的音频存在异常或明显的噪音等情况,但是均存在一定的限制,以使在解决上述问题是依旧存在一定的问题。
本申请的发明构思是:通过计算音频播放设备中待播放区的当前音频数据量与预设的正常数据量阈值的差值;当计算当前音频数据量与第一正常数据量阈值的差值时,根据计算获得第一差值,获得音频播放设备接收到的待播放音频流的数据包对应的补偿值,根据数据包的数据长度在当前数据包中插入补偿值个音频流数据,以补足数据包中的音频流数据,使得在播放时避免了数据断流现象。当计算当前音频数据量与第二正常数据量阈值的差值时,根据计算获得的第二差值,获得音频播放设备当前接收到的待播放音频流的数据包对应的补偿值,根据数据包的数据长度在数据包中删除补偿值个音频流数据,以控制数据包中的音频流数据的数量,使得在播放时避免了数据溢出现象。本申请以通过对数据包进行相应的补偿,以解决音频播放设备中由于采样速率差而产生的音频流数据断流或溢出的问题,从而避免录制和、或播放的音频存在异常或明显的噪音等情况。
本申请的适用范围是:具有播放功能的音频播放设备,以使音频播放设备能够播放已经录制完成的音频文件;或具有录制及播放功能的音频播放设备,以使音频播放设备既能够播放已经录制好的音频文件,又能够一边录制音频流数据,一边播放音频流数据。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。
图1示出了本申请一种音频流补偿方法的一个具体实施方式。
在图1所示的具体实施方式中,音频流补偿方法主要包括:
步骤S101,对音频播放设备中待播放区的当前音频数据量进行计算。
本实施例中,待播放区为音频播放设备中播放音频数据之前的缓冲区,其存入录制完成的音频文件或音频播放设备录制的音频流数据,使得待播放区的当前音频数据量保持在稳定的范围内,以供音频播放设备在后续播放时,能够稳定的播放待播放区的音频流数据,以免影响音质。
步骤S102,计算当前音频数据量与预设的正常数据量范围阈值的差值,其中正常数据量阈值不超出待播放区的存储阈值范围。
本实施例中,预设的正常数据量阈值不超出音频播放设备中带播放区的存储阈值范围;其中正常数据量阈值的设定用于当音频播放设备的播放速率大于接收速率时,根据正常数据量阈值避免后续音频播放设备在播放音频流数据时,出现数据断流的现象,当音频播放设备的播放速率小于接收速率时,根据正常数据量阈值避免后续音频播放设备在播放待播放音频流时,出现数据溢出的现象。例如,当音频播放设备中待播放区的存储阈值范围为[0,100],播放速率为11K,采样速率为10K时,可将正常数据量阈值设置为90;当音频播放设备中待播放区的存储阈值范围为[0,100],播放速率为9K,采样速率为10K时,则可将预设正常数据量范围的上限阈值设置为30。
以及步骤S103,根据差值,对音频播放设备当前接收到的待播放音频流的数据包进行相应的补偿,获得数据包对应的补偿数据包。
本实施例中,当音频播放设备的播放速率小于接收速率时,若正常数据量阈值与当前音频数据量之间存在差值,表示后续音频播放设备在播放待播放音频流时,会出现数据溢出的现象,使得播放的待播放音频流不完整;当音频播放设备的播放速率大于接收速率时,若正常数据量阈值与当前音频数据量之间存在差值,表示后续音频播放设备在播放待播放音频流时,会出现数据断流的现象,影响待播放音频流的音质,使得用户体验感降低。
该具体实施方式中,计算音频播放设备中待播放区中存入的待播放音频流的音频流数据的当前音频数据量,并将当前音频数据量与正常数据量阈值进行比较,计算当前音频数据量与正常数据量阈值的差值,通过判断音频播放设备中播放速率小于接收速率的情况,根据差值对音频播放设备当前接收到的数据包进行相应的补偿,从而获得数据包对应的补偿数据包,以避免音频播放设备在播放待播放音频流的音频流数据和、或补偿数据包中的音频流数据时出现数据溢出或数据断流的现象,影响待播放音频流的音质;其中待播放音频包括已经录制完成的音频文件或,音频播放设备录制的音频流数据。
在本申请的一个具体实施例中,计算当前音频数据量与预设的正常数据量阈值的差值,进一步包括:预先设置正常数据量阈值,其中,正常数据量阈值包括第一正常数据量阈值和、或第二正常数据量阈值,第一正常数据量阈值不小于第二正常数据量阈值;当音频播放设备的播放速率大于音频播放设备的接收速率时,计算当前音频数据量与第一正常数据量阈值的差值,获得第一差值;以及当播放速率小于接收速率时,计算当前音频数据量与第二正常数据量阈值的差值,获得第二差值。
在该具体实施例中,可根据音频播放设备的历史数据,确定该音频播放设备的播放速率与接收速率的情况,若该音频播放设备只存在播放速率大于接收速率的情况,则预先设置第一正常数据量阈值即可,若该音频播放设备只存在播放速率小于接收速率的情况,则预先设置第二正常数据量阈值即可,若该音频播放设备既存在播放速率大于接收速率的情况,又存在播放速率小于接收速率的情况,则预先分别设置第一正常数据量阈值与第二正常数据量阈值;在根据该音频播放设备中当前音频数据量与正常数据量阈值的差值,获得各个情况分别对应的第一差值或第二差值;其中该差值通过利用正常数据量阈值减去当前音频数据量获得。通过该音频播放设备的播放速率与接收速率的情况,确定准确的正常数据量阈值,以使计算获得准确的差值,为后续的补偿类型提供条件。
在本申请的一个具体实施例中,根据差值,对音频播放设备接收的待播放音频流的数据包进行相应的补偿,获得数据包对应的补偿数据包,进一步包括:当第一差值不小于预设补偿数量时,根据第一差值获取数据包对应的补偿值,其中补偿值为大于0的整数;以及根据数据包的数据长度与补偿值,对数据包进行插入补偿,获得补偿数据包。
该具体实施例中,若音频播放设备的播放速率大于接收速率,利用第一正常数据量阈值减去当前音频数据量,获得第一差值。将第一差值与预设补偿数量进行比较;当第一差值小于预设补偿数量时,数据包无补偿值,即无需对该数据包进行补偿;当第一差值大于或等于预设补偿数量时,将第一差值的整数部分作为补偿值,此时,由于音频播放设备的播放速率大于接收速率,表示该音频播放设备中待播放区中音频流数据不足以支持音频播放设备进行稳定的无损播放,因此根据补偿值,对该数据包进行插入补偿,以获得补偿数据包,避免了后续音频播放器在播放时因出现数据断流而影响音质的现象。
需要说明的是,预设补偿数量设定为不小于1的整数。
在本申请的一个具体实施例中,根据差值,对音频播放设备当前接收到的待播放音频流的数据包进行相应的补偿,获得数据包对应的补偿数据包,还包括:当第二差值不小于预设补偿数量时,根据第二差值获取数据包对应的补偿值,其中补偿值为大于0的整数;以及根据数据包的数据长度与补偿值,对数据包进行相应的删除补偿,获得补偿数据包。
该具体实施例中,若音频播放设备的播放速率小于接收速率,利用当前音频数据量减去第二正常数据量阈值,获得第二差值。将第二差值与预设补偿数量进行比较;当第二差值小于预设补偿数量时,数据包无补偿值,即无需对该数据包进行补偿;当第二差值大于或等于预设补偿数量时,将第二差值的整数部分作为补偿值,此时,由于音频播放设备的播放速率小于接收速率,表示待播放区的当前音频流数据不支持音频播放设备进行稳定的无损播放,因此根据数据包的补偿值,对数据包进行相应的删除补偿,减少了后续音频播放器在播放时因出现连续的数据溢出而影响音质的现象。其中,具体的删除补偿步骤可以是在数据包中直接删除补偿值个音频数据流;或先删除大于补偿值个音频数据流,再插入相应数量的音频数据流,其中删除的音频数据流数量与插入的音频数据流数量的差值与补偿值一致。
在本申请的一个具体实施例中,音频流补偿方法还包括:根据数据长度确定相应的至少一个补偿位置,其中数据长度与补偿位置之间的间隔正相关;根据补偿位置,在数据包中补偿补偿值个音频流数据,获得补偿数据包。
在该具体实施例中,若该数据包对应多个补偿位置,则数据长度越长,各个补偿位置之间的间距越大,以避免补偿位置的间隔太近造成补偿的音频流数据集中,造成补偿的音频流数据在播放时的音损太大,使得用户体验感降低。根据补偿位置在数据包中补偿补偿值个音频流数据,以保证该音频播放设备能够稳定的无损播放,避免该音频播放设备产生数据断流或数据溢出现象。
在本申请的一个具体实例中,若音频播放设备的播放速率大于接收速率,该音频播放设备每毫秒接收一个数据包,该数据包的数据长度为16,数据包的补偿值为4时;由于该数据包的数据长度远大于补偿值,则该数据包可确定1个补偿位置,或2个补偿位置,或3个补偿位置,或4个补偿位置。其中确定1个补偿位置时,在该补偿位置插入4个音频流数据;确定2个补偿位置时,在每个补偿位置分别插入2个音频流数据,或在其中1个补偿位置插入1个音频流数据,在另1个补偿位置插入3个音频流数据;确定3个补偿位置时,在其中1个补偿位置插入2个音频流数据,在另2个补偿位置插入1个音频流数据;确定2个补偿位置时,在每个补偿位置分别插入1个音频流数据。
若音频播放设备的播放速率小于接收速率,该音频播放设备每毫秒接收一个数据包,该数据包的数据长度为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个音频数据流;其中,通过采用在数据包中先删除大于补偿值个音频数据流,再插入小于补偿值个音频数据流作为删除补偿的方式,以根据删除的音频数据流的值,确定插入的音频数据流的值,使得该种方式得到的补偿数据包与直接进行删除音频数据流得到的补偿数据包相比,该方式得到的补偿数据包音频中的音频数据流更加顺滑,不会产生音频数据流突变的现象,避免影响数据包的音质。
在本申请的一个具体实施例中,音频流数据根据补偿位置对应的原始音频流数据确定。
在该具体实施例中,音频流数据可设置为与该补偿位置的前一音频流数据一致,或与该补偿位置的后一音频流数据一致,或该补偿位置的前一音频流数据与后一音频流数据的平均值。音频流数据根据补偿位置的原始音频数据确定,以提高补偿的音频流数据与数据包中原始音频流数据的连贯性,减小数据包中的音损,提高用户体验感。
在本申请的一个具体实例中,根据前述当音频播放设备每毫秒接收一个数据包,该数据包的数据长度为16,数据包的补偿值为4,且确定4个补偿位置时,优选的,若音频播放设备的播放速率小于接收速率,则在每一补偿位置插入1个音频流数据,其中该音频流数据的数值为该补偿位置的前一音频流数据与后一音频流数据的平均值;若音频播放设备的播放速率大于接收速率,则根据每一补偿位置的前一音频流数据与后一音频流数据,将该前一音频流数据与该后一音频流数据删除,再在该补偿位置插入1个音频流数据,其中该音频流数据的数值为补偿位置的前一音频流数据与后一音频流数据的平均值。
在本申请的一个具体实施例中,在任一补偿位置的音频流数据的数量不大于预设数量阈值。
在该具体实施例中,预设数量阈值的设定根据人耳对音质损失的敏感程度确定,例如,若连续缺少或超出4个音频流数据时,人耳几乎未察觉出待播放音频的异常,若连续缺少5个音频数据流时,人耳察觉出待播放音频的异常;则可将预设数量阈值设置为1、2、3、或4。预设数量阈值的设定,对连续补偿的同一补偿位置的音频流数据的数量进行控制,其中补偿包括插入补偿和、或删除补偿;避免在同一补偿位置连续补偿的音频流数据过多,造成在音频播放设备播放音频流数据时的异常明显,使得用户体验感降低。
在本申请的一个具体实例中,优选的,根据前述具体实例中所述数据包的补偿值为4时,若预设数量阈值为3,则可在数据包中选定不同的两处位置作为补偿位置,两处补偿位置出分别补偿3个音频流数据和1个音频流数据,或在数据包中选定不同的三处位置作为补偿位置,三处补偿位置的其中一个补偿位置补偿2个音频流数据,在另外两个补偿位置分别补偿1个音频流数据;或在数据包中选定不同的四处位置作为补偿位置,四处补偿位置出分别补偿1个音频流数据。
在本申请的一个具体实施例中,根据数据长度,确定相应的至少一个补偿位置,还包括:根据数据长度与补偿值的数目,确定补偿间隔;根据补偿间隔确定所述补偿位置。
在该具体实施例中,通过计算数据长度补偿值的数目的商,将其作为补偿间隔,根据补偿间隔确定补偿位置;等间隔的对数据包进行相应的补偿,以使对音质的影响降到最小。
在本申请的一个具体实例中,优选的,根据前述当数据包的数据长度为16,补偿值为4时,根据数据长度与补偿值,计算获知数据包的补偿间隔为4,即对于数据包,每4个原始音频流数据之间补偿1个音频流数据。
本申请通过将音频播放设备中待播放区的当前音频数据量与预设的正常数据量阈值进行计算,获得相应的差值;根据差值,对音频播放设备接收到的待播放音频流的数据包进行相应的补偿,获得数据包对应的补偿数据包;以解决音频播放设备中由于采样速率差而产生的音频流数据断流或溢出的问题,从而避免录制和、或播放的音频存在异常或明显的噪音等情况。本申请对音频播放设备接收到的数据包进行插入补偿和、或删除补偿,使得对数据包对应的补偿数据包播放时潜在存在的略微快放和慢放问题形成抑制,最大限度的还原数据包的原有波形和原有位置。
需要说明的是,当本申请的音频播放设备中待播放区的当前音频数据量达到预设的播放阈值时,音频播放设备启动播放程序,对待播放区的当前音频数据量进行播放,其中预设的播放阈值不超过待播放区的存储阈值范围。
图2示出了本申请一种音频流补偿装置的具体实施方式。
在图2所示的具体实施方式中,音频流补偿装置主要包括:用于对音频播放设备中待播放区的当前音频数据量进行计算的模块201;
用于计算当前音频数据量与预设的正常数据量阈值的差值的模块202,其中正常数据量阈值不超出待播放区的存储阈值范围;以及
用于根据差值,对音频播放设备当前接收到的待播放音频流的数据包进行相应的补偿,获得数据包对应的补偿数据包的模块203。
该具体实施方式中,计算音频播放设备中待播放区中存入的待播放音频流的音频流数据的当前音频数据量,并将当前音频数据量与正常数据量阈值进行比较,计算当前音频数据量与正常数据量阈值的差值,通过判断音频播放设备中播放速率小于接收速率的情况,根据差值对音频播放设备当前接收到的数据包进行相应的补偿,从而获得数据包对应的补偿数据包,以避免音频播放设备在播放待播放音频流的音频流数据和、或补偿数据包中的音频流数据时出现数据溢出或数据断流的现象,影响待播放音频流的音质;其中待播放音频包括已经录制完成的音频文件或,音频播放设备录制的音频流数据。
在本申请的一个具体实例中,当音频播放设备中待播放区的存储阈值范围为[0,100],该音频播放设备的播放速率大于音频播放设备的接收速率,该音频播放设备每毫秒接收一个数据包,该数据包的数据长度为10,预先设置的第一正常数据量阈值为90时,当待播放区的当前音频数据量少于90时就对该数据包进行插入补偿;例如,1毫秒后的下一时刻音频播放设备的待播放区中的当前音频数据量为89,此时接收到数据包,由于计算获知第一正常数据量阈值与当前音频数据量的第一差值为1,即可对数据包插入补偿一个音频流数据,获得数据包对应的补偿数据包。
在本申请的一个具体实例中,当音频播放设备中待播放区的存储阈值范围为[0,100],该音频播放设备的播放速率小于音频播放设备的接收速率,该音频播放设备每毫秒接收一个数据包,该数据包的数据长度为10,预先设置的第二正常数据量阈值为30时,当待播放区的当前音频数据量大于30时就对该数据包进行删除补偿;例如,1毫秒后的下一时刻音频播放设备的待播放区中的当前音频数据量为31,此时接收到数据包,由于计算获知当前音频数据量与第二正常数据量阈值的第一差值为1,即可对数据包删除补偿一个音频流数据,获得数据包对应的补偿数据包。
本申请提供的音频流补偿装置,可用于执行上述任一实施例描述的音频流补偿方法,其实现原理和技术效果类似,在此不再赘述。
在本申请的另一个具体实施方式中,一种计算机可读存储介质,其存储有计算机指令,计算机指令被操作以执行上述实施例中描述的音频流补偿方法。
在本申请的一个具体实施例中,本申请的计算机可读存储介质中各功能模块可直接在硬件中、在由处理器执行的软件模块中或在两者的组合中。
软件模块可驻留在RAM存储器、快闪存储器、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可装卸盘、CD-ROM或此项技术中已知的任何其它形式的存储介质中。示范性存储介质耦合到处理器,使得处理器可从存储介质读取信息和向存储介质写入信息。
处理器可以是中央处理单元(英文:Central Processing Unit,简称:CPU),还可以是其他通用处理器、数字信号处理器(英文:Digital Signal Processor,简称:DSP)、专用集成电路(英文:Application Specific Integrated Circuit,简称:ASIC)、现场可编程门阵列(英文:Field Programmable Gate Array,简称:FPGA)或其它可编程逻辑装置、离散门或晶体管逻辑、离散硬件组件或其任何组合等。通用处理器可以是微处理器,但在替代方案中,处理器可以是任何常规处理器、控制器、微控制器或状态机。处理器还可实施为计算装置的组合,例如DSP与微处理器的组合、多个微处理器、结合DSP核心的一个或一个以上微处理器或任何其它此类配置。在替代方案中,存储介质可与处理器成一体式。处理器和存储介质可驻留在ASIC中。ASIC可驻留在用户终端中。在替代方案中,处理器和存储介质可作为离散组件驻留在用户终端中。
在本申请的一个具体实施方式中,一种计算机设备,其包括至少一个处理器;以及与至少一个处理器进行通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的计算机指令,至少一个处理器操作计算机指令被操作以执行上述实施例中描述的音频流补偿方法。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
以上所述仅为本申请的实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (7)
1.一种音频流补偿方法,其特征在于,包括:
对音频播放设备中待播放区的当前音频数据量进行计算;
计算所述当前音频数据量与预设的正常数据量阈值的差值,其中所述正常数据量阈值不超出所述待播放区的存储阈值范围;以及
根据所述差值,对所述音频播放设备当前接收到的待播放音频流的数据包补偿所述差值相应数量的音频流数据,获得所述数据包对应的补偿数据包;
所述计算所述当前音频数据量与预设的正常数据量阈值的差值,进一步包括:
根据所述音频播放设备的播放速率与接收速率的大小关系,预先设置所述正常数据量阈值,其中,所述正常数据量阈值包括第一正常数据量阈值和/或第二正常数据量阈值,所述第一正常数据量阈值大于所述第二正常数据量阈值;
当所述播放速率大于所述接收速率时,计算所述当前音频数据量与所述第一正常数据量阈值的差值,获得第一差值;以及
当所述播放速率小于所述接收速率时,计算所述当前音频数据量与所述第二正常数据量阈值的差值,获得第二差值;
所述根据所述差值,对所述音频播放设备当前接收到的待播放音频流的数据包补偿所述差值相应数量的音频流数据,获得所述数据包对应的补偿数据包,进一步包括:
当所述第一差值不小于预设补偿数量时,根据所述第一差值获取所述数据包对应的补偿值,其中根据所述第一差值获取的所述补偿值为大于0的整数;
根据所述数据包的数据长度与根据所述第一差值获取的所述补偿值,对所述数据包进行相应的插入补偿,获得所述补偿数据包;
当所述第二差值不小于所述预设补偿数量时,根据所述第二差值获取所述数据包对应的补偿值,其中根据所述第二差值获取的所述补偿值为大于0的整数;以及
根据所述数据包的数据长度与根据所述第二差值获取的所述补偿值,对所述数据包进行相应的删除补偿,获得所述补偿数据包。
2.根据权利要求1所述的音频流补偿方法,其特征在于,还包括:
根据所述数据长度,确定相应的至少一个补偿位置,其中所述数据长度与所述补偿位置之间的间隔正相关;
根据所述补偿位置,在所述数据包补偿根据所述第一差值获取的所述补偿值或根据所述第二差值获取的所述补偿值个音频流数据,获得所述补偿数据包。
3.根据权利要求2所述的音频流补偿方法,其特征在于,所述音频流数据根据所述补偿位置对应的原始音频流数据确定。
4.根据权利要求2所述的音频流补偿方法,其特征在于,在任一所述补偿位置处补偿的所述音频流数据的数量不大于预设数量阈值。
5.一种音频流补偿装置,其特征在于,包括:
用于对音频播放设备中待播放区的当前音频数据量进行计算的模块;
用于计算所述当前音频数据量与预设的正常数据量阈值的差值的模块,其中所述正常数据量阈值不超出所述待播放区的存储阈值范围;以及
用于根据所述差值,对所述音频播放设备当前接收到的待播放音频流的数据包补偿所述差值相应数量的音频流数据,获得所述数据包对应的补偿数据包的模块;
所述用于计算所述当前音频数据量与预设的正常数据量阈值的差值的模块,进一步包括:
用于根据所述音频播放设备的播放速率与接收速率的大小关系,预先设置所述正常数据量阈值的模块,其中,所述正常数据量阈值包括第一正常数据量阈值和/或第二正常数据量阈值,所述第一正常数据量阈值大于所述第二正常数据量阈值;
用于当所述播放速率大于所述接收速率时,计算所述当前音频数据量与所述第一正常数据量阈值的差值,获得第一差值的模块;以及
用于当所述播放速率小于所述接收速率时,计算所述当前音频数据量与所述第二正常数据量阈值的差值,获得第二差值的模块;
所述用于根据所述差值,对所述音频播放设备当前接收到的待播放音频流的数据包补偿所述差值相应数量的音频流数据,获得所述数据包对应的补偿数据包的模块,进一步包括:
用于当所述第一差值不小于预设补偿数量时,根据所述第一差值获取所述数据包对应的补偿值的模块,其中根据所述第一差值获取的所述补偿值为大于0的整数;
用于根据所述数据包的数据长度与根据所述第一差值获取的所述补偿值,对所述数据包进行相应的插入补偿,获得所述补偿数据包的模块;
用于当所述第二差值不小于所述预设补偿数量时,根据所述第二差值获取所述数据包对应的补偿值的模块,其中根据所述第二差值获取的所述补偿值为大于0的整数;以及
用于根据所述数据包的数据长度与根据所述第二差值获取的所述补偿值,对所述数据包进行相应的删除补偿,获得所述补偿数据包的模块。
6.一种计算机可读存储介质,其存储有计算机指令,其特征在于,所述计算机指令被操作以执行权利要求1-4中任一项所述的音频流补偿方法。
7.一种计算机设备,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器进行通信连接的存储器;
其中,所述存储器存储有可被所述至少一个处理器执行的计算机指令,所述至少一个处理器操作所述计算机指令以执行如权利要求1-4任一项所述的音频流补偿方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110984899.5A CN113436639B (zh) | 2021-08-26 | 2021-08-26 | 一种音频流补偿方法、装置、存储介质及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110984899.5A CN113436639B (zh) | 2021-08-26 | 2021-08-26 | 一种音频流补偿方法、装置、存储介质及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113436639A CN113436639A (zh) | 2021-09-24 |
CN113436639B true CN113436639B (zh) | 2021-12-03 |
Family
ID=77797901
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110984899.5A Active CN113436639B (zh) | 2021-08-26 | 2021-08-26 | 一种音频流补偿方法、装置、存储介质及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113436639B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114420149B (zh) * | 2022-03-16 | 2022-09-20 | 湖南双菱电子科技有限公司 | 音频延时器的时间补偿方法、音频延时器及计算机存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000092122A (ja) * | 1998-09-11 | 2000-03-31 | Fuji Xerox Co Ltd | 音声伝送装置 |
CN104661153A (zh) * | 2014-12-31 | 2015-05-27 | 歌尔声学股份有限公司 | 一种耳机音效补偿方法、装置及耳机 |
CN105245496A (zh) * | 2015-08-26 | 2016-01-13 | 广州市百果园网络科技有限公司 | 一种播放音频数据的方法和装置 |
CN105448312A (zh) * | 2014-06-12 | 2016-03-30 | 华为技术有限公司 | 音频同步播放方法、装置及系统 |
CN110798458A (zh) * | 2019-10-22 | 2020-02-14 | 歌尔股份有限公司 | 数据同步方法、装置、设备及计算机可读存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103813241B (zh) * | 2012-11-09 | 2016-02-10 | 辉达公司 | 移动电子设备及其音频播放装置 |
CN112634912B (zh) * | 2020-12-18 | 2024-04-09 | 北京猿力未来科技有限公司 | 丢包补偿方法及装置 |
-
2021
- 2021-08-26 CN CN202110984899.5A patent/CN113436639B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000092122A (ja) * | 1998-09-11 | 2000-03-31 | Fuji Xerox Co Ltd | 音声伝送装置 |
CN105448312A (zh) * | 2014-06-12 | 2016-03-30 | 华为技术有限公司 | 音频同步播放方法、装置及系统 |
CN104661153A (zh) * | 2014-12-31 | 2015-05-27 | 歌尔声学股份有限公司 | 一种耳机音效补偿方法、装置及耳机 |
CN105245496A (zh) * | 2015-08-26 | 2016-01-13 | 广州市百果园网络科技有限公司 | 一种播放音频数据的方法和装置 |
CN110798458A (zh) * | 2019-10-22 | 2020-02-14 | 歌尔股份有限公司 | 数据同步方法、装置、设备及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113436639A (zh) | 2021-09-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109089130B (zh) | 一种调整直播视频的时间戳的方法和装置 | |
CN108259998B (zh) | 播放器及播放控制方法、装置、电子设备及播放系统 | |
US11563992B2 (en) | Video playback quality detection method and apparatus | |
CN110956974A (zh) | 回声消除方法及其相关装置 | |
CN108111997A (zh) | 蓝牙设备音频同步方法和系统 | |
CN113436639B (zh) | 一种音频流补偿方法、装置、存储介质及设备 | |
MX2011005782A (es) | Metodo y aparato para controlar la reproduccion de datos de video-audio. | |
CN110581973A (zh) | 数据回放方法、装置、终端设备及存储介质 | |
CN110052032A (zh) | 一种游戏中资源处理的方法及装置、电子设备、存储介质 | |
CN108156500B (zh) | 多媒体数据时间修正方法、计算机装置、计算机可读存储介质 | |
KR100490403B1 (ko) | 오디오 스트림의 버퍼링 제어 방법 및 그 장치 | |
CN107371053B (zh) | 音频视频流对比分析方法及装置 | |
CN110751045B (zh) | 故障录波方法、系统及终端设备 | |
CN112637016B (zh) | 一种网络延时更新方法、系统、电子设备及存储介质 | |
CN111526385A (zh) | 一种视频处理方法、装置、电子设备及存储介质 | |
CN101753363B (zh) | 应用于媒体传输质量测量的方法及装置 | |
CN114091170B (zh) | 一种仿真信息模拟方法、装置、设备及存储介质 | |
CN113709582B (zh) | 一种带宽测量方法和装置 | |
CN115589506A (zh) | 一种mp4格式音视频文件生成方法、系统及计算机储存介质 | |
CN109905752B (zh) | 音频数据处理方法、装置、电子设备和存储介质 | |
CN110856028B (zh) | 一种媒体数据的播放方法、设备及存储介质 | |
CN118018795B (zh) | 视频播放方法、装置、电子设备和计算机可读存储介质 | |
CN110636359B (zh) | 音视频同步播放的方法及装置 | |
US11930242B2 (en) | Method and electronic device for playing streaming media | |
CN115942066B (zh) | 一种音频直播方法、电子设备及计算机可读存储介质 |
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 | ||
CP01 | Change in the name or title of a patent holder |
Address after: A1009, floor 9, block a, No. 9, Shangdi Third Street, Haidian District, Beijing 100085 Patentee after: Beijing Bairui Internet Technology Co.,Ltd. Address before: A1009, floor 9, block a, No. 9, Shangdi Third Street, Haidian District, Beijing 100085 Patentee before: BARROT WIRELESS Co.,Ltd. |
|
CP01 | Change in the name or title of a patent holder |