音频数据传输方法、装置、处理设备及存储介质与流程

专利2022-06-30  60


本申请一般涉及计算机技术领域,尤其涉及音频数据传输方法、装置、处理设备及存储介质。



背景技术:

在互联网通讯中,音频数据是最普遍的传输对象。由于互联网是非可靠的传输网络,承载在互联网上的音频数据,通常会出现丢包的现象,造成传输的音频数据的丢失,导致接收端声音的卡顿及不连贯,影响收听者体验。

目前,为了抵抗互联网络引起的丢包问题,确保接收端声音的顺畅,通过冗余多发机制,即根据当前网络的丢包情况,将每个待发送的音频数据包复制多份进行发送,以提高所有音频数据包能够被接收端接收的概率。

对于冗余多发机制来克服丢包的技术,由于发送的数据包成倍增加,使得带宽成倍数的增大,造成网络拥塞,从而导致更多的丢包。



技术实现要素:

鉴于现有技术中的上述缺陷或不足,期望提供一种音频数据传输方法、装置、处理设备及存储介质,基于语速来调节基础冗余多发参数,以避免网络堵塞,并确保音频数据的完整传输。

第一方面,本申请实施例提供了一种音频数据传输方法,该方法包括:

获取待传输的音频数据;

计算该音频数据的语速;

基于该语速调节基础冗余多发参数,得到该音频数据的目标冗余多发参数;

基于该目标冗余多发参数,对待传输的该音频数据进行冗余传输。

第二方面,本申请实施例提供一种音频数据传输装置,该装置包括:

获取模块,用于获取待传输的音频数据;

计算模块,用于计算该音频数据的语速;

调节模块,用于基于该语速调节基础冗余多发参数,得到该音频数据的目标冗余多发参数;

传输模块,用于基于该目标冗余多发参数,对待传输的该音频数据进行冗余传输。

第三方面,本申请实施例提供一种处理设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,该处理器执行该程序时实现如上述第一方面所述的音频数据传输方法。

第四方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序用于实现如上第一方面所述的音频数据传输方法。

本申请实施例提供的音频数据传输方法、装置、处理设备及存储介质,在基于冗余多发机制进行待传输音频数据包的处理时,通过计算待传输音频数据包的语速,来调节基础冗余多发参数,得到合理的冗余度,进而根据调节后的基础冗余多发参数对待传输的音频数据进行冗余传输,有效缓解了网络压力,避免了网络堵塞,保证了音频数据的完整传输。

附图说明

通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:

图1所示为本申请实施例的音频数据传输方法的流程示意图;

图2所示为本申请实施例的音频数据语速计算方法的流程示意图;

图3所示为本申请又一实施例的音频数据语速计算方法的流程示意图;

图4所示为本申请实施例的音频数据发送的流程示意图;

图5所示为本申请实施例的音频数据处理装置的结构示意图;

图6为本申请实施例的处理设备的计算机处理设备的结构示意图。

具体实施方式

下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关公开,而非对该公开的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与公开相关的部分。

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。

基于ip的语音传输(voiceoverinternetprotocol,voip)是一种基于ip网络的语音通话技术,即具有数据处理能力的硬件处理设备在发送音频数据时,通过语音的压缩算法把音频数据进行编码压缩处理后,按照网络传输协议标准进行打包,经过ip网络把音频数据包发送到目的ip地址的接收终端。接收终端再把音频数据包解析并压缩处理后,得到原始的语音帧,实现通过互联网进行音频数据的传输。

例如,在语音广播、音视频直播等场景下,播音员或者主播产生的音频数据,基于ip来实现传输。

该硬件处理设备可以为后台的服务器或者前端的处理设备,该处理设备可以为智能手机、平板电脑或者计算机等具有音频数据处理及发送功能的硬件。该服务器或处理设备中运行有处理器,该处理器可以实现音频数据的获取、对获取的音频数据的语速进行计算,并能够基于计算得到的语速,对音频数据进行处理。

本申请中所处理的音频数据可以为自然界中能够被人或者机器识别的声波信号,如用户利用处理设备上的具有通讯功能的应用软件进行通信时,通过录音设备采集的人类通过声带振动时产生的声波信号,或者提前采集到的声波信号,作为待处理的音频数据。如在语音广播或音视频直播等场景下,播音员或者主播产生的实时音频数据。

实时产生或预先存储的声波信号可以为携带语音信息的载体,即可以为任何一种语言形式存在的声波信号,如普通话、方言或其他语言等。

可以理解,为了克服网络传输过程中的丢失音频数据包问题,通过冗余多发机制,根据当前网络的丢包情况,将每个待发送的音频数据包进行多倍复制,如将待传输的音频数据分包后,将每个音频数据包根据提前确定的冗余多发倍数复制成多份,并按照一定的排列顺序组合后发送到接收端,接收端根据当前数据的包序号进行整理,过滤掉接收到的重复数据包,整理后的语音码流经过解码后,得到发送端,如处理设备发送的原始音频数据。

还可以理解,在基于冗余多发机制进行音频数据传输过程中,冗余多发倍数是确定对每个数据包复制的份数,该参数是影响音频数据传输效率和完整性的关键参数。

声波信号作为语音信息的载体,由于语音信息的特征,如人类语言的特征,使得携带语音信息的声波信号具有相应的特征。如作为传输语音信息载体的声波信号,在相同丢包率下,说话者语速高的声波信号所包含语音信息量更大,丢包对语音信息的损失比较敏感,而在语速低的声波信号所包含语音信息量较少,丢包对语音信息的损失不太敏感。

本申请实施例提供的音频数据传输方法中,考虑到声波信号的特征,通过结合说话者的产生的待传输的音频数据的语速以及当前的网络丢包情况,来合理的调节根据当前网络丢包情况确定的作为基础冗余多发参数的冗余多发倍数。使得在高语速情况下采取更高的冗余多发倍数来确保音频数据的高质量传输,而对于低语速情况下采取比现有基础冗余多发参数偏低的参数,从而在保证音频数据的完整性的前提下,降低网络带宽的占用,缓解网络压力。

为了便于理解和说明,下面通过图1至图6详细阐述本申请实施例提供的音频数据传输方法、装置、处理设备及存储介质。

图1所示为本申请实施例的音频数据传输方法的流程示意图,该方法由上述处理设备执行,包括:

s01,处理设备获取待传输的音频数据。

s02,处理设备计算该音频数据的语速。

s03,处理设备基于该语速调节基础冗余多发参数,得到该音频数据的目标冗余多发参数。

s04,处理设备基于所述目标冗余多发参数,对待传输的所述音频数据进行冗余传输。

具体的,本申请实施例中,为了避免网络堵塞,保证待传输音频数据完整性,在处理设备获取到待传输的音频数据后,首先可以计算该待传输的音频数据的语速,进而可以利用该语速来调节基础冗余多发参数,得到调节后的目标冗余多发参数。最后,在确定了目标冗余多发参数后,则可以根据该确定的目标冗余多发参数,将待传输音频数据进行复制,得到与目标冗余多发参数的数值相当的多份待传输音频数据,实现音频数据的冗余传输。例如,将待传输的音频数据进行编码,生成原始码流,然后将原始码流复制成与目标冗余多发参数对应的多份,并按照一定的排列顺序进行组合,以向接收端发送。

本申请实施例中,获取的音频数据中包括多个数据帧,一个数据帧对应的时长可以为10ms或者20ms等,即获取的音频数据为一个计算周期对应的音频数据。

则对音频数据的处理,可以以一个数据帧对应的时长为处理周期进行,如以10ms或者20ms为一个处理周期。

则对于音频数据的语速的计算,可以单位时长为计算周期,如5秒为计算周期。则该计算周期可以为多个数据帧的时长,如一个数据帧的长度为20ms,该计算周期可以为250个数据帧的时长。

可以理解,该计算周期可以根据实际情况确定,本申请对此不做限制,如设置为5s~10s范围内的任意时长。

一个计算周期中所包括多个数据帧,为一个音频数据包,即对音频数据的语速的计算,以一个音频数据包为计算对象,来计算与计算周期对应的音频数据包的语速。

例如,当预设的计算周期为5s,则以250个数据帧为一个音频数据包,即以250个数据帧为整体进行语速的计算。

可以理解,冗余多发参数是在音频数据传输时,对该待传输的音频数据复制的冗余度。则该基础冗余多发参数是基于音频数据接收端反馈的接收状态来确定的冗余度,如接收终端根据接收音频数据时的丢包状态来确定的冗余度。例如,在高丢包率下的基础冗余多发参数较大,在低丢包率下的基础冗余多发参数较小。

本申请实施例提供的音频数据传输方法,在基于冗余多发机制进行待传输音频数据的处理时,通过计算待传输音频数据的语速,来调节基础冗余多发参数,得到目标冗余多发参数,进而根据目标冗余度多发参数对待传输的音频数据进行复制,得到合理的复制份数,有效缓解了网络压力,避免了网络堵塞,保证了音频数据的完整传输。

可选的,利用计算得到的音频数据的语速对基础冗余多发参数的调整,在一种实施例中,可以通过根据预设的语速参考值及计算得到的语速,对基础冗余多发参数进行调节,得到合理的目标冗余多发参数,预设的语速参考值可以包括语速上限值v2和语速下限值v1。

具体的,在调节基础冗余多发参数时,首先可以计算语速与预设的语速参考值的偏离度,然后根据该偏离度对基础冗余多发参数进行调整,使得当该语速增大时,该目标冗余多发参数大于基础冗余多发参数,当该语速减小时,该目标冗余多发参数小于该基础冗余度多发参数。

例如,对于偏离度的计算,可以通过计算该语速上限值及该语速下限值的平均值,然后计算该语速与该平均值的差值,再将该差值乘以预设系数,该差值与该预设系数的乘积作为该偏离度。

则基础冗余多发参数与该偏离度的和值作为目标冗余多发参数。对目标冗余多发参数的具体计算公式可以如表示:

其中,v为通过上述实施例计算得到的待传输的音频数据的语速,r0为基础冗余多发参数,即根据接收终端反馈的当前丢包率来确定的冗余度,c为常数转换系数,r′为根据计算得到语速对基础冗余多发参数进行调节后的目标冗余多发参数。

又上述公式可知,当计算得到的语速较大,即大于语速上限值及该语速下限值的平均值,则目标冗余参数大于基础冗余多发参数,当计算得到的语速较小,即小于语速上限值及该语速下限值的平均值,则目标冗余多发参数小于基础冗余多发参数。

可以理解,上述设置的语速参考值,可以根据经验设置,如对于语速上限值v2可以设置为500音素/分钟,语速下限值v1可以设置为100音素/分钟,该预设系数可以设置为0.01~0.05。

进一步的,为了保证能得到合理的目标冗余多发参数,避免根据语速调整得到的目标冗余多发参数过大,或者过小,还可以设置参考冗余多发参数,以在调节过程中,对目标冗余多发参数进行约束。例如,设置的参考冗余多发参数包括冗余多发参数最小值rmin和冗余多发参数最大值rmax。该具体可以根据经验设置,如设置冗余多发参数最小值rmin可以设置为1,冗余多发参数最大值rmax可以设置为4。

则在上述的冗余多发参数最小值rmin和冗余多发参数最大值rmax的约束下,调节基础冗余多发参数的过程中,使得目标冗余多发参数的取值不小于冗余多发参数最小值rmin,不大于冗余多发参数最大值rmax,或者直接为基础冗余度多发参数。

例如,当计算得到的待传输的音频数据的语速小于语速下限值时,则目标冗余多发参数为冗余多发参数最小值与基础冗余多发参数中的最小值;当计算得到待传输的音频数据包的语速大于语速上限值时,目标冗余多发参数为基础冗余多发参数及冗余多发参数最大值中的较大值。当计算得到的待传输的音频数据的语速大于等于语速下限值,且小于等于语速上限值时,目标冗余多发参数为通过上述计算公式得到的基础冗余多发参数与该偏离度的和值、冗余多发参数最大值及该冗余多发参数最小值三个中的一个,使得该目标冗余多发参数在该冗余多发参数最小值rmin和冗余多发参数最大值rmax范围内。即当计算得到的基础冗余多发参数与该偏离度的和值小于冗余多发参数最小值时,目标冗余多发参数为冗余多发参数最小值,当计算得到的基础冗余多发参数与该偏离度的和值超过冗余多发参数最大值时,目标冗余度多发参数为冗余多发参数最大值。具体可以通过如下公式进行基础冗余多发参数的调整:

本实施例中,通过计算语速与预设的语速参考值的偏离度,来调节基础冗余多发参数,使得当该语速增大时,该目标冗余多发参数大于通过丢包率反馈确定冗余度,当该语速减小时,该目标冗余多发参数小于通过丢包率反馈确定冗余度,并通过设置的冗余多发参数最大值及该冗余多发参数最小值的约束值,将目标冗余多发参数约束在合理的范围内,避免得到超出实际情况的冗余度,实现了根据待传输音频数据包的语速来调整基础冗余多发参数,以对待传输的音频数据进行合理的复制处理。

可选的,本申请中,对于待传输音频数据的语速计算,考虑到人类生成的语言信息,通常以音素为最小语音单位,该音素依据音节里的发音动作来分析,一个动作构成一个音素,多个连续的音素组成词组或短句。对应的,所产生的声波信号中,包括多个音素。

可以理解,同一个音素对应的数据帧,其前后数据帧的基音频率,即基频值是连续的,跳变较小;而不同音素其前后的数据帧的基音频率,即基频值的跳变是明显的。例如,对于连续的两个数据帧,如果两个数据帧所对应的是同一个音素,这两个数据帧的基频值接近,即不会发生基频值跳变,如果这两个数据帧对应的是两个不同的因素,这两个数据帧的基频值差别较大,即作为一次基频值跳变。

基于上述特点,本申请中可以基于音素的基频值的跳变特征,可以根据基音频率的跳变次数来确定产生的音频数据的语速。

在一种实施例中,可以通过计算待传输的音频数据中所有相邻数据帧之间的基频跳变次数,则将该基频跳变次数作为该音频数据的语速。

可以理解,在该实施例中,以一个计算周期内的音频数据包为一次计算对象,即对于一个计算周期内的音频数据包,所有相邻数据帧之间的基音频率的跳变次数作为该数据包的语速。即对于每个计算周期对应的音频数据包的语速计算,需要计算音频数据包内相邻数据帧之间的基频跳变次数,该基频跳变次数作为所述数据包的语速。

进一步,对于音频数据的基频跳变次数,可以通过依次计算该音频数据中相邻数据帧之间,下一数据帧与上一数据帧之间的基频值的差值的绝对值,进而确定所有相邻数据帧之间的基频值的绝对值是否大于预设阈值,以确定相邻数据帧之间的基频值是否发生了跳变;最后确定绝对值大于预设阈值的个数,以将确定的个数为待传输音频数据的基频跳变次数。

可以理解,在实际中,由于相邻数据帧之间的基频值相差较小,则上一数据帧的基频值可以为上几帧的基频值的平均值,下一数据帧的基频值可以为下几帧的基频值的平均值。

还可以理解,人类发出语音信息时,可能存在间断的发声情况,如在说话的时候每个单词之间的频率变化非常快,而词组或短句之间的停顿非常的大,停顿时产生的声波信号为非语音帧,即在停顿时对应的声波信号中没有包括任何有效的语音信息。此时,如果在非语音帧时,则所计算得到的基频值与实际不符。

则在本申请的实施例中,对于音频数据的语速的计算,首先进行数据帧是否为语音帧的判断处理,当判断数据帧为语音帧时,才进行基频值变化的判断,即基频跳变次数的统计计算。

为了更好的理解基频跳变次数的计算,通过图2详细阐述。图2为本申请实施例的音频数据语速计算方法的流程示意图。如图所示,该方法包括:

s21,处理设备计算所获取的待传输音频数据中的下一数据帧的基频值。

s22,处理设备确定该数据帧的语音标识。

具体的,本申请实施例中,处理设备对音频数据的语速的计算,是以一个计算周期对应的音频数据包为计算对象。

可以理解,在处理过程中,当获取到待传输的音频数据后,开始计算语速时,首先可以读取音频数据中的第一个数据帧,进行第一个数据帧的处理,如计算该数据帧的基频值。当第一个数据帧处理完成后,可以读取待传输的音频数据中的下一数据帧,以完成每一数据帧的处理。

如对于读取到的下一数据帧,可以调用预先存储的算法,来计算该数据帧的基频值。

例如,调用基频值估计函数,其输入为获取的数据帧,如pcm数据,输出为估计得到的基频值。该基频值的估计可以基于时域自相关,或者基于倒谱法的方法来实现。本申请对此不做限制。

对于语音帧的处理,本申请实施例可以为通过调用语音信号检测算法来实现。

例如,调用语音检测函数,输入读取的pcm数据,输出该当前数据帧的语音标识,如输出1,表示当前的数据帧为语音帧,输出0,表示当前的数据帧为非数据帧。该语音检测算法可以为vad检测算法,即通过对子带信噪比估计以及能量值做判断实现。

可以理解,本实施例中,对于语音帧的处理,以及对于基频值的计算,可以同步执行,也可以分先后顺序。例如,当确定语音处理函数输出表示为语音帧后,再计算该数据帧的基频值。

s23,处理设备确定当前的处理帧数是否小于或等于预设值。

具体的,本申请实施例中,由于以一个计算周期对应的一个或多个数据帧的数据包为计算对象,即以单位时间内的基频跳变次数作为音频数据的语速。则在从获取的待传输音频数据中读取到下一数据帧时,确定当前的处理帧数是否小于等于预设值,以确定所读取的该数据帧属于当前的计算周期,即音频数据包,还是下一个计算周期,即音频数据包。

如果确定当前的处理帧数小于或等于预设值,则对当前的处理帧数加一,并进行该数据帧的处理,否则,准备进行下一个音频数据包的语速计算。

该预设值可以为一个音频数据包中包括的数据帧的个数,或者可以为一个音频数据包对应的时长,即计算周期。

例如,通过对处理的数据帧进行计数,即当前的处理帧数,则每个数据包中总共可以包括一定数量的数据帧,或者通过对获取的数据帧的时长进行叠加计时。

则在读取到下一数据帧后,可以判断当前的处理帧数是否超过了预设值。如果没有超过预设值,表示该数据帧属于当前计算周期对应的音频数据包的数据,可以执行s23,即需要将该数据帧的基频值作为当前音频数据包的语速计算的参考值。

否则,表示当前的计算周期对应的音频数据包的语速计算已完成,读取的该数据帧的基频值作为下一音频数据包语速计算的参考值。如当确定当前的数据帧的帧数大于预设值,则执行s28,以进入下一个计算周期的语速计算。此时,可以将当前的处理帧数及基频跳变次数置零,并将该数据帧的基频值作为下一个音频数据包的初始值。

例如,设置音频数据的计算周期为5s,则在一个数据帧的长度为20ms时,每个计算周期内包括250个数据帧,则该预设值可以为250或者5。

s24,处理设备确定该数据帧的语音标识是否表示为语音帧。

s25,处理设备确定该数据帧与上一数据帧的基频值的差值的绝对值是否大于预设阈值。

s26,处理设备将基频跳变次数加一,并返回读取下一数据帧的步骤。

s27,处理设备将该数据帧的基频值作为上一数据帧的基频值。

s28,处理设备输出基频跳变次数,作为当前音频数据包的语速。

s29,处理设备将该数据帧的基频值作为上一数据帧的基频值,将当前处理帧数及基频跳变次数置零。

具体的,当当前的处理帧数小于预设值时,进而确定该数据帧的语音标识是否表示为语音帧。如确定检测算法输出的语音标识为1,表示当前的数据值为语音帧,则执行s25。否则,跳过该数据帧,返回s21,获取下一数据帧。

在执行s25时,通过预先设置一个基频差值的阈值,如100hz。如果相邻数据帧中,上一个数据帧的基频值与下一个数据帧的基频值的差值的绝对值达到该预设阈值,表示该下一数据帧相对于上一数据帧,基频值发生了跳变,即对应的音素发生了变化。

可以理解,本申请实施例中,当处理完该数据帧后,可以返回到s21,进行下一数据帧的处理。此时,该数据帧的基频值作为上一数据帧的基频值,直到读取的数据帧的帧数大于预设值时,输出基频值的跳变次数。该输出的基频跳变次数作为该音频数据包的语速,即当前音频数据包的语速为其包括的所有相邻数据帧中,下一数据帧相对于上一数据帧,基频值发生跳变的总次数。

进一步,当该数据帧与上一个数据帧的基频值的差值的绝对值不大于该预设阈值,表示该下一数据帧相对于上一数据帧,基频值没有发生了跳变,即对应的音素没有发生变化。则跳过该数据帧,返回s21,进行下一数据帧的基频值计算,并将该数据帧的基频值作为上一数据帧的基频值。

例如,与上述实施例类似,在该方法执行的初期,各个参数的初始值为零,设置预设值为250。则当获取到第一帧数据时,通过计算该数据帧的基频值,该计算结果作为当前数据帧的基频值。并处理该第一帧数据的语音标识。然后确定当前的处理帧数为0,小于预设值。此时可以将该当前的处理帧数进行加一处理,表示进行了一帧音频数据的处理。然后确定语音标识是否表示该帧音频数据为语音帧,如果不是,则将当前该语音帧的基频值赋值给上一数据帧,然后返回获取下一数据帧。如果是语音帧,则比较当前帧的基频值与上一帧的基频值的差。由于上一帧的基频值为零,则差值为当前帧的基频值。显然,大于预设阈值。此时,为基频跳变次数加一。然后返回获取步骤,获取第二个数据帧。此时,同样计算第二个数据帧的基频值,并处理该第一帧数据的语音标识。然后确定当前处理帧数为1,小于预设值250。则对当前处理帧数加一,变为2。进而判断该第二个数据帧的语音标识是否为1,如果不是,则将第二个与数据帧的基频值赋值给上一数据帧,然后返回获取第三个数据帧的步骤。如果语音标识为1,则判断当前的第二个数据帧的基频值与第一个数据帧(上一数据帧)的基频值的差值的绝对值是否大于预设阈值,如果大于阈值,则为基频跳变次数加一。否则,跳过第二个数据帧,将第二个数据帧的基频值作为上一数据帧的基频值,并返回获取第三个数据帧的步骤;获取第三个数据帧,并执行同样的计算和判断,为基频跳变次数加一,或者,跳过第三个数据帧,将第三个数据帧的基频值作为上一数据帧的基频值,并返回获取步骤,获取第四个数据帧,同样的,判断该数据帧是否为语音帧,直到完成第250个数据帧的处理,然后读取251个数据帧。此时,当前处理帧数为251,不小于预设值,说明上一数据帧达到了计算周期,即完成了上一个音频数据包的语速的计算,输出的基频跳变次数就是上一个音频数据包的语速。获取的第四个数据帧作为下一个计算周期的数据帧。此时,将数据帧数赋值为零,并将基频跳变次数赋值为零,并执行相同的操作。

本申请实施例中对待传输音频数据的语速计算,通过对获取的数据帧进行语音帧的处理,来确定是否触发对基频跳变次数的统计,提高了计算速度和准确度。

可选的,在本申请的再一实施例中,对于音频数据包的语速的计算,在考虑通过判断数据帧是否为语音帧,来触发基频跳变次数统计之后,为了进一步提高计算准确度。进一步考虑在说话人长时间停顿后,从非语音帧跳变到语音帧的次数,或从语音帧跳变到非语音帧的次数,同样可以作为说话者语速的一部分。

例如,对于相邻的两个数据帧,如果上一数据帧的语音标识表示为非语音帧,下一数据帧的语音标识表示为语音这,则作为一次从非语音帧到语音帧的跳变。

图3所示为本申请再一实施例的音频数据语速计算方法的流程示意图,如图3所示,该方法包括:

s31,处理设备计算所获取待传输音频数据的下一数据帧的基频值。

s32,处理设备确定该数据帧的语音标识。

可以理解,对于该数据帧语音帧的处理以及基频值的计算,与上述实施例中类似,在此不再赘述。

s33,处理设备确定当前的处理帧数是否小于或等于预设值。

s34,若是,处理设备确定该数据帧的语音标识是否表示为语音帧。

s35,若是,处理设备确定该数据帧与上一数据帧的基频值的差值的绝对值是否大于预设阈值。

s36,若是,处理设备将基频跳变次数加一。

s37,处理设备确定上一数据帧的语音标识是否表示为非语音帧。

s38,若是,处理设备将基频跳变次数加一。

s39,处理设备将该数据帧的基频值作为上一数据帧的基频值,并返回进行下一数据帧的处理。

s40,若当前的处理帧数大于预设值,处理设备输出基频跳变次数,作为当前计算周期的语速。

s41,处理设备将该数据帧的基频值作为上一数据帧的基频值,将当前的处理帧数及基频跳变次数置零。

具体的,本申请实施例中,与上一实施例类似,在确定了当前的处理帧数小于或等于预设值,且该数据帧的语音标识为语音帧,且该数据帧与上一数据帧的基频值的差值的绝对值大于预设阈值,对当前的基频跳变次数加一,此处不再赘述。

进一步,在基于基频值的差值的绝对值对基频跳变次数加一后,进而判断上一数据帧的语音标识,以确定从上一数据帧到该下一数据帧,是否为从非语音帧到语音帧的跳变。

例如,如果该数据帧的语音标识表示为语音帧,即语音处理函数输出为1,且上一数据帧的语音标识表示为非语音帧,即上一数据值的语音处理函数输出为0,则表示在上一数据帧到该数据帧之间发生了从非语音帧到语音帧的变化,则对当前的基频跳变次数再加一。

进一步,执行完上述步骤后,可以返回第一步,重复上述步骤,进行下一数据帧的处理。直到处理到当前的处理帧数大于预设值,即达到计算周期,完成当前音频数据包的语速计算,则输出基频跳变次数,作为当前的音频数据包的语速,即该实施例中的音频数据包的语速,为该音频数据包内的基频跳变次数及从非语音帧到语音帧的跳变次数的和值。

可以理解,在确定了当前的处理帧数大于预设值,输出当前的音频数据包的语速后,可以进入下一个音频数据包的语速计算,即下一计算周期的语速计算。则将当前的处理帧数及基频跳变次数置零,并将该数据帧的基频值作为上一数据帧的基频值。

还可以理解,在确定了该数据帧的语音标识为非语音帧,或该数据帧与上一数据帧的基频值的差值的绝对值小于等于预设阈值,跳过该数据帧,返回下一数据帧的处理,并将该数据帧的基频值作为上一数据帧的基频值,此处不再赘述。

例如,与上述实施例类似,在该方法执行的初期,各个参数的初始值为零,设置预设值为250。则当获取到第一个数据帧时,通过计算该数据帧的基频值,该计算结果作为当前数据帧的基频值。并处理该第一个数据帧的语音标识。由于当前处理的第一个数据帧,当前的处理帧数为0,小于预设值。此时可以将该当前的处理帧数进行加一处理,表示进行了一帧音频数据的处理。然后确定语音标识是否表示该第一个数据帧是否为语音帧,如果不是,则将该第一个数据帧的基频值赋值给上一数据帧,然后返回处理下一数据帧,即第二个数据帧。如果是语音帧,则比较该第一个数据帧的基频值与上一数据帧的基频值的差。由于上一数据帧的基频值为零,则差值的绝对值为当第一个数据帧的基频值。显然,大于预设阈值。此时,为基频跳变次数加一。进一步判断上一个数据帧的语音标识,该上一个数据帧的标识为0,为非语音帧,且该第一个数据帧为语音帧,则继续为当前的基频跳变次数加一。进而返回处理第二个数据帧。此时,同样计算第二个数据帧的基频值,并处理该第二个数据帧的语音标识。然后确定当前处理帧数为1,小于预设值250。则对当前处理帧数加一,变为2。进而判断该第二个数据帧的语音标识是否为1,如果不是,则将第二个与数据帧的基频值赋值给上一数据帧,然后返回处理第三个数据帧的步骤。如果语音标识为1,则判断当前的第二个数据帧的基频值与第一个数据帧(上一数据帧)的基频值的差值的绝对值是否大于预设阈值,如果大于阈值,则为基频跳变次数加一。否则,跳过第二个数据帧,将第二个数据帧的基频值作为上一数据帧的基频值,并返回处理第三个数据帧的步骤。进一步,判断上一个数据帧(即第二个数据帧)的语音标识,该上一个数据帧的标识为1,为语音帧,且该第二个数据帧为语音帧,没有从非音频数据跳变到语音帧。则处理第三个数据帧,执行同样的计算和判断,为基频跳变次数加一,或者,跳过第三个数据帧,将第三个数据帧的基频值作为上一数据帧的基频值,并返回处理第四个数据帧,同样的,执行与上述相同的处理,直到完成第250个数据帧的处理,然后读取251个数据帧。此时,当前的处理帧数为251,不小于预设值,说明上一数据帧达到了计算周期,即完成了上一个音频数据包的语速的计算,输出的基频跳变次数就是上一个音频数据包的语速。获取的第251个数据帧作为下一个计算周期的数据帧。此时,将数据帧数赋值为零,并将基频跳变次数赋值为零,并执行相同的操作。

本申请实施例中,通过判断获取的数据帧是否为语音帧,作为语速计算的触发条件,当当前的数据帧为语音帧时,才进行基频跳变的判断,并将基频跳变的次数以及从非语音帧到语音帧的次数之和作为数据包的语速,提高了语速计算的准确度和合理性。

另外,为了方便对音频数据的处理的全流程,在一种场景下,如视频直播过程中,主播用户作为发送端,需要向粉丝用户的接收端发送音频数据,则如图4为本申请实施例提供的音频数据处理过程流程示意图,如图4所示,主要过程如下:

发送端通过录音等设备采集到待传输的音频数据,如采集到一个计算周期内的音频数据,则对该音频数据进行语速的计算。同时,对采集到的音频数据进行编码处理,生成原始码流。然后根据计算得到的语速,对接收端根据当前的丢包状态反馈的基础冗余多发参数进行调节,得到目标冗余多发参数,如为n(n为大于1的整数)。然后将原始码流复制成n份,并按照一定的排列顺序和组合,完成编码,如fec信道编码,最后可以将编码完成后的音频数据发送到接收端。接收端根据当前数据的包序号顺序进行收包和整理,过滤掉接收到的重复数据包,如fec信道解码,整理后的语音码流经过解码后生成最终的声音信号。

可以理解,对于具体的编码及解密方式,本申请不做限制。

另一方面,如图5所示,本申请实施例提供了一种音频数据传输装置,该装置600包括:

获取模块610,用于获取待传输的音频数据;

计算模块620,用于计算该音频数据的语速;

调节模块630,用于基于该语速调节基础冗余多发参数,得到该音频数据的目标冗余多发参数;

传输模块640,用于基于该目标冗余多发参数,对待传输的该音频数据进行冗余传输。

可选的,本申请实施例提供的语音传输装置,该待传输的音频数据的时长为一个预设的计算周期,该计算模块包括:

第一计算单元621,用于计算预设的计算周期内所有相邻数据帧之间的基频跳变次数,该基频跳变次数作为该音频数据的语速。

可选的,本申请实施例提供的语音传输装置,该待传输的音频数据的时长为一个预设的计算周期该计算模块包括:

第一计算单元621,用于计算该待传输的音频数据中所有相邻数据帧之间的基频跳变次数;

第二计算单元622,用于计算相邻数据帧之间从非语音帧到语音帧的跳变次数,则该基频跳变次数及从非语音帧到语音帧跳变的次数的和值作为该音频数据的语速;

或者,计算该待传输的音频数据中相邻数据帧之间从语音帧到非语音帧的跳变次数,则该基频跳变次数及从语音帧到非语音帧跳变的次数的和值作为该音频数据的语速。

可选的,本申请实施例提供的语音传输装置,该第一计算单元具体用于:

依次计算该音频数据中数据帧的基频值差的绝对值,该基频值差为相邻数据帧中下一数据帧与上一数据帧之间的基频值的差;

确定多个该绝对值中大于预设阈值的个数,该个数作为该待传输音频数据的基频跳变次数。

可选的,本申请实施例提供的语音传输装置,该计算模块还包括:

确定单元623,用于确定该音频数据中数据帧的语音标识。

可选的,本申请实施例提供的语音传输装置,该第二计算单元具体用于:

当上一数据帧的语音标识表示为语音帧,且下一数据帧的语音标识表示为非语音帧,则确定上一数据帧及下一数据帧从非语音帧到语音帧跳变的次数,作为该从非语音帧到语音帧跳变次数。

可选的,本申请实施例提供的语音传输装置,该第一计算单元具体用于:

当数据帧的该语音标识表示为语音帧时,计算该数据帧的基频值;

计算该基频值,及与该数据帧相邻的上一数据帧的基频值之间的差。

可选的,本申请实施例提供的语音传输装置,该基础冗余多发倍数为根据接该音频数据的收终端反馈的接收状态确定的冗余度,该调节模块包括:

计算单元631,用于计算该语速与预设的语速参考值的偏离度;

调节单元632,用于基于该偏离度调节该基础冗余多发参数,使得当该语速增大时,该目标冗余多发参数大于基础冗余多发参数,当该语速减小时,该目标冗余多发参数小于该基础冗余度多发参数。

可选的,本申请实施例提供的语音传输装置,该语速参考值包括语速上限值及语速下限值;

则计算单元631具体用于:

计算该语速上限值及语速下限值的平均值;

计算该语速与该平均值的差值,则该差值与预设系数的乘积作为该偏离度,

其中,该基础冗余多发参数与该偏离度的和值作为目标冗余多发参数。。

可选的,本申请实施例提供的语音传输装置,该确定模块630还包括约束单元633,用于:

当该语速小于该语速下限值时,确定该目标冗余多发参数为基础冗余多发参数与预设的冗余多发参数最小值中的最小值;

当语速大于等于该语速下限值,且小于等于语速上限值时,确定该目标冗余多发参数为该基础冗余多发参数与该偏离度的和值、预设的冗余多发参数最大值及该冗余多发参数最小值中的一个,使得该目标冗余多发参数在该之间。

当该语速大于该语速上限值时,确定该目标冗余多发参数为该基础冗余多发参数与该冗余多发参数最大值中的最大值。

另一方面,本申请实施例提供的处理设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,该处理器执行该程序时实现如上所述的音频数据传输方法。

下面参考图6,图6为本申请实施例的处理设备的计算机处理设备的结构示意图。

如图6所示,计算机处理设备300包括中央处理单元(cpu)301,其可以根据存储在只读存储器(rom)302中的程序或者从存储部分303加载到随机访问存储器(ram)303中的程序而执行各种适当的动作和处理。在ram303中,还存储有处理设备300操作所需的各种程序和数据。cpu301、rom302以及ram303通过总线304彼此相连。输入/输出(i/o)接口305也连接至总线304。

以下部件连接至i/o接口305:包括键盘、鼠标等的输入部分306;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分307;包括硬盘等的存储部分308;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分309。通信部分309经由诸如因特网的网络执行通信处理。驱动器310也根据需要连接至i/o接口305。可拆卸介质311,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器310上,以便于从其上读出的计算机程序根据需要被安装入存储部分308。

特别地,根据本申请的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在机器可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分303从网络上被下载和安装,和/或从可拆卸介质311被安装。在该计算机程序被中央处理单元(cpu)301执行时,执行本申请的处理设备中限定的上述功能。

需要说明的是,本申请所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的处理设备、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行处理设备、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行处理设备、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、rf等等,或者上述的任意合适的组合。

附图中的流程图和框图,图示了按照本申请各种实施例的处理设备、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,前述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的处理设备来实现,或者可以用专用硬件与计算机指令的组合来实现。

描述于本申请实施例中所涉及到的单元或模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元或模块也可以设置在处理器中,例如,可以描述为:一种处理器,包括:获取模块、计算模块、调节模块及传输模块。其中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定,例如,调节模块还可以被描述为“用于基于所述语速调节基础冗余多发参数,得到所述音频数据的目标冗余多发参数”。

作为另一方面,本申请还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中的。上述计算机可读存储介质存储有一个或者多个程序,当上述前述程序被一个或者一个以上的处理器用来执行描述于本申请的音频数据传输方法:

获取待传输的音频数据;

计算所述音频数据的语速;

基于所述语速调节基础冗余多发参数,得到所述音频数据的目标冗余多发参数;

基于所述目标冗余多发参数,对待传输的所述音频数据进行冗余传输。获取待传输的音频数据;

计算所述音频数据的语速;

基于所述语速调节基础冗余多发参数,得到所述音频数据的目标冗余多发参数;

基于所述目标冗余多发参数,对待传输的所述音频数据进行冗余传输。

综上所述,本申请实施例提供的音频数据传输方法、装置、处理设备及存储介质,在基于冗余多发机制进行待传输音频数据包的处理时,通过计算待传输音频数据包的语速,来调节基础冗余多发参数,得到合理的冗余度,进而根据调节后的冗余度对待传输的音频数据进行冗余传输,有效缓解了网络压力,避免了网络堵塞,保证了音频数据包的完整传输。

以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离前述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。


技术特征:

1.一种音频数据传输方法,其特征在于,所述方法包括:

获取待传输的音频数据;

计算所述音频数据的语速;

基于所述语速调节基础冗余多发参数,得到所述音频数据的目标冗余多发参数;

基于所述目标冗余多发参数,对待传输的所述音频数据进行冗余传输。

2.根据权利要求1所述的音频数据传输方法,其特征在于,所述待传输的音频数据为当前计算周期对应的音频数据,所述计算所述音频数据的语速包括:

计算所述音频数据中所有相邻数据帧之间的基频跳变次数,所述基频跳变次数作为当前计算周期内所述音频数据的语速。

3.根据权利要求1所述的音频数据传输方法,其特征在于,所述待传输的音频数据为当前计算周期对应的音频数据,所述计算所述音频数据的语速包括:

计算所述音频数据中所有相邻数据帧之间的基频跳变次数;

计算所述音频数据中相邻数据帧之间从非语音帧到语音帧的跳变次数,则所述基频跳变次数及从非语音帧到语音帧跳变的次数的和值作为当前计算周期内所述音频数据的语速;

或者,计算所述音频数据中相邻数据帧之间从语音帧到非语音帧的跳变次数,则所述基频跳变次数及从语音帧到非语音帧跳变的次数的和值作为当前计算周期内所述音频数据的语速。

4.根据权利要求2或3所述的音频数据传输方法,其特征在于,所述计算所述音频数据中所有相邻数据帧之间的基频跳变次数包括:

依次计算所述音频数据中数据帧的基频值差的绝对值,所述基频值差为相邻数据帧中下一数据帧与上一数据帧之间的基频值的差;

确定多个所述绝对值中大于预设阈值的个数,所述个数作为所述待传输音频数据的基频跳变次数。

5.根据权利要求4所述的音频数据传输方法,其特征在于,在计算所述音频数据中数据帧的基频值差的绝对值之前,所述方法还包括:

确定所述音频数据中数据帧的语音标识。

6.根据权利要求5所述的音频数据传输方法,其特征在于,所述计算所述音频数据中相邻数据帧之间从非语音帧到语音帧跳变次数包括:

当上一数据帧的语音标识表示为语音帧,且下一数据帧的语音标识表示为非语音帧,则确定上一数据帧及下一数据帧从非语音帧到语音帧跳变的次数,作为所述从非语音帧到语音帧跳变次数。

7.根据权利要求5所述的音频数据传输方法,其特征在于,所述计算所述音频数据中数据帧的基频值差包括:

当数据帧的所述语音标识表示为语音帧时,计算所述数据帧的基频值;

计算所述基频值,及与所述数据帧相邻的上一数据帧的基频值之间的差。

8.根据权利要求1-3任一项所述的音频数据传输方法,其特征在于,所述基础冗余多发参数为根据接所述音频数据的收终端反馈的接收状态确定的冗余度,所述基于所述语速调节基础冗余多发参数,得到所述音频数据的目标冗余多发参数包括:

计算所述语速与预设的语速参考值的偏离度;

基于所述偏离度调节所述基础冗余多发参数,使得当所述语速增大时,所述目标冗余多发参数大于所述基础冗余多发参数,当所述语速减小时,所述目标冗余多发参数小于所述基础冗余度多发参数。

9.根据权利要求8所述的音频数据传输方法,其特征在于,所述语速参考值包括语速上限值及语速下限值,所述计算所述语速与预设的语速参考值的偏离度包括:

计算所述语速上限值及语速下限值的平均值;

计算所述语速与所述平均值的差值,则所述差值与预设系数的乘积作为所述偏离度,

其中,所述基础冗余多发参数与所述偏离度的和值作为所述目标冗余多发参数。

10.根据权利要求9所述的音频数据传输方法,其特征在于,基于所述语速调节基础冗余多发参数,得到所述音频数据的目标冗余多发参数还包括:

当所述语速小于所述语速下限值时,确定所述目标冗余多发参数为基础冗余多发参数与预设的冗余多发参数最小值中的最小值;

当语速大于等于所述语速下限值,且小于等于语速上限值时,确定所述目标冗余多发参数为所述基础冗余多发参数与所述偏离度的和值、预设的冗余多发参数最大值及所述冗余多发参数最小值三者中的一个,使得所述目标冗余多发参数在所述冗余多发参数最大值及所述冗余多发参数最小值的范围内。

当所述语速大于所述语速上限值时,确定所述目标冗余多发参数为所述基础冗余多发参数与所述冗余多发参数最大值中的最大值。

11.一种音频数据传输装置,其特征在于,所述装置包括:

获取模块,用于获取待传输的音频数据;

计算模块,用于计算所述音频数据的语速;

调节模块,用于基于所述语速调节基础冗余多发参数,得到所述音频数据的目标冗余多发参数;

传输模块,用于基于所述目标冗余多发参数,对待传输的所述音频数据进行冗余传输。

12.根据权利要求11所述的音频数据传输装置,其特征在于,所述计算模块具体用于:

计算所述待传输的音频数据中所有相邻数据帧之间的基频跳变次数,所述基频跳变次数作为所述音频数据的语速。

13.根据权利要求11所述的音频数据传输装置,其特征在于,所述调节模块具体用于:

计算所述语速与预设的语速参考值的偏离度;

基于所述偏离度调节所述基础冗余多发参数,使得当所述语速增大时,所述目标冗余多发参数大于基础冗余多发参数,当所述语速减小时,所述目标冗余多发参数小于所述基础冗余度多发参数。

14.一种处理设备,其特征在于,所述处理设备包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器用于执行所述程序时实现如权利要求1-10任一项所述的音频数据传输方法。

15.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序用于实现如权利要求1-10任一项所述的音频数据传输方法。

技术总结
本申请公开了一种音频数据传输方法、装置、处理设备及存储介质,该方法包括:获取待传输的音频数据;计算该音频数据的语速;基于该语速调节基础冗余多发参数,得到该音频数据的目标冗余多发参数。基于该语速调节基础冗余多发参数,得到该音频数据的目标冗余多发参数;基于该目标冗余多发参数,对待传输的该音频数据进行冗余传输。本申请实施例通过计算待传输音频数据包的语速,来得到合理的冗余度,进而根据合理的冗余度对待传输的音频数据进行冗余传输,有效缓解了网络压力,避免了网络堵塞,保证了音频数据包的完整传输。

技术研发人员:梁俊斌
受保护的技术使用者:腾讯科技(深圳)有限公司
技术研发日:2020.01.08
技术公布日:2020.06.05

转载请注明原文地址: https://bbs.8miu.com/read-56241.html

最新回复(0)