音频传输方法、终端、电子设备及存储介质与流程

专利查询2023-1-10  135



1.本公开涉及信号处理领域,尤其涉及一种音频传输方法、终端、电子设备及存储介质。


背景技术:

2.在实时通讯过程中,受网络实际情况的影响,音频数据丢失难以避免。当网络丢包发生时,接收端听到的声音音质会很差,甚至无法听清发送端发送的声音。所以在实时通讯过程中丢失音频数据的恢复是一个必要的技术。
3.丢失音频数据的恢复主要有前向纠错(fec,forward error correction)技术和重传技术。fec技术的主要方式是,发送端在发送音频包时,添加一部分冗余信息,使得接收端在网络丢包发生时,可以通过冗余信息来恢复丢失的数据。重传技术是指,接收端发现接收到的音频包丢失后,通知发送端重新发送丢失的音频包。然而,fec技术在高丢包率的情况下,可能难以有效地进行丢失音频数据的恢复,而重传技术在高丢包率的情况下,会由于过多地重传操作而导致码率增大,进而出现音频延迟。也就是说,这两种技术在高丢包率的情况下均难以进行高效地恢复丢失的音频数据。


技术实现要素:

4.本公开提供一种音频传输方法、装置电子设备及存储介质,以至少解决相关技术中的在高丢包率的情况下难以高效地恢复丢失的音频数据的问题。
5.根据本公开实施例的第一方面,提供了一种音频传输方法,所述音频传输方法包括:第一终端向第二终端发送多个音频包,其中,所述多个音频包中的每个音频包中包括当前时刻的音频帧以及在所述当前时刻之前的预设数量的冗余音频帧;所述第一终端接收所述第二终端针对接收到的音频包的反馈;所述第一终端根据所述反馈确定第二终端接收到的音频包,并根据所述第二终端接收到的音频包中的冗余音频帧确定需重传的音频包;所述第一终端向所述第二终端发送所述需重传的音频包。
6.可选地,所述根据所述第二终端接收到的音频包中的冗余音频帧确定需重传的音频包,包括:所述第一终端根据所述第二终端接收到的音频包中的冗余音频帧,获取所述第二终端连续未接收到的音频帧的第一数量;获取每个音频包中包含的冗余音频帧的第二数量;根据所述第一数量和所述第二数量确定需重传的音频包。
7.可选地,所述第二数量为n;所述根据所述第一数量和第二数量确定需重传的音频包,包括:对所述第一数量进行判断;当所述第一数量小于等于n+1时,则确定需重传的音频包为:将所述第一数量的音频帧中的最后一个音频帧作为当前时刻的音频帧的音频包;当所述第一数量大于n时,则确定需重传的音频包为:将所述第一数量的音频帧中的第n+1个音频帧作为当前时刻的音频帧的音频包,并获取从所述第n+1个音频帧的下一个音频帧开始的剩余连续未接收到的音频帧的数量,并将所述第一数量更新为所述剩余连续未连接的音频帧的数量,返回所述对第一数量进行判断的步骤,直至确定需重传的音频包为:将所述
剩余连续未接收的音频帧中的最后一个音频帧作为当前时刻的音频帧的音频包。
8.可选地,所述第一终端根据所述第二终端接收到的音频包中的冗余音频帧,获取所述第二终端连续未接收到的音频帧的第一数量,包括:所述第一终端根据所述第二终端接收到的音频包中的冗余音频帧,当确定所述第二终端未接收到某个音频帧时开始计数,直至当确定所述第二终端再次接收到音频帧时停止计数,获取第二终端连续未接收到的音频帧的第一数量。
9.可选地,所述音频传输方法还包括:所述第一终端获取向所述第二终端发送的音频包的丢包率;根据所述丢包率调整所述预设数量。
10.可选地,所述根据所述丢包率调整所述预设数量,包括:当丢包率增大时,增大所述预设数量;当丢包率减小时,减小所述预设数量。
11.可选地,所述反馈包括接收到的音频包的包标识,其中,所述包标识包括所述第二终端接收到的音频包的索引信息。
12.根据本公开实施例的第二方面,提供了一种音频传输方法,所述音频传输方法包括:从第一终端接收多个音频包,其中,所述多个音频包中的每个音频包中包括当前时刻的音频帧以及在所述当前时刻之前的预设数量的冗余音频帧;向所述第一终端发送针对接收到的音频包的反馈;接收第一终端发送的需重传的音频包,所述需重传的音频包是所述第一终端根据所述反馈确定所述第二终端接收到的音频包,并根据所述第二终端接收到的音频包中的冗余音频帧确定得到的。
13.可选地,所述音频传输方法还包括:所述第二终端根据接收到的音频包中包括的冗余音频帧,恢复所述第二终端未接收到的音频包中的与该冗余音频帧对应的音频帧。
14.可选地,所述音频传输方法还包括:所述第二终端向所述第一终端发送针对所述第一终端所发送的音频包的丢包率的反馈。
15.可选地,所述反馈包括接收到的音频包的包标识,其中,所述包标识包括所述第二终端接收到的音频包的索引信息。
16.根据本公开实施例的第三方面,提供了一种用于音频传输的第一终端,所述第一终端包括:音频发送单元,被配置为向第二终端发送多个音频包,其中,所述多个音频包中的每个音频包中包括当前时刻的音频帧以及在所述当前时刻之前的预设数量的冗余音频帧;反馈接收单元,被配置为接收所述第二终端针对接收到的音频包的反馈;重传确定单元,被配置为:根据所述反馈确定第二终端接收到的音频包,并根据所述第二终端接收到的音频包中的冗余音频帧确定需重传的音频包;其中,所述音频发送单元还被配置为向所述第二终端发送所述需重传的音频包。
17.可选地,所述根据所述第二终端接收到的音频包中的冗余音频帧确定需重传的音频包,包括:根据所述第二终端接收到的音频包中的冗余音频帧,获取所述第二终端连续未接收到的音频帧的第一数量;获取每个音频包中包含的冗余音频帧的第二数量;根据所述第一数量和所述第二数量确定需重传的音频包。
18.可选地,所述第二数量为n;所述根据所述第一数量和第二数量确定需重传的音频包,包括:对所述第一数量进行判断;当所述第一数量小于等于n+1时,则确定需重传的音频包为:将所述第一数量的音频帧中的最后一个音频帧作为当前时刻的音频帧的音频包;当所述第一数量大于n时,则确定需重传的音频包为:将所述第一数量的音频帧中的第n+1个
音频帧作为当前时刻的音频帧的音频包,并获取从所述第n+1个音频帧的下一个音频帧开始的剩余连续未接收到的音频帧的数量,并将所述第一数量更新为所述剩余连续未连接的音频帧的数量,返回所述对第一数量进行判断的步骤,直至确定需重传的音频包为:将所述剩余连续未接收的音频帧中的最后一个音频帧作为当前音频帧的音频包。
19.可选地,所述根据所述第二终端接收到的音频包中的冗余音频帧,获取所述第二终端连续未接收到的音频帧的第一数量,包括:根据所述第二终端接收到的音频包中的冗余音频帧,当确定所述第二终端未接收到某个音频帧时开始计数,当根据接收到的音频包中的冗余音频帧确定再次接收到音频帧时停止计数,获取第二终端连续未接收到的音频帧的第一数量。
20.可选地,所述第一终端还包括:调整单元,被配置为:获取向所述第二终端发送的音频包的丢包率;根据所述丢包率调整所述预设数量。
21.可选地,所述根据所述丢包率调整所述预设数量,包括:当丢包率增大时,增大所述预设数量;当丢包率减小时,减小所述预设数量。
22.可选地,所述反馈包括接收到的音频包的包标识,其中,所述包标识包括所述第二终端接收到的音频包的索引信息。
23.根据本公开实施例的第四方面,提供了一种用于音频传输的第二终端,所述第二终端包括:音频接收单元,被配置为从第一终端接收多个音频包,其中,所述多个音频包中的每个音频包中包括当前时刻的音频帧以及在所述当前时刻之前的预设数量的冗余音频帧;反馈发送单元,被配置为向所述第一终端发送针对接收到的音频包的反馈;其中,音频接收单元,还被配置为接收第一终端发送的需重传的音频包,所述需重传的音频包是所述第一终端根据所述反馈确定所述第二终端接收到的音频包,并根据所述第二终端接收到的音频包中的冗余音频帧确定得到的。
24.可选地,所述第二终端还包括:恢复单元,被配置为根据接收到的音频包中包括的冗余音频帧,恢复所述第二终端未接收到的音频包中的与该冗余音频帧对应的音频帧。
25.可选地,所述反馈发送单元还被配置为:向所述第一终端发送针对所述第一终端所发送的音频包的丢包率的反馈。
26.可选地,所述反馈包括接收到的音频包的包标识,其中,所述包标识包括所述第二终端接收到的音频包的索引信息。
27.根据本公开实施例的第五方面,提供了一种电子设备,其特征在于,包括:至少一个处理器;至少一个存储计算机可执行指令的存储器,其中,所述计算机可执行指令在被所述至少一个处理器运行时,促使所述至少一个处理器执行如上所述的音频传输方法。
28.根据本公开实施例的第六方面,提供了一种存储指令的计算机可读存储介质,其特征在于,当所述指令被至少一个处理器运行时,促使所述至少一个处理器执行如上所述的音频传输方法。
29.根据本公开实施例的第七方面,提供了一种计算机程序产品,包括计算机指令,其特征在于,所述计算机指令被处理器执行时实现如上所述的音频传输方法。
30.本公开的实施例提供的技术方案至少带来以下有益效果:根据本公开实施例的由第一终端执行的音频传输方法,由于不仅在每个音频包中包括当前时刻的音频帧以及当前时刻之前的预设数量的冗余音频帧,而且根据第二终端针对接收到的音频包的反馈确定第
二终端接收到的音频包,并根据所述第二终端接收到的音频包中的冗余音频帧确定需重传的音频包,因此,相比传统的fec方案,在高丢包率的情况下,本公开的上述音频传输方法还可以通过主动重传进一步进行丢失音频数据的恢复,而相比传统的重传方案,由于进行了有选择的重传,在高丢包率下可以有效地节省码率。因此,本公开的这种将fec技术和重传技术相结合的音频传输方法使得可以在高丢包率的情况下进行高效的丢失音频数据的恢复。
31.根据本公开实施例的由第二终端执行的音频传输方法,由于从第一终端接收到的音频包中除包括当前时刻的音频帧之外还包括当前时刻之前的预设数量的冗余音频帧,而且可以接收第一终端发送的需重传的音频包(所述需重传的音频包是所述第一终端根据所述反馈确定所述第二终端接收到的音频包,并根据所述第二终端接收到的音频包中的冗余音频帧确定得到的),因此,在高丢包率的情况下,可以接收有选择地重传的音频包,从而可高效地恢复丢失的音频数据。
32.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
33.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的示例实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
34.图1是本公开的示例性实施例可以应用于其中的示例性系统架构;
35.图2是本公开示例性实施例的由第一终端执行的音频传输方法的流程图;
36.图3是本公开示例性实施例的携带冗余音频帧的音频包的格式示例。
37.图4是本公开示例性实施例的音频传输方法的确定需要重传的音频包的示意图;
38.图5是本公开示例性实施例的由第二终端执行的音频传输方法的流程图;
39.图6是示出本公开示例性实施例的用于音频传输的第一终端的框图;
40.图7是示出本公开另一示例性实施例的用于音频传输的第二终端的框图;
41.图8是根据本公开示例性实施例的电子设备的框图。
具体实施方式
42.为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
43.需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
44.在此需要说明的是,在本公开中出现的“若干项之中的至少一项”均表示包含“该若干项中的任意一项”、“该若干项中的任意多项的组合”、“该若干项的全体”这三类并列的情况。例如“包括a和b之中的至少一个”即包括如下三种并列的情况:(1)包括a;(2)包括b;
(3)包括a和b。又例如“执行步骤一和步骤二之中的至少一个”,即表示如下三种并列的情况:(1)执行步骤一;(2)执行步骤二;(3)执行步骤一和步骤二。
45.图1示出了本公开的示例性实施例可以应用于其中的示例性系统架构100。
46.如图1所示,系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息(例如视频数据上传请求、视频数据下载请求)等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如音视频通信软件、音视频录制软件、即使通信软件、会议软件、邮箱客户端、社交平台软件等。终端设备101、102、103可以是硬件,也可以是软件。当终端设备101、102、103为硬件时,可以是具有显示屏并且能够进行音视频播放、录制、编辑等的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。当终端设备101、102、103为软件时,可以安装在上述所列举的电子设备中,其可以实现成多个软件或软件模块(例如用来提供分布式服务),也可以实现成单个软件或软件模块。在此不做具体限定。
47.终端设备101、102、103可以安装有图像采集装置(例如摄像头),以采集视频数据。实践中,组成视频的最小视觉单位是帧(frame)。每一帧是一幅静态的图像。将时间上连续的帧序列合成到一起便形成动态视频。此外,终端设备101、102、103也可以安装有用于将电信号转换为声音的组件(例如扬声器)以播放声音,并且还可以安装有用于将模拟音频信号转换为数字音频信号的装置(例如,麦克风)以采集声音。另外,终端设备101、102、103之间可彼此进行语音通信或视频通信,例如,进行实时语音通信或视频通信。
48.服务器105可以是提供各种服务的服务器,例如对终端设备101、102、103上所安装的多媒体应用提供支持的后台服务器。后台服务器可以对所接收到的音视频数据上传请求等数据进行解析、存储等处理,并且还可以接收终端设备101、102、103所发送的音视频数据下载请求,并将该音视频数据下载请求所指示的音视频数据反馈至终端设备101、102、103。
49.需要说明的是,服务器可以是硬件,也可以是软件。当服务器为硬件时,可以实现成多个服务器组成的分布式服务器集群,也可以实现成单个服务器。当服务器为软件时,可以实现成多个软件或软件模块(例如用来提供分布式服务),也可以实现成单个软件或软件模块。在此不做具体限定。
50.需要说明的是,本公开实施例所提供的音频传输方法通常由终端设备执行,或者也可以由终端设备和服务器协作执行。相应地,本公开实施例所提及的第一终端和第二终端可设置在终端设备中、或者设置在终端设备和服务器两者中。
51.应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器,本公开对此并无限制。
52.图2是本公开示例性实施例的由第一终端执行的音频传输方法的流程图。参照图2,在步骤s210,第一终端向第二终端发送多个音频包。这里,根据示例性实施例,所述多个音频包中的每个音频包中包括当前时刻的音频帧以及当前时刻之前的预设数量的冗余音频帧。例如,每个音频包中除了包括当前时刻的音频帧之前,还可携带前n个时刻的冗余音频帧,比如,n可以是3,但不限于此。作为示例,可以按时间顺序依次发送多个音频包,每个音频包可以有一个包序号。例如,可以在音频包的包头中包括音频包的包标识。例如,所述
包标识可以包括音频包的索引信息。索引信息例如可以是包序号,但不限于此。由于音频包中包括当前时刻之前预设数量的冗余音频帧,因此,后续如果在传输过程中出现丢包而在丢失的包之后被第二终端接收到的音频包中存在与丢失的包对应的冗余音频帧,则接收端可以利用这些冗余音频帧来恢复丢失的包中与这些冗余音频帧对应的音频帧,这样可以比重传该丢失的包更快地恢复丢失的音频数据,从而减少了音频延迟。
53.在步骤s220,所述第一终端接收所述第二终端针对接收到的音频包的反馈。作为示例,所述反馈可以包括接收到的音频包的包标识,但不限于此。例如,所述包标识可以包括所述第二终端接收到的音频包的索引信息,索引信息例如可以是包序号。根据示例性实施例,如果第二终端成功接收到音频包,则第二终端可以向第一终端发送确认反馈,例如,确认字符ack(acknowledge character)。而如果第二终端未能成功接收到音频包(即,存在丢包),则第一终端将接收不到针对该音频包的确认反馈。例如,确认反馈中可以包含被接收的音频包的包序号。这样,第一终端就可以根据确认反馈知道哪些音频包被第二终端接收到了。在本公开中,如果第一终端接收到了第二终端针对接收到的音频包的反馈,则认为第一终端接收到了针对该音频包中的所有音频帧的反馈。例如,如果一个音频包是有ack的音频包,则该音频包中包括的所有音频帧都是有ack的音频帧。
54.在步骤s230,所述第一终端根据所述反馈确定第二终端接收到的音频包,并根据所述第二终端接收到的音频包中的冗余音频帧确定需重传的音频包。例如,如图3所示,如果传输过程中音频包7、8、9均丢失了,但是第一终端接收到了针对10号包的反馈,则第一终端可以根据该反馈确定出第二终端接收到了音频包10。由于10号包中包含与音频包7、8、9对应的冗余音频帧7、8、9,因此,第二终端可以利用10号包中包含的冗余音频帧7、8、9来分别恢复出丢失的音频包7、8、9中与该冗余音频帧对应的音频帧(即,音频包7、8、9中的当前时刻的音频帧)。在这种情况下,第一终端会认为与该冗余音频帧对应的音频帧也是有确认反馈的音频帧,即,第一终端会认为与该冗余音频帧对应的音频帧被第二终端接收到了,因此,不会重传与该音频帧对应的音频包。也就是说,当丢失的音频包之后的被第二终端接收到的音频包中包含与丢失的音频包对应的冗余音频帧时,第一终端无需重传该丢失的音频包。相反,当丢失的音频包之后的被第二终端接收到的音频包中不包含与丢失的音频包对应的冗余音频帧时,第一终端需要根据第二终端接收到的音频包中的冗余音频帧确定需重传的音频包。然而,由于每个音频包还携带了与其他音频包对应的冗余音频帧,因此在本发明中不会对每一个未接收到的音频包都进行重传,而是会选择性地进行音频包的重传。
55.可选地,根据示例性实施例,尽管图2中未示出,但是图2所示的方法还可包括:所述第一终端获取向所述第二终端发送的音频包的丢包率;根据所述丢包率调整所述预设数量。例如,所述第一终端可以根据所述第二终端针对接收到的音频包的反馈来计算丢包率,或者,所述第一终端也可以直接从所述第二终端接收丢包率的反馈。例如,第一终端可以第二终端针对接收到的音频包的反馈中所包括的包标识(例如,包序号)计算出多少音频包被第二终端接收到,从而计算出丢包率。或者,第二终端可以根据接收到的音频包中的包标识(例如,包序号),可以知道多少音频包被接收到了,多少音频包丢失了,从而计算出丢包率,再把丢包率反馈给第一终端。作为示例,第一终端可以周期性地从第二终端接收丢包率的反馈,例如,第一终端可以每个时刻都从第二终端接收丢包率的反馈,或者可以每隔几个时刻从第二终端接收丢包率的反馈。第一终端则可以根据第二终端反馈回来的丢包率,相应
地调整在音频包中添加的冗余音频帧的数量。根据示例性实施例,当丢包率增大时,增大所述预设数量;当丢包率减小时,减小所述预设数量。例如,丢包率越大,在每个音频包中包含的先前时刻的冗余音频帧可以越多。相反,丢包率越小,在每个音频包中包含的先前时刻的冗余音频帧可以越少。
56.图3是本公开示例性实施例的携带冗余音频帧的音频包的格式示例。在图3所示的示例中,每个音频包除了携带此时刻的音频帧外,还会携带当前时刻之前的3个时刻的冗余音频帧。然而,如上所述,冗余音频帧的数量可以被适应性地调整,例如,可以根据丢包率来适应性地调整所添加的冗余音频帧的数量,从而便于第二终端更高效地进行丢包恢复。
57.图4是本公开示例性实施例的音频传输方法的确定需重传的音频包的示意图。下面结合图4,对确定需重传的音频包的方式进行介绍。
58.根据示例性实施例,具体地,为了确定需重传的音频包,首先,所述第一终端根据所述第二终端接收到的音频包中的冗余音频帧,获取所述第二终端连续未接收到的音频帧的第一数量;其次,获取每个音频包中包含的冗余音频帧的第二数量;最后,根据所述第一数量和所述第二数量确定需重传的音频包。例如,可以通过以下方式来获取第一数量:所述第一终端根据所述第二终端接收到的音频包中的冗余音频帧,当确定所述第二终端未接收到某个音频帧时开始计数,直至当确定所述第二终端再次接收到音频帧时停止计数,获取第二终端连续未接收到的音频帧的第一数量。
59.例如,在图4的示例中,假设每个音频包中除了包括当前时刻的音频帧之外,还包括当前时刻之前的6个时刻的冗余音频帧,即,每个音频包携带6个冗余音频帧。在图4中的(a)所示的示例中,如果音频帧8之前的音频帧(例如,音频帧7)是有确认反馈的音频帧,则认为音频帧8之前的音频帧被第二终端接收到。当确定第二终端未接收到音频帧8时开始计数,此时,第一数量等于1,如果接下来确定第二终端也未接收到音频帧9,则继续计数,此时,第一数量等于2,随后,如果确定第二终端也未接收到音频帧10,则继续计数,此时,第一数量等于3,如果确定第二终端也未接收到音频帧11,则继续计数,此时第一数量等于4,直至当确定第二终端再次接收到音频帧时停止计数,例如,当确定第二终端接收到音频帧12时停止计数,此时,可以获取第一数量=4。
60.这里,需要说明的是,第二终端未接收到音频帧8、9或10,表明第二终端不仅没有接收到将音频帧8、9或10作为当前时刻的音频帧的音频包,而且在第二终端接收到的其他音频包中也不包含与音频帧8、9或10对应的冗余音频帧,这是因为,如上文所提及的,如果在第二终端接收到的其他音频包中包含与音频帧8、9或10对应的冗余音频帧,则会认为音频帧8、9或10被第二终端接收到了,即,认为音频帧8、9或10也是有ack的音频帧。
61.如上文所提及的,由于每个音频包中可以携带冗余音频帧(即使是重传的音频包,也可以携带预设数量的冗余音频帧),因此本发明在确定需重传的音频包时,除了考虑第一数量之前,还考虑每个音频包中包含的冗余音频帧的第二数量(假设第二数量为n),根据第一数量和第二数量来确定需重传的音频包。
62.具体地,例如,可通过以下步骤来确定需重传的音频包:
63.步骤1:对所述第一数量进行判断。
64.步骤2:当所述第一数量小于等于n+1时,则确定需重传的音频包为:将所述第一数量的音频帧中的最后一个音频帧作为当前时刻的音频帧的音频包。这里,将所述第一数量
的音频帧中的最后一个音频帧作为当前时刻的音频帧的音频包,除了包括所述第一数量的音频帧中的最后一个音频帧之外,还包括所述最后一个音频帧之前的预设数量的音频帧,即,还包括当前时刻(即,所述最后一个音频帧对应的时刻)之前的预设数量的冗余音频帧。
65.例如,如图4的(a)所示,如果每个音频包中包括的冗余音频帧的数量是6(即,n为6),音频帧8至11被确定为是连续未接收到的音频帧的数量(即,第一数量为4),则由于第一数量为4且n为6,满足第一数量小于n+1,因此,确定需重传的音频包为将这4个连续未接收到的音频帧中的最后一个音频帧(即,音频帧11)作为当前时刻的音频帧的音频包,即,需重传的音频包中除了包括音频帧11之外,还包括音频帧11之前的6个冗余音频帧,即,还包括与音频帧11对应的当前时刻之前的6个时刻的冗余音频帧5至10。由于需重传的音频包中包含了冗余音频帧8至10,因此,第二终端在接收到该重传的音频包之后可以利用接收到的该重传的音频包中的冗余音频帧恢复出其未接收到的音频包中与这些冗余音频帧对应的音频帧。
66.步骤3:当所述第一数量大于n时,则确定需重传的音频包为:将所述第一数量的音频帧中的第n+1个音频帧作为当前时刻的音频帧的音频包,并获取从所述第n+1个音频帧的下一个音频帧开始的剩余连续未接收到的音频帧的数量,并将所述第一数量更新为所述剩余连续未连接的音频帧的数量,返回所述对第一数量进行判断的步骤,直至确定需重传的音频包为:将所述剩余连续未接收的音频帧中的最后一个音频帧作为当前时刻的音频帧的音频包。这里,将所述第一数量的音频帧中的第n+1个音频帧作为当前时刻的音频帧的音频包,除了包含第n+1个音频帧之前,还包括第n+1个音频帧之前的预设数量的音频帧,即,还包括当前时刻(即,第n+1个音频帧对应的时刻)之前的预设数量的冗余音频帧。类似的,将所述剩余连续未接收的音频帧中的最后一个音频帧作为当前时刻的音频帧的音频包,除了包括所述剩余连续未接收的音频帧中的最后一个音频帧之外,还包括该最后一个音频帧之前的预设数量的音频帧,即,还包括当前时刻(即,与该最后一个音频帧对应的时刻)之前的预设数量的冗余音频帧。
67.例如,如图4中的(b)所示,如果每个音频包中包括的冗余音频帧的数量是6(即,n为6),音频帧8至16被确定为是连续9个未接收到的音频帧(即,第一数量为9),则由于第一数量为9且n为6,满足第一数量大于n,因此,首先确定需重传的音频包为将第n+1个音频帧(即,第7个音频帧,也就是音频帧14)作为当前时刻的音频帧的音频包,该音频包中除了包含音频帧14之外,还包括音频帧14之前的6个音频帧,即,还包括音频帧8至音频帧13。
68.接下来,获取从第7个音频帧的下一个音频帧开始的剩余连续未接收到的音频帧的数量,即,从第8个音频帧(即,音频帧15)开始重新计算连续未接收到的音频帧的数量,由于后面仅剩两个连续未接收到的音频帧,因此,剩余连续未接收到的音频帧的数量为2。此时,将第一数量更新为2,然后返回步骤1。由于此时第一数量=2而n=6,满足第一数量小于n+1,因此,确定需重传的音频包为:将剩余连续未接收到的音频帧中的最后一个音频帧(即,音频帧16)作为当前时刻的音频帧的音频包。这个音频包中除了包含音频帧16之外,还包含音频帧16之前的预设数量的音频帧。
69.最终,对于图4中的(b)所示的示例,需要重传的音频包仅为将音频帧14作为当前时刻的音频帧的音频包以及将音频帧16作为当前时刻的音频帧的音频包。在第二终端接收到重传的这两个音频包之后,由于第一个重传的音频包中除了包括音频帧14之外,还包括
冗余音频帧8至13,而第二个重传的音频包中除了包括即,音频帧16之外,还至少包括冗余音频帧15,因此,第二终端在接收到重传的音频包之后可以利用接收到的重传的音频包中的冗余音频帧恢复出其未接收到的音频包中与这些冗余音频帧对应的音频帧,例如,恢复出音频帧8至13以及音频帧15。
70.最后,在步骤s240,所述第一终端向所述第二终端发送所述需重传的音频包。
71.由于在第二终端未接收到音频包时,第一终端并不是直接进行音频包重传,而是有选择地重传,因此,在高丢包率的情况下,可以有效地节省码率,这是因为每个音频包还有包头,包头本身就会消耗不少码率,所以将几个音频帧合成一个音频包重传会比分别重传每个丢失的音频包节省码率。
72.以上,已经结合图2至图4描述了根据本公开示例性实施例的由第一终端执行的音频传输方法,由于不仅在每个音频包中包括当前时刻的音频帧以及当前时刻之前的预设数量的冗余音频帧,而且根据第二终端针对接收到的音频包的反馈确定第二终端接收到的音频包,并根据所述第二终端接收到的音频包中的冗余音频帧确定需重传的音频包,因此,相比传统的fec方案,在高丢包率的情况下,本公开的上述音频传输方法还可以通过主动重传进一步进行丢失音频数据的恢复。而相比传统的重传方案,由于进行了有选择的重传,在高丢包率下可以有效地节省码率。因此,本公开的这种将fec技术和重传技术相结合的音频传输方法使得可以在高丢包率的情况下进行高效的丢失音频数据的恢复。
73.图5是本公开示例性实施例的由第二终端执行的音频传输方法的流程图。需要说明的是,以上在描述第一终端执行的音频传输方法的过程中提及的与第二终端执行的操作相关的内容均适用于图5所示的由第二终端执行的音频传输方法,因此,相关内容不再赘述。
74.参照图5,在步骤s510,从第一终端接收多个音频包。所述多个音频包中的每个音频包中包括当前时刻的音频帧以及在所述当前时刻之前的预设数量的冗余音频帧。由于音频包中包括当前时刻之前的预设数量的冗余音频帧,因此,后续如果出现丢包而在丢失的包之后被接收端接收到的音频包中存在与丢失的包中的音频帧对应的冗余音频帧,则第二终端可以利用这些冗余音频帧来恢复丢失的包中与这些冗余音频帧对应的音频帧。
75.在步骤s520,向所述第一终端发送针对接收到的音频包的反馈。例如,当接收到音频包时,向发送端发送针对所述音频包的确认反馈。例如,确认反馈中可以包括接收到的音频包的包标识。例如,所述包标识包括所述第二终端接收到的音频包的索引信息。索引信息例如可以是接收的音频包的包序号。例如,第二终端根据接收到的音频包的包序号,可以知道多少音频包被接收到了,多少音频包丢失了,从而可以计算出丢包率,再把丢包率反馈给发送端。
76.因此,可选地,尽管图5中未示出,但是图5所示的方法还可包括:第二终端向第一终端发送针对第一终端所发送的音频包的丢包率的反馈。作为示例,第二终端可以周期性地向第一终端发送丢包率的反馈,例如,可以每个时刻都向第一终端发送丢包率的反馈,或者可以每隔几个时刻向第一终端发送丢包率的反馈。第一终端则可以根据接收端反馈回来的丢包率,调整在音频包中包括的冗余音频帧的预设数量。
77.此外,在步骤s530,接收第一终端发送的需重传的音频包。这里,如在上文中关于如2的描述中所提及的,所述需重传的音频包是所述第一终端根据所述反馈确定所述第二
终端接收到的音频包,并根据所述第二终端接收到的音频包中的冗余音频帧确定得到的在上文中,已经在参照图2至图4的描述中提及了第一终端如何确定需重传的音频包,因此,这里不再赘述。
78.由于第二终端接收到的音频包中既包括当前时刻的音频帧,也包括在当前时刻之前的预设数量的冗余音频帧,因此,第二终端还可以根据接收到的音频包中包括的冗余音频帧,恢复第二终端未接收到的音频包中的与该冗余音频帧对应的音频包。因此,可选地,图5所示的音频传输方法还可包括:所述第二终端根据接收到的音频包中包括的冗余音频帧,恢复所述第二终端未接收到的音频包中的与该冗余音频帧对应的音频帧。
79.由于图5所示的音频传输方法从第一终端接收到的音频包中除包括当前时刻的音频帧之外还包括当前时刻之前的预设数量的冗余音频帧,而且可以接收第一终端发送的需重传的音频包(所述需重传的音频包是所述第一终端根据所述反馈确定所述第二终端接收到的音频包,并根据所述第二终端接收到的音频包中的冗余音频帧确定得到的),因此,在高丢包率的情况下,可以接收有选择地重传的音频包,从而可高效地恢复丢失的音频数据。
80.图6是示出本公开示例性实施例的用于音频传输的第一终端的框图。
81.参照图6,第一终端600可包括音频发送单元610、反馈接收单元620和重传确定单元630。具体地,音频发送单元610可被配置为向第二终端发送多个音频包,其中,所述多个音频包中的每个音频包中包括当前时刻的音频帧以及当前时刻之前的预设数量的冗余音频帧。反馈接收单元620可被配置为接收所述第二终端针对接收到的音频包的反馈。重传确定单元630可被配置为:根据所述反馈确定第二终端接收到的音频包,并根据所述第二终端接收到的音频包中的冗余音频帧确定需重传的音频包。此外,音频发送单元610还可被配置为向第二终端发送所述需重传的音频包。
82.由于图2所示的音频传输方法可由图6所示的第一终端600来执行,并且以上已经在关于图2和图4的描述中描述了与音频发送单元610、反馈接收单元620和重传确定单元630所执行的操作有关的细节,因此,关于图6中的各单元所执行的操作中涉及的任何相关细节均可参见关于图2至图4的相应描述,这里都不再赘述。
83.此外,需要说明的是,尽管以上在介绍第一终端600时将其划分为用于分别执行相应处理的单元,然而,本领域技术人员清楚的是,上述各单元执行的处理也可以在第一终端600不进行任何具体单元划分或者各单元之间并无明确划界的情况下执行。此外,第一终端600还可包括其他单元,例如,存储单元、数据处理单元等。
84.图7是示出本公开另一示例性实施例的用于音频传输的第二终端的框图。
85.参照图7,第二终端700可包括音频接收单元710和反馈发送单元720。具体而言,音频接收单元710可被配置为从第一终端接收多个音频包,其中,所述多个音频包中的每个音频包中包括当前时刻的音频帧以及当前时刻之前的预设数量的冗余音频帧。反馈发送单元720可被配置为向所述第一终端发送针对接收到的音频包的反馈。此外,音频接收单元710还可以被配置为:接收第一终端发送的需重传的音频包,所述需重传的音频包是所述第一终端根据所述反馈确定所述第二终端接收到的音频包,并根据所述第二终端接收到的音频包中的冗余音频帧确定得到的。可选地,第二终端700还可包括恢复单元(未示出),恢复单元可根据接收到的音频包中包括的冗余音频帧,恢复第二终端未接收到的音频包中的与该冗余音频帧对应的音频帧。
86.由于图5所示的音频传输方法可由图7所示的第二终端700来执行,并且以上已经在关于图5的描述中描述了与音频接收单元710和反馈发送单元720所执行的操作有关的细节,因此,关于图7中的各单元所执行的操作中涉及的任何相关细节均可参见关于图5的相应描述,这里都不再赘述。
87.此外,需要说明的是,尽管以上在介绍第二终端700时将其划分为用于分别执行相应处理的单元,然而,本领域技术人员清楚的是,上述各单元执行的处理也可以在第二终端700不进行任何具体单元划分或者各单元之间并无明确划界的情况下执行。此外,第二终端700还可包括其他单元,例如,存储单元、数据处理单元等。
88.图8是根据本公开示例性实施例的电子设备的框图。
89.参照图8,电子设备800可包括至少一个存储器801和至少一个处理器802,所述至少一个存储器存储计算机可执行指令,计算机可执行指令在被至少一个处理器执行时,促使至少一个处理器802执行根据本公开实施例的音频传输方法(图2所示的由第一终端执行的音频传输方法或图5所示的由第二终端执行的音频传输方法)。
90.作为示例,电子设备可以是pc计算机、平板装置、个人数字助理、智能手机、或其他能够执行上述指令集合的装置。这里,电子设备并非必须是单个的电子设备,还可以是任何能够单独或联合执行上述指令(或指令集)的装置或电路的集合体。电子设备还可以是集成控制系统或系统管理器的一部分,或者可被配置为与本地或远程(例如,经由无线传输)以接口互联的便携式电子设备。
91.在电子设备中,处理器可包括中央处理器(cpu)、图形处理器(gpu)、可编程逻辑装置、专用处理器系统、微控制器或微处理器。作为示例而非限制,处理器还可包括模拟处理器、数字处理器、微处理器、多核处理器、处理器阵列、网络处理器等。
92.处理器可运行存储在存储器中的指令或代码,其中,存储器还可以存储数据。指令和数据还可经由网络接口装置而通过网络被发送和接收,其中,网络接口装置可采用任何已知的传输协议。
93.存储器可与处理器集成为一体,例如,将ram或闪存布置在集成电路微处理器等之内。此外,存储器可包括独立的装置,诸如,外部盘驱动、存储阵列或任何数据库系统可使用的其他存储装置。存储器和处理器可在操作上进行耦合,或者可例如通过i/o端口、网络连接等互相通信,使得处理器能够读取存储在存储器中的文件。
94.此外,电子设备还可包括视频显示器(诸如,液晶显示器)和用户交互接口(诸如,键盘、鼠标、触摸输入装置等)。电子设备的所有组件可经由总线和/或网络而彼此连接。
95.根据本公开的实施例,还可提供一种存储指令的计算机可读存储介质,其中,当所述指令由至少一个处理器执行时,促使所述至少一个处理器执行根据本公开示例性实施例的音频传输方法(图2所示的由第一终端执行的音频传输方法或图5所示的由第二终端执行的音频传输方法)。这里的计算机可读存储介质的示例包括:只读存储器(rom)、随机存取可编程只读存储器(prom)、电可擦除可编程只读存储器(eeprom)、随机存取存储器(ram)、动态随机存取存储器(dram)、静态随机存取存储器(sram)、闪存、非易失性存储器、cd-rom、cd-r、cd+r、cd-rw、cd+rw、dvd-rom、dvd-r、dvd+r、dvd-rw、dvd+rw、dvd-ram、bd-rom、bd-r、bd-r lth、bd-re、蓝光或光盘存储器、硬盘驱动器(hdd)、固态硬盘(ssd)、卡式存储器(诸如,多媒体卡、安全数字(sd)卡或极速数字(xd)卡)、磁带、软盘、磁光数据存储装置、光学数
据存储装置、硬盘、固态盘以及任何其他装置,所述任何其他装置被配置为以非暂时性方式存储计算机程序以及任何相关联的数据、数据文件和数据结构并将所述计算机程序以及任何相关联的数据、数据文件和数据结构提供给处理器或计算机使得处理器或计算机能执行所述计算机程序。上述计算机可读存储介质中的指令或计算机程序可在诸如客户端、主机、代理装置、服务器等计算机设备中部署的环境中运行,此外,在一个示例中,计算机程序以及任何相关联的数据、数据文件和数据结构分布在联网的计算机系统上,使得计算机程序以及任何相关联的数据、数据文件和数据结构通过一个或多个处理器或计算机以分布式方式存储、访问和执行。
96.根据本公开的实施例中,还可提供一种计算机程序产品,该计算机程序包括计算机指令,所述计算机指令被处理器执行时实现根据本公开示例性实施例的音频传输方法(图2所示的由第一终端执行的音频传输方法或图5所示的由第二终端执行的音频传输方法)。
97.本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本技术旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由权利要求限定。

技术特征:
1.一种音频传输方法,包括:第一终端向第二终端发送多个音频包,其中,所述多个音频包中的每个音频包中包括当前时刻的音频帧以及在所述当前时刻之前的预设数量的冗余音频帧;所述第一终端接收所述第二终端针对接收到的音频包的反馈;所述第一终端根据所述反馈确定第二终端接收到的音频包,并根据所述第二终端接收到的音频包中的冗余音频帧确定需重传的音频包;所述第一终端向所述第二终端发送所述需重传的音频包。2.如权利要求1所述的音频传输方法,其中,所述根据所述第二终端接收到的音频包中的冗余音频帧确定需重传的音频包,包括:所述第一终端根据所述第二终端接收到的音频包中的冗余音频帧,获取所述第二终端连续未接收到的音频帧的第一数量;获取每个音频包中包含的冗余音频帧的第二数量;根据所述第一数量和所述第二数量确定需重传的音频包。3.如权利要求2所述的音频传输方法,其中,所述第二数量为n;所述根据所述第一数量和第二数量确定需重传的音频包,包括:对所述第一数量进行判断;当所述第一数量小于等于n+1时,则确定需重传的音频包为:将所述第一数量的音频帧中的最后一个音频帧作为当前时刻的音频帧的音频包;当所述第一数量大于n时,则确定需重传的音频包为:将所述第一数量的音频帧中的第n+1个音频帧作为当前时刻的音频帧的音频包,并获取从所述第n+1个音频帧的下一个音频帧开始的剩余连续未接收到的音频帧的数量,并将所述第一数量更新为所述剩余连续未连接的音频帧的数量,返回所述对第一数量进行判断的步骤,直至确定需重传的音频包为:将所述剩余连续未接收的音频帧中的最后一个音频帧作为当前时刻的音频帧的音频包。4.如权利要求2或3所述的音频传输方法,其中,所述第一终端根据所述第二终端接收到的音频包中的冗余音频帧,获取所述第二终端连续未接收到的音频帧的第一数量,包括:所述第一终端根据所述第二终端接收到的音频包中的冗余音频帧,当确定所述第二终端未接收到某个音频帧时开始计数,直至当确定所述第二终端再次接收到音频帧时停止计数,获取第二终端连续未接收到的音频帧的第一数量。5.如权利要求1所述的音频传输方法,还包括:所述第一终端获取向所述第二终端发送的音频包的丢包率;根据所述丢包率调整所述预设数量。6.一种音频传输方法,包括:从第一终端接收多个音频包,其中,所述多个音频包中的每个音频包中包括当前时刻的音频帧以及在所述当前时刻之前的预设数量的冗余音频帧;向所述第一终端发送针对接收到的音频包的反馈;接收第一终端发送的需重传的音频包,所述需重传的音频包是所述第一终端根据所述反馈确定所述第二终端接收到的音频包,并根据所述第二终端接收到的音频包中的冗余音频帧确定得到的。7.一种用于音频传输的第一终端,包括:
音频发送单元,被配置为向第二终端发送多个音频包,其中,所述多个音频包中的每个音频包中包括当前时刻的音频帧以及在所述当前时刻之前的预设数量的冗余音频帧;反馈接收单元,被配置为接收所述第二终端针对接收到的音频包的反馈;重传确定单元,被配置为:根据所述反馈确定第二终端接收到的音频包,并根据所述第二终端接收到的音频包中的冗余音频帧确定需重传的音频包;其中,所述音频发送单元还被配置为向所述第二终端发送所述需重传的音频包。8.一种用于音频传输的第二终端,包括:音频接收单元,被配置为从第一终端接收多个音频包,其中,所述多个音频包中的每个音频包中包括当前时刻的音频帧以及在所述当前时刻之前的预设数量的冗余音频帧;反馈发送单元,被配置为向所述第一终端发送针对接收到的音频包的反馈;其中,音频接收单元,还被配置为接收第一终端发送的需重传的音频包,所述需重传的音频包是所述第一终端根据所述反馈确定所述第二终端接收到的音频包,并根据所述第二终端接收到的音频包中的冗余音频帧确定得到的。9.一种电子设备,其特征在于,包括:至少一个处理器;至少一个存储计算机可执行指令的存储器,其中,所述计算机可执行指令在被所述至少一个处理器运行时,促使所述至少一个处理器执行如权利要求1到5中的任一权利要求所述的音频传输方法。10.一种存储指令的计算机可读存储介质,其特征在于,当所述指令被至少一个处理器运行时,促使所述至少一个处理器执行如权利要求1到5中的任一权利要求所述的音频传输方法。

技术总结
本公开关于一种音频传输方法、终端、电子设备及存储介质,所述音频传输方法包括:第一终端向第二终端发送多个音频包,其中,所述多个音频包中的每个音频包中包括当前时刻的音频帧以及在所述当前时刻之前的预设数量的冗余音频帧;所述第一终端接收所述第二终端针对接收到的音频包的反馈;所述第一终端根据所述反馈确定第二终端接收到的音频包,并根据所述第二终端接收到的音频包中的冗余音频帧确定需重传的音频包;所述第一终端向所述第二终端发送所述需重传的音频包。发送所述需重传的音频包。发送所述需重传的音频包。


技术研发人员:邢文浩 张晨 韩润强 井伟明
受保护的技术使用者:北京达佳互联信息技术有限公司
技术研发日:2021.12.03
技术公布日:2022/3/8

最新回复(0)