第一句子网 - 唯美句子、句子迷、好句子大全
第一句子网 > 一种音频数据处理方法及装置与流程

一种音频数据处理方法及装置与流程

时间:2021-07-29 09:51:20

相关推荐

一种音频数据处理方法及装置与流程

本申请涉及数据传输技术领域,特别涉及一种音频数据处理方法及装置、计算设备和计算机可读存储介质。

背景技术:

随着人们物质生活水平的不断提高,移动智能终端设备已逐渐进入到每个家庭中,人们通过移动设备,可以进行在线观看视频,听歌,玩游戏等行为。

目前,进行在线观看视频、听歌、玩游戏等行为时,相关视频、音频数据需要通过网络从服务器端传输到移动设备,因为网络的延迟或波动,会导致移动设备接收视频、音频数据的时间也有波动,甚至会导致丢失。视频数据在传输过程中丢失一两帧,人的感知并不明显,但是人对音频数据的感知却十分敏感,如果音频数据丢失超过20毫秒时,用户听到的音频数据就会有很明显的卡顿,用户体验十分不好。

那么,针对上述问题,如果保证接收到的音频数据能流畅的播放,就成了我们亟待解决的问题。

技术实现要素:

有鉴于此,本申请实施例提供了一种音频数据处理方法及装置、计算设备和计算机可读存储介质,以解决现有技术中存在的技术缺陷。

根据本申请实施例的第一方面,提供了一种音频数据处理方法,包括:

接收音频数据的音频包,将所述音频包缓存至缓存区;

根据音频包的缓存信息,确定对应的抖动缓存阈值;

在所述缓存区中音频包的缓存时长大于等于所述抖动缓存阈值的情况下,播放所述音频数据;

在所述缓存区中音频包的缓存时长小于所述抖动缓存阈值的情况下,暂停播放所述音频数据。

根据本申请实施例的第二方面,提供了一种音频数据处理装置,包括:

接收缓存模块,被配置为接收音频数据的音频包,将所述音频包缓存至缓存区;

确定模块,被配置为根据音频包的缓存信息,确定对应的抖动缓存阈值;

播放模块,被配置为在所述缓存区中音频包的缓存时长大于等于所述抖动缓存阈值的情况下,播放所述音频数据;

暂停模块,被配置为在所述缓存区中音频包的缓存时长小于所述抖动缓存阈值的情况下,暂停播放所述音频数据。

根据本申请实施例的第三方面,提供了一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,所述处理器执行所述指令时实现所述音频数据处理方法的步骤。

根据本申请实施例的第四方面,提供了一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现所述音频数据处理方法的步骤。

本申请实施例中,通过接收音频数据的音频包,将所述音频包缓存至缓存区;根据音频包的缓存信息,确定对应的抖动缓存阈值;在所述缓存区中音频包的缓存时长大于等于所述抖动缓存阈值的情况下,播放所述音频数据;在所述缓存区中音频包的缓存时长小于所述抖动缓存阈值的情况下,暂停播放所述音频数据,可以根据音频包的缓存信息动态生成抖动缓存阈值,使音频数据在播放时即不会有很高的延迟,又不会出现卡顿现象,播放流畅,提高用户的使用体验。

附图说明

图1是本申请实施例提供的计算设备的结构框图;

图2是本申请实施例提供的音频数据处理方法的流程图;

图3是本申请实施例提供的确定抖动缓存阈值方法的示意图;

图4是本申请另一实施例提供的确定抖动缓存阈值方法的结构示意图;

图5是本申请实施例提供的音频数据处理装置的结构示意图。

具体实施方式

在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。

在本申请一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请一个或多个实施例。在本申请一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本申请一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本申请一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

首先,对本发明一个或多个实施例涉及的名词术语进行解释。

丢包(packetloss):是指一个或多个数据数据包(packet)的数据无法透过网上到达目的地。

重传请求:一种数据传输错误控制方法,使用确认消息和超时来实现不可靠服务的可靠数据传输。

在本申请中,提供了一种音频数据处理方法及装置、计算设备和计算机可读存储介质,在下面的实施例中逐一进行详细说明。

图1示出了根据本申请一实施例的计算设备100的结构框图。该计算设备100的部件包括但不限于存储器110和处理器120。处理器120与存储器110通过总线130相连接,数据库150用于保存数据。

计算设备100还包括接入设备140,接入设备140使得计算设备100能够经由一个或多个网络160通信。这些网络的示例包括公用交换电话网(pstn)、局域网(lan)、广域网(wan)、个域网(pan)或诸如因特网的通信网络的组合。接入设备140可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(nic))中的一个或多个,诸如ieee802.11无线局域网(wlan)无线接口、全球微波互联接入(wi-max)接口、以太网接口、通用串行总线(usb)接口、蜂窝网络接口、蓝牙接口、近场通信(nfc)接口,等等。

在本申请的一个实施例中,计算设备100的上述部件以及图1中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图1所示的计算设备结构框图仅仅是出于示例的目的,而不是对本申请范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。

计算设备100可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或pc的静止计算设备。计算设备100还可以是移动式或静止式的服务器。

其中,处理器120可以执行图2所示音频数据处理方法中的步骤。图2示出了根据本申请一实施例的音频数据处理方法的流程图,包括步骤202至步骤208。

步骤202:接收音频数据的音频包,将所述音频包缓存至缓存区。

在实际生活中,我们经常会遇到音频传输的问题,例如使用听歌软件听歌、玩云游戏时接收云游戏中的声音,在与他人进行视频通话时的语音传输等。

在音频数据的传输端,将音频数据切割成多个20ms-50ms一帧大小的音频包,将音频包通过网络传输,发送到音频数据的接收端,接收端可以是个人电脑,平板电脑,手机,智能穿戴设备等,用户使用接收端设备接收从传输端传输过来的音频包,并将音频包缓存至接收端的缓存区内。

在本申请提供的实施例中,用户使用手机中的听歌软件,听一首3分钟的歌曲,歌曲的传输端将这首3分钟的音频数据切割成9000个20ms一帧大小的音频包,并通过网络传输至用户手机,用户手机中的听歌软件接收音频包,并将音频包缓存至缓存区。

在本申请提供的另一实施例中,用户使用电脑玩一款赛车云游戏,赛车云游戏的声音数据在服务器端被切割成多个50ms一帧大小的音频包,并通过网络传输至用户的电脑,用户电脑中的云游戏客户端接收音频包,并将音频包缓存至缓存区。

可选的,将接收到的多个音频包缓存至缓存区,对所述缓存区中的多个音频包进行检测,在检测到有丢失的音频包的情况下,修复丢失的音频包,并将修复后的音频包缓存至所述缓存区。

由于网络传输中的问题,会导致在传输数据过程中出现丢包的情况,如果数据包有丢失,用户在播放音频数据时就会感受到十分明显的卡顿现象,因此,需要对接收到的音频数据进行检测,检测是否有丢包情况的发生,在检测到有丢包的情况下,需要对丢失的音频包进行修复,再将修复好的音频包缓存至所述缓存区,保证音频数据播放的流畅性。

可选的,对所述缓存区中的多个音频包进行检测,包括:将缓存至所述缓存区的多个音频包按照音频包的序号排列,在缓存至所述缓存区的多个音频包的序号有中断的情况下,确定中断序号对应的音频包丢失。

传输端切割音频数据时,按照音频数据的播放顺序为每个音频包标记序号,接收端在将接收到的音频包缓存至缓存区后,会按照音频包中的序号将接收到的音频包排序,在排序过程中,在发现音频包的序号排列有中断的情况下,则可以判断音频包在传输过程中有丢包发生,中断序号对应的音频包丢失。

在本申请提供的实施例中,在将缓存区中的音频包按照序号进行排序时,发现序号33、34、35、36中断,则可以判断序号为33、34、35、36对应的音频包丢失。

可选的,修复丢失的音频包包括:发出重传请求,以请求服务器重新传输所述丢失的音频包。

在发现音频包有丢失之后,需要对丢失的音频包进行修复,接收端向服务器发出重传请求,请求服务器重新发送中断序号对应的音频包。

在本申请提供的实施例中,接收端向服务器端发出重传请求,请求服务器重新传输中断序号33、34、35、36对应的音频包,并将重新传输成功的音频包缓存至丢失位置,保证音频播放的流畅性。

可选的,所述音频包中包括所述音频包的正常编码数据和上一音频包的低编码数据,修复丢失的音频包,包括:在重传请求失败的情况下,用所述丢失的音频包的下一音频包中的低编码数据修复所述丢失的音频包。

为保证音频数据播放的流畅性,在音频包的数据中,包括有当前音频包的正常编码数据以及上一音频包的低编码数据,在修复丢失的音频包的时候,如果重传请求发出后,丢失的音频包依然没能通过重新传输的方式传输成功,则可以用丢失音频包的下一音频包中的低编码数据修复丢失音频包的信息。这样可以在非连续丢包的情况下,保证音频数据播放的流畅性。

在本申请提供的另一实施例中,音频包的正常编码数据为64kbps的编码,同时带有上一音频包的16kbps的低编码数据。在检测过程中检测到13和16的序号中断,并发起重传请求,在重传请求后,序号13对应的音频包重新传输成功,但是序号16对应的音频包依然传输失败。此时,获取序号17对应的音频包中存储的序号16对应的音频包的低编码数据,用所述低编码数据修复序号16对应的音频包,保证音频数据播放的流畅性。

可选的,修复丢失的音频包,包括:在用所述丢失的音频包的下一音频包中的低编码数据修复所述丢失的音频包失败的情况下,根据所述丢失音频包的上一音频包和/或所述丢失音频包的下一音频包,模拟生成所述丢失音频包。

使用丢失的音频包的下一音频包中的低编码数据修复丢失的音频包适用于非连续丢包的情况,当遇到连续丢包的情况时,这种方式无法对丢失的音频包进行修复,需要根据丢失的音频包的上一音频包的数据和/或下一音频包的数据对丢失的音频包进行模拟补偿,掩盖丢失的音频包数据,保证音频数据播放的流畅性。

在本申请提供的实施例中,丢失的音频包对应的序号为56、57、58、59,通过请求服务器重传的方法,服务器将序号56对应的音频包重新传输,此时未被修复的音频包对应的序号为57、58、59;通过序号为60的音频包中的低编码数据修复序号59对应的音频数据,此时未被修复的音频包对应的序号为57、58;通过序号为56和序号为59的音频包的数据信息,模拟生成数据信息修复序号为57、58的音频包。保证音频数据的连续性。

在实际操作过程中,请求重传技术、使用下一音频包的低编码数据修复丢失的音频包技术和根据丢失的音频包的上一音频包和/或丢失的音频包的下一音频包模拟生成丢失的音频包的技术,可以根据实际情况自由组合,其目的最终都是为了保证音频数据播放的连续性,例如在非连续丢包的情况下,可以直接使用下一音频包的低编码数据修复丢失的音频包,而不用请求重传,这样可以节省时间,防止网络吞吐量的下降;也可以直接通过模拟生成丢失音频包的技术,对丢失的音频包进行修复,节省了网络资源,提高了修复音频包的速度。

步骤204:根据音频包的缓存信息,确定对应的抖动缓存阈值。

为了保证缓存的音频数据播放的流畅性,需要设置一个缓存阈值,当缓存区内缓存的音频包的时长超过缓存阈值时,播放音频数据,但是如果缓存阈值值过大,则会导致使用时有延迟等待现象;如果缓存阈值过小,则会使音频数据播放不流畅,因此在本申请中,根据音频包的缓存信息,动态确定对应的抖动缓存阈值,抖动缓存阈值不是固定不动的值,而是根据音频包的缓存信息实时变化的值。

可选的,参见图3,步骤204可以通过下述步骤302至步骤306实现。

步骤302:获取存储在所述缓存区中的抖动缓存阈值。

其中,所述抖动缓存阈值的初始值根据音频包的时长确定。将一个音频包的时长作为抖动缓存阈值的初始值,并将该初始值存储在缓存区中。

在本申请提供的实施例中,将一个音频包的时长20ms作为抖动缓存阈值的初始值存储到缓存区中。

在具体的实际操作中,音频包的大小可以会有不同,也可以根据一个或多个音频包的时长作为初始阈值,具体的设置以实际情况为准,对此我们不做限定。

步骤304:在所述缓存区中音频包的缓存时长小于所述抖动缓存阈值的情况下,将抖动缓存阈值按照第一设定比例增加,生成增加后的抖动缓存阈值并存储于所述缓存区中。

在所述缓存区中音频包的缓存时长小于所述抖动缓存阈值的情况下,说明设置的抖动缓存阈值过小,缓存音频包的速度小于播放音频数据的速度,因此要将抖动缓存阈值按照第一设定比例增加,第一设定比例可以是一个或多个音频包的时长,也可以是当前抖动缓存阈值的百分比的倍数,在此不对第一设定比例的设置方式做具体限定。将增加后的抖动缓存阈值作为最新的抖动缓存阈值存储到所述缓存区中。

在本申请提供的实施例中,所述抖动缓存阈值的初始值为20ms,第一设定比例为一个音频包的大小,在缓存区中音频包的缓存时长小于20ms的情况下,将抖动缓存阈值的大小增加一个音频包的大小,即为20ms,此时增加后的抖动缓存阈值为40ms,并将增加后的抖动缓存阈值40ms存储到所述缓存区中。

步骤306:在播放所述音频数据的持续时间超过预设播放时长的情况下,将抖动缓存阈值按照第二设定比例减少,生成减少后的抖动缓存阈值并存储于所述缓存区中。

如果播放音频数据的持续时间超过了预设的播放时长的情况下,认为网络传输稳定,可以将所述抖动缓存阈值按照第二设定比例减少,第二设定比例可以是一个或多个音频包的时长,也可以是当前抖动缓存阈值的百分比倍数,在此同样不对第二设定比例的设置方式做具体限定。将减少后的抖动缓存阈值作为最新的抖动缓存阈值存储到所述缓存区中。

在本申请提供的实施例中,获取的当前抖动缓存阈值为60ms,预设的播放时长为5分钟,第二设定比例为当前抖动缓存阈值的10%,即当音频数据持续播放时间超过5分钟后,将当前抖动缓存阈值减少10%,减少后的抖动缓存阈值为54ms,并将减少后的抖动缓存阈值54ms存储到所述缓存区中。

可选的,参见图4,步骤204还可以通过下述步骤402至步骤406实现。

步骤402:获取音频包和所述音频包的上一音频包的发送时间间隔和接收时间间隔。

音频包在发送和接收时,都会有相应的发送时间和相应的接收时间,传输端在发送音频包时的发送时间为:ts1、ts2、ts3、…tsn,接收端接收音频包的接收时间为tr1、tr2、tr3、…trn。由此可知第n-1个音频包和第n个音频包的发送时间间隔为tsn-tsn-1,接收时间间隔为trn-trn-1。

步骤404:根据所述发送时间间隔和所述接收时间间隔确定所述音频包的抖动值。

将所述发送时间间隔和所述接收时间间隔之间的差值,作为音频包的抖动值,因此,第n个音频包的抖动值为:|(tsn-tsn-1)-(trn-trn-1)|,记录每个音频包的抖动值。

步骤406:将预设时间区间内最大的抖动值确定为抖动缓存阈值。

将预设时间区间内最大的音频包的抖动值作为抖动缓存阈值,例如,在三分钟时间内,最大的音频的抖动值为40ms,则将40ms作为抖动缓存阈值,在之后的三分钟之内网络环境良好,最大的音频抖动值为30ms,则将30ms最为抖动缓存阈值。

步骤206:在所述缓存区中音频包的缓存时长大于等于所述抖动缓存阈值的情况下,播放所述音频数据。

根据音频包的缓存信息,确定对应的抖动缓存阈值,在网络环境不好,卡顿抖动比较严重的时候,能自动增加缓存时间来保证音频数据的流畅,在网络质量变好时,抖动缓存阈值又能根据实际情况不断减少从而降低延迟。

可选的,在播放所述音频数据之后,还包括:

s2061:根据所述抖动缓存阈值设置第一快进阈值和第二快进阈值,其中,所述第二快进阈值大于第一快进阈值,所述第一快进阈值大于所述抖动缓存阈值。

根据所述抖动缓存阈值,设置相应的第一快进阈值和第二快进阈值,其中,抖动缓存阈值、第一快进阈值和第二快进阈值之间的关系为第二快进阈值大于第一快进阈值,第一快进阈值大于抖动缓存阈值。

可选的,根据所述抖动缓存阈值设置第一快进阈值和第二快进阈值,包括:获取预设时间区间内抖动缓存阈值的最大值和最小值,并根据所述抖动缓存阈值的最大值和最小值确定所述抖动缓存阈值的振幅;设置第一快进阈值为所述振幅的m倍,第二快进阈值为所述振幅的n倍,其中,m,n均大于1。

根据抖动缓存阈值设置第一快进阈值和第二快进阈值,可以通过获取预设时间内抖动缓存阈值的最大值和最小值,根据所述抖动缓存阈值的最大值和最小值确定所述抖动缓存阈值的振幅,再根据所述振幅确定第一快进阈值和第二快进阈值。

在本申请提供的实施例中,预设的时间为4分钟,获取这4分钟时间内,抖动缓存阈值的最大值为60ms,抖动缓存阈值的最小值为20ms,则可以得到抖动缓存阈值的振幅为40ms,设置第一快进阈值为所述振幅的1.6倍即64ms,设置第二快进阈值为所述振幅的2.5倍即100ms。

在本申请提供的另一实施例中,预设的时间为3分钟,获取这3分钟时间内,抖动缓存阈值的最大值为60ms,抖动缓存阈值的最小值为30ms,则可以得到抖动缓存阈值的振幅为30ms,设置第一快进阈值为所述振幅的1.2倍即36ms,设置第二快进阈值为所述振幅的1.8倍即54ms。

可选的,根据所述抖动缓存阈值设置第一快进阈值和第二快进阈值,包括:获取所述抖动缓存阈值;设置第一快进阈值为所述抖动缓存阈值的k倍,第二快进阈值为所述抖动缓存阈值的p倍,其中,k,p均大于1。

根据抖动缓存阈值设置第一快进阈值和第二快进阈值,还可以通过获取抖动缓存阈值,并根据抖动缓存阈值的值确定第一快进阈值和第二快进阈值。

在本申请提供的实施例中,抖动缓存阈值为40ms,第一缓存阈值为所述抖动缓存阈值的1.1倍即44ms,第二缓存阈值为所述抖动缓存阈值的1.5倍即60ms。

在本申请提供的实施例中,抖动缓存阈值为20ms,第一缓存阈值为所述抖动缓存阈值的1.3倍即26ms,第二缓存阈值为所述抖动缓存阈值的1.9倍即38ms。

s2062:在所述缓存区中音频包的缓存时长大于所述第二快进阈值的情况下,快进播放所述音频数据。

在缓存区中,音频包的缓存时长大于所述第二快进阈值的情况下,可以对所述音频数据进行快进播放,节省用户时间,提高效率。

s2063:在所述缓存区中音频包的缓存时长小于所述第一快进阈值的情况下,暂停快进播放所述音频数据。

在缓存区中,音频包的缓存时长小于所述第一快进阈值的情况下,则不可再对所述音频数据进行快进播放,保证缓存区内音频包的缓存时长可以流畅的播出,不影响音频数据的连续性。

步骤208:在所述缓存区中音频包的缓存时长小于所述抖动缓存阈值的情况下,暂停播放所述音频数据。

在所述缓存区中的音频包的缓存时长小于所述抖动缓存阈值的情况下,说明缓存的音频包不支持所述音频数据的流畅播放,此时需要暂停播放所述音频数据。

本申请提供的音频数据处理方法,通过引入抖动缓存阈值,在网络环境不好,卡顿抖动比较严重的时候,能自动增加缓存时间来保证音频数据的流畅,在网络质量变好时,抖动缓存阈值又能根据实际情况不断减少从而降低延迟,在数据传输过程中有丢包的情况下,通过请求重传技术保证了音频数据的完整可靠性,通过下一音频包的低编码数据修复丢失的音频包技术节省时间,防止网络吞吐量的下降,通过根据丢失的音频包的上一音频包和/或丢失的音频包的下一音频包模拟生成丢失的音频包的技术节省了网络资源,提高了修复音频包的速度,同时还设置的第一快进阈值和第二快进阈值,在保证音频数据流畅播放的情况下,可以通过快进的方式对所述音频数据进行播放,节省时间,提高效率。

与上述方法实施例相对应,本申请还提供了音频数据处理装置实施例,图5示出了本申请一个实施例的音频数据处理装置的结构示意图。如图5所示,该装置包括:

接收缓存模块502,被配置为接收音频数据的音频包,将所述音频包缓存至缓存区。

可选的,所述接收缓存模块502,进一步被配置为将接收到的多个音频包缓存至缓存区;对所述缓存区中的多个音频包进行检测,在检测到有丢失的音频包的情况下,修复丢失的音频包,并将修复后的音频包缓存至所述缓存区。

可选的,所述接收缓存模块502,进一步被配置为将缓存至所述缓存区的多个音频包按照音频包的序号排列;在缓存至所述缓存区的多个音频包的序号有中断的情况下,确定中断序号对应的音频包丢失。

可选的,所述接收缓存模块502,进一步被配置为发出重传请求,以请求服务器重新传输所述丢失的音频包。

可选的,所述接收缓存模块502,进一步被配置为在重传请求失败的情况下,用所述丢失的音频包的下一音频包中的低编码数据修复所述丢失的音频包。

可选的,所述接收缓存模块502,进一步被配置为在用所述丢失的音频包的下一音频包中的低编码数据修复所述丢失的音频包失败的情况下,根据所述丢失音频包的上一音频包和/或所述丢失音频包的下一音频包,模拟生成所述丢失音频包。

确定模块504,被配置为根据音频包的缓存信息,确定对应的抖动缓存阈值。

可选的,所述确定模块504,进一步被配置为获取存储在所述缓存区中的抖动缓存阈值,其中,所述抖动缓存阈值的初始值根据音频包的时长确定;在所述缓存区中音频包的缓存时长小于所述抖动缓存阈值的情况下,将抖动缓存阈值按照第一设定比例增加,生成增加后的抖动缓存阈值并存储于所述缓存区中;在播放所述音频数据的持续时间超过预设播放时长的情况下,将抖动缓存阈值按照第二设定比例减少,生成减少后的抖动缓存阈值并存储于所述缓存区中。

可选的,所述确定模块504,进一步被配置为获取音频包和所述音频包的上一音频包的发送时间间隔和接收时间间隔;根据所述发送时间间隔和所述接收时间间隔确定所述音频包的抖动值;将预设时间区间内最大的抖动值确定为抖动缓存阈值。

播放模块506,被配置为在所述缓存区中音频包的缓存时长大于等于所述抖动缓存阈值的情况下,播放所述音频数据。

暂停模块508,被配置为在所述缓存区中音频包的缓存时长小于所述抖动缓存阈值的情况下,暂停播放所述音频数据。

所述音频数据处理装置还包括:

快进模块510,被配置为根据所述抖动缓存阈值设置第一快进阈值和第二快进阈值,其中,所述第二快进阈值大于第一快进阈值,所述第一快进阈值大于所述抖动缓存阈值;在所述缓存区中音频包的缓存时长大于所述第二快进阈值的情况下,快进播放所述音频数据;在所述缓存区中音频包的缓存时长小于所述第一快进阈值的情况下,暂停快进播放所述音频数据。

可选的,所述快进模块510,进一步被配置为获取预设时间区间内抖动缓存阈值的最大值和最小值,并根据所述抖动缓存阈值的最大值和最小值确定所述抖动缓存阈值的振幅;设置第一快进阈值为所述振幅的m倍,第二快进阈值为所述振幅的n倍,其中,m,n均大于1。

可选的,所述快进模块510,进一步被配置为获取所述抖动缓存阈值;设置第一快进阈值为所述抖动缓存阈值的k倍,第二快进阈值为所述抖动缓存阈值的p倍,其中,k,p均大于1。

本申请提供的音频数据处理装置,通过引入抖动缓存阈值,在网络环境不好,卡顿抖动比较严重的时候,能自动增加缓存时间来保证音频数据的流畅,在网络质量变好时,抖动缓存阈值又能根据实际情况不断减少从而降低延迟,在数据传输过程中有丢包的情况下,通过请求重传技术保证了音频数据的完整可靠性,通过下一音频包的低编码数据修复丢失的音频包技术节省时间,防止网络吞吐量的下降,通过根据丢失的音频包的上一音频包和/或丢失的音频包的下一音频包模拟生成丢失的音频包的技术节省了网络资源,提高了修复音频包的速度,同时还设置的第一快进阈值和第二快进阈值,在保证音频数据流畅播放的情况下,可以通过快进的方式对所述音频数据进行播放,节省时间,提高效率。

本申请一实施例中还提供一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,所述处理器执行所述指令时实现所述的音频数据处理方法的步骤。

本申请一实施例还提供一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现如前所述音频数据处理方法的步骤。

上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的音频数据处理方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述音频数据处理方法的技术方案的描述。

上述对本申请特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。

需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本申请所必须的。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。

以上公开的本申请优选实施例只是用于帮助阐述本申请。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本申请的内容,可作很多的修改和变化。本申请选取并具体描述这些实施例,是为了更好地解释本申请的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本申请。本申请仅受权利要求书及其全部范围和等效物的限制。

技术特征:

1.一种音频数据处理方法,其特征在于,包括:

接收音频数据的音频包,将所述音频包缓存至缓存区;

根据音频包的缓存信息,确定对应的抖动缓存阈值;

在所述缓存区中音频包的缓存时长大于等于所述抖动缓存阈值的情况下,播放所述音频数据;

在所述缓存区中音频包的缓存时长小于所述抖动缓存阈值的情况下,暂停播放所述音频数据。

2.如权利要求1所述的音频数据处理方法,其特征在于,将所述音频包缓存至缓存区,包括:

将接收到的多个音频包缓存至缓存区;

对所述缓存区中的多个音频包进行检测,在检测到有丢失的音频包的情况下,修复丢失的音频包,并将修复后的音频包缓存至所述缓存区。

3.如权利要求2所述的音频数据处理方法,其特征在于,所述音频包中包括所述音频包的序号;

对所述缓存区中的多个音频包进行检测,包括:

将缓存至所述缓存区的多个音频包按照音频包的序号排列;

在缓存至所述缓存区的多个音频包的序号有中断的情况下,确定中断序号对应的音频包丢失。

4.如权利要求2所述的音频数据处理方法,其特征在于,修复丢失的音频包,包括:

发出重传请求,以请求服务器重新传输所述丢失的音频包。

5.如权利要求4所述的音频数据处理方法,其特征在于,所述音频包中包括所述音频包的正常编码数据和上一音频包的低编码数据;

修复丢失的音频包,包括:

在重传请求失败的情况下,用所述丢失的音频包的下一音频包中的低编码数据修复所述丢失的音频包。

6.如权利要求5所述的音频数据处理方法,其特征在于,修复丢失的音频包,包括:

在用所述丢失的音频包的下一音频包中的低编码数据修复所述丢失的音频包失败的情况下,根据所述丢失音频包的上一音频包和/或所述丢失音频包的下一音频包,模拟生成所述丢失音频包。

7.如权利要求1所述的音频数据处理方法,其特征在于,根据音频包的缓存信息,确定对应的抖动缓存阈值,包括:

获取存储在所述缓存区中的抖动缓存阈值,其中,所述抖动缓存阈值的初始值根据音频包的时长确定;

在所述缓存区中音频包的缓存时长小于的所述抖动缓存阈值情况下,将抖动缓存阈值按照第一设定比例增加,生成增加后的抖动缓存阈值并存储于所述缓存区中;

在播放所述音频数据的持续时间超过预设播放时长的情况下,将抖动缓存阈值按照第二设定比例减少,生成减少后的抖动缓存阈值并存储于所述缓存区中。

8.如权利要求1所述的音频数据处理方法,其特征在于,所述音频包中包括所述音频包的发送时间;

根据音频包的缓存信息,确定对应的抖动缓存阈值,包括:

获取音频包和所述音频包的上一音频包的发送时间间隔和接收时间间隔;

根据所述发送时间间隔和所述接收时间间隔确定所述音频包的抖动值;

将预设时间区间内最大的抖动值确定为抖动缓存阈值。

9.如权利要求7或8所述的音频数据处理方法,其特征在于,在播放所述音频数据之后,还包括:

根据所述抖动缓存阈值设置第一快进阈值和第二快进阈值,其中,所述第二快进阈值大于第一快进阈值,所述第一快进阈值大于所述抖动缓存阈值;

在所述缓存区中音频包的缓存时长大于所述第二快进阈值的情况下,快进播放所述音频数据;

在所述缓存区中音频包的缓存时长小于所述第一快进阈值的情况下,暂停快进播放所述音频数据。

10.如权利要求9所述的音频数据处理方法,其特征在于,

根据所述抖动缓存阈值设置第一快进阈值和第二快进阈值,包括:

获取预设时间区间内抖动缓存阈值的最大值和最小值,并根据所述抖动缓存阈值的最大值和最小值确定所述抖动缓存阈值的振幅;

设置第一快进阈值为所述振幅的m倍,第二快进阈值为所述振幅的n倍,其中,m,n均大于1。

11.如权利要求9所述的音频数据处理方法,其特征在于,

根据所述抖动缓存阈值设置第一快进阈值和第二快进阈值,包括:

获取所述抖动缓存阈值;

设置第一快进阈值为所述抖动缓存阈值的k倍,第二快进阈值为所述抖动缓存阈值的p倍,其中,k,p均大于1。

12.一种音频数据处理装置,其特征在于,包括:

接收缓存模块,被配置为接收音频数据的音频包,将所述音频包缓存至缓存区;

确定模块,被配置为根据音频包的缓存信息,确定对应的抖动缓存阈值;

播放模块,被配置为在所述缓存区中音频包的缓存时长大于等于所述抖动缓存阈值的情况下,播放所述音频数据;

暂停模块,被配置为在所述缓存区中音频包的缓存时长小于所述抖动缓存阈值的情况下,暂停播放所述音频数据。

13.一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,其特征在于,所述处理器执行所述指令时实现权利要求1-11任意一项所述方法的步骤。

14.一种计算机可读存储介质,其存储有计算机指令,其特征在于,该指令被处理器执行时实现权利要求1-11任意一项所述方法的步骤。

技术总结

本申请提供一种音频数据处理方法及装置,其中所述音频数据处理方法包括:接收音频数据的音频包,将所述音频包缓存至缓存区;根据音频包的缓存信息,确定对应的抖动缓存阈值;在所述缓存区中音频包的缓存时长大于等于所述抖动缓存阈值的情况下,播放所述音频数据;在所述缓存区中音频包的缓存时长小于所述抖动缓存阈值的情况下,暂停播放所述音频数据。通过抖动缓存阈值在保证音频数据不卡顿的情况下减少延迟,保证音频数据播放的连续流畅。

技术研发人员:郑泽华;林伟

受保护的技术使用者:北京西山居互动娱乐科技有限公司

技术研发日:.09.27

技术公布日:.12.31

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。