CN118075246A - 抖动缓冲区大小的调整方法、装置和计算机设备 - Google Patents
抖动缓冲区大小的调整方法、装置和计算机设备 Download PDFInfo
- Publication number
- CN118075246A CN118075246A CN202211479677.9A CN202211479677A CN118075246A CN 118075246 A CN118075246 A CN 118075246A CN 202211479677 A CN202211479677 A CN 202211479677A CN 118075246 A CN118075246 A CN 118075246A
- Authority
- CN
- China
- Prior art keywords
- audio
- call
- target
- party
- value
- 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.)
- Pending
Links
- 239000000872 buffer Substances 0.000 title claims abstract description 148
- 238000000034 method Methods 0.000 title claims abstract description 71
- 238000004364 calculation method Methods 0.000 claims abstract description 291
- 230000005540 biological transmission Effects 0.000 claims abstract description 208
- 238000004590 computer program Methods 0.000 claims abstract description 24
- 230000003139 buffering effect Effects 0.000 claims abstract description 11
- 230000003044 adaptive effect Effects 0.000 claims abstract description 9
- 238000001514 detection method Methods 0.000 claims description 89
- 230000000694 effects Effects 0.000 claims description 44
- 238000012545 processing Methods 0.000 claims description 15
- 238000001228 spectrum Methods 0.000 claims description 12
- 238000009432 framing Methods 0.000 claims description 6
- 238000012216 screening Methods 0.000 claims description 6
- 238000010586 diagram Methods 0.000 description 18
- 238000004891 communication Methods 0.000 description 13
- 230000008859 change Effects 0.000 description 11
- 230000008569 process Effects 0.000 description 9
- 238000009499 grossing Methods 0.000 description 4
- 238000013507 mapping Methods 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000013527 convolutional neural network Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000007477 logistic regression Methods 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 230000003595 spectral effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 240000008168 Ficus benjamina Species 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000033228 biological regulation Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 238000011895 specific detection Methods 0.000 description 1
- 230000002194 synthesizing effect Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/80—Responding to QoS
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Telephonic Communication Services (AREA)
Abstract
本申请涉及一种抖动缓冲区大小的调整方法、装置、计算机设备、存储介质和计算机程序产品。所述方法包括:在第一通话方接收到第二通话方发送的当前通话数据包的情况下,确定第二通话方当前的音频类型识别结果;基于音频类型识别结果确定适配的目标抖动值计算方式;确定第一通话方已连续接收到的多个通话数据包各自的传输时间数据,多个通话数据包包括当前通话数据包;根据传输网络的历史抖动值和多个通话数据包各自的传输时间数据,按照目标抖动值计算方式,确定传输网络的目标抖动值;基于目标抖动值,调整用以缓存第二通话方发送的通话数据包的抖动缓冲区的大小。采用本方法能够动态调整抖动缓冲区的大小。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种抖动缓冲区大小的调整方法、装置和计算机设备。
背景技术
当通过网络进行语音通话时,第二终端会将通话方的通话数据包按照一定的时间间隔均匀发送至第一终端,从而通话双方即可收听到对方的语音。但是传输过程中由于各种情况,例如拥塞,数据包乱序,网络错误等,第一终端收到的数据包间隔就会不一样,可能一会大,一会小,导致时延发生变化,这个时延的变化程度就是抖动。抖动会导致第二通话收听到的音频断断续续的,从而导致通话质量不佳。
目前,主要是在第一终端设置固定大小的抖动缓冲区,通过固定大小的抖动缓冲区来抵抗弱网环境下因抖动而导致音频播放卡顿的情况。然而,若抖动缓冲区设置过大则会引入较大时延;若抖动缓冲区设置过小则无法解决因网络抖动导致的第一终端信号断续等问题。因此,亟需一种能够在通话过程中动态调整抖动缓冲区大小的方法。
发明内容
基于此,有必要针对上述技术问题,提供一种能够动态调整抖动缓冲区大小的抖动缓冲区大小的调整方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
第一方面,本申请提供了一种抖动缓冲区大小的调整方法,所述方法包括:
当第一通话方与第二通话方通过传输网络进行语音通话,在所述第一通话方接收到所述第二通话方发送的当前通话数据包的情况下,确定所述第二通话方当前的音频类型识别结果;所述音频类型识别结果反映所述第二通话方在参与所述语音通话时所输出的音频的类型;
基于所述音频类型识别结果确定适配的目标抖动值计算方式;
确定所述第一通话方已连续接收到的多个通话数据包各自的传输时间数据,所述多个通话数据包包括所述当前通话数据包;
根据所述传输网络的历史抖动值和所述多个通话数据包各自的传输时间数据,按照所述目标抖动值计算方式,确定所述传输网络的目标抖动值;
基于所述目标抖动值,调整用以缓存所述第二通话方发送的通话数据包的抖动缓冲区的大小。
第二方面,本申请还提供了一种抖动缓冲区大小的调整装置,所述装置包括:
音频类型确定模块,用于当第一通话方与第二通话方通过传输网络进行语音通话,在所述第一通话方接收到所述第二通话方发送的当前通话数据包的情况下,确定所述第二通话方当前的音频类型识别结果;所述音频类型识别结果反映所述第二通话方在参与所述语音通话时所输出的音频的类型;
抖动值确定模块,用于基于所述音频类型识别结果确定适配的目标抖动值计算方式;确定所述第一通话方已连续接收到的多个通话数据包各自的传输时间数据,所述多个通话数据包包括所述当前通话数据包;根据所述传输网络的历史抖动值和所述多个通话数据包各自的传输时间数据,按照所述目标抖动值计算方式,确定所述传输网络的目标抖动值;
调整模块,用于基于所述目标抖动值,调整用以缓存所述第二通话方发送的通话数据包的抖动缓冲区的大小。
在其中一个实施例中,所述音频类型确定模块还包括类型识别模块,用于确定以所述当前通话数据包的接收时间为截止时间的检测时间段;对所述第一通话方在所述检测时间段内接收到的通话数据包进行音频类型识别,得到所述第二通话方当前的音频类型识别结果。
在其中一个实施例中,所述类型识别模块还用于确定所述第一通话方在所述检测时间段内接收到的通话数据包所构成的待检测音频,并对所述待检测音频进行分帧处理,得到多帧待检测音频帧;分别对每帧待检测音频帧进行傅里叶变换,得到所述多帧待检测音频帧各自的频谱特征数据;根据所述多帧待检测音频帧各自的频谱特征数据,确定所述待检测音频的音频类型,并根据所述音频类型生成所述第二通话方当前的音频类型识别结果。
在其中一个实施例中,所述类型识别模块还用于在所述待检测音频的音频类型为语音类型时,分别确定所述待检测音频中的每帧待检测音频的短时能量和短时过零率;根据所述每帧待检测音频的短时能量和短时过零率,确定所述待检测音频中每帧待检测音频各自对应的第二通话方发言概率值;根据所述每帧待检测音频各自对应的第二通话方发言概率值,确定所述第二通话方当前的发言活跃度。根据所述待检测音频的音频类型和所述第二通话方当前的发言活跃度,生成所述第二通话方当前的音频类型识别结果。
在其中一个实施例中,所述音频类型确定模块还包括类型获取模块,用于将所述第一通话方最新接收到的由所述第二通话方发送的音频类型识别结果,作为所述第二通话方当前的音频类型识别结果。
在其中一个实施例中,所述音频类型确定模块还用于触发所述第二通话方周期性地对已发送的通话数据包进行音频类型识别;其中,对于任一个周期,所述第二通话方对在所述周期内已发送的通话数据包进行音频类型识别,得到与所述周期相对应的音频类型识别结果,并将所述音频类型识别结果发送至所述第一通话方。
在其中一个实施例中,所述音频类型识别结果至少包括表征所述第二通话方输出的音频属于音乐类型的第一结果、表征所述第二通话方输出的音频属于语音类型的第二结果、表征所述第二通话方输出的音频属于噪音类型的第三结果或者表征所述第二通话方输出的音频属于静音类型的第四结果中的一种;与所述音频类型识别结果适配的目标抖动值计算方式至少包括与音乐类型适配的第一计算方式、与语音类型适配的第二计算方式、与噪音类型适配的第三计算方式或者与静音类型适配的第四计算方式中的一种;在相同的计算参数下,通过所述第一计算方式计算得到的目标抖动值、通过所述第二计算方式计算得到的目标抖动值、通过所述第三计算方式计算得到的目标抖动值以及通过所述第四计算方式计算得到的目标抖动值,依次减小。
在其中一个实施例中,以所述多个通话数据包中的每个通话数据包分别作为目标通话数据包;所述抖动值确定模块还包括时间数据确定模块,用于从时间记录表中查找所述第二通话方发送所述目标通话数据包的发送时间,以及查找所述第一通话方接收所述目标通话数据包的接收时间;综合所述目标通话数据的发送时间和接收时间,得到所述目标通话数据包的传输时间数据。
在其中一个实施例中,所述抖动值确定模块还包括计算模块,用于根据所述多个通话数据包各自的传输时间数据,确定网络延时差异值;根据所述网络延时差异值和所述传输网络的历史抖动值之间的大小关系,从所述目标抖动值计算方式中筛选出目标子计算方式;按照所述目标子计算方式,并根据所述传输网络的历史抖动值和所述网络延时差异值,确定所述传输网络的目标抖动值。
在其中一个实施例中,所述多个通话数据包为两个通话数据包;所述传输时间数据包括通话数据包的发送时间和接收时间;所述计算模块还用于对于所述两个通话数据包中的每个通话数据包,确定所述通话数据包的接收时间和发送时间之间的时间差,得到所述通话数据包的收发时间差;确定所述两个通话数据各自的收发时间差之间的差异,并根据所述两个通话数据各自的传输时间值之间的差异,确定所述传输网络的网络延时差异值。
在其中一个实施例中,所述目标值计算方式包括第一子方式和第二子方式;所述根据所述网络时延差异值和所述传输网络的历史抖动值之间的大小关系,从所述目标抖动值计算方式中筛选出目标子计算方式,包括:当所述网络时延差异值大于所述传输网络的历史抖动值时,将所述第一子方式作为目标子计算方式;当所述网络时延差异值小于或等于所述传输网络的历史抖动值时,将所述第二子方式作为目标子计算方式;其中,在所述目标值计算方式为与音频类型或语音类型适配的计算方式时,所述第一子方式中的与所述历史抖动值相对应的第一计算系数,小于所述第二子方式中的与所述历史抖动值相对应的第一计算系数;所述第一子方式中的与所述网络延时差异值相对应的第二计算系数,大于所述第二子方式中的与所述网络延时差异值相对应的第二计算系数在所述目标值计算方式为与噪音类型或静音类型适配的计算方式时,所述第一子方式中的与所述历史抖动值相对应的第一计算系数,大于所述第二子方式中的与所述历史抖动值相对应的第一计算系数;所述第一子方式中的与所述网络延时差异值相对应的第二计算系数,小于所述第二子方式中的与所述网络延时差异值相对应的第二计算系数。
在其中一个实施例中,所述计算模块还用于按照所述目标子计算方式,确定与所述传输网络的历史抖动值对应的第一计算系数、及与所述网络延时差异值对应的第二计算系数;将所述第一计算系数与所述历史抖动值相乘,得到目标历史抖动值,并将所述第二计算系数与所述网络延时差异值相乘,得到目标网络延时差异值;将所述目标历史抖动值与所述目标网络延时差异值叠加,得到述传输网络的目标抖动值。
在其中一个实施例中,所述计算模块还用于当所述音频类型识别结果表征所述第二通话方输出的音频属于语音类型、且所述网络延时差异值大于所述传输网络的历史抖动值时,从所述音频类型识别结果中提取所述第二通话方当前的发言活跃度;按照所述目标子计算方式,根据所述发言活跃度确定与所述传输网络的历史抖动值对应的第一计算系数、及与所述网络延时差异值对应的第二计算系数。
在其中一个实施例中,所述调整模块还用于获取预配置的抖动值与抖动缓冲区大小之间的对应关系;其中,所述抖动缓冲区的大小随着抖动值的增大而增大;根据所述对应关系,确定与所述目标抖动值相对应的目标大小,并调整所述抖动缓冲区的大小至所述目标大小。
第三方面,本申请还提供了一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现本申请实施例提供的任一种抖动缓冲区大小的调整方法中的步骤。
第四方面,本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现本申请实施例提供的任一种抖动缓冲区大小的调整方法中的步骤。
第五方面,本申请还提供了一种计算机程序产品,所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现本申请实施例提供的任一种抖动缓冲区大小的调整方法中的步骤。
上述抖动缓冲区大小的调整方法、装置、计算机设备、存储介质和计算机程序产品,通过接收当前通话数据包,可确定第二通话方当前的音频类型识别结果,以及确定第一通话方已连续接收到的、截止到当前通话数据包的多个通话数据包。通过确定第二通话方当前的音频类型识别结果,可确定与音频类型识别结果匹配的目标抖动值计算方式。通过确定多个通话数据包,可确定多个通话数据包各自的传输时间数据。通过确定目标抖动值计算方式和传输时间数据,可按照目标抖动值计算方式,并根据传输网络的历史抖动值和多个通话数据包各自的传输时间数据,确定传输网络的目标抖动值,从而基于目标抖动值对抖动缓冲区大小进行调整,如此便实现了在通话过程中动态调整抖动缓冲区大小的目的。
此外,由于目标抖动值计算方式是与第二通话方当前的音频类型识别结果相匹配的,因此,基于目标抖动值计算方式计算得到的目标抖动值不仅与第二通话方当前的音频类型识别结果相匹配,而且反映了传输网络当前的抖动情况,进而基于该目标抖动值调整得到的抖动缓冲区的大小也与第二通话方当前的音频类型识别结果和传输网络当前的抖动均匹配。如此,便能基于与第二通话方当前的音频类型识别结果和传输网络当前的抖动均匹配的抖动缓冲区输出能够满足当前网络抖动和第二通话方当前输出音频类型的语音音频。
附图说明
图1为一个实施例中抖动缓冲区大小的调整方法的应用环境图;
图2为一个实施例中抖动缓冲区大小的调整方法的流程示意图;
图3为一个实施例中语音通话的示意图;
图4为一个实施例中抖动缓冲区的示意图;
图5为一个实施例中音频类型识别结果的确定流程示意图;
图6为一个实施例中第一终端设置音频检测模块的示意图;
图7为一个实施例中音频检测模块的示意图;
图8为一个实施例中网络时延差异值的确定示意图;
图9为一个具体实施例中抖动缓冲区大小的调整方法的流程示意图;
图10为一个个实施例中抖动缓冲区大小的调整整体示意图;
图11为另一个实施例中抖动缓冲区大小的调整整体示意图;
图12为一个实施例中抖动缓冲区大小的调整装置的结构框图;
图13为另一个实施例中抖动缓冲区大小的调整装置的结构框图;
图14为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例提供的抖动缓冲区大小的调整方法,可以应用于如图1所示的应用环境中。其中,本申请实施例提供的抖动缓冲区大小的调整方法,可以应用于如图1所示的应用环境中。其中,第一终端102通过网络与服务器104进行通信,服务器104通过网络与第二终端106进行通信。数据存储系统可以存储服务器104需要处理的数据。当第一通话方与第二通话方通过网络进行语音通话时,第二通话方所对应的第二终端106即可将第二通话方的通话数据包和第二通话方当前的音频类别识别结果通过服务器104发送至第一通话方所对应的第一终端102。第一终端102可根据连续接收到的多个通话数据包各自的传输时间数据和第二通话方当前的音频类型识别结果,对抖动缓冲区的大小进行调整,从而使得调整后的抖动缓冲区大小与当前传输网络的抖动和第二通话方当前输出的音频类型更为匹配,进而基于更为匹配的抖动缓冲区大小向第一通话方输出具有合适时延的第二通话方的通话语音。
其中,第一终端102和第二终端106均包括但不限于是各种台式计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备,物联网设备可为智能音箱、智能电视、智能空调、智能车载设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
需要说明的是,本申请中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。除非上下文另外清楚地指出,否则单数形式“一个”、“一”或者“该”等类似词语也不表示数量限制,而是表示存在至少一个。本申请各实施例中提及的“多个”或“多份”等的数量均指代“至少两个”的数量,比如,“多个”指“至少两个”,“多份”指“至少两份”。
在一个实施例中,如图2所示,提供了一种抖动缓冲区大小的调整方法,以该方法应用于图1中的第一终端为例进行说明,包括以下步骤:
步骤202,当第一通话方与第二通话方通过传输网络进行语音通话,在第一通话方接收到第二通话方发送的当前通话数据包的情况下,确定第二通话方当前的音频类型识别结果;音频类型识别结果反映第二通话方在参与语音通话时所输出的音频的类型。
其中,通话方指的是参与通话的角色。参与通话的角色可包括虚拟通话角色、硬件终端、软件客户端和自然人。其中,虚拟通话角色可为表征自然人的标识信息或者为一个虚拟的用户。自然人的标识信息具体可为通信应用中的应用账号等。硬件终端也称作终端设备,具体可为用以进行语音通话的手机、电脑、车载终端等。软件客户端指的是用以进行语音通话的通信应用的客户端。
通话数据包指的是对通话音频进行编码压缩后得到的数据包。第二终端将通话数据包发送至第一终端时,第一终端即可对接收到的通话数据包进行解码,将通话数据包还原为通话音频,并对通话音频进行播放。音频类型识别结果反映的是第二通话方在参与语音通话时所输出的音频的类型。比如,在通话方为自然人或虚拟的用户时,第二通话方当前的音频类型识别结果反映的是自然人或虚拟的用户在进行语音通话时当前输出的语音的类型;在通话方为硬件终端或者软件客户端时,第二通话方当前的音频类型识别结果指的是通过硬件终端或者软件客户端进行语音通话的用户在进行语音通话时当前输出的语音的类型。其中,通过硬件终端或者软件客户端进行语音通话的用户可为上述的自然人或虚拟的用户。
具体地,当第一通话方与第二通话方通过传输网络进行语音通话时,第二通话方所对应的第二终端即可采集第二通话方的通话音频,并将第二通话方的通话音频编码为通话数据包,将通话数据包通过传输网络发送至第一通话方所对应的第一终端。当第一通话方所对应的第一终端在当前时刻接收到传输网络发送的当前通话数据包时,第一终端即可确定第二通话方当前的音频类型识别结果。其中,当前的音频类型识别结果可为以当前时间点为截止时间点的一段时间内的第二通话方输出的音频所属的类型,或者,为以当前时间点为截止时间点的一段时间内的第一终端接收到的音频所属的类型。
容易理解地,当通话方为虚拟通话角色或者软件客户端时,终端即为运行有该软件客户端或者用以展示虚拟通话角色的终端;当通话方为自然人时,终端即为自然人参与语音通话时使用的终端。当通话方为硬件终端时,终端与通话方为同一对象。当通话方为表征自然人的标识信息或者软件客户端时,第二终端采集第二通话方的通话音频,即为第二终端的用户通过第二通话方进行语音通话时输出的通话音频;当通话方为硬件客户端时,第二终端采集第二通话方的通话音频,为第二通话方的用户进行语音通话时输出的通话音频。在通话方为自然人或者虚拟的角色时,第二终端采集第二通话方的通话音频为自然人或者虚拟的角色在进行语音通话时输出的通话音频。在通话方为自然人时,第一通话方接收到第二通话方通过传输网络发送的当前通话数据包,指的是第一通话方所对应的第一终端接收到当前通话数据包。
在其中一个实施例中,第二通话方包括至少一个通话端;在第二通话方包括一个通话端时,第一通话方与第二通话方为双人通话场景下的通话方;在第二通话方包括多个通话端时,第一通话方与第二通话方为多人通话场景下的通话方。比如,在双人通话的场景下,当两个通话端进行语音通话时,第一通话方可为双人通话中的任意一个通话端,相应的,双人通话中的对方通话端即为第二通话方。示例性地,当双人语音聊天场景下,第一通话方可为双人语音聊天中的其中一个聊天通话端,则第二通话方可为双人语音聊天中另一个聊天通话端。
在多人通话场景下,第一通话方可为多人通话中的任意一个通话端,第二通话方可为多方通话中的除第一通话方之外的至少一个其余通话端。示例性地,当在多人会议场景下,第一通话方可为多人会议中的其中一个参会通话端,第二通话方可包括多人会议中的除第一通话方之外的其余参会通话端。其中,通话端可为参与通话的角色。
在其中一个实施例中,参考图3,第二通话方301所对应的第二终端可实时采集第二通话方的通话音频,将基于实时采集的通话音频编码生成的通话数据包依次发送至第一终端所对应的第一通话方302。从而第一通话方对应的第一终端对接收到的通话数据包进行解码播放。图3示出了一个实施例中语音通话的示意图。
在其中一个实施例中,在第一通话方在当前时刻接收到通话数据包时,也即,当第一终端在当前时刻接收到第二终端发送的通话数据包时,可将该接收到的通话数据包作为当前通话数据包,并获取以当前时刻为截止时间的一段时间内已接收到的通话数据包,从而结合当前通话数据包和获取的已接收到的通话数据包,确定第二通话方当前的音频类型识别结果。
在其中一个实施例中,当获取得到以当前时刻为截止时间的一段时间内接收到的包括当前通话数据包的多个通话数据包时,第一终端可分别确定每个通话数据包各自对应的短时能量,并判断短时能量低于预设能量阈值的通话数据包的数量。由于一般来时,声音越响,短时能量越大,因此,若短时能量低于预设能量阈值的通话数据包的数量小于或等于第一数量阈值时,则表征以当前时刻为截止时间的一段时间内,第二通话方输出的声音响度较低,此时,可判定音频类型识别结果为第二通话方当前输出的音频属于静音类型。其中,通话数据包的短时能量表征通话数据包中的声音的能量值。
进一步地,若短时能量低于预设能量阈值的通话数据包的数量大于第一数量阈值时,第一终端可确定每个通话数据包各自对应的短时过零率。由于一般而言,用户说话的声音处于一定的短时过零率区间内。因此,第一终端可统计处于短时过零率区间的通话数据包的数量,并在处于短时过零率区间内的通话数据包的数量大于第二数量阈值时,判定音频类型识别结果为第二通话方当前输出的音频属于语音类型。其中,通话数据包的短时过零率表征通话数据包中的声音的穿过零电平的频次。进一步地,若短时能量低于预设能量阈值的通话数据包的数量大于第一数量阈值、且处于短时过零率区间内的通话数据包的数量小于或等于第二数量阈值时,则判定音频类型识别结果为第二通话方当前输出的音频属于噪音类型。
步骤204,基于音频类型识别结果确定适配的目标抖动值计算方式。
具体地,第一终端预先设置有多种抖动值计算方式,其中,不同的抖动值计算方式与不同的音频类型识别结果相匹配。其中,抖动值反映的是传输网络时延的变化程度。通信数据包从第二终端传输至第一终端所耗费的时间就是时延。进一步地,当确定第一通话方当前的发言活跃度时,第一终端即可基于第二通话方当前的音频类型识别结果,从预先设置的多种抖动值计算方式中,筛选出与该音频类型识别结果相匹配的目标抖动值计算方式。其中,抖动值计算方式用于计算传输网络的抖动值。
在其中一个实施例中,可设置有音频类型识别结果与抖动值计算方式之间的映射关系,从而基于该映射关系,确定与第二通话方当前的音频类型识别结果相适配的目标抖动值计算方式。
步骤206,确定第一通话方已连续接收到的多个通话数据包各自的传输时间数据,多个通话数据包包括当前通话数据包。
具体地,由于第二终端会按照一定的时间间隔连续不断地将通话数据包发送至第一终端,因此,第一终端也在持续性地接收通话数据包。当第一终端在当前时刻接收到当前通话数据包时,第一终端可确定已连续接收到的、截止到当前通话数据包的多个通话数据包。其中,多个通话数据包包括当前通话数据包。进一步地,第一终端确定多个通话数据包中的每个通话数据包的传输时间数据。其中,传输时间数据指的是与通话数据包的传输时间相关的数据。比如,传输时间数据可包括通话数据包在第一终端和第二终端之间的传输时间、第二终端发送通话数据包的发送时间或者第一终端接收通话数据包的接收时间中的至少一种。
在其中一个实施例中,第一终端设置有数据包记录队列,该数据包记录队列中存储有已接收到的各通话数据包各自的数据包标识,且数据包标识在数据包记录队列中的排列顺序与第一终端接收通话数据包的顺序一致。也就是说,每当第一终端接收到一个通话数据包时,第一终端即可将该通话数据包的数据包标识存储至数据包记录队列的队尾。进而,第一终端可从该数据包记录队列中查找已连续接收到的、截止到当前通话数据包的多个通话数据包。其中,数据包标识指的是唯一标识一个通话数据包的标识。
在其中一个实施例中,第一终端中设置有时间记录表,通过时间记录表可记录接收到的各通话数据包的传输时间数据,其中,该传输时间数据包括通话数据包的接收时间。因此,当第一终端在当前时刻接收到当前通话数据包时,第一终端即可按照时间记录表中记录的接收时间,从时间记录表中确定已连续接收到的、截止到当前通话数据包的多个通话数据包,并从时间记录表中查找多个通话数据包各自的传输时间数据。
在其中一个实施例中,当第一终端接收到通话数据包时,第一终端即可将接收时间增加至该通话数据包中,并将该通话数据包存储至抖动缓冲区中。第一终端可按照通话数据包接收的先后顺序,确定通话数据包在抖动缓冲区中的排列顺序,从而当需要确定已连续接收到的、截止到当前通话数据包的多个通话数据包时,第一终端即可按照通话数据包在抖动缓冲区中的排列顺序,提取出相应的多个通话数据包,并从多个通话数据包中提取出接收时间。
步骤208,根据传输网络的历史抖动值和多个通话数据包各自的传输时间数据,按照目标抖动值计算方式,确定传输网络的目标抖动值。
具体地,当获取得到多个通话数据包各自的传输时间数据时,第一终端还可获取传输网络的历史抖动值。其中,历史抖动值指的是在历史时间点计算得到的传输网络的抖动值,比如,为第一终端在接收到上一个通话数据包时计算得到的传输网络的抖动值。进一步地,第一终端可根据传输网络的历史抖动值和多个通话数据包各自的传输时间数据,并按照目标抖动值计算方式,确定当前时刻的传输网络的目标抖动值。比如,目标抖动值计算方式具体可为一个计算公式,第一终端可将历史抖动值和传输时间数据代入至该计算公式中,从而得到目标抖动值。容易理解地,当需要计算下一时刻的抖动值时,该目标抖动值即变成历史抖动值。
在其中一个实施例中,第一终端可每当接收到一个通话数据包时,即计算一次传输网络的抖动值,也可按照一定的时间间隔计算一次传输网络的抖动值,当按照一定时间间隔来计算传输网络的抖动值时,在最新的计算周期内,第一终端将最新接收到的通话数据包作为当前通话数据包。
在其中一个实施例中,第一终端可根据多个通话数据包中各通话数据包各自的传输时间数据确定传输网络当前的时延变化程度,并将传输网络当前的时延变化程度与历史抖动值进行平滑处理,得到传输网络当前的目标抖动值。其中,可基于目标抖动值计算方式,确定平滑处理过程中传输网络当前的时延变化程度的权重和历史抖动值的权重。
步骤210,基于目标抖动值,调整用以缓存第二通话方发送的通话数据包的抖动缓冲区的大小。
具体地,当第一终端确定目标抖动值时,第一终端即可根据目标抖动值来调整抖动缓冲区的大小,使得调整后的抖动缓冲区的大小与目标抖动值匹配。比如,第一终端设置有抖动值与缓冲区大小之间的函数对应关系,通过该函数对应关系,可确定与目标抖动值相对应的抖动缓冲区的目标大小,从而将抖动缓冲区调整至该目标大小。其中,抖动缓冲区指的是用以缓存通话数据包的区域,参考图4,通过设置抖动缓冲区,可对缓冲的通话数据包(I1至IN)进行重新排序等处理,以使得接收到的通话数据包能够平稳地输出到下一个环节。图4示出了一个实施例中抖动缓冲区的示意图。
在上述实施例中,抖动缓冲区大小会随着第二通话方输出音频的音频类型识别结果的变化而变化,从而基于动态变化的抖动缓冲区使得通话双方在语音通话过程中既能够抵抗基本的网络抖动,又不会引入较大的时延,从而使得通话能够正常进行。
在其中一个实施例中,第一终端可在执行步骤202至204的同时,执行步骤206,也就是说,确定音频类型识别结果这一步骤,可与确定多个通通话数据包和各自的传输时间数据这一步骤同时执行。第一终端也可先执行步骤206再执行步骤204。本实施例在此不做限定。
上述抖动缓冲区大小的调整方法中,通过接收当前通话数据包,可确定第二通话方当前的音频类型识别结果,以及确定第一通话方已连续接收到的、截止到当前通话数据包的多个通话数据包。通过确定第二通话方当前的音频类型识别结果,可确定与音频类型识别结果匹配的目标抖动值计算方式。通过确定多个通话数据包,可确定多个通话数据包各自的传输时间数据。通过确定目标抖动值计算方式和传输时间数据,可按照目标抖动值计算方式,并根据传输网络的历史抖动值和多个通话数据包各自的传输时间数据,确定传输网络的目标抖动值,从而基于目标抖动值对抖动缓冲区大小进行调整,如此便实现了在通话过程中动态调整抖动缓冲区大小的目的。
此外,由于目标抖动值计算方式是与第二通话方当前的音频类型识别结果相匹配的,因此,基于目标抖动值计算方式计算得到的目标抖动值不仅与第二通话方当前的音频类型识别结果相匹配,而且反映了传输网络当前的抖动情况,进而基于该目标抖动值调整得到的抖动缓冲区的大小也与第二通话方当前的音频类型识别结果和传输网络当前的抖动均匹配。如此,便能基于与第二通话方当前的音频类型识别结果和传输网络当前的抖动均匹配的抖动缓冲区输出能够满足当前网络抖动和第二通话方当前输出音频类型的语音音频。
在其中一个实施例中,如图5所示,在第一通话方接收到第二通话方发送的当前通话数据包的情况下,确定第二通话方当前的音频类型识别结果,包括步骤502至步骤504。
步骤502,确定以当前通话数据包的接收时间为截止时间的检测时间段。
具体地,可在与第一通话方相对应的第一终端设置音频类型检测模块,通过音频类型检测模块确定第二通话方当前的音频类型识别结果。当音频检测模块需要对第二通话方输出的音频类型进行检测时,与第一通话方相对应的第一终端中的音频检测模块即可确定当前通话数据包的接收时间,并确定以当前通话数据包的接收时间为截止时间的一段检测时间段。当在当前时刻接收到当前通话数据包时,所确定的检测时间段即是以当前时刻为截止时间的一段时间。
其中一个实施例中,可约定检测时间段所持续的时长,从而在接收到当前通话数据包时,即可根据所约定的持续时长,以及当前通话数据包的接收时间,确定具体的检测时间段。比如,约定持续时长为5秒,并在第10秒接收到当前通话数据包时,即可确定检测时间段为第5秒至第10秒。
步骤504,对第一通话方在检测时间段内接收到的通话数据包进行音频类型识别,得到第二通话方当前的音频类型识别结果。
具体的,第一通话方所对应的第一终端中的音频检测模块获取第一通话方在检测时间段内接收到的通话数据包,也即,该音频检测模块获取接收段在检测时间段内接收到的通话数据包,该通话数据包可包括当前通话数据包。比如,当检测时段为第5秒至第10秒时,音频检测模块即可获取第一终端在第5秒至第10秒接收到的由第二通话方发送的通话数据包。进一步地,第一终端中的音频检测模块对在检测时间内接收到的音频数据包进行音频类型识别,从而得到第二通话方当前的音频类型识别结果。其中,音频检测模块可以为一个实体模块,也可为一个虚拟模块。
在其中一个实施例中,参考图6,当在第一终端设置音频检测模块时,第一终端可在每次接收到通话数据包时,即触发音频检测模块输出第二通话方的音频类型识别结果,以及触发抖动检测模块进行抖动检测,以确定网络延时差异值,从而通过音频类型识别结果以及网络延时差异值,动态调整抖动缓冲区的大小。图6示出了一个实施例中第一终端设置音频检测模块的示意图。
上述实施例中,由于检测时间段是以当前接收到的当前通话数据包的接收时间为截止时间,因此该检测时间段具有高时效性,从而可基于在检测时间段内接收到的通话数据包所确定的音频类型识别结果也具有高时效性,能够反映第二通话方当前输出音频的音频类型。
在其中一个实施例中,对第一通话方在检测时间段内接收到的通话数据包进行音频类型识别,得到第二通话方当前的音频类型识别结果,包括:确定第一通话方在检测时间段内接收到的通话数据包所构成的待检测音频,并对待检测音频进行分帧处理,得到多帧待检测音频帧;分别对每帧待检测音频帧进行傅里叶变换,得到多帧待检测音频帧各自的频谱特征数据;根据多帧待检测音频帧各自的频谱特征数据,确定待检测音频的音频类型,并根据音频类型生成第二通话方当前的音频类型识别结果。
具体地,当第一终端中的音频检测模块获取得到在检测时间段内接收到的通话数据包时,该音频检测模块即可确定在检测时间段内接收到的通话数据包所构成的待检测音频,并对待检测音频进行分帧处理,得到多帧待检测音频帧。比如,可通过分帧窗口对待检测音频进行分帧处理,以获得相邻两帧具有部分重叠的多帧待检测音频帧。进一步地,音频检测模块分别对每帧待检测音频帧进行傅里叶变换,以将时域的待检测音频帧变换为时域的频谱特征数据,从而基于多帧待检测音频帧各自的频谱特征数据,确定待检测音频的音频类型,并根据音频类型生成第二通话方当前的音频类型识别结果。
在其中一个实施例中,音频检测模块可对检测时间段内接收到的通话数据包进行解码,将其还原为待检测音频。
在其中一个实施例中,音频检测模块也可直接对在检测时间段内接收到的通话数据包进行分帧,以及进行傅里叶变换。比如,音频检测模块可将每个通话数据包作为一个待检测音频帧,并直接对每个通话数据包进行傅里叶变换,得到多个频谱特征数据。
在其中一个实施例中,音频检测模块可基于各频谱特征数据,确定各待检测音频帧属于各音频类型的概率值,从而综合各待检测音频帧属于各音频类型的概率值,确定第二通话方当前的音频类型识别结果。
在其中一个实施例中,参考图7,音频检测模块具体可为通过训练样本训练得到的机器学习模型。该机器学习模型可由不同结构单元组成,可包括卷积网络(ConvolutionalNeural Networks,CNN)、门控循环单元(Gate Recurrent Unit,GRU)、长短记忆模型单元(Long-Short Term Memory,LSTM)、全连接网络单元(Full Connect Neural Network)以及其他变种单元等,比如,softmax单元(一种逻辑回归单元)等。其中,通过卷积网络可将待检测音频帧进行卷积处理,得到音频特征;门控循环单元可保留音频特征中的重要部分,选择性地忘记一些不重要的信息;长短记忆模型单元可以让音频特征在神经网络的序列链中传递下去;全连接网络单元可综合多个输入结果,逻辑回归单元可基于多个输入结果输出待检测音频的音频类型。图7示出了一个实施例中音频检测模块的示意图。
上述实施例中,通过在第一终端设置音频检测模块,可通过音频检测模块实时确定第二通话方当前的音频类型识别结果,从而通过实时确定的第二通话方当前的音频类型识别结果,实时调整抖动缓冲区的大小,使得调整后的抖动缓冲区能够与第二通话方输出音频的类型相适应,进而基于相适应的抖动缓冲区在时延以及通话流畅度之间达到动态平衡。
在其中一个实施例中,根据音频类型生成第二通话方当前的音频类型识别结果,包括:在待检测音频的音频类型为语音类型时,分别确定待检测音频中的每帧待检测音频的短时能量和短时过零率;根据每帧待检测音频的短时能量和短时过零率,确定待检测音频中每帧待检测音频各自对应的第二通话方发言概率值;根据每帧待检测音频各自对应的第二通话方发言概率值,确定第二通话方当前的发言活跃度。根据待检测音频的音频类型和第二通话方当前的发言活跃度,生成第二通话方当前的音频类型识别结果。
具体地,在待检测音频的音频类型为语音类型时,也即,在待检测音频包括第二通话方的发言时,还需确定第二通话方的发言活跃度。其中,发言活跃度反映的是第二通话方参与语音通话的活跃程度。比如,在通话方为自然人或虚拟的用户时,发言活跃度指的是自然人或虚拟的用户在进行语音通话时发言的活跃程度比如可为自然人或虚拟的用户在一段时间内发言的次数,或者,自然人或虚拟的用户在一段时间内发言的时长,等等。在通话方为硬件终端或者软件客户端时,发言活跃度指的是通过硬件终端或者软件客户端进行语音通话的用户在进行语音通话时发言的活跃程度。其中,通过硬件终端或者软件客户端进行语音通话的用户可为上述的自然人或虚拟的用户。在通话方为自然人或者虚拟的角色时,第二通话方属于发言活跃类型反映的是自然人或者虚拟的角色在一段时间内,积极参与语音通话,多次发言;在通话方为表征自然人的标识信息、软件客户端或者硬件终端时,第二通话方属于发言活跃类型反映的是,通过自然人的标识信息、软件客户端或者硬件终端进行语音通话的用户在一段时间内,积极参与语音通话,多次发言。在通话方为自然人或者虚拟的角色,第二通话方属于音频收听类型反映的是自然人或者虚拟的角色在一段时间内,少量或者不发言,仅聆听对方的发言;在通话方为表征自然人的标识信息、软件客户端或者硬件终端时,第二通话方属于音频收听类型反映的是,通过自然人的标识信息、软件客户端或者硬件终端进行语音通话的用户在一段时间内,少量或不发言,仅聆听对方的发言。
在通话方为自然人或者虚拟的角色时,第二通话方发言概率值,反映的是该自然人或者虚拟的角色发言的概率。在通话方为表征自然人的标识信息、软件客户端或者硬件终端时,第二通话方发言概率值,反映的是通过自然人的标识信息、软件客户端或者硬件终端进行语音通话时发言的概率,该用户可为上述的自然人或者虚拟的角色。
对于待检测音频中的多帧待检测音频帧,音频检测模块均可确定每个待检测音频帧各自对应的短时能量和短时过零率。比如,针对多个待检测音频帧中的每个待检测音频帧,音频检测模块将每个待检测音频帧从时域转换至频域,得到每个待检测音频帧各自对应的频谱图。针对每个频谱图,音频检测模块均可确定待检测音频帧的短时能量和待检测音频帧的短时过零率。其中,待检测音频帧的短时能量指的是音频帧的能量。待检测音频帧的短时过零率指的是一帧音频帧中波形穿过横轴(零电平)的次数。进一步地,当获取得到的多个待检测音频帧各自对应的短时能量和短时过零率时,对于多个待检测音频帧中的每个待检测音频帧,第一终端均根据当前待检测音频帧的短时能量和短时过零率,确定当前待检测音频帧所对应的第二通话方发言概率值,从而在第二通话方发言概率值大于或等于预设概率阈值时,判定当前待检测音频帧属于发言类型。其中,第二通话方发言概率值指的是待检测音频帧中包括第二通话方发言的概率值。
比如,一般来说,包括有用户声音的语音信号的能量大于静默信号的能量,因此,音频检测模块可在当前待检测音频帧的短时能量大于预设能量阈值时,判定此待检测音频帧包括第二通话方的发言,第二通话方发言概率值大于或等于预设概率阈值,此时当前待检测音频帧属于发言类型;在小于或等于预设能量阈值时,一般来说,包括有用户声音的语音信号的短时过零率是处于一定区间内的,因此,第一终端判断当前待检测音频帧的短时过零率是否处于预设过零率区间内,若处于,则判定当前待检测音频帧包括第二通话方的发言,第二通话方发言概率值大于或等于预设概率阈值,此时当前待检测音频帧属于发言类型;若不处于预设过零率区间内、且当前待检测音频帧的短时能量小于或等于预设能量阈值,则判定第二通话方发言概率值小于预设概率阈值,当前待检测音频帧不属于发言类型,属于静默类型。
进一步地,音频检测模块根据多个待检测音频帧各自对应的第二通话方发言概率值,确定第二通话方当前的发言活跃度。比如,在基于第二通话方发言概率值确定待检测音频帧是否属于发言类型之后,音频检测模块可根据属于发言类型的音频帧的数量来确定第二通话方在当前的发言活跃度。或者,对各第二通话方发言概率值进行求平均,将平均值作为第二通话方的发言活跃度。当确定第二通话方在当前的发言活跃度时,音频检测模块即可综合该发言活跃度和待检测音频的音频类型,生成第二通话方当前的音频类型识别结果。
在其中一个实施例中,音频检测模块根据多个音频帧各自对应的第二通话方发言概率值,确定多个待检测音频帧各自对应的音频帧类型;音频帧类型包括发言类型;音频检测模块确定多个待检测音频帧中属于发言类型的待检测音频帧的数量,得到目标数量;音频检测模块根据目标数量和多个待检测音频帧的总数量,确定第二通话方当前的发言活跃度。
比如,对于待检测音频中的待检测音频帧1至待检测音频帧N,音频检测模块均确定每帧待检测音频帧所属的类型。其中,vad=1用于代表该待检测音频帧属于发言类型;vad=0用于代表待检测音频帧属于静默类型。音频检测模块统计待检测音频中vad=1的待检测音频帧的数量,以及统计vad=0的待检测音频帧的数量,基于vad=1的待检测音频帧的数量和vad=0的待检测音频帧的数量,并参考下述公式,确定第二通话方在当前的发言活跃度。
Per_V=C1/(C0+C1)
其中,Per_V代表第二通话方的发言活跃度;C1为vad=1的待检测音频帧的数量,也即,为目标数量;C0为vad=0的待检测音频帧的数量;(C0+C1)为待检测音频帧的总数量。
上述实施例中,通过在待检测音频属于语音类型时对待检测音频进行发言活跃度检测,可使得音频类型识别结果中携带发言活跃度,进而使得基于音频类型识别结果调整得到的抖动缓冲区能够与第二通话方的发言活跃度相适应。
在其中一个实施例中,在第一通话方接收到第二通话方发送的当前通话数据包的情况下,确定第二通话方当前的音频类型识别结果,包括:将第一通话方最新接收到的由第二通话方发送的音频类型识别结果,作为第二通话方当前的音频类型识别结果。
具体地,可在第二通话方所对应的第二终端设置音频检测模块,从而该音频检测模块可对第二通话方输出的音频进行检测,得到音频类型识别结果,并将音频类型识别结果发送至第一终端。由于音频类型识别结果具有一定的时效性,因此,当第一通话方在当前时刻接收到当前通话数据包时,第一通话方可确定最新接收到的音频类型识别结果,并将最新接收到的音频类型识别结果作为第二通话方当前的音频类型识别结果。其中,相比于接收到的其他音频类型识别结果,最新接收到的音频类型识别结果的接收时间与当前通话数据包的接收时间之间的时间差最小。
在其中一个实施例中,第二终端中的音频检测模块在生成音频类型识别结果时,可单独将该音频类型识别结果发送至第一通话方所对应的第一终端。第二终端也可将音频检测模块输出的音频类型识别结果与编码得到的通话数据包一起发送至第一通话方所对应的第一终端。
在其中一个实施例中,当第一终端接收到音频类型识别结果时,第一终端可将音频类型识别结果的标识以及音频类型识别结果的接收时间对应存储,从而基于对应存储的数据确定最新接收到的音频类型识别结果。
上述实施例中,由于最新接收到的音频类型识别结果的接收时间与当前通话数据包的接收时间之间的时间差最小,因此,最新接收到的音频类型识别结果可反映第二通话方当前的输出音频的类型,从而后续可基于第二通话方当前的输出音频的类型对抖动缓冲区进行实时调整。
在其中一个实施例中,上述方法还包括:第二通话方周期性地对已发送的通话数据包进行音频类型识别;其中,对于任一个周期,第二通话方对在周期内已发送的通话数据包进行音频类型识别,得到与周期相对应的音频类型识别结果,并将音频类型识别结果发送至第一通话方。
具体地,第二通话方所对应的第二终端中的音频检测模块可周期性地对第二通话方输出的音频进行检测。比如,可每隔5秒对5秒内第二通话方输出的音频进行检测,并将检测得到的结果发送至第一通话方。其中,对于任一个周期,音频检测模块可获取第二通话方在该周期内输出的音频,比如,可获取通过喇叭采集的第二通话方在该周期内输出的音频,并对第二通话方在该周期内输出的音频进行音频类型检测,得到音频类型识别结果,以及将音频类型识别结果发送至第一通话方。因此,第一通话方可持续地接收音频类型识别结果。
在其中一个实施例中,第二终端中的音频检测模块,可周期性地对第二通话方输出的音频进行检测。其中,对于任一个周期,音频检测模块可获取在该周期内已发送的通话数据包,并对获取的通话数据包进行音频类型检测,得到音频类型识别结果,将音频类型识别结果发送至第一通话方。其中,音频检测模块可按照上述实施例中的音频类型检测实施例进行音频类型检测。
上述实施例中,通过周期性地对第二通话方的音频进行检测,可使得检测得到的音频类型识别结果具有高时效性。通过在第二通话方所对应的第二终端设置音频检测模块,可减轻第一通话方所对应的第一终端的负担,从而降低因第一终端需要处理过多的任务而导致运行错误的概率。
在其中一个实施例中,音频类型识别结果至少包括表征第二通话方输出的音频属于音乐类型的第一结果、表征第二通话方输出的音频属于语音类型的第二结果、表征第二通话方输出的音频属于噪音类型的第三结果或者表征第二通话方输出的音频属于静音类型的第四结果中的一种;与音频类型识别结果适配的目标抖动值计算方式至少包括与音乐类型适配的第一计算方式、与语音类型适配的第二计算方式、与噪音类型适配的第三计算方式或者与静音类型适配的第四计算方式中的一种;在相同的计算参数下,通过第一计算方式计算得到的目标抖动值、通过第二计算方式计算得到的目标抖动值、通过第三计算方式计算得到的目标抖动值以及通过第四计算方式计算得到的目标抖动值,依次减小。
具体地,由于音频可能属于音乐类型、语音类型、噪音类型和静音类型中的至少一种,因此,音频类型识别结果至少包括与音乐类型相对应的第一结果、与语音类型相对应的第二结果、与噪音类型相对应的第三结果以及与静音类型相对应的第四结果。相应的,第一终端中也可设置有与第一结果相适配的第一计算方式、与第二结果相适配的第二计算方式、与第三结果相适配的第三计算方式以及与第四结果相适配的第四计算方式。在通话方为自然人或者虚拟的角色时,第二通话方输出的音频表征的是自然人或者虚拟的角色发出的音频;在通话方为表征自然人的标识信息、软件客户端或者硬件终端时,第二通话方输出的音频反映的是,表征自然人的标识信息、软件客户端或者硬件终端发送至第一终端的音频,也即,表征的是通过自然人的标识信息、软件客户端或者硬件终端进行语音通话的用户所输出的音频。
在其中一个实施例中,与第一结果相适配的第一计算方式可为下述公式,也即,在第二通话方当前输出音频的类型为音乐类型时,目标抖动值计算方式为第一计算方式,第一计算方式可为:
在(|d(i-1,i)|>jitter_value(i-1))的情况下:
jitter_value(i)=0.5*jitter_value(i-1)+0.5*|d(i-1,i)|;
在(|d(i-1,i)|≤jitter_value(i-1))的情况下:
jtter_value(i)=0.97*jitter_value(i-1)+0.03*|d(i-1,i)|;
在其中一个实施例中,与第二结果相适配的第二计算方式可为下述公式,也即,在第二通话方当前输出音频的类型为语音类型时,目标抖动值计算方式为第二计算方式,第二计算方式可为:
在(|d(i-1,i)|>jitter_value(i-1))的情况下:
a=func(Per_V)
jitter_value(i)=(1-a)*jitter_value(i-1)+a*|d(i-1,i)|;
在(|d(i-1,i)|≤jitter_value(i-1))的情况下:
jitter_value(i)=0.9*jitter_value(i-1)+0.1*|d(i-1,i)|;
在其中一个实施例中,与第三结果相适配的第三计算方式可为下述公式,也即,在第二通话方当前输出音频的类型为噪音类型时,目标抖动值计算方式为第三计算方式,第三计算方式可为:
在(|d(i-1,i)|>jitter_value(i-1))的情况下:
jitter_value(i)=0.8*jitter_value(i-1)+0.2*|d(i-1,i)|;
在(|d(i-1,i)|≤jitter_value(i-1))的情况下:
jitter_value(i)=0.5*jitter_value(i-1)+0.5*|d(i-1,i)|;
在其中一个实施例中,与第四结果相适配的第四计算方式可为下述公式,也即,在第二通话方当前输出音频的类型为静音类型时,目标抖动值计算方式为第四计算方式,第四计算方式可为:
在(|d(i-1,i)|>jitter_value(i-1))的情况下:
jitter_value(i)=0.9*jitter_value(i-1)+0.1*|d(i-1,i)|;
在(|d(i-1,i)|≤jitter_value(i-1))的情况下:
jitter_value(i)=0.5*jitter_value(i-1)+0.5*|d(i-1,i)|;
其中,上述公式中|d(i-1,i)|代表第i-1个通话数据包与第i个通话数据包的时延之间的差异,也即,为网络时延差异值;jitter_value(i-1)代表历史抖动值;jitter_value(i)代表目标抖动值;func是以Per_V为变量的单调递增函数,其最大输出值为0.5,也即,a的最大值为0.5;Per_V为第二通话方当前的发言活跃度。
在d(i-1,i)>jitter_value(i))的情况下,0.5*jitter_value(i-1)+0.5*|d(i-1,i)|-(1-a)*jitter_value(i-1)-a*|d(i-1,i)|=(0.5-a)|d(i-1,i)|-(0.5-a)jitter_value(i-1)>0;(1-a)*jitter_value(i-1)+a*|d(i-1,i)|-0.8*jitter_value(i-1)-0.2*|d(i-1,i)=(a-0.2)|d(i-1,i)|-(a-0.2)jitter_value(i-1)>0;0.8*jitter_value(i-1)+0.2*|d(i-1,i)-0.9*jitter_value(i-1)-0.1*|d(i-1,i)|=0.1|d(i-1,i)|-0.1jitter_value(i-1)>0。
且在d(i-1,i)<jitter_value(i))的情况下,0.97*jitter_value(i-1)+0.03*|d(i-1,i)|-0.9*jitter_value(i-1)+0.1*|d(i-1,i)|=0.07jitter_value(i-1)-0.07|d(i-1,i)|>0;0.9*jitter_value(i-1)+0.1*|d(i-1,i)|-0.5*jitter_value(i-1)-0.5*|d(i-1,i)|=0.4jitter_value(i-1)-0.4|d(i-1,i)|;0.5*jitter_value(i-1)+0.5*|d(i-1,i)|-0.5*jitter_value(i-1)-0.5*|d(i-1,i)|=0。
因此,在相同的计算条件下,通过第一计算方式计算得到的目标抖动值,大于通过第二计算方式计算得到的目标抖动值;通过第二计算方式计算得到的目标抖动值,大于通过第三计算方式计算得到的目标抖动值;通过第三计算方式计算得到的目标抖动值,大于或等于通过第四计算方式计算得到的目标抖动值。其中,相同的计算条件指的是,通过第一计算方式、第二计算方式、第三计算方式和第四计算方式计算目标抖动值时,输入的计算参数相同。
上述实施例中,由于目标抖动值越大,则抖动缓冲区也就越大,通过设置尺寸更大的抖动缓冲区,可通过更大尺寸的抖动缓冲区对抗网络乱序抖动问题,确保第一通话方可以获得更为流畅的第二通话方的通话音频。通过设置稍小尺寸的抖动缓冲区,可通过尺寸稍小的抖动缓冲区不仅能够抵抗基本的网络抖动要求,还能当抖动较大时会通过缓冲区及时快播处理,对满盈的缓冲数据进行压缩并即时输出处理,虽然听感上会感觉播放速度有所变化,但能最大程度避免抖动导致的通话过程“不可接受的”大延时体验,保障了通话的流畅性。
由于对于音乐信号,网络抖动导致声音卡断的体验影响最大,第一通话方更关注的是能否收听到流畅的音乐,因此,需要设置尺寸更大的抖动缓冲区,以通过尺寸更大的抖动缓冲区使得第一通话方能够收听到流畅的音乐。对于语音信号,网络抖动导致声音卡顿的影响体验比音乐信号影响小,因此需要设置比音乐信号稍小的抖动缓冲区来使得第一通话方能够收听到具有合适时延、且较为流畅播放的语音。对于噪音信号或者静音信号,网络抖动对其造成的影响最小,因此,可以用更小的抖动缓冲区来避免引入额外的时延。因此,本实施例从第二通话方当前输出的音频的特性出发,通过预先设置与第二通话方当前输出的音频类型相适应的目标抖动值计算方式来计算得到目标抖动值,从而通过目标抖动值,来得到与第二通话方当前输出的音频类型以及与传输网络的抖动均适配的抖动缓冲区,以通过均适配的抖动缓冲区在高通话质量和短时延之间达到动态平衡。
在其中一个实施例中,以多个通话数据包中的每个通话数据包分别作为目标通话数据包;目标通话数据包的传输时间数据的确定步骤包括:从时间记录表中查找第二通话方发送目标通话数据包的发送时间,以及查找第一通话方接收目标通话数据包的接收时间;综合目标通话数据的发送时间和接收时间,得到目标通话数据包的传输时间数据。
具体地,当获取得到以当前通话数据包为截止的多个连续接收到的通话数据包时,以多个通话数据包中的每个通话数据包分别作为目标通话数据包。第一终端可获取时间记录表,并从时间记录表中查找第二通话方发送该目标通话数据包的发送时间,以及从时间记录表中查找第一通话方接收该目标通话数据包的接收时间。第一终端综合目标通话数据的接收时间和发送时间,得到目标通话数据包的输时间数据。
在其中一个实施例中,当接收到通话数据包时,第一终端可从通话数据包的包头中提取出第二通话方的发送时间,并将该时间记录至时间记录表中。
本实施例中,由于时间记录表中可记载有各通话数据包的发送时间和接收时间,因此,通过获取时间记录表,可基于时间记录表中记载的时间,快速确定各通话数据包各自对应的传输时间数据。
在其中一个实施例中,根据传输网络的历史抖动值和多个通话数据包各自的传输时间数据,按照目标抖动值计算方式,确定传输网络的目标抖动值,包括:根据多个通话数据包各自的传输时间数据,确定网络延时差异值;根据网络延时差异值和传输网络的历史抖动值之间的大小关系,从目标抖动值计算方式中筛选出目标子计算方式;按照目标子计算方式,并根据传输网络的历史抖动值和网络延时差异值,确定传输网络的目标抖动值。
具体地,第一终端根据多个通话数据包各自的传输时间数据,确定网络时延差异值。其中,网络时延差异值反映了传输网络时延的变化情况。第一终端可确定网络延时差异与历史抖动值之间的大小关系,并根据该大小关系筛选出目标子计算方式,从而按照目标子计算方式,确定传输网络的目标抖动值。
在其中一个实施例中,目标值计算方式包括第一子方式和第二子方式;根据网络时延差异值和传输网络的历史抖动值之间的大小关系,从目标抖动值计算方式中筛选出目标子计算方式,包括:当网络时延差异值大于传输网络的历史抖动值时,将第一子方式作为目标子计算方式;当网络时延差异值小于或等于传输网络的历史抖动值时,将第二子方式作为目标子计算方式;其中,在目标值计算方式为与音频类型识别结果或语音类型识别结果适配的计算方式时,第一子方式中的与历史抖动值相对应的第一计算系数,小于第二子方式中的与历史抖动值相对应的第一计算系数;第一子方式中的与网络延时差异值相对应的第二计算系数,大于第二子方式中的与网络延时差异值相对应的第二计算系数在目标值计算方式为与噪音类型识别结果或静音类型识别结果适配的计算方式时,第一子方式中的与历史抖动值相对应的第一计算系数,大于第二子方式中的与历史抖动值相对应的第一计算系数;第一子方式中的与网络延时差异值相对应的第二计算系数,小于第二子方式中的与网络延时差异值相对应的第二计算系数。
具体地,目标抖动值计算方式包括与“网络时延差异值大于传输网络的历史抖动值”相对应的第一子方式、及与“网络延时差异值小于或等于传输网络的历史抖动值”相对应的第二子方式。当网络时延差异值大于传输网络的历史抖动值时,将目标抖动值计算方式中的第一子方式,作为目标子计算方式;当网络延时差异值小于或等于传输网络的历史抖动值时,将目标抖动值计算方式中的第二子方式,作为目标子计算方式。
比如,在目标抖动值计算方式为与音乐类型适配的第一计算方式、且网络时延差异值大于传输网络的历史抖动值时,目标子计算方式即可为第一子方式:jitter_value(i)=0.5*jitter_value(i-1)+0.5*|d(i-1,i)|;在目标抖动值计算方式为与音乐类型适配的第一计算方式、且网络时延差异值小于或等于传输网络的历史抖动值时,目标子计算方式即可为第二子方式:jitter_value(i)=0.97*jitter_value(i-1)+0.03*|d(i-1,i)|。
又比如,在目标抖动值计算方式为语音类型适配的第二计算方式、且网络时延差异值大于传输网络的历史抖动值时,目标子计算方式即可为第一子方式:jitter_value(i)=(1-a)*jitter_value(i-1)+a*|d(i-1,i)|;在目标抖动值计算方式为语音类型适配的第二计算方式、且网络时延差异值小于或等于传输网络的历史抖动值时,目标子计算方式即可为第二子方式:jitter_value(i)=0.9*jitter_value(i-1)+0.1*|d(i-1,i)|。
其中,在目标值计算方式为与音频类型或语音类型适配的计算方式时,第一子方式中的与历史抖动值相对应的第一计算系数,小于第二子方式中的与历史抖动值相对应的第一计算系数;第一子方式中的与网络延时差异值相对应的第二计算系数,大于第二子方式中的与网络延时差异值相对应的第二计算系数在目标值计算方式为与噪音类型或静音类型适配的计算方式时,第一子方式中的与历史抖动值相对应的第一计算系数,大于第二子方式中的与历史抖动值相对应的第一计算系数;第一子方式中的与网络延时差异值相对应的第二计算系数,小于第二子方式中的与网络延时差异值相对应的第二计算系数。
本实施例中,当目标值计算方式为与音频类型或语音类型适配的计算方式时,由于对于音频类型或语音类型,网络抖动缓冲区的卡顿或快播对接收方听感影响较大,因此,在网络时延差异值大于历史抖动值时,可表征传输网络的抖动正在增大,因此,相比于第二子方式,第一子方式中的网络时延差异值的占比会增大(比如,0.5大于0.03),从而通过增大的占比增大计算得到的目标抖动值,进而基于增大的目标抖动值,增加抖动缓冲区的大小,以避免因抖动缓冲区过小而抖动过大导致的输出语音断断续续的概率。在网络时延差异值小于或等于历史抖动值时,可表征传输网络的抖动不变或者减小,因此,相比于第一子方式,与“网络时延差异值小于或等于历史抖动值”相对应的第二子方式中的历史抖动值的占比会增大(比如,0.97大于0.5),从而通过增大的历史抖动值的占比使得所确定的目标抖动值可与历史抖动值相差不大,进而基于相差不大的目标抖动值减小抖动缓冲区频繁变化的概率,如此,不仅可以减少因抖动缓冲区尺寸变化过于频繁而导致第一终端运行错误的概率,而且可以减少因变化抖动缓冲区尺寸而耗费的计算机等资源。
当当目标值计算方式为与噪音类型或静音类型适配的计算方式时,由于对于音频类型或语音类型,网络抖动缓冲区的卡顿或快播对接收方听感影响较小,因此,可使得通过与噪音类型或静音类型适配的计算方式计算得到的目标抖动值,小于通过与与音频类型或语音类型适配的计算方式计算得到的目标抖动值,因此,在此前提下,在目标值计算方式为与噪音类型或静音类型适配的计算方式时,设置第一子方式中的与历史抖动值相对应的第一计算系数,大于第二子方式中的与历史抖动值相对应的第一计算系数;第一子方式中的与网络延时差异值相对应的第二计算系数,小于第二子方式中的与网络延时差异值相对应的第二计算系数。
在其中一个实施例中,多个通话数据包为两个通话数据包;传输时间数据包括通话数据包的发送时间和接收时间;根据多个通话数据包各自的传输时间数据,确定网络延时差异值,包括:对于两个通话数据包中的每个通话数据包,确定通话数据包的接收时间和发送时间之间的时间差,得到通话数据包的收发时间差;确定两个通话数据各自的收发时间差之间的差异,并根据两个通话数据各自的传输时间值之间的差异,确定传输网络的网络延时差异值。
具体地,在多个通话数据包具体为两个通话数据包时,对于两个通话数据包中的每个通话数据包,第一终端均将当前通话数据包的接收时间减去发送时间,得到当前通话数据包的收发时间差。第一终端将两个通话数据包中的其中一个收发时间差减去另一个通话数据包的收发时间差,得到两个通话数据各自的收发时间差之间的差异,并将该差异的绝对值,作为传输网络的网络时延差异值。比如,第一终端可根据公式|d(i,j)|=|(r(j)–r(i))-(s(j)–s(i))|=|(r(j)–s(j))-(r(i)–s(i))|,确定网络时延差异值。其中,|d(i,j)|为网络时延差异值;i为第i个通话数据包;j为第j个通话数据包;r(j)为第j个通话数据包的接收时间,s(j)为第j个通话数据包的发送时间;r(i)为第i个通话数据包的接收时间,s(i)为第i个通话数据包的发送时间。(r(j)–s(j))为第j个通话数据包的收发时间差;(r(i)–s(i))为第i个通话数据包的收发时间差。
在其中一个实施例中,多个通话数据包还可为两个或两个以上的通话数据包,从而第一终端确定接收到的每两个相邻的通话数据包之间的收发时间差的差异,并将多个差异的平均值,作为传输网络的网络时延差异值。
在其中一个实施例中,参考图8,对于通话数据包i和通话数据包j,可基于通话数据包i的发送时间s(i)和接收时间r(i)、以及基于通话数据j的发送时间s(j)和接收时间r(j),确定传输网络的网络时延差异值。图8示出了一个实施例中网络时延差异值的确定示意图。
容易理解地,在通话方为自然人、虚拟的角色或者软件应用时,第二通话方发送目标通话数据包的发送时间即为,第二通话方所对应的第二终端发送目标通话数据包的时间;在通话方为硬件终端时,第二通话方发送目标通话数据包的发送时间即为该硬件终端发送目标通话数据包的时间。相应的,第一通话方接收所述目标通话数据包的接收时间也是如此。
上述实施例中,由于收发时间差反映的是通话数据包在传输网络中的时延,因此,各收发时间差之间的差异能够反映时延的变化情况,因此,通过确定各收发时间差之间的差异,可基于该差异确定传输网络的目标抖动值。
在其中一个实施例中,按照目标子计算方式,并根据传输网络的历史抖动值和网络延时差异值,确定传输网络的目标抖动值,包括:按照目标子计算方式,确定与传输网络的历史抖动值对应的第一计算系数、及与网络延时差异值对应的第二计算系数;将第一计算系数与历史抖动值相乘,得到目标历史抖动值,并将第二计算系数与网络延时差异值相乘,得到目标网络延时差异值;将目标历史抖动值与目标网络延时差异值叠加,得到述传输网络的目标抖动值。
具体地,当确定目标子计算方式时,第一终端可根据目标子计算方式,确定与传输网络的历史抖动值对应的第一计算系数、及与网络时延差异值对应的第二计算系数。比如,在目标子计算方式为jitter_value(i)=0.97*jitter_value(i-1)+0.03*|d(i-1,i)|时,可确定与传输网络的历史抖动值对应的第一计算系数为0.97,与网络时延差异值对应的第二计算系数为0.03。此时,第一终端按照相应的计算系数,对历史抖动值和网络时延差异值进行加权求和处理,得到目标抖动值。
本实施例中,对历史抖动值和网络时延差异值进行加权求和处理,可认为是基于历史抖动值对目标抖动值进行平滑处理,从而通过平滑处理使得所确定的目标抖动值更为准确。
在其中一个实施例中,按照目标子计算方式,确定与传输网络的历史抖动值对应的第一计算系数、及与网络延时差异值对应的第二计算系数,包括:当音频类型识别结果表征第二通话方输出的音频属于语音类型、且网络延时差异值大于传输网络的历史抖动值时,从音频类型识别结果中提取第二通话方当前的发言活跃度;按照目标子计算方式,根据发言活跃度确定与传输网络的历史抖动值对应的第一计算系数、及与网络延时差异值对应的第二计算系数。
具体地,当第二通话方当前输出的音频为语音类型、且网络延时差异值大于传输网络的历史抖动值时,第一终端可从音频类型识别结果中提取第二通话方当前的发言活跃度,并按照目标子计算方式中提及的系数计算公式,根据发言活跃度计算与历史抖动值相对应的第一计算系数,以及根据发言活跃度计算与网络延时差异值对应的第二计算系数。
比如,当第二通话方当前输出的音频为语音类型、且网络延时差异值大于传输网络的历史抖动值时,目标子计算方式可为:
a=func(Per_V)
jitter_value(i)=(1-a)*jitter_value(i-1)+a*|d(i-1,i)|;
从而,第一终端可通过目标子计算方式中的系数计算公式a=func(Per_V),确定与网络延时差异值对应的第二计算系数a,并根据第二计算系数a,确定与历史抖动值相对应的第一计算系数(1-a),从而后续基于目标子计算方式中的jitter_value(i)=(1-a)*jitter_value(i-1)+a*|d(i-1,i)|,计算得到目标抖动值。
本实施例中,由于func(Per_V)是以第二通话方当前的发言活跃度为变量的单调递增函数,因此,在第二通话方当前的发言活跃度越大时,func(Per_V)也就越大,也即,参数a的值也就越大。又由于在网络延时差异值(|d(i-1,i)|)大于传输网络的历史抖动值(jitter_value(i-1))时,才采用公式jitter_value(i)=(1-a)*jitter_value(i-1)+a*|d(i-1,i)|来确定目标抖动值,因此,|d(i-1,i)|>jitter_value(i-1),因此,当参数a值越大时,通过该公式计算得到的目标抖动值也就越大,从而使得,在相同的网络差异值以及历史抖动值情况下,第二通话方当前的发言活跃度越大,则目标抖动值也就越大,基于该目标抖动值确定得到的抖动缓冲区也就越大。由于在第二通话方当前频繁发言时,第一通话方在当前时刻会倾向于聆听第二通话方的发言,因此,在第二通话方当前的发言活跃度较大时,通过设置较大尺寸的抖动缓冲区,可使得第一通话方在当前时刻能够收听到高质量的流畅的第二通话方的语音。
在其中一个实施例中,基于所述目标抖动值,调整用以缓存所述第二通话方发送的通话数据包的抖动缓冲区的大小,包括:获取预配置的抖动值与抖动缓冲区大小之间的对应关系;其中,所述抖动缓冲区的大小随着抖动值的增大而增大;根据所述对应关系,确定与所述目标抖动值相对应的目标大小,并调整所述抖动缓冲区的大小至所述目标大小。
具体地,第一终端中预存储有抖动值与缓冲区大小之间的对应关系,该对应关系具体可为一个映射表。通过抖动值与缓冲区大小之间的对应关系,第一终端可确定与目标抖动值相对应的目标缓冲区大小,并调整抖动缓冲区的大小至该目标缓冲区大小。通常情况下,目标抖动值越大,则所对应的抖动缓冲区越大,相反则越小。当接收到的通话数据包超过抖动缓冲区的尺寸时,缓冲区数据将通过时间压扩算法,例如SOLA算法对抖动缓冲区的通话数据包进行时域压缩后进行播放,即快速播放的方式。
在其中一个实施例中,当进行多人通话时,对于除第一通话方所对应的通话端之外的其余通话端,每个通话端均可为一个第二通话方,从而可在第一通话方所对应的第一终端中,设置每个第二通话方各自对应的抖动缓冲区,用于缓存相应的第二通话方发送的通话数据包。第一终端可按照上述方法,分别调整每个抖动缓冲区大小,使得其与传输网络的抖动值与第二通话方的语音类型相对应。当进行多人通话时,对于除第一通话方所对应的通话端之外的其余通话端,可将其余通话端共同作为一个第二通话方,从而可在第一通话方所对应的第一终端中,设置第二通话方所对应的抖动缓冲区,用以缓存各其余通话端发送的通话数据包。第一终端可按照上述方法,分别调整每个抖动缓冲区大小,使得其与传输网络的抖动值和第二通话方的语音类型相对应。
本实施例中,抖动值越大则传输网络越不稳定或抖动越大,例如短时间接收到异常多的通话数据包,或者收到的通话数据包是乱序的。当抖动值增大时,通过增加抖动缓冲区的尺寸,可使之有足够大的缓存空间接收更多的数据,避免传输进来的通话数据包因缓冲区不足而溢出被迫丢弃的问题,随后通过对抖动缓冲区的通话数据包重新排序等处理,让接收到的通话数据包可以平稳地输出到下一环节,即解码环节,让解码后输出的音视频信号播放流畅。而当抖动值减小时,也即当接收到的数据包量恢复正常时,可减小抖动缓冲区的尺寸,比如,将恢复至常规的抖动缓冲区的长度,以避免引入额外的端到端时延。
在其中一个实施例中,参考图9,示出了一个具体实施例中抖动缓冲区大小的调整方法,包括以下步骤:
步骤902,当第一通话方与第二通话方通过传输网络进行语音通话,在第一通话方接收到第二通话方发送的当前通话数据包的情况下,第一终端确定以当前通话数据包的接收时间为截止时间的检测时间段。
步骤904,第一终端确定第一通话方在检测时间段内接收到的通话数据包所构成的待检测音频,并对待检测音频进行分帧处理,得到多帧待检测音频帧;分别对每帧待检测音频帧进行傅里叶变换,得到多帧待检测音频帧各自的频谱特征数据;根据多帧待检测音频帧各自的频谱特征数据,确定待检测音频的音频类型。
步骤906,在待检测音频的音频类型为语音类型时,分别确定待检测音频中的每帧待检测音频的短时能量和短时过零率;第一终端根据每帧待检测音频的短时能量和短时过零率,确定待检测音频中每帧待检测音频各自对应的第二通话方发言概率值;根据每帧待检测音频各自对应的第二通话方发言概率值,确定第二通话方当前的发言活跃度。
步骤908,第一终端根据待检测音频的音频类型和第二通话方当前的发言活跃度,生成第二通话方当前的音频类型识别结果;基于音频类型识别结果确定适配的目标抖动值计算方式。
步骤910,第一终端确定第一通话方已连续接收到的多个通话数据包,多个通话数据包包括当前通话数据包。
步骤912,对于多个通话数据包中的每个通话数据包,第一终端从时间记录表中查找第二通话方发送通话数据包的发送时间,以及查找第一通话方接收通话数据包的接收时间,综合通话数据的发送时间和接收时间,得到通话数据包的传输时间数据。
步骤914,对于两个通话数据包中的每个通话数据包,第一终端确定通话数据包的接收时间和发送时间之间的时间差,得到通话数据包的收发时间差;确定两个通话数据各自的收发时间差之间的差异,并根据两个通话数据各自的传输时间值之间的差异,确定传输网络的网络延时差异值。
步骤916,第一终端根据网络延时差异值和传输网络的历史抖动值之间的大小关系,从目标抖动值计算方式中筛选出目标子计算方式;按照目标子计算方式,确定与传输网络的历史抖动值对应的第一计算系数、及与网络延时差异值对应的第二计算系数。
步骤918,第一终端将第一计算系数与历史抖动值相乘,得到目标历史抖动值,并将第二计算系数与网络延时差异值相乘,得到目标网络延时差异值;将目标历史抖动值与目标网络延时差异值叠加,得到述传输网络的目标抖动值。
步骤920,第一终端获取预配置的抖动值与抖动缓冲区大小之间的对应关系;其中,抖动缓冲区的大小随着抖动值的增大而增大;根据对应关系,确定与目标抖动值相对应的目标大小,并调整抖动缓冲区的大小至目标大小。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
本申请还提供一种应用场景,该应用场景应用上述的抖动缓冲区大小的调整方法。具体地,该抖动缓冲区大小的调整方法在该应用场景的应用如下:
参考图10,图10示出了一个实施例中抖动缓冲区大小的调整整体示意图。当第一通话方与第二通话方通过即时通信应用进行语音通话时,第一通话方所对应的第一终端可接收第二通话方发送的通话数据包和音频类型识别结果,并基于接收到的通话数据包进行抖动检测,得到网络时延差异值,以及综合网络时延差异值和音频类型识别结果确定传输网络的目标抖动值。进一步地,第一终端基于目标抖动值调整抖动缓冲区的大小,从而第一终端可通过调整后的抖动缓冲区来存储第二通话方发送的通话数据包,并对通话数据包进行解码播放。如此,第一通话方即可实现与第二通话方进行语音通话。
参考图11,图11示出了另一个实施例中抖动缓冲区大小的调整整体示意图。当第一通话方与第二通话方通过即时通信应用进行语音通话时,第一通话方所对应的第一终端可接收第二通话方发送的通话数据包,并基于接收到的通话数据包进行抖动检测以及进行音频类型检测,得到网络时延差异值和第二通话方当前的音频类型识别结果。第一终端综合网络时延差异值和音频类型识别结果确定传输网络的目标抖动值,并基于目标抖动值调整抖动缓冲区的大小,从而第一终端可通过调整后的抖动缓冲区来存储第二通话方发送的通话数据包,并对通话数据包进行解码播放。如此,第一通话方即可实现与第二通话方进行语音通话。
上述应用场景仅为示意性的说明,可以理解,本申请各实施例所提供的抖动缓冲区大小的调整方法的应用不局限于上述场景。比如,可应用于第一通话方与第二通话方在直播过程中进行直播连麦、第一通话方与第二通话方在游戏过程中进行语音通话、第一通话方与第二通话方在视频时进行语音通话,等等
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的抖动缓冲区大小的调整方法的抖动缓冲区大小的调整装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个抖动缓冲区大小的调整装置实施例中的具体限定可以参见上文中对于抖动缓冲区大小的调整方法的限定,在此不再赘述。
在一个实施例中,如图12所示,提供了一种抖动缓冲区大小的调整装置1200,包括:音频类型识别模块1202、抖动值确定模块1204和调整模块1206,其中:
音频类型确定模块1202,用于当第一通话方与第二通话方通过传输网络进行语音通话,在第一通话方接收到第二通话方发送的当前通话数据包的情况下,确定第二通话方当前的音频类型识别结果;音频类型识别结果反映第二通话方在参与语音通话时所输出的音频的类型。
抖动值确定模块1204,用于基于音频类型识别结果确定适配的目标抖动值计算方式;确定第一通话方已连续接收到的多个通话数据包各自的传输时间数据,多个通话数据包包括当前通话数据包;根据传输网络的历史抖动值和多个通话数据包各自的传输时间数据,按照目标抖动值计算方式,确定传输网络的目标抖动值。
调整模块1206,用于基于目标抖动值,调整用以缓存第二通话方发送的通话数据包的抖动缓冲区的大小。
在其中一个实施例中,参考图13,音频类型确定模块1202还包括类型识别模块1221,用于确定以当前通话数据包的接收时间为截止时间的检测时间段;对第一通话方在检测时间段内接收到的通话数据包进行音频类型识别,得到第二通话方当前的音频类型识别结果。
在其中一个实施例中,类型识别模块1221还用于确定第一通话方在检测时间段内接收到的通话数据包所构成的待检测音频,并对待检测音频进行分帧处理,得到多帧待检测音频帧;分别对每帧待检测音频帧进行傅里叶变换,得到多帧待检测音频帧各自的频谱特征数据;根据多帧待检测音频帧各自的频谱特征数据,确定待检测音频的音频类型,并根据音频类型生成第二通话方当前的音频类型识别结果。
在其中一个实施例中,类型识别模块1221还用于在待检测音频的音频类型为语音类型时,分别确定待检测音频中的每帧待检测音频的短时能量和短时过零率;根据每帧待检测音频的短时能量和短时过零率,确定待检测音频中每帧待检测音频各自对应的第二通话方发言概率值;根据每帧待检测音频各自对应的第二通话方发言概率值,确定第二通话方当前的发言活跃度。根据待检测音频的音频类型和第二通话方当前的发言活跃度,生成第二通话方当前的音频类型识别结果。
在其中一个实施例中,音频类型确定模块1202还包括类型获取模块1222,用于将第一通话方最新接收到的由第二通话方发送的音频类型识别结果,作为第二通话方当前的音频类型识别结果。
在其中一个实施例中,音频类型确定模块1202还用于触发第二通话方周期性地对已发送的通话数据包进行音频类型识别;其中,对于任一个周期,第二通话方对在周期内已发送的通话数据包进行音频类型识别,得到与周期相对应的音频类型识别结果,并将音频类型识别结果发送至第一通话方。
在其中一个实施例中,音频类型识别结果至少包括表征第二通话方输出的音频属于音乐类型的第一结果、表征第二通话方输出的音频属于语音类型的第二结果、表征第二通话方输出的音频属于噪音类型的第三结果或者表征第二通话方输出的音频属于静音类型的第四结果中的一种;与音频类型识别结果适配的目标抖动值计算方式至少包括与音乐类型适配的第一计算方式、与语音类型适配的第二计算方式、与噪音类型适配的第三计算方式或者与静音类型适配的第四计算方式中的一种;在相同的计算参数下,通过第一计算方式计算得到的目标抖动值、通过第二计算方式计算得到的目标抖动值、通过第三计算方式计算得到的目标抖动值以及通过第四计算方式计算得到的目标抖动值,依次减小。
在其中一个实施例中,以多个通话数据包中的每个通话数据包分别作为目标通话数据包;抖动值确定模块1204还包括时间数据确定模块1241,用于从时间记录表中查找第二通话方发送目标通话数据包的发送时间,以及查找第一通话方接收目标通话数据包的接收时间;综合目标通话数据的发送时间和接收时间,得到目标通话数据包的传输时间数据。
在其中一个实施例中,抖动值确定模块1204还包括计算模块1242,用于根据多个通话数据包各自的传输时间数据,确定网络延时差异值;根据网络延时差异值和传输网络的历史抖动值之间的大小关系,从目标抖动值计算方式中筛选出目标子计算方式;按照目标子计算方式,并根据传输网络的历史抖动值和网络延时差异值,确定传输网络的目标抖动值。
在其中一个实施例中,多个通话数据包为两个通话数据包;传输时间数据包括通话数据包的发送时间和接收时间;计算模块1242还用于对于两个通话数据包中的每个通话数据包,确定通话数据包的接收时间和发送时间之间的时间差,得到通话数据包的收发时间差;确定两个通话数据各自的收发时间差之间的差异,并根据两个通话数据各自的传输时间值之间的差异,确定传输网络的网络延时差异值。
在其中一个实施例中,计算模块1242还用于目标值计算方式包括第一子方式和第二子方式;根据网络时延差异值和传输网络的历史抖动值之间的大小关系,从目标抖动值计算方式中筛选出目标子计算方式,包括:当网络时延差异值大于传输网络的历史抖动值时,将第一子方式作为目标子计算方式;当网络时延差异值小于或等于传输网络的历史抖动值时,将第二子方式作为目标子计算方式;其中,在目标值计算方式为与音频类型或语音类型适配的计算方式时,第一子方式中的与历史抖动值相对应的第一计算系数,小于第二子方式中的与历史抖动值相对应的第一计算系数;第一子方式中的与网络延时差异值相对应的第二计算系数,大于第二子方式中的与网络延时差异值相对应的第二计算系数在目标值计算方式为与噪音类型或静音类型适配的计算方式时,第一子方式中的与历史抖动值相对应的第一计算系数,大于第二子方式中的与历史抖动值相对应的第一计算系数;第一子方式中的与网络延时差异值相对应的第二计算系数,小于第二子方式中的与网络延时差异值相对应的第二计算系数。
在其中一个实施例中,计算模块1242还用于按照目标子计算方式,确定与传输网络的历史抖动值对应的第一计算系数、及与网络延时差异值对应的第二计算系数;将第一计算系数与历史抖动值相乘,得到目标历史抖动值,并将第二计算系数与网络延时差异值相乘,得到目标网络延时差异值;将目标历史抖动值与目标网络延时差异值叠加,得到述传输网络的目标抖动值。
在其中一个实施例中,计算模块1242还用于当音频类型识别结果表征第二通话方输出的音频属于语音类型、且网络延时差异值大于传输网络的历史抖动值时,从音频类型识别结果中提取第二通话方当前的发言活跃度;按照目标子计算方式,根据发言活跃度确定与传输网络的历史抖动值对应的第一计算系数、及与网络延时差异值对应的第二计算系数。
在其中一个实施例中,调整模块1206还用于获取预配置的抖动值与抖动缓冲区大小之间的对应关系;其中,抖动缓冲区的大小随着抖动值的增大而增大;根据对应关系,确定与目标抖动值相对应的目标大小,并调整抖动缓冲区的大小至目标大小。
上述抖动缓冲区大小的调整装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图14所示。该计算机设备包括处理器、存储器、输入/输出接口、通信接口、显示单元和输入装置。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口、显示单元和输入装置通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、移动蜂窝网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种抖动缓冲区大小的调整方法。该计算机设备的显示单元用于形成视觉可见的画面,可以是显示屏、投影装置或虚拟现实成像装置,显示屏可以是液晶显示屏或电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图14中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各方法实施例中的步骤。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (18)
1.一种抖动缓冲区大小的调整方法,其特征在于,所述方法包括:
当第一通话方与第二通话方通过传输网络进行语音通话,在所述第一通话方接收到所述第二通话方发送的当前通话数据包的情况下,确定所述第二通话方当前的音频类型识别结果;所述音频类型识别结果反映所述第二通话方在参与所述语音通话时所输出的音频的类型;
基于所述音频类型识别结果确定适配的目标抖动值计算方式;
确定所述第一通话方已连续接收到的多个通话数据包各自的传输时间数据,所述多个通话数据包包括所述当前通话数据包;
根据所述传输网络的历史抖动值和所述多个通话数据包各自的传输时间数据,按照所述目标抖动值计算方式,确定所述传输网络的目标抖动值;
基于所述目标抖动值,调整用以缓存所述第二通话方发送的通话数据包的抖动缓冲区的大小。
2.根据权利要求1所述的方法,其特征在于,所述在所述第一通话方接收到所述第二通话方发送的当前通话数据包的情况下,确定所述第二通话方当前的音频类型识别结果,包括:
确定以所述当前通话数据包的接收时间为截止时间的检测时间段;
对所述第一通话方在所述检测时间段内接收到的通话数据包进行音频类型识别,得到所述第二通话方当前的音频类型识别结果。
3.根据权利要求2所述的方法,其特征在于,所述对所述第一通话方在所述检测时间段内接收到的通话数据包进行音频类型识别,得到所述第二通话方当前的音频类型识别结果,包括:
确定所述第一通话方在所述检测时间段内接收到的通话数据包所构成的待检测音频,并对所述待检测音频进行分帧处理,得到多帧待检测音频帧;
分别对每帧待检测音频帧进行傅里叶变换,得到所述多帧待检测音频帧各自的频谱特征数据;
根据所述多帧待检测音频帧各自的频谱特征数据,确定所述待检测音频的音频类型,并根据所述音频类型生成所述第二通话方当前的音频类型识别结果。
4.根据权利要求3所述的方法,其特征在于,所述根据所述音频类型生成所述第二通话方当前的音频类型识别结果,包括:
在所述待检测音频的音频类型为语音类型时,分别确定所述待检测音频中的每帧待检测音频的短时能量和短时过零率;
根据所述每帧待检测音频的短时能量和短时过零率,确定所述待检测音频中每帧待检测音频各自对应的第二通话方发言概率值;
根据所述每帧待检测音频各自对应的第二通话方发言概率值,确定所述第二通话方当前的发言活跃度;
根据所述待检测音频的音频类型和所述第二通话方当前的发言活跃度,生成所述第二通话方当前的音频类型识别结果。
5.根据权利要求1所述的方法,其特征在于,所述在所述第一通话方接收到所述第二通话方发送的当前通话数据包的情况下,确定所述第二通话方当前的音频类型识别结果,包括:
将所述第一通话方最新接收到的由所述第二通话方发送的音频类型识别结果,作为所述第二通话方当前的音频类型识别结果。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
所述第二通话方周期性地对已发送的通话数据包进行音频类型识别;
其中,对于任一个周期,所述第二通话方对在所述周期内已发送的通话数据包进行音频类型识别,得到与所述周期相对应的音频类型识别结果,并将所述音频类型识别结果发送至所述第一通话方。
7.根据权利要求1所述的方法,其特征在于,所述音频类型识别结果至少包括表征所述第二通话方输出的音频属于音乐类型的第一结果、表征所述第二通话方输出的音频属于语音类型的第二结果、表征所述第二通话方输出的音频属于噪音类型的第三结果或者表征所述第二通话方输出的音频属于静音类型的第四结果中的一种;
与所述音频类型识别结果适配的目标抖动值计算方式至少包括与音乐类型适配的第一计算方式、与语音类型适配的第二计算方式、与噪音类型适配的第三计算方式或者与静音类型适配的第四计算方式中的一种;
在相同的计算参数下,通过所述第一计算方式计算得到的目标抖动值、通过所述第二计算方式计算得到的目标抖动值、通过所述第三计算方式计算得到的目标抖动值以及通过所述第四计算方式计算得到的目标抖动值,依次减小。
8.根据权利要求1所述的方法,其特征在于,以所述多个通话数据包中的每个通话数据包分别作为目标通话数据包;所述目标通话数据包的传输时间数据的确定步骤包括:
从时间记录表中查找所述第二通话方发送所述目标通话数据包的发送时间,以及查找所述第一通话方接收所述目标通话数据包的接收时间;
综合所述目标通话数据的发送时间和接收时间,得到所述目标通话数据包的传输时间数据。
9.根据权利要求1所述的方法,其特征在于,所述根据所述传输网络的历史抖动值和所述多个通话数据包各自的传输时间数据,按照所述目标抖动值计算方式,确定所述传输网络的目标抖动值,包括:
根据所述多个通话数据包各自的传输时间数据,确定网络延时差异值;
根据所述网络延时差异值和所述传输网络的历史抖动值之间的大小关系,从所述目标抖动值计算方式中筛选出目标子计算方式;
按照所述目标子计算方式,并根据所述传输网络的历史抖动值和所述网络延时差异值,确定所述传输网络的目标抖动值。
10.根据权利要求9所述的方法,其特征在于,所述多个通话数据包为两个通话数据包;所述传输时间数据包括通话数据包的发送时间和接收时间;所述根据所述多个通话数据包各自的传输时间数据,确定网络延时差异值,包括:
对于所述两个通话数据包中的每个通话数据包,确定所述通话数据包的接收时间和发送时间之间的时间差,得到所述通话数据包的收发时间差;
确定所述两个通话数据各自的收发时间差之间的差异,并根据所述两个通话数据各自的传输时间值之间的差异,确定所述传输网络的网络延时差异值。
11.根据权利要求9所述的方法,其特征在于,所述目标值计算方式包括第一子方式和第二子方式;所述根据所述网络时延差异值和所述传输网络的历史抖动值之间的大小关系,从所述目标抖动值计算方式中筛选出目标子计算方式,包括:
当所述网络时延差异值大于所述传输网络的历史抖动值时,将所述第一子方式作为目标子计算方式;
当所述网络时延差异值小于或等于所述传输网络的历史抖动值时,将所述第二子方式作为目标子计算方式;
其中,在所述目标值计算方式为与音频类型或语音类型适配的计算方式时,所述第一子方式中的与所述历史抖动值相对应的第一计算系数,小于所述第二子方式中的与所述历史抖动值相对应的第一计算系数;所述第一子方式中的与所述网络延时差异值相对应的第二计算系数,大于所述第二子方式中的与所述网络延时差异值相对应的第二计算系数
在所述目标值计算方式为与噪音类型或静音类型适配的计算方式时,所述第一子方式中的与所述历史抖动值相对应的第一计算系数,大于所述第二子方式中的与所述历史抖动值相对应的第一计算系数;所述第一子方式中的与所述网络延时差异值相对应的第二计算系数,小于所述第二子方式中的与所述网络延时差异值相对应的第二计算系数。
12.根据权利要求9所述的方法,其特征在于,所述按照所述目标子计算方式,并根据所述传输网络的历史抖动值和所述网络延时差异值,确定所述传输网络的目标抖动值,包括:
按照所述目标子计算方式,确定与所述传输网络的历史抖动值对应的第一计算系数、及与所述网络延时差异值对应的第二计算系数;
将所述第一计算系数与所述历史抖动值相乘,得到目标历史抖动值,并将所述第二计算系数与所述网络延时差异值相乘,得到目标网络延时差异值;
将所述目标历史抖动值与所述目标网络延时差异值叠加,得到述传输网络的目标抖动值。
13.根据权利要求11所述的方法,其特征在于,所述按照所述目标子计算方式,确定与所述传输网络的历史抖动值对应的第一计算系数、及与所述网络延时差异值对应的第二计算系数,包括:
当所述音频类型识别结果表征所述第二通话方输出的音频属于语音类型、且所述网络延时差异值大于所述传输网络的历史抖动值时,从所述音频类型识别结果中提取所述第二通话方当前的发言活跃度;
按照所述目标子计算方式,根据所述发言活跃度确定与所述传输网络的历史抖动值对应的第一计算系数、及与所述网络延时差异值对应的第二计算系数。
14.根据权利要求1所述的方法,其特征在于,所述基于所述目标抖动值,调整用以缓存所述第二通话方发送的通话数据包的抖动缓冲区的大小,包括:
获取预配置的抖动值与抖动缓冲区大小之间的对应关系;其中,所述抖动缓冲区的大小随着抖动值的增大而增大;
根据所述对应关系,确定与所述目标抖动值相对应的目标大小,并调整所述抖动缓冲区的大小至所述目标大小。
15.一种抖动缓冲区大小的调整装置,其特征在于,所述装置包括:
音频类型确定模块,用于当第一通话方与第二通话方通过传输网络进行语音通话,在所述第一通话方接收到所述第二通话方发送的当前通话数据包的情况下,确定所述第二通话方当前的音频类型识别结果;所述音频类型识别结果反映所述第二通话方在参与所述语音通话时所输出的音频的类型;
抖动值确定模块,用于基于所述音频类型识别结果确定适配的目标抖动值计算方式;确定所述第一通话方已连续接收到的多个通话数据包各自的传输时间数据,所述多个通话数据包包括所述当前通话数据包;根据所述传输网络的历史抖动值和所述多个通话数据包各自的传输时间数据,按照所述目标抖动值计算方式,确定所述传输网络的目标抖动值;
调整模块,用于基于所述目标抖动值,调整用以缓存所述第二通话方发送的通话数据包的抖动缓冲区的大小。
16.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至14中任一项所述的方法的步骤。
17.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至14中任一项所述的方法的步骤。
18.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至14中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211479677.9A CN118075246A (zh) | 2022-11-24 | 2022-11-24 | 抖动缓冲区大小的调整方法、装置和计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211479677.9A CN118075246A (zh) | 2022-11-24 | 2022-11-24 | 抖动缓冲区大小的调整方法、装置和计算机设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118075246A true CN118075246A (zh) | 2024-05-24 |
Family
ID=91096137
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211479677.9A Pending CN118075246A (zh) | 2022-11-24 | 2022-11-24 | 抖动缓冲区大小的调整方法、装置和计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118075246A (zh) |
-
2022
- 2022-11-24 CN CN202211479677.9A patent/CN118075246A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2021196905A1 (zh) | 语音信号去混响处理方法、装置、计算机设备和存储介质 | |
CN111048119B (zh) | 通话音频混音处理方法、装置、存储介质和计算机设备 | |
US10614831B2 (en) | Audio activity tracking and summaries | |
KR101353847B1 (ko) | 반향 검출 방법 및 장치 | |
CN110634511B (zh) | 一种音频数据处理方法及装置 | |
US8731940B2 (en) | Method of controlling a system and signal processing system | |
US9331887B2 (en) | Peer-aware ranking of voice streams | |
CN103827966A (zh) | 处理音频信号 | |
CN105099795A (zh) | 抖动缓冲器水平估计 | |
US11343301B2 (en) | Managing jitter buffer length for improved audio quality | |
CN111276152A (zh) | 一种音频处理方法、终端及服务器 | |
JP2024507916A (ja) | オーディオ信号の処理方法、装置、電子機器、及びコンピュータプログラム | |
US20230410815A1 (en) | Transcription generation technique selection | |
CN114363553A (zh) | 视频会议中动态码流处理方法及装置 | |
US20230124470A1 (en) | Enhancing musical sound during a networked conference | |
CN118075246A (zh) | 抖动缓冲区大小的调整方法、装置和计算机设备 | |
CN115118919A (zh) | 音频处理方法、装置、设备、存储介质和程序产品 | |
US20080059161A1 (en) | Adaptive Comfort Noise Generation | |
EP3259906B1 (en) | Handling nuisance in teleconference system | |
CN116980395A (zh) | 抖动缓冲区大小的调整方法、装置和计算机设备 | |
CN115705839A (zh) | 语音播放方法、装置、计算机设备和存储介质 | |
CN117789734B (zh) | 音频处理方法、装置、计算机设备和存储介质 | |
CN112820307B (zh) | 语音消息处理方法、装置、设备及介质 | |
CN116866321B (zh) | 一种无中心多路声音一致性选择方法及系统 | |
CN110289013B (zh) | 多音频采集源检测方法、装置、存储介质和计算机设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |