音频传输方法及装置与流程

文档序号:17933525发布日期:2019-06-15 01:07阅读:271来源:国知局
音频传输方法及装置与流程

本发明涉及音频编码领域,具体而言,涉及一种音频传输方法及装置。



背景技术:

音频数据包在传输过程中,往往存在丢包的现象,目前虽然有数据恢复的方法,而一旦碰上连续丢包,就很难进行恢复。



技术实现要素:

本发明实施例提供了一种音频传输方法及装置,当发生连续丢包时,能够恢复音频数据包。

第一方面,本发明实施例提供了一种音频传输方法,包括:

获取音频采样数据;

将所述音频采样数据编码成音频数据包,记录所述音频数据包的长度;

将所述音频采样数据编码成冗余数据包;

将第n个所述冗余数据包附加到第n+i个音频数据包中,n为正整数,i为大于等于2的整数;

将所述音频数据包的长度信息附加到所述音频数据包中。

其中,还包括设置缓冲器;

所述将第n个所述冗余数据包附加到第n+i个音频数据包中包括:

将编码成的所述冗余数据包存入所述缓冲器的最后;

判断所述缓冲器中存储的所述冗余数据包是否达到预设个数,如果是,将所述缓冲器中存储的第一个冗余数据包附加到所述第n+i个音频数据包中,将所述第一个冗余数据包从所述缓冲器中删除。

其中,所述缓冲器为先进先出的数组。

其中,所述音频数据包为opus数据包。

其中,其特征在于,所述冗余数据包为低码率冗余包。

其中,所述i取值为4。

其中,还包括将所述音频采样数据编码成前向纠错数据包;将所述前向纠错数据包附加到所述音频数据包中。

其中,还包括:解码时,从所述音频数据包中解码;当没有所述音频数据包时,从所述前向纠错数据包中解码;当没有所述前向纠错数据包时,从所述冗余数据包中解码。

第二方面,本发明实施例还提供了一种音频传输装置,包括:

获取单元,用于获取音频采样数据;

第一编码单元,用于将所述音频采样数据编码成音频数据包,记录所述音频数据包的长度;

第二编码单元,用于将所述音频采样数据编码成冗余数据包;

第一附加单元,用于将第n个所述冗余数据包附加到第n+i个音频数据包中,n为正整数,i为大于等于2的整数;

第二附加单元,用于将所述音频数据包的长度信息附加到所述音频数据包中。

其中,还包括设置单元,用于设置缓冲器;

所述第一附加单元用于:

将编码成的所述冗余数据包存入所述缓冲器的最后;

判断所述缓冲器中存储的所述冗余数据包是否达到预设个数,如果是,将所述缓冲器中存储的第一个冗余数据包附加到所述第n+i个音频数据包中,将所述第一个冗余数据包从所述缓冲器中删除。

其中,所述缓冲器为先进先出的数组。

其中,所述音频数据包为opus数据包。

其中,所述冗余数据包为低码率冗余包。

其中,所述i取值为4。

其中,还包括:

第三编码单元,用于将所述音频采样数据编码成前向纠错数据包;

第三附加单元,用于将所述前向纠错数据包附加到所述音频数据包中。

其中,还包括解码单元,用于:解码时,从所述音频数据包中解码;当没有所述音频数据包时,从所述前向纠错数据包中解码;当没有所述前向纠错数据包时,从所述冗余数据包中解码。

第三方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述任一项所述方法的步骤。

第四方面,本发明实施例提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述任一项所述方法的步骤。

本发明实施例音频传输方法具有如下有益效果:

本发明实施例音频传输方法中,获取音频采样数据,将音频采样数据分别编码成音频数据包和冗余数据包,接下来将冗余数据包与音频数据包聚合,将第n个冗余数据包附加到第n+i个音频数据包中,是将冗余数据包附加到该冗余数据包后面的音频数据包中,例如位于冗余数据包后面第2个(或者第3个、第4个等)的音频数据包中,不将冗余数据包附加到其后的相邻的音频数据包中,因此,当发生连续丢包时,能够从冗余数据包中恢复丢包数据,大大提高了语音通话质量。

附图说明

图1为本发明实施例音频传输方法的流程示意图一;

图2为本发明实施例音频传输方法中编码过程的示意图;

图3为本发明实施例音频传输方法的流程示意图二;

图4为本发明实施例音频传输方法中缓冲器的示意图;

图5为本发明实施例音频传输方法的流程示意图三;

图6为本发明实施例音频传输装置的结构示意图。

具体实施方式

下面结合附图和实施例对本发明实施例进行进一步的介绍。

在下述介绍中,术语“第一”、“第二”仅为用于描述的目的,而不能理解为指示或暗示相对重要性。下述介绍提供了本发明实施例的多个实施例,不同实施例之间可以替换或者合并组合,因此本发明实施例也可认为包含所记载的相同和/或不同实施例的所有可能组合。因而,如果一个实施例包含特征a、b、c,另一个实施例包含特征b、d,那么本发明实施例也应视为包括含有a、b、c、d的一个或多个所有其他可能的组合的实施例,尽管该实施例可能并未在以下内容中有明确的文字记载。

在下述介绍中,表述“具有”、“可以具有”、“包含”和“包括”或“可以包含”和“可以包括”表示存在对应的特征(例如,诸如数值、功能、操作或组件之类的要素),但是不排除存在附加的特征。

在下述介绍中,当一个元件(例如,第一元件)被称为“(操作或通信)耦接到”或“连接到”另一个元件(例如,第二元件)时,其可以直接耦接或连接到其他元件,或者可以存在中间元件(例如,第三元件)。另一方面,当一个元件(例如,第一元件)被称为“直接耦接到”或“直接连接到”另一元件(例如,第二元件)时,应理解,不存在中间元件(例如,第三元件)。

下面的描述提供了示例,并且不对权利要求书中阐述的范围、适用性或示例进行限制。可以在不脱离本发明实施例内容的范围的情况下,对描述的元素的功能和布置做出改变。各个示例可以适当省略、替代或添加各种过程或组件。例如所描述的方法可以以所描述的顺序不同的顺序来执行,并且可以添加、省略或组合各种步骤。此外,可以将关于一些示例描述的特征组合到其他示例中。

远程语音通信的应用越来越广泛,例如视频会议、移动终端语音通话等。在视频会议中,会场包括终端设备,该会场中的终端设备对参会者的语音信息进行采样、编码等处理形成语音数据包,然后将语音数据包发送给另一方会场,另一方会场中的终端设备对语音数据包进行解码,从而实现两方会场视频会议中的语音通话。在移动终端的语音通话场景中,也存在基本相同的语音数据传输。语音数据在传输过程中,受通信线路等因素的影响,会发生丢包,甚至连续丢包。在连续丢包后,是否能够恢复语音数据包,对视频会议、移动终端语音通话等的通话质量有重要影响。本发明实施例提供的音频传输方法及装置,在发生连续丢包时,能够恢复音频数据,提高了语音通信的稳定性和质量。

本发明实施例音频传输方法例如可以应用于交互智能平板、交互平板、显示器或智能电视等设备,还可以应用于移动终端、平板电脑、个人计算机、笔记本、台式计算机、服务器、个人数字助理(personaldigitalassistant,pda)、可穿戴设备等。下面介绍本发明实施例音频传输方法。

图1为本发明实施例音频传输方法的流程示意图一,如图1所示,本实施例音频传输方法包括步骤101,获取音频采样数据;步骤102,将音频采样数据编码成音频数据包,记录音频数据包的长度;步骤103,将音频采样数据编码成冗余数据包;步骤104,将第n个冗余数据包附加到第n+i个音频数据包中,n为正整数,i为大于等于2的整数;步骤105,将音频数据包的长度信息附加到音频数据包中。下面介绍步骤101-105。

步骤101,获取音频采样数据。

图2为本发明实施例音频传输方法中编码过程的示意图,如图1-2所示,在一些实施例中,终端设备对语音信息进行采样,获取音频采样数据。采样的过程是将声波波形转换成一连串的二进制数据的过程,也是一个模/数转换的过程。采样过程中,以一定的周期对声波进行采样,每一次采样都记录下了原始模拟声波在某一时刻的状态,称之为样本。将一串的样本连接起来,就可以描述一段声波了。在一些实施例中,采样周期可以根据实际情况设定,例如为20ms,如图2所示,data1为第一个采样周期的音频数据,data2为第二个采样周期的音频数据,data3为第三个采样周期的音频数据,以此类推。

步骤102,将音频采样数据编码成音频数据包,记录音频数据包的长度。

如图2所示,在一些实施例中,将音频采样数据data1编码成音频数据包p1,将音频采样数据data2编码成音频数据包p2,将音频采样数据data3编码成音频数据包p3,依次类推。在一些实施例中,音频数据包为opus数据包,opus是一个有损声音编码的格式,主要特性如下:

·6kb/秒到510kb/s的比特率

·采样率从8khz(窄带)到48khz(全频)

·帧大小从2.5毫秒到60毫秒

·支持恒定比特率(cbr)和可变比特率(vbr)

·从窄带到全频段的音频带宽

·支持语音和音乐

·支持单声道和立体声

·支持多达255个频道(多数据流的帧)

·可动态调节比特率,音频带宽和帧大小

·良好的鲁棒性丢失率和数据包丢失隐藏

·浮点和定点实现

本步骤中,还记录音频数据包的长度,因为在计算机中存储一段数据后,如果想要获得该数据,需要该段数据在计算机中的起始位置,以及该数据的长度,这样就可以获得整段数据。在一些实施例中,发送终端发出去的数据例如是音频数据包和冗余数据包的聚合,将音频数据包的长度信息length附加到聚合包的最后;接收终端解码时,根据长度信息length可以获得音频数据包的长度,从而解析出音频数据包,进而可以从剩下的数据中解析出冗余包。

步骤103,将音频采样数据编码成冗余数据包。

如图2所示,在一些实施例中,将音频采样数据data1编码成冗余数据包nb_p1,冗余数据包nb_p1是音频采样数据data1的备份;将音频采样数据data2编码成冗余数据包nb_p2,冗余数据包nb_p2是音频采样数据data2的备份;将音频采样数据data3编码成冗余数据包nb_p3,冗余数据包nb_p3是音频采样数据data3的备份,依次类推。在一些实施例中,将音频采样数据经过窄带压缩,生成一个8kbps(kilobitpersecond,千位每秒)的窄带冗余包即冗余数据包。在一些实施例中,冗余数据包为低码率冗余包(lowbit-rateredundancy,lbrr)。

步骤104,将第n个冗余数据包附加到第n+i个音频数据包中,n为正整数,i为大于等于2的整数。

如图2所示,在一些实施例中,i为大于等于2的整数,i的取值例如可以为2、3、4、5、6、7等,下面以i=4为例进行介绍。对于第1个冗余数据包nb_p1,将其附加到第5(1+4)个音频数据包p5的后面;对于第2个冗余数据包nb_p2,将其附加到第6(2+4)个音频数据包p6的后面;对于第3个冗余数据包nb_p3,将其附加到第7(3+4)个音频数据包p7的后面;对于第4个冗余数据包nb_p4,将其附加到第8(4+4)个音频数据包p8的后面,依次类推。本步骤中,将第n个冗余数据包附加到第n+i个音频数据包中,是将冗余数据包附加到该冗余数据包后面的音频数据包中,例如位于冗余数据包后面第2个(或者第3个、第4个等)的音频数据包中,不将冗余数据包附加到其后的相邻的音频数据包中,因此,当发生连续丢包时,能够从冗余数据包中恢复丢包数据,大大提高了语音通话质量。

步骤105,将音频数据包的长度信息附加到音频数据包中。

如图2所示,在一些实施例中,将音频数据包的长度信息附加到第5个音频数据包p5中,例如位于冗余数据包nb_p1后面;将音频数据包的长度信息附加到第6个音频数据包p6中,例如位于冗余数据包nb_p2后面,依次类推。将音频数据包的长度信息length附加到音频数据包的最后,接收终端解码时,根据长度信息length可以获得音频数据包的长度,从而解析出音频数据包,进而可以从剩下的数据中解析出冗余数据包。在一些实施例中,在每一个音频数据包中附加其长度信息。

本发明实施例音频传输方法中,获取音频采样数据,将音频采样数据分别编码成音频数据包和冗余数据包,接下来将冗余数据包与音频数据包聚合,将第n个冗余数据包附加到第n+i个音频数据包中,是将冗余数据包附加到该冗余数据包后面的音频数据包中,例如位于冗余数据包后面第2个(或者第3个、第4个等)的音频数据包中,不将冗余数据包附加到其后的相邻的音频数据包中,因此,当发生连续丢包时,能够从冗余数据包中恢复丢包数据,大大提高了语音通话质量。

图3为本发明实施例音频传输方法的流程示意图二,如图3所示,本实施例音频传输方法包括步骤201,获取音频采样数据;步骤202,将音频采样数据编码成音频数据包,记录音频数据包的长度;步骤203,将音频采样数据编码成冗余数据包;步骤204,将编码成的冗余数据包存入缓冲器的最后;步骤205,判断缓冲器中存储的冗余数据包是否达到预设个数,如果是,执行步骤206,如果否,执行步骤207;步骤206,将缓冲器中存储的第一个冗余数据包附加到第n+i个音频数据包中,将第一个冗余数据包从缓冲器中删除;步骤207,将音频数据包的长度信息附加到音频数据包中。其中步骤201-203与步骤101-103基本相同,步骤207与步骤105基本相同,请参见步骤101-103、步骤105的介绍,下面介绍步骤204-206。

步骤204,将编码成的冗余数据包存入缓冲器的最后。

在一些实施例中,在本步骤中或者本步骤之前包括设置缓冲器。如图3-4所示,缓冲器用于存储冗余数据包,例如用于存储最近的5个冗余数据包,也可以存储最近的其他数目的冗余数据包。缓冲器的大小例如可以设置为存储5个冗余数据包。缓冲器例如可以为先进先出(firstinputfirstoutput,fifo)的数组。如图4所示,缓冲器中存储的冗余数据包形成队列,每次存入的冗余数据包存入缓冲器的最后,例如将第一个冗余数据包nb_p1存入缓冲器,存储第二个冗余数据包nb_p2时,将第二个冗余数据包nb_p2存储于第一个冗余数据包nb_p1后面,存储第三个冗余数据包nb_p3时,将第三个冗余数据包nb_p3存储于第二个冗余数据包nb_p2后面,依次类推。

步骤205,判断缓冲器中存储的冗余数据包是否达到预设个数,如果是,执行步骤206,如果否,执行步骤207。

在一些实施例中,预设个数可以根据实际需要而设定,例如3个、4个、5个等。在一些实施例中,预设个数例如可以为i+1个。在一些实施例中,预设个数大于等于3个。

步骤206,将缓冲器中存储的第一个冗余数据包附加到第n+i个音频数据包中,将第一个冗余数据包从缓冲器中删除。

如图4所示,在一些实施例中,缓冲器中存储的第一个冗余数据包为缓冲器中最先存储的冗余数据包,例如当缓冲器中存储有5个冗余数据包时,将这5个冗余数据包中最先存储的冗余数据包附加到音频数据包中,将缓冲器中最先存储的冗余数据包删除,删除后缓冲器就又有空间存储冗余数据包了。在一些实施例中,缓冲器的存储空间大小固定,例如存储5个冗余数据包。

本实施例中,将最近的冗余数据包存储于缓冲器中,在缓冲器中的冗余数据包达到预设个数时,将缓冲器中最先存储的冗余数据包附加到音频数据包中,实现了将冗余数据包附加到其后的与冗余数据包不相邻的音频数据包中,当发生连续丢包时,能够从冗余数据包中恢复丢包数据,大大提高了语音通话质量。

图5为本发明实施例音频传输方法的流程示意图三,如图5所示,本实施例音频传输方法包括步骤201,获取音频采样数据;步骤202,将音频采样数据编码成音频数据包,记录音频数据包的长度;步骤203a,将音频采样数据编码成冗余数据包;将音频采样数据编码成前向纠错数据包;将前向纠错数据包附加到音频数据包中;步骤204,将编码成的冗余数据包存入缓冲器的最后;步骤205,判断缓冲器中存储的冗余数据包是否达到预设个数,如果是,执行步骤206,如果否,执行步骤207;步骤206,将缓冲器中存储的第一个冗余数据包附加到第n+i个音频数据包中,将第一个冗余数据包从缓冲器中删除;步骤207,将音频数据包的长度信息附加到音频数据包中。其中,步骤201、202、204-207已介绍过,请参见上文的介绍,下面介绍步骤203a。。

步骤203a,将音频采样数据编码成冗余数据包;将音频采样数据编码成前向纠错数据包;将前向纠错数据包附加到音频数据包中。

在一些实施例中,不仅将音频采样数据编码成冗余数据包,还将音频采样数据编码成前向纠错数据包(forwarderrorcorrection,fec),将前向纠错数据包附加到音频数据包中。这样在本实施例中,编码后的音频数据包括音频数据包、前向纠错数据包和冗余数据包。下面举一个例子,采样周期为20ms,各个时间段编码后的完整包如下所示:

在一些实施例中,音频传输方法还包括:解码时,从音频数据包中解码;当没有音频数据包时,从前向纠错数据包中解码;当没有前向纠错数据包时,从冗余数据包中解码。

每个采样时间段的音频信息可以从三个地方进行恢复,以0-20ms采样时间段的音频信息为例,其可以从以下三个地方进行恢复:

第一:0-20ms完整包中的音频数据包。

第二:20-40ms完整包中的fec包。

第三:100-120ms完整包中的冗余数据包。

在不存在丢包的情况下,不需要同时从以上三个包来获得原始音频信息。因此,需要为上面三个包设置优先级,优先级从大到小的顺序为:音频数据包>fec包>冗余数据包。

即以上三个包都存在时,优先从音频数据包中解码,因为另外两个都是低码率的窄带包,从其中解码的音质没有从音频数据包中解码出来的音质高。

如果0-20ms的完整包丢失,优先从20-40ms完整包中携带的0-20msfec包中解码恢复,因为虽然从100-120ms完整包中携带的0-20ms冗余数据包中解码恢复的音频质量基本相同,但是从20-40ms完整包中携带的0-20msfec包中解码延迟更低。

当0-20ms的完整包、20-40ms完整包中携带的0-20msfec包都丢失时,则从100-120ms完整包中的0-20ms冗余数据包进行恢复。

本发明实施例还提供了一种音频传输装置,如图6所示,本发明实施例音频传输装置包括获取单元10,用于获取音频采样数据;第一编码单元11,用于将音频采样数据编码成音频数据包,记录音频数据包的长度;第二编码单元13,用于将音频采样数据编码成冗余数据包;第一附加单元14,用于将第n个冗余数据包附加到第n+i个音频数据包中,n为正整数,i为大于等于2的整数;第二附加单元12,用于将音频数据包的长度信息附加到音频数据包中。

可选地,还包括设置单元,用于设置缓冲器;

第一附加单元用于:

将编码成的冗余数据包存入缓冲器的最后;

判断缓冲器中存储的冗余数据包是否达到预设个数,如果是,将缓冲器中存储的第一个冗余数据包附加到第n+i个音频数据包中,将第一个冗余数据包从缓冲器中删除。

可选地,缓冲器为先进先出的数组。

可选地,音频数据包为opus数据包。

可选地,冗余数据包为低码率冗余包。

可选地,i取值为4。

可选地,还包括:

第三编码单元,用于将音频采样数据编码成前向纠错数据包;

第三附加单元,用于将前向纠错数据包附加到音频数据包中。

可选地,还包括解码单元,用于:解码时,从音频数据包中解码;当没有音频数据包时,从前向纠错数据包中解码;当没有前向纠错数据包时,从冗余数据包中解码。

本说明书中,对于音频传输装置实施例而言,其内容基本相似于音频传输方法实施例,相关之处请参见上文的介绍。

本领域的技术人员可以清楚地了解到本发明实施例的技术方案可借助软件和/或硬件来实现。本说明书中的“单元”和“模块”是指能够独立完成或与其他部件配合完成特定功能的软件和/或硬件,其中硬件例如可以是fpga(field-programmablegatearray,现场可编程门阵列)、ic(integratedcircuit,集成电路)等。

本发明实施例的各处理单元和/或模块,可通过实现本发明实施例所述的功能的模拟电路而实现,也可以通过执行本发明实施例所述的功能的软件而实现。

本发明实施例还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现上述方法的步骤。

本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述方法的步骤。其中,计算机可读存储介质可以包括但不限于任何类型的盘,包括软盘、光盘、dvd、cd-rom、微型驱动器以及磁光盘、rom、ram、eprom、eeprom、dram、vram、闪速存储器设备、磁卡或光卡、纳米系统(包括分子存储器ic),或适合于存储指令和/或数据的任何类型的媒介或设备。

在本发明实施例所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。

在本发明实施例各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

以上介绍仅为本发明实施例的优选实施例而已,并不用于限制本发明实施例,对于本领域的技术人员来说,本发明实施例可以有各种更改和变化。凡在本发明实施例的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1