1.本技术涉及计算机技术领域,具体而言,涉及一种数据传输方法、数据传输系统、数据传输装置、计算机可读存储介质及电子设备。
背景技术:2.在音频数据传输过程中,通常会因为传输网络不稳定等原因导致数据传输过程出现丢包现象。针对丢包现象,一般采用前向纠错技术计算所传输的音频数据的纠错码,以使得接收方能够该纠错码对音频数据进行数据纠错,进而保证接收方能够获得传输的完整音频数据。但是,在实时音频数据传输过程中,通常会存在如下情况:音频数据包中的音频数据(例如,轻微的环境音)在被解码输出后并不一定能够被人耳所感知,如果依照上述方式对此类数据也进行纠错码计算,则在数据传输过程中容易造成带宽利用率不高的问题。
3.需要说明的是,在上述背景技术部分公开的信息仅用于加强对本技术的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
技术实现要素:4.本技术的目的在于提供一种数据传输方法、数据传输系统、数据传输装置、计算机可读存储介质及电子设备,可以提升带宽利用率,改善对于网络资源的浪费问题。
5.本技术的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本技术的实践而习得。
6.根据本技术的一方面,提供一种数据传输方法,包括:
7.获取目标音频数据包对应的响度;
8.根据目标音频数据包对应的响度计算目标音频数据包的目标纠错码;
9.向接收方终端传输目标音频数据包和目标纠错码。
10.在本技术的一种示例性实施例中,获取目标音频数据包对应的响度之前,上述方法还包括:
11.从接收到的多个音频数据包中筛选音频特征满足预设条件的目标音频数据包。
12.在本技术的一种示例性实施例中,音频数据包中包括音频数据包对应的响度、音频码流和音频码流对应的音频特征,音频码流对应的音频特征包括音频码流对应的能量分布以及音频码流中各频点对应的能量幅值。
13.在本技术的一种示例性实施例中,从接收到的多个音频数据包中筛选音频特征满足预设条件的目标音频数据包之前,上述方法还包括:
14.获取多个音频数据包分别对应的纠错码;
15.根据纠错码对多个音频数据包进行丢包检测,得到多个音频数据包分别对应的丢包率;
16.向发送方终端反馈丢包率并根据纠错码对多个音频数据包进行纠错。
17.在本技术的一种示例性实施例中,接收到的多个音频数据包由发送方终端发送;
18.其中,发送方终端发送多个音频数据包的方式具体为:
19.发送方终端采集音频信号并对音频信号进行特征提取,得到音频特征;
20.发送方终端对音频信号进行编码,得到音频码流;
21.发送方终端将音频码流和音频特征打包为音频数据包并发送至服务器。
22.在本技术的一种示例性实施例中,预设条件包括预设能量幅值和/ 或预设信噪比,从接收到的多个音频数据包中筛选音频特征满足预设条件的目标音频数据包,包括:
23.若检测到音频码流的音频特征中存在大于预设能量幅值的至少一个能量幅值,则将音频码流所属的音频数据包确定为目标音频数据包;和/ 或,
24.若检测到音频码流的音频特征中存在大于预设信噪比的至少一个信噪比,则将音频码流所属的音频数据包确定为目标音频数据包。
25.在本技术的一种示例性实施例中,上述方法还包括:
26.发送方终端根据预设时长对所述音频码流进行分帧处理,得到多个音频帧;
27.所述发送方终端通过预设窗函数分别处理多个音频帧,得到多个参考帧;
28.发送方终端计算多个参考帧分别对应的功率谱;
29.发送方终端根据功率谱计算音频数据包对应的响度。
30.在本技术的一种示例性实施例中,预设窗函数为汉宁窗函数、汉明窗函数、布莱克曼窗函数、凯泽窗函数、三角形窗函数或矩形窗函数。
31.在本技术的一种示例性实施例中,发送方终端根据功率谱计算音频数据包对应的响度,包括:
32.发送方终端根据功率谱中各频点的能量幅值计算功率谱中各频点的频点响度;
33.发送方终端根据频点响度计算功率谱中各频点的响度权重;
34.发送方终端计算功率谱中各频点的能量幅值与功率谱中各频点的响度权重之间的加权和,作为功率谱对应的参考帧的响度值;
35.发送方终端将多个参考帧分别的响度值之和确定为音频数据包对应的响度。
36.在本技术的一种示例性实施例中,根据目标音频数据包对应的响度计算目标音频数据包的目标纠错码,包括:
37.根据接收方终端反馈的丢包率确定参考冗余度;其中,丢包率与距离目标音频数据包的发送时间最近的历史单位时间相对应;
38.根据参考冗余度和目标音频数据包对应的响度计算目标音频数据包对应的目标冗余度;
39.根据目标冗余度计算目标音频数据包的目标纠错码。
40.在本技术的一种示例性实施例中,根据参考冗余度和目标音频数据包对应的响度计算目标音频数据包对应的目标冗余度,包括:
41.将目标音频数据包对应的响度作为预设函数表达式的输入计算输出值;
42.将输出值和参考冗余度的乘积确定为目标音频数据包的目标冗余度。
43.在本技术的一种示例性实施例中,向接收方终端传输目标音频数据包和目标纠错码,包括:
44.将目标音频数据包和目标纠错码打包为待传输数据包传输至接收方终端,以使得接收方终端在解码待传输数据包后根据解码结果中的目标纠错码检测目标音频数据包对
应的丢包情况并根据丢包情况对目标音频数据包进行纠错。
45.在本技术的一种示例性实施例中,接收方终端在解码待传输数据包后根据解码结果中的目标纠错码检测目标音频数据包对应的丢包情况并根据丢包情况对目标音频数据包进行纠错的方式具体为:
46.接收方终端对待传输数据包进行解码,得到目标音频数据包中的音频码流和目标纠错码;
47.接收方终端根据目标纠错码检测目标音频数据包中的音频码流的丢失码;
48.接收方终端根据目标纠错码对丢失码进行还原,以实现对于目标音频数据包的纠错。
49.在本技术的一种示例性实施例中,接收方终端根据目标纠错码对丢失码进行还原,以实现对于目标音频数据包的纠错之后,上述方法还包括:
50.接收方终端对所有纠错后的目标音频数据包进行混音,得到混音信号并播放。
51.根据本技术的一方面,提供一种数据传输系统,包括发送方终端、服务器以及接收方终端,其中:
52.发送方终端,用于向服务器发送目标音频数据包,目标音频数据包中包括目标音频数据包对应的响度;
53.服务器,用于接收目标音频数据包并获取目标音频数据包对应的响度;根据目标音频数据包对应的响度计算目标音频数据包的目标纠错码;向接收方终端传输目标音频数据包和目标纠错码;
54.接收方终端,用于根据目标纠错码检测目标音频数据包对应的丢包情况。
55.根据本技术的一方面,提供一种数据传输装置,包括:
56.响度获取单元,用于获取目标音频数据包对应的响度;
57.纠错码计算单元,用于根据目标音频数据包对应的响度计算目标音频数据包的目标纠错码;
58.数据发送单元,用于向接收方终端传输目标音频数据包和目标纠错码。
59.在本技术的一种示例性实施例中,上述装置还包括:
60.数据筛选单元,用于在响度获取单元获取目标音频数据包对应的响度之前,从接收到的多个音频数据包中筛选音频特征满足预设条件的目标音频数据包。
61.在本技术的一种示例性实施例中,音频数据包中包括音频数据包对应的响度、音频码流和音频码流对应的音频特征,音频码流对应的音频特征包括音频码流对应的能量分布以及音频码流中各频点对应的能量幅值。
62.在本技术的一种示例性实施例中,上述装置还包括:
63.纠错码获取单元,用于在数据筛选单元从接收到的多个音频数据包中筛选音频特征满足预设条件的目标音频数据包之前,获取多个音频数据包分别对应的纠错码;
64.丢包检测单元,用于根据纠错码对多个音频数据包进行丢包检测,得到多个音频数据包分别对应的丢包率;
65.数据纠错单元,用于向发送方终端反馈所述丢包率并根据纠错码对多个音频数据包进行纠错。
66.在本技术的一种示例性实施例中,接收到的多个音频数据包由发送方终端发送;
67.其中,发送方终端发送多个音频数据包的方式具体为:
68.发送方终端采集音频信号并对音频信号进行特征提取,得到音频特征;
69.发送方终端对音频信号进行编码,得到音频码流;
70.发送方终端将音频码流和音频特征打包为音频数据包并发送至服务器。
71.在本技术的一种示例性实施例中,预设条件包括预设能量幅值和/ 或预设信噪比,数据筛选单元从接收到的多个音频数据包中筛选音频特征满足预设条件的目标音频数据包,包括:
72.若检测到音频码流的音频特征中存在大于预设能量幅值的至少一个能量幅值,则将音频码流所属的音频数据包确定为目标音频数据包;和/ 或,
73.若检测到音频码流的音频特征中存在大于预设信噪比的至少一个信噪比,则将音频码流所属的音频数据包确定为目标音频数据包。
74.在本技术的一种示例性实施例中,还包括:
75.发送方终端根据预设时长对所述音频码流进行分帧处理,得到多个音频帧;
76.所述发送方终端通过预设窗函数分别处理多个音频帧,得到多个参考帧;
77.发送方终端计算多个参考帧分别对应的功率谱;
78.发送方终端根据功率谱计算音频数据包对应的响度。
79.在本技术的一种示例性实施例中,预设窗函数为汉宁窗函数、汉明窗函数、布莱克曼窗函数、凯泽窗函数、三角形窗函数或矩形窗函数。
80.在本技术的一种示例性实施例中,发送方终端根据功率谱计算音频数据包对应的响度,包括:
81.发送方终端根据功率谱中各频点的能量幅值计算功率谱中各频点的频点响度;
82.发送方终端根据频点响度计算功率谱中各频点的响度权重;
83.发送方终端计算功率谱中各频点的能量幅值与功率谱中各频点的响度权重之间的加权和,作为功率谱对应的参考帧的响度值;
84.发送方终端将多个参考帧分别的响度值之和确定为音频数据包对应的响度。
85.在本技术的一种示例性实施例中,纠错码计算单元根据目标音频数据包对应的响度计算目标音频数据包的目标纠错码,包括:
86.根据接收方终端反馈的丢包率确定参考冗余度;其中,丢包率与距离目标音频数据包的发送时间最近的历史单位时间相对应;
87.根据参考冗余度和目标音频数据包对应的响度计算目标音频数据包对应的目标冗余度;
88.根据目标冗余度计算目标音频数据包的目标纠错码。
89.在本技术的一种示例性实施例中,纠错码计算单元根据参考冗余度和目标音频数据包对应的响度计算目标音频数据包对应的目标冗余度,包括:
90.将目标音频数据包对应的响度作为预设函数表达式的输入计算输出值;
91.将输出值和参考冗余度的乘积确定为目标音频数据包的目标冗余度。
92.在本技术的一种示例性实施例中,数据发送单元向接收方终端传输目标音频数据包和目标纠错码,包括:
93.将目标音频数据包和目标纠错码打包为待传输数据包传输至接收方终端,以使得
接收方终端在解码待传输数据包后根据解码结果中的目标纠错码检测目标音频数据包对应的丢包情况并根据丢包情况对目标音频数据包进行纠错。
94.在本技术的一种示例性实施例中,接收方终端在解码待传输数据包后根据解码结果中的目标纠错码检测目标音频数据包对应的丢包情况并根据丢包情况对目标音频数据包进行纠错的方式具体为:
95.接收方终端对待传输数据包进行解码,得到目标音频数据包中的音频码流和目标纠错码;
96.接收方终端根据目标纠错码检测目标音频数据包中的音频码流的丢失码;
97.接收方终端根据目标纠错码对丢失码进行还原,以实现对于目标音频数据包的纠错。
98.在本技术的一种示例性实施例中,接收方终端根据目标纠错码对丢失码进行还原,以实现对于目标音频数据包的纠错之后,还包括:
99.接收方终端对所有纠错后的目标音频数据包进行混音,得到混音信号并播放。
100.根据本技术的一方面,提供一种电子设备,包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行上述任意一项所述的方法。
101.根据本技术的一方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项所述的方法。
102.本技术示例性实施例可以具有以下部分或全部有益效果:
103.在本技术的一示例实施方式所提供的数据传输方法中,可以获取目标音频数据包对应的响度;根据目标音频数据包对应的响度计算目标音频数据包的目标纠错码;向接收方终端传输目标音频数据包和目标纠错码。依据上述方案描述,本技术一方面可以根据目标音频数据包对应的响度计算对应的目标纠错码,而非对所有音频数据包计算纠错码,以实现对于带宽利用率的提升;另一方面,相较于现有技术计算所有音频数据包的纠错码并传输所有音频数据包和其对应的纠错码,可以实现对于有效数据的传输,从而改善对于网络资源的浪费问题。
104.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本技术。
附图说明
105.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本技术的实施例,并与说明书一起用于解释本技术的原理。显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
106.图1示出了可以应用本技术实施例的一种数据传输方法及数据传输装置的示例性系统架构的示意图;
107.图2示出了适于用来实现本技术实施例的电子设备的计算机系统的结构示意图;
108.图3示意性示出了本技术实施例所基于的一种数据传输方法的架构图;
109.图4示意性示出了根据本技术的一个实施例的数据传输方法的流程图;
110.图5示意性示出了根据本技术的一个实施例的声学等响曲线图;
111.图6示意性示出了根据本技术的一个实施例的响度权重曲线图;
112.图7示意性示出了根据本技术的一个实施例的fec包的结构图;
113.图8示意性示出了根据本技术的一个实施例的fec头的结构图;
114.图9示意性示出了根据本技术的一个实施例的数据传输系统的结构框图;
115.图10示意性示出了根据本技术的另一个实施例的数据传输系统的结构框图;
116.图11示意性示出了根据本技术的又一个实施例的数据传输系统的结构框图;
117.图12示意性示出了根据本技术的一个实施例中的数据传输装置的结构框图。
具体实施方式
118.现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本技术将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本技术的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本技术的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本技术的各方面变得模糊。
119.此外,附图仅为本技术的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
120.图1示出了可以应用本技术实施例的一种数据传输方法及数据传输装置的示例性应用环境的系统架构的示意图。
121.如图1所示,系统架构100可以包括终端设备101、102、103中的一个或多个,网络104和服务器105。网络104用以在终端设备101、102、 103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。终端设备101、 102、103可以是具有显示屏的各种电子设备,包括但不限于台式计算机、便携式计算机、智能手机和平板电脑等等。应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。
122.具体地,本技术实施例所提供的数据传输方法一般由服务器105执行,相应地,数据传输装置一般设置于服务器105中。但本领域技术人员容易理解的是,本技术实施例所提供的数据传输方法也可以由终端设备101、102或103执行,相应的,数据传输装置也可以设置于终端设备101、102或103中,本示例性实施例中对此不做特殊限定。举例而言,在一种示例性实施例中,服务器105可以获取目标音频数据包对应的响度;根据目标音频数据包对应的响度计算目标音频数据包的目标纠错码;向接收方终端传输目标音频数据包和目标纠错码。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
123.图2示出了适于用来实现本技术实施例的电子设备的计算机系统的结构示意图。
124.需要说明的是,图2示出的电子设备的计算机系统200仅是一个示例,不应对本技术实施例的功能和使用范围带来任何限制。
125.如图2所示,计算机系统200包括中央处理单元(cpu)201,其可以根据存储在只读存储器(rom)202中的程序或者从储存部分208加载到随机访问存储器(ram)203中的程序而执行各种适当的动作和处理。在ram 203中,还存储有系统操作所需的各种程序和数据。cpu 201、 rom 202以及ram 203通过总线204彼此相连。输入/输出(i/o)接口 205也连接至总线204。
126.以下部件连接至i/o接口205:包括键盘、鼠标等的输入部分206;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分207;包括硬盘等的储存部分208;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分209。通信部分209经由诸如因特网的网络执行通信处理。驱动器210也根据需要连接至i/o接口205。可拆卸介质211,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器210上,以便于从其上读出的计算机程序根据需要被安装入储存部分208。
127.特别地,根据本技术的实施例,下文参考流程图描述的过程可以被实现为计算机软件程序。例如,本技术的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分209从网络上被下载和安装,和/或从可拆卸介质 211被安装。在该计算机程序被中央处理单元(cpu)201执行时,执行本技术的方法和装置中限定的各种功能。
128.一般来说,音频传输过程中很难避免丢包情况发生,导致丢包的原因通常有:wifi或移动网络的无线信道干扰、高峰时期路由器拥塞、移动设备性能不足等。当一个音频数据包在网络上传输的时间过长,即,在需要播放时不能及时传达,即使后续收到也会判定丢包。现有的丢包处理方式一般为:接收端在接收到发送端传输的数据时对其进行丢包检测,若存在丢包情况,则反馈至发送端以使其进行数据重发,直到检测到接收到的数据中不存在丢包为止。
129.请参阅图3,图3示意性示出了本技术实施例所基于的一种数据传输方法的架构图。图3所示的架构图包括:发送方终端310、服务器320 以及接收方终端330;其中,发送方终端310包括特征提取模块311、语音编码模块312以及前向编码模块313,服务器320包括丢包检测模块 321、音频选路模块322以及前向编码模块323,接收方终端330包括丢包检测模块331、语音解码模块332、混音模块333以及播放模块334。
130.具体地,特征提取模块311可以采集音频信号,对采集到的音频信号进行特征提取,得到音频特征,并将采集到的音频信号发送至语音编码模块312。语音编码模块312可以对音频信号进行编码,得到对应的音频码流,并将音频码流发送至前向编码模块323。前向编码模块323 可以将相匹配的音频码流和音频特征打包为音频数据包,根据丢包检测模块321反馈的前一单位时间内的丢包率计算音频数据包的纠错码并打包发送至服务器320,以使得服务器320中的丢包检测模块321对接收到的音频数据包进行丢包检测并在音频数据包存在丢包情况时,根据纠错码对其进行纠错并将纠错后的音频数据包发送至音频选路模块322。
131.进而,音频选路模块322可以根据数据分组中每个数据包对应的音频特征对数据
分组中的音频数据包进行筛选,得到目标音频数据包;其中,目标音频数据包对应的最大能量幅值大于数据分组中其他音频数据包,或者,目标音频数据包对应的能量谱分布与预设能量谱分布的相似度大于数据分组中其他音频数据包。进而,音频选路模块322可以将目标音频数据包发送至前向编码模块323,以使得前向编码模块323根据丢包检测模块331反馈的前一单位时间内的丢包率计算目标音频数据包的纠错码并打包发送至接收方终端330。进而,接收方终端330中的丢包检测模块331对接收到的目标音频数据包进行丢包检测并在目标音频数据包存在丢包情况时,根据纠错码对其进行纠错并将纠错后的目标音频数据包发送至语音解码模块332。
132.进而,语音解码模块332可以将各个目标音频数据包中的音频码流解码为音频信号,并将解码得到的音频信号发送至混音模块333,以使得混音模块333对音频信号进行混音处理。进而,混音模块333可以将混音处理结果发送至播放模块334,以使得播放模块334播放混音处理结果。
133.在现代通信系统中,差错控制方式通常包括以下几种类型:自动重传请求(automatic repeat request,arq)、前向纠错(forward errorcorrection,fec)、混合差错控制(hybrid error correction,hec)和信息反馈(information repeat request,irq)。arq是一种检错机制,通过反馈应答方式来保证数据的可靠性。接收端译码器使用发送端发出的检错码来判断传输中是否出错,并通过反馈信道将检错结果告知发送端。若接收端正确接收数据,则向发送端发送确认消息ack,否则发送端认为数据传输失败,重新向接收端发送该消息,直至收到来自接收端的确认信息后再继续发送新的数据。arq方式不具备纠错能力,仅能检查出错误而不能纠正错误,其优点是译码设备简单,在多余度一定时,码的检错能力比纠错能力高得多,可获得较低的误码率,但发送ack会增加网络开销并影响传输速率,传输信息的连贯性和实时性也较差,不适用于视频流的传输。fec是一种纠错机制,通过发送冗余信息来恢复丢失的数据包。发送端发送具有纠错能力的纠错码,接收端根据收到的数据和使用的编码规则进行译码,以纠正传输过程中出现的错误。fec方式避免了信息的重传,缩短了恢复错误数据所需的时间,传输时延较小。因此,相比于arq方式,fec更适于实时通信中信息丢失的处理,可以极大地降低丢包率,然而,由于添加了冗余包,不可避免地降低了带宽利用率,还可能引起网络拥塞。
134.进一步地,当fec应用于对于多人会议的数据传输时,由于用户通常对响度较弱的音频信号感知力较弱,申请人想到可以将用户听觉不容易感知的响度较弱的音频信号作为音频数据包的筛选条件。具体地,如果服务器不仅能够根据音频信号的能量对音频数据包进行筛选,还能够通过音频信号的响度对筛选后的音频数据包进行二次筛选,进而再对二次筛选后的音频数据包计算纠错码并将包含二次筛选后的音频数据包以及纠错码的数据包传输至接收方终端,就可以提升带宽利用率,改善对于网络资源的浪费问题。
135.基于上述问题,本示例实施方式提供了一种数据传输方法。该数据传输方法可以应用于上述服务器105,也可以应用于上述终端设备101、 102、103中的一个或多个,本示例性实施例中对此不做特殊限定。参考图4所示,该数据传输方法可以包括以下步骤s410至步骤s430:
136.步骤s410:获取目标音频数据包对应的响度。
137.步骤s420:根据目标音频数据包对应的响度计算目标音频数据包的目标纠错码。
138.步骤s430:向接收方终端传输目标音频数据包和目标纠错码。
139.其中,步骤s410和步骤s430可以由服务器执行。举例来说,该服务器可以为用于筛选通路信号的选路服务器。
140.实施图1所示的方法,可以根据目标音频数据包对应的响度计算对应的目标纠错码,而非对所有音频数据包计算纠错码,以实现对于带宽利用率的提升。此外,相较于现有技术计算所有音频数据包的纠错码并传输所有音频数据包和其对应的纠错码,可以实现对于有效数据的传输,从而改善对于网络资源的浪费问题。
141.下面,对于本示例实施方式的上述步骤进行更加详细的说明。
142.在步骤s410中,获取目标音频数据包对应的响度。
143.本技术实施例中,可选的,获取目标音频数据包对应的响度之前,上述方法还包括:从接收到的多个音频数据包中筛选音频特征满足预设条件的目标音频数据包。
144.其中,音频数据包中包括音频数据包对应的响度、音频码流和音频码流对应的音频特征,音频码流对应的音频特征可以包括音频码流对应的能量分布以及音频码流中各频点对应的能量幅值。此外,目标音频数据包的数量为一个或多个,本技术实施例不作限定。
145.可见,实施该可选的实施例,能够通过音频特征对接收到的音频数据包进行筛选,以降低转发的数据量,从而降低对于网络资源的损耗,提升数据传输效率。
146.本技术实施例中,可选的,从接收到的多个音频数据包中筛选音频特征满足预设条件的目标音频数据包之前,上述方法还包括:
147.获取多个音频数据包分别对应的纠错码;根据纠错码对多个音频数据包进行丢包检测,得到多个音频数据包分别对应的丢包率;向发送方终端反馈丢包率并根据纠错码对多个音频数据包进行纠错。
148.具体地,发送方终端的数量可以为一个或多个,本技术实施例不作限定。当本技术实施例应用于多人会议时,多人会议中的会议成员终端可以作为发送方终端,同时也可以作为接收方终端。另外,多个音频数据包可以同属于一个数据分组,发送方终端一次可以发送一个数据分组或多个数据分组,每个数据分组中包括一个或多个音频数据包,多个音频数据包对应于不同的音频通路。
149.作为一种可选的实施方式,获取多个音频数据包分别对应的纠错码的方式具体可以为:根据里所码(reed-solomon codes,rs编码)的编码方式获取多个音频数据包分别对应的纠错码。具体包括:根据伽罗华域(galois field,gf)构造音频数据包分别对应的多项式,根据多项式确定用于表示音频数据包的校验方程,求解校验方程得到音频数据包对应的纠错码。
150.作为一种可选的实施方式,根据纠错码对多个音频数据包进行丢包检测,得到多个音频数据包分别对应的丢包率的方式具体可以为:根据纠错码分别检测多个音频数据包的音频码流中各码字的连续性,若检测到不存在连续性的两个码字,则确定不存在连续性的两个码字之间缺失的码字,作为相对应的音频数据包的丢失码。
151.作为一种可选的实施方式,向发送方终端反馈丢包率并根据纠错码对多个音频数据包进行纠错的方式具体可以为:按照预设单位时间(如, 10秒)向发送方终端反馈预设单位时间内的丢包率并根据多个音频数据包分别对应的纠错码对多个音频数据包进行纠错。
152.可见,实施该可选的实施例,能够通过向发送方终端传输丢包率,为发送方终端计
算冗余度提供参考条件,这样可以使得发送方终端每次计算出的冗余度与上一预设单位时间内的丢包率相关,提升本技术的自适应性。
153.本技术实施例中,可选的,接收到的多个音频数据包由发送方终端发送;
154.其中,发送方终端发送多个音频数据包的方式具体为:发送方终端采集音频信号并对音频信号进行特征提取,得到音频特征;对音频信号进行编码,得到音频码流;将音频码流和音频特征打包为音频数据包并发送至服务器。
155.需要说明的是,发送方终端采集的音频信号可以为模拟信号。音频码流用于表示音频信号在单位时间内使用的数据流量,音频码流=采样率 *比特数*声道,如,44100*16*2=1.41mbit/sec。
156.作为一个可选的实施方式,音频信号对应的音频特征可以包括过零率、短时能量、短时自相关函数以及短时平均幅度差中至少一种,本技术实施例不作限定。
157.当音频信号对应的音频特征包括过零率时,发送方终端采集音频信号并对音频信号进行特征提取,得到音频特征的方式具体可以为:发送方终端采集音频信号并根据计算音频信号的过零率,作为音频信号的音频特征;其中,n为音频信号的帧长,n为音频信号的帧数。计算得到的过零率可以用于表征每帧音频信号通过零值的次数,通过上述的过零率可以判定音频信号中清音和浊音,有利于服务器筛选接收到的多个音频数据包。
158.当音频信号对应的音频特征包括短时能量时,发送方终端采集音频信号并对音频信号进行特征提取,得到音频特征的方式具体可以为:发送方终端采集音频信号并根据检测采集到的音频信号中第n帧音频信号xn(m)的短时能量en,得到各帧对应的短时能量,作为音频信号的音频特征;其中,n为音频信号的帧长,n为正整数。一般来说,人声的能量比噪声的能量大,计算得到的各帧对应的短时能量能够用于区分音频信号中的人声和噪声,进而有利于服务器根据该各帧对应的能量对接收到的多个音频数据包进行噪声筛除,从而提升对于音频数据的处理效率。
159.当音频信号对应的音频特征包括短时自相关函数时,发送方终端采集音频信号并对音频信号进行特征提取,得到音频特征的方式具体可以为:发送方终端采集音频信号并根据根据计算音频信号的短时自相关函数,作为音频信号的音频特征;其中,n为音频信号的帧长,n为正整数,w用于表示窗函数,w’(m)用于表示加窗后的音频帧。计算得到的短时自相关函数能够用于衡量信号自身时间波形的相似性,有利于服务器根据短时自相关函数检测音频的相似特性,从而有利于提升对于音频数据的处理效率。
160.当音频信号对应的音频特征包括短时平均幅度差时,发送方终端采集音频信号并对音频信号进行特征提取,得到音频特征的方式具体可以为:发送方终端采集音频信号并根据计算音频信号的短时平均幅度差,作为音频信号的音频特征;其中,k=0,1,
……
,n-1,计算得到的短时平均幅度差可以用于衡量音频幅度的变化。
161.此外,音频信号对应的音频特征还可以包括语谱图、短时功率谱密度、谱熵、基频、
共振峰等特征,本技术实施例不作限定。
162.可见,实施该可选的实施例,发送方终端可以对音频信号进行特征提取,这样可以有利于服务器依据特征提取的结果进行通路信号选取,从而在保证多人会议的音频输出实时性的同时,还能够保证音频输出的效果。
163.本技术实施例中,可选的,预设条件包括预设能量幅值和/或预设信噪比,从接收到的多个音频数据包中筛选音频特征满足预设条件的目标音频数据包,包括:
164.若检测到音频码流的音频特征中存在大于预设能量幅值的至少一个能量幅值,则将音频码流所属的音频数据包确定为目标音频数据包;和/ 或,
165.若检测到音频码流的音频特征中存在大于预设信噪比的至少一个信噪比,则将音频码流所属的音频数据包确定为目标音频数据包。
166.具体地,音频码流中各音频帧分别对应一个能量幅值,能量幅值用于表示音频帧对应的短时能量。信噪比(signal-to-noise ratio)为音频信号的平均功率和噪声的平均功率之比,即:信噪比(db)=10*log10(s/n) (db)。
167.可见,实施该可选的实施例,能够通过能量幅值或信噪比对音频数据包进筛选,以精简需要传输的音频数据包,提升数据传输效率。
168.本技术实施例中,可选的,上述方法还包括:
169.发送方终端根据预设时长对所述音频码流进行分帧处理,得到多个音频帧;通过预设窗函数分别处理多个音频帧,得到多个参考帧;计算多个参考帧分别对应的功率谱;根据功率谱计算音频数据包对应的响度。
170.具体地,多个音频帧对应的时长一致(如,10ms或20ms),多个参考帧与音频帧对应的时长一致。另外,由于快速傅里叶变换(fastfourier transform,fft)只能对有限长度的时域数据进行变换,因此,需要对时域信号进行信号截断。即使是周期信号,如果截断的周期信号的时间长度不是周期的整数倍,截取后的信号将容易存在泄漏。因此,本技术应用了可以使时域的音频信号满足傅里叶变换的周期性要求的预设窗函数,以减少信号泄漏。预设窗函数为汉宁窗函数、汉明窗函数、布莱克曼窗函数、凯泽窗函数、三角形窗函数或矩形窗函数。
171.作为一种可选的实施方式,通过预设窗函数分别处理多个音频帧,得到多个参考帧的方式可以为:确定多个音频帧分别对应的时域表达式;将多个音频帧分别对应的时域表达式与预设窗函数进行点乘,得到多个音频帧分别对应的参考帧。
172.作为一种可选的实施方式,计算多个参考帧分别对应的功率谱的方式可以为:对多个参考帧进行快速傅里叶变换,以确定出多个参考帧分别对应的功率谱。
173.可见,实施该可选的实施例,能够计算得到目标音频数据包的响度,该响度可以作为计算冗余度的条件,以使得用于计算纠错码的冗余度与音频的响度呈正相关,提升接收方终端对于响度较高的音频的纠错正确率,从而改善接收方终端的音频信号输出质量。
174.本技术实施例中,可选的,发送方终端根据功率谱计算音频数据包对应的响度,包括:
175.发送方终端根据功率谱中各频点的能量幅值计算功率谱中各频点的频点响度;根据频点响度计算功率谱中各频点的响度权重;计算功率谱中各频点的能量幅值与功率谱中各频点的响度权重之间的加权和,作为功率谱对应的参考帧的响度值;将多个参考帧分别
的响度值之和确定为音频数据包对应的响度。
176.具体地,频点是固定频率的编号,可以作为固定频率的唯一表征。另外,响度是用于描述声音大小的主观感觉量,单位是宋(sone)。1000hz 纯音,声压级为40db时的响度为1宋;2宋的声音是40方声音响度的 2倍;4宋为40方声音响度的4倍。也就是说,声压级增加10db,响度增加一倍,人耳对响度的感觉随声压级变化。请参阅图5,图5示意性示出了根据本技术的一个实施例的声学等响曲线图。图5所示的声学等响曲线中展示了多种响度级(即,100phon、80phon、60phon、40phon、 20phon、阈值thrshold phon)的曲线,横轴用于表示声波频率(frequency),纵轴用于表示声压级(sound pressure level),通过图5所示的声学等响曲线图可知,等响曲线是描述等响条件下声压级与声波频率的关系曲线,在中低频(1khz以下)中,频率越低,等响需要的声压强度(能量) 越大。即,声音能量越大,人耳的听觉感受越一致。而在中高频中(1khz 以上),不同频段的频率对应不同的声学听觉感知特征。参见图5可知,若将响度作为计算冗余度的条件,以使得用于计算纠错码的冗余度与音频的响度呈正相关,进而可以提升接收方终端对于响度较高的音频的纠错正确率,从而改善接收方终端的音频信号输出质量。
177.作为一种可选的实施方式,根据功率谱中各频点的能量幅值计算功率谱中各频点的频点响度的方式具体可以为:确定功率谱中各频点i的能量幅值的绝对值p(i,j),j=0~k-1,k为总频点数。
178.作为一种可选的实施方式,根据频点响度计算功率谱中各频点的响度权重的方式具体可以为:基于下述公式计算功率谱中各频点freq的响度权重cof(freq);其中,
[0179][0180][0181][0182]
freq的响度loud=4.2+afy*(db-cfy)/(1+bfy*(db-cfy));
[0183][0184]
结合cof(freq)的表达式参阅图6,图6示意性示出了根据本技术的一个实施例的响度权重曲线图。图6所示的曲线图中,横轴用于表示频率,纵轴用于表示响度权重。在已知频点响度情况下,可以通过图6所示的曲线图确定出该频点对应的权重。
[0185]
作为一种可选的实施方式,计算功率谱中各频点的能量幅值与功率谱中各频点的响度权重之间的加权和,作为功率谱对应的参考帧的响度值的方式具体可以为:根据功率谱中各频点的能量幅值和功率谱中各频点的响度权重之间的加权和,作为功率谱对应的参考帧的响度值ep(i);其中,i为帧序号,k为频点序号。
[0186]
可见,实施该可选的实施例,能够根据各频点对应的响度确定目标音频数据包对
应的响度作为计算冗余度的条件,从而接收方终端对于响度较高的音频的纠错正确率,改善接收方终端的音频信号输出质量。
[0187]
在步骤s420中,根据目标音频数据包对应的响度计算目标音频数据包的目标纠错码。
[0188]
本技术实施例中,可选的,根据目标音频数据包对应的响度计算目标音频数据包的目标纠错码,包括:根据接收方终端反馈的丢包率确定参考冗余度;其中,丢包率与距离目标音频数据包的发送时间最近的历史单位时间相对应;根据参考冗余度和目标音频数据包对应的响度计算目标音频数据包对应的目标冗余度;根据目标冗余度计算目标音频数据包的目标纠错码。
[0189]
具体地,由于目标音频数据包可以为一个或多个,当目标音频数据包的数量为多个时,多个目标音频数据包可以对应一个参考纠错码也可以对应多个参考纠错码。举例来说,如果一个参考纠错码可以用于纠错 5个目标音频数据包,那么,10个目标音频数据包则可以对应2个参考纠错码,即,每5个目标音频数据包对应一个1个参考纠错码。此外,还需要说明的是,参考纠错码可以通过冗余包的形式传输。此外,冗余度与码率成反比,即,码率越小,冗余度越大,其中的码率可以理解为编码效率=信息码元数量k/码长n。
[0190]
作为一种可选的实施方式,在根据接收方终端反馈的丢包率确定参考冗余度之前,上述方法还可以包括:接收方终端根据单位时间内接收到的所有音频数据包计算丢包率并将丢包率反馈至服务器。
[0191]
作为一种可选的实施方式,根据接收方终端反馈的丢包率确定参考冗余度的方式具体可以为:从多个预设区间中确定接收方终端反馈的丢包率所处的目标预设区间;选取目标预设区间对应的参考冗余度。举例来说,可以从[0~20%)、[20%~30%)、[30%~40%)、[40%~50%]等多个预设区间中确定接收方终端反馈的丢包率23%所处的目标预设区间 [20%~30%),由于目标预设区间[20%~30%)对应的冗余度为25%,则可以选取25%作为参考冗余度。
[0192]
作为一种可选的实施方式,根据目标冗余度计算目标音频数据包对应的目标纠错码的方式具体可以为:确定目标音频数据包中的音频码流;按照每组x位对音频码流中的码字进行分组,并将分组结果依次输入编码器,以使得编码器根据目标冗余度生成每组对应的长度为z的码字;其中,长度为z的码字中包括x位音频码流中的码字以及y位用于纠错的目标纠错码,z=x+y,目标冗余度与y相对应。另外,长度为z的码字可以为rs编码,其中,rs编码是线性循环编码。
[0193]
作为另一种可选的实施方式,目标音频数据包的数量为k个,k为正整数,根据目标冗余度计算目标音频数据包对应的目标纠错码的方式具体可以为:通过目标冗余度以及数据压缩算法对第n个音频数据包进行压缩;将得到的压缩结果确定为第(n+1)个音频数据包的目标纠错码;其中,第(n+1)个音频数据包为上述的目标音频数据包,压缩结果与目标冗余度相匹配,n为正整数。也就是说,当第n个音频数据包丢失时,可以通过第(n+1)个音频数据包中的目标纠错码修复第n个音频数据包。
[0194]
可见,实施该可选的实施例,能够根据历史单位时间内的丢包率确定出目标纠错码的目标冗余度,即,根据网络状况实时调整目标纠错码的目标冗余度,这样可以有效利用带宽并实现对于丢包率的有效控制。
[0195]
本技术实施例中,可选的,根据参考冗余度和目标音频数据包对应的响度计算目标音频数据包对应的目标冗余度,包括:将目标音频数据包对应的响度作为预设函数表达式的输入计算输出值;将输出值和参考冗余度的乘积确定为目标音频数据包的目标冗余度。
[0196]
具体地,目标冗余度大于参考冗余度。
[0197]
作为一种可选的实施方式,将目标音频数据包对应的响度作为预设函数表达式的输入计算输出值的方式可以为:将目标音频数据包对应的响度ep(i)作为预设函数表达式f(ep(i))的输入计算输出值。另外,需要说明的是,预设函数表达式f(ep(i))可以为单调递增函数,预设函数表达式f(ep(i))的输出值范围为[0,1],这样可以保证目标冗余度可以随着目标音频数据包对应的响度的增加而提升,即,使得目标冗余度与目标音频数据包对应的响度呈正相关。
[0198]
进一步可选的,将输出值和参考冗余度的乘积确定为目标音频数据包的目标冗余度的方式具体可以为:将f(ep(i))的输出值和参考冗余度 red_org(i)的乘积f(ep(i))*red_org(i)确定为目标音频数据包的目标冗余度red’(i)。
[0199]
可见,实施该可选的实施例,能够结合目标音频数据包对应的响度重新确定冗余度(即,目标冗余度),可以提升目标音频数据包对应的响度与目标冗余度之间的正相关性,进而可以使得响度较高的音频信号对应的冗余度较高,有利于接收方终端更准确地还原目标音频数据包。
[0200]
在步骤s430中,向接收方终端传输目标音频数据包和目标纠错码。
[0201]
具体地,丢包情况中包括目标音频数据包对应的丢包率(如,50%、 0、100%等)。
[0202]
本技术实施例中,可选的,向接收方终端传输目标音频数据包和目标纠错码,包括:将目标音频数据包和目标纠错码打包为待传输数据包传输至接收方终端,以使得接收方终端在解码待传输数据包后根据解码结果中的目标纠错码检测目标音频数据包对应的丢包情况并根据丢包情况对目标音频数据包进行纠错。
[0203]
具体地,上述的待传输数据包可以为前向纠错(forward errorcorrection,fec)包,其中,fec包结构700可以参阅图7,图7示意性示出了根据本技术的一个实施例的fec包的结构图。如图7所示,fec 包结构700可以由rtp头701、fec头702和fec载荷703构成;其中, fec头702和fec载荷703均可以作为rtp负载。
[0204]
进一步地,针对图7中的fec头702的结构进行进一步说明,请参阅图8,图8示意性示出了根据本技术的一个实施例的fec头的结构图。具体地,fec头结构800为12字节,包括sn基数域、长度恢复域、e 域、pt恢复域、mask域和ts恢复域;其中,长度恢复域用于确定待纠错音频数据包的长度;e域用于指示音频数据包中是否存在扩展部分; pt恢复域用于恢复丢失数据分组的载荷类型,pt恢复域的值可以通过对多个目标音频数据包的载荷类型域的值进行异或运算得到;mask域的大小为24个比特,比特位由低到高为0~23,若第i各比特设为1,则序号为n+i的目标音频数据包与该fec包关联,其中,n为sn域的值; sn基数域的值为与fec包相关的目标音频数据包的序号最小值。ts恢复域的值为与fec包相关的目标音频数据包的时间戳异或运算后得到的结果,ts恢复域可以用于恢复丢失数据包的时间戳。
[0205]
可见,实施该可选的实施例,能够通过传输与目标音频数据包的响度相关的目标纠错码,改善接收方终端的纠错正确率。
[0206]
本技术实施例中,可选的,接收方终端在解码待传输数据包后根据解码结果中的目标纠错码检测目标音频数据包对应的丢包情况并根据丢包情况对目标音频数据包进行纠错的方式具体为:接收方终端对待传输数据包进行解码,得到目标音频数据包中的音频码流和目标纠错码;根据目标纠错码检测目标音频数据包中的音频码流的丢失码;根据目标纠错码对丢失码进行还原,以实现对于目标音频数据包的纠错。
[0207]
其中,作为一种可选的实施方式,接收方终端根据目标纠错码检测目标音频数据包中的音频码流的丢失码的方式具体可以为:接收方终端根据目标纠错码检测音频码流中各码字的连续性,若检测到不存在连续性的两个码字,则确定不存在连续性的两个码字之间缺失的码字,作为丢失码。其中,缺失的码字可以为一个或多个,本技术实施例不作限定。
[0208]
作为一种可选的实施方式,接收方终端还可以在根据目标纠错码对丢失码进行还原之后,计算单位时间内的丢包率并将丢包率反馈至服务器,以便于服务器根据反馈的丢包率进行下一次数据传输过程中的冗余度计算。
[0209]
可见,实施该可选的实施例,接收方终端可以依据解码得到的目标纠错码对接收到的目标音频数据包进行纠错,由于目标纠错码与目标音频数据包的响度呈正相关,因此,响度越高的音频数据被正确还原的概率越大,其中,响度越高的音频数据中包含人声的概率越大,这样可以保证输出给用户的响度高的音频信号清晰完整,从而改善用户的使用体验。
[0210]
本技术实施例中,可选的,接收方终端根据目标纠错码对丢失码进行还原,以实现对于目标音频数据包的纠错之后,上述方法还包括:接收方终端对所有纠错后的目标音频数据包进行混音,得到混音信号并播放。
[0211]
作为一种可选的实施方式,在接收方终端对所有纠错后的目标音频数据包进行混音之前,还可以包括以下步骤:接收方终端对纠错后的目标音频数据包进行格式归一化,这样可以保证纠错后的目标音频数据包格式统一;进而,将纠错后的目标音频数据包转换为预设采样率(如, 16k hz、32k hz、44.1k hz、48k hz等);进而,检测纠错后的目标音频数据包的位深(bit-depth)或采样格式(sample format)的一致性,若位深不一致或采样格式不一致,则对纠错后的目标音频数据包进行相应的归一化处理,以使得承载每个采样点音频数据的比特数相同;进而,检测纠错后的目标音频数据包的声道(如,单声道或双声道)是否一致,若不一致,则输出用于表示声道不一致的提示消息;若一致,则执行对所有纠错后的目标音频数据包进行混音的操作。此外,可选的,在接收方终端对所有纠错后的目标音频数据包进行混音处理之前,接收方终端还可以对纠错后的目标音频数据包进行回声消除、噪音抑制、静音检测等处理,本技术实施例不作限定。
[0212]
作为一种可选的实施方式,接收方终端对所有纠错后的目标音频数据包进行混音,得到混音信号的方式可以为:接收方终端根据所有纠错后的目标音频数据包分别对应的能量幅值均衡调节各个纠错后的目标音频数据包的音量,并混合均衡调节的结果,得到混音信号。
[0213]
作为一种可选的实施方式,接收方终端对所有纠错后的目标音频数据包进行混音,得到混音信号之后,还可以包括以下步骤:接收方终端对混音信号进行溢出检测,若存在溢出,则对溢出的采样点进行溢出处理/平滑处理,进而播放处理结果。
[0214]
可见,实施该可选的实施例,接收方终端在对目标音频数据包进行纠错后可以对
其进行混音输出,该输出结果保留了会议中的重要音频内容,摒弃了人耳感知能力不强的音频内容,可以提升多人会议的消息转发效率,保证输出音频信号的实时性,从而改善用户的使用体验。
[0215]
进一步的,本示例实施方式中,还提供了一种数据传输系统900。请参阅图9,包括发送方终端901、服务器902以及接收方终端903,其中:
[0216]
发送方终端901,用于向服务器902发送目标音频数据包,目标音频数据包中包括目标音频数据包对应的响度;
[0217]
服务器902,用于接收目标音频数据包并获取目标音频数据包对应的响度;根据目标音频数据包对应的响度计算目标音频数据包的目标纠错码;向接收方终端903传输目标音频数据包和目标纠错码;
[0218]
接收方终端903,用于根据目标纠错码检测目标音频数据包对应的丢包情况。
[0219]
可见,实施图9所示的系统,可以根据目标音频数据包对应的响度计算对应的目标纠错码,而非对所有音频数据包计算纠错码,以实现对于带宽利用率的提升。此外,相较于现有技术计算所有音频数据包的纠错码并传输所有音频数据包和其对应的纠错码,可以实现对于有效数据的传输,从而改善对于网络资源的浪费问题。
[0220]
具体地,请参阅图10。图10示意性示出了根据本技术的另一个实施例的数据传输系统1000的结构框图。如图10所示,图10所示的结构框图包括:发送方终端1010、服务器1020以及接收方终端1030;其中,发送方终端1010包括特征提取模块1011、语音编码模块1012以及前向编码模块1013,服务器1020包括丢包检测模块1021、音频选路模块1022、前向编码模块1023以及感知分析模块1024,接收方终端1030包括丢包检测模块1031、语音解码模块1032、混音模块1033以及播放模块1034。
[0221]
具体地,特征提取模块1011可以采集音频信号,对采集到的音频信号进行特征提取,得到音频特征,并将采集到的音频信号发送至语音编码模块1012。语音编码模块1012可以对音频信号进行编码,得到对应的音频码流,并将音频码流发送至前向编码模块1023。前向编码模块 1023可以将相匹配的音频码流和音频特征打包为音频数据包,音频数据包中包括音频数据包对应的响度、音频码流和音频码流对应的音频特征;根据丢包检测模块1021反馈的前一单位时间内的丢包率计算音频数据包的纠错码并打包发送至服务器1020,以使得服务器1020中的丢包检测模块1021对接收到的音频数据包进行丢包检测并在音频数据包存在丢包情况时,根据纠错码对其进行纠错并将纠错后的音频数据包发送至音频选路模块1022。
[0222]
针对前段内容,其中,音频数据包中也可以不包括响度,在发送方终端1010中的前向编码模块1013将音频数据包发送至服务器1020的感知分析模块1024之后,感知分析模块1024可以根据音频数据包中的音频特征计算音频信号对应的响度。
[0223]
进而,音频选路模块1022可以根据数据分组中每个数据包对应的音频特征对数据分组中的音频数据包进行筛选,得到目标音频数据包;其中,目标音频数据包对应的最大能量幅值大于数据分组中其他音频数据包,或者,目标音频数据包对应的能量谱分布与预设能量谱分布的相似度大于数据分组中其他音频数据包。进而,音频选路模块1022可以将目标音频数据包发送至感知分析模块1024,以使得感知分析模块1024根据目标音频数据包对应的响度对于目标音频数据包进行筛选并将筛选后的目标音频数据包发送至前向编码模
块1023。前向编码模块1023根据丢包检测模块1031反馈的前一单位时间内的丢包率计算筛选后的目标音频数据包的纠错码并打包发送至接收方终端1030。进而,接收方终端 1030中的丢包检测模块1031对接收到的目标音频数据包进行丢包检测并在目标音频数据包存在丢包情况时,根据纠错码对其进行纠错并将纠错后的目标音频数据包发送至语音解码模块1032;其中,目标音频数据包的数量可以为一个或多个。
[0224]
进而,语音解码模块1032可以将各个目标音频数据包中的音频码流解码为音频信号,并将解码得到的音频信号发送至混音模块1033,以使得混音模块1033对音频信号进行混音处理。进而,混音模块1033可以将混音处理结果发送至播放模块1034,以使得播放模块1034播放混音处理结果。
[0225]
可见,实施图10所示的系统,可以根据目标音频数据包对应的响度计算对应的目标纠错码,而非对所有音频数据包计算纠错码,以实现对于带宽利用率的提升。此外,相较于现有技术计算所有音频数据包的纠错码并传输所有音频数据包和其对应的纠错码,可以实现对于有效数据的传输,从而改善对于网络资源的浪费问题。
[0226]
进一步地,本实例实施例中,可选的,上述的发送方终端和接收方终端的数量均可以为多个,上述的服务器可以为服务器集群。请参阅图 11,图11示意性示出了根据本技术的又一个实施例的数据传输系统1100 的结构框图。如图11所示,包括发送方终端1111、发送方终端1112、
……
、发送方终端111n、服务器集群1130、接收方终端1121、接收方终端 1122、
……
、接收方终端112n;其中,n为正整数且大于等于3。
[0227]
参见图11可知,本技术中的服务器集群1130可以接收来自发送方终端1111、发送方终端1112、
……
、发送方终端111n中至少一个发送的数据分组,每个数据分组中可以包括一个或多个音频数据包,若音频数据包满足预设条件,则音频数据包可以被服务器集群1130判定为目标音频数据包,根据目标音频数据包的响度计算目标音频数据包的纠错码并将目标音频数据包和纠错码打包为待传输数据包转发至接收方终端 1121、接收方终端1122、
……
、接收方终端112n,以使得接收方终端 1121、接收方终端1122、
……
、接收方终端112n可以根据纠错码对存在丢包情况的目标音频数据包进行纠错。
[0228]
可见,实施图11所示的系统,可以根据目标音频数据包对应的响度计算对应的目标纠错码,而非对所有音频数据包计算纠错码,以实现对于带宽利用率的提升。此外,相较于现有技术计算所有音频数据包的纠错码并传输所有音频数据包和其对应的纠错码,可以实现对于有效数据的传输,从而改善对于网络资源的浪费问题。
[0229]
进一步的,本示例实施方式中,还提供了一种数据传输装置。参考图12所示,该数据传输装置1200可以包括:
[0230]
响度获取单元1201,用于获取目标音频数据包对应的响度;
[0231]
纠错码计算单元1202,用于根据目标音频数据包对应的响度计算目标音频数据包的目标纠错码;
[0232]
数据发送单元1203,用于向接收方终端传输目标音频数据包和目标纠错码。
[0233]
可见,实施图12所示的装置,可以根据目标音频数据包对应的响度计算对应的目标纠错码,而非对所有音频数据包计算纠错码,以实现对于带宽利用率的提升。此外,相较于现有技术计算所有音频数据包的纠错码并传输所有音频数据包和其对应的纠错码,可以实现对于有效数据的传输,从而改善对于网络资源的浪费问题。
[0234]
在本技术的一种示例性实施例中,上述装置还包括数据筛选单元(未图示):
[0235]
数据筛选单元,用于在响度获取单元1201获取目标音频数据包对应的响度之前,从接收到的多个音频数据包中筛选音频特征满足预设条件的目标音频数据包。
[0236]
其中,音频数据包中包括音频数据包对应的响度、音频码流和音频码流对应的音频特征,音频码流对应的音频特征包括音频码流对应的能量分布以及音频码流中各频点对应的能量幅值。
[0237]
可见,实施该可选的实施例,能够通过音频特征对接收到的音频数据包进行筛选,以降低转发的数据量,从而降低对于网络资源的损耗,提升数据传输效率。
[0238]
在本技术的一种示例性实施例中,上述装置还包括纠错码获取单元 (未图示)、丢包检测单元(未图示)以及数据纠错单元(未图示):
[0239]
纠错码获取单元,用于在数据筛选单元从接收到的多个音频数据包中筛选音频特征满足预设条件的目标音频数据包之前,获取多个音频数据包分别对应的纠错码;
[0240]
丢包检测单元,用于根据纠错码对多个音频数据包进行丢包检测,得到多个音频数据包分别对应的丢包率;
[0241]
数据纠错单元,用于向发送方终端反馈所述丢包率并根据纠错码对多个音频数据包进行纠错。
[0242]
可见,实施该可选的实施例,能够通过向发送方终端传输丢包率,为发送方终端计算冗余度提供参考条件,这样可以使得发送方终端每次计算出的冗余度与上一预设单位时间内的丢包率相关,提升本技术的自适应性。
[0243]
在本技术的一种示例性实施例中,接收到的多个音频数据包由发送方终端发送;
[0244]
其中,发送方终端发送多个音频数据包的方式具体为:
[0245]
发送方终端采集音频信号并对音频信号进行特征提取,得到音频特征;
[0246]
发送方终端对音频信号进行编码,得到音频码流;
[0247]
发送方终端将音频码流和音频特征打包为音频数据包并发送至服务器。
[0248]
可见,实施该可选的实施例,发送方终端可以对音频信号进行特征提取,这样可以有利于服务器依据特征提取的结果进行通路信号选取,从而在保证多人会议的音频输出实时性的同时,还能够保证音频输出的效果。
[0249]
在本技术的一种示例性实施例中,预设条件包括预设能量幅值和/ 或预设信噪比,数据筛选单元从接收到的多个音频数据包中筛选音频特征满足预设条件的目标音频数据包,包括:
[0250]
若检测到音频码流的音频特征中存在大于预设能量幅值的至少一个能量幅值,则将音频码流所属的音频数据包确定为目标音频数据包;和/ 或,
[0251]
若检测到音频码流的音频特征中存在大于预设信噪比的至少一个信噪比,则将音频码流所属的音频数据包确定为目标音频数据包。
[0252]
可见,实施该可选的实施例,能够通过能量幅值或信噪比对音频数据包进筛选,以精简需要传输的音频数据包,提升数据传输效率。
[0253]
在本技术的一种示例性实施例中,还包括:
[0254]
发送方终端根据预设时长对所述音频码流进行分帧处理,得到多个音频帧;
[0255]
所述发送方终端通过预设窗函数分别处理多个音频帧,得到多个参考帧;
[0256]
发送方终端计算多个参考帧分别对应的功率谱;
[0257]
发送方终端根据功率谱计算音频数据包对应的响度。
[0258]
其中,预设窗函数为汉宁窗函数、汉明窗函数、布莱克曼窗函数、凯泽窗函数、三角形窗函数或矩形窗函数。
[0259]
可见,实施该可选的实施例,能够计算得到目标音频数据包的响度,该响度可以作为计算冗余度的条件,以使得用于计算纠错码的冗余度与音频的响度呈正相关,提升接收方终端对于响度较高的音频的纠错正确率,从而改善接收方终端的音频信号输出质量。
[0260]
在本技术的一种示例性实施例中,发送方终端根据功率谱计算音频数据包对应的响度,包括:
[0261]
发送方终端根据功率谱中各频点的能量幅值计算功率谱中各频点的频点响度;
[0262]
发送方终端根据频点响度计算功率谱中各频点的响度权重;
[0263]
发送方终端计算功率谱中各频点的能量幅值与功率谱中各频点的响度权重之间的加权和,作为功率谱对应的参考帧的响度值;
[0264]
发送方终端将多个参考帧分别的响度值之和确定为音频数据包对应的响度。
[0265]
可见,实施该可选的实施例,能够根据各频点对应的响度确定目标音频数据包对应的响度作为计算冗余度的条件,从而接收方终端对于响度较高的音频的纠错正确率,改善接收方终端的音频信号输出质量。
[0266]
在本技术的一种示例性实施例中,纠错码计算单元1202根据目标音频数据包对应的响度计算目标音频数据包的目标纠错码,包括:
[0267]
根据接收方终端反馈的丢包率确定参考冗余度;其中,丢包率与距离目标音频数据包的发送时间最近的历史单位时间相对应;
[0268]
根据参考冗余度和目标音频数据包对应的响度计算目标音频数据包对应的目标冗余度;
[0269]
根据目标冗余度计算目标音频数据包的目标纠错码。
[0270]
可见,实施该可选的实施例,能够根据历史单位时间内的丢包率确定出目标纠错码的目标冗余度,即,根据网络状况实时调整目标纠错码的目标冗余度,这样可以有效利用带宽并实现对于丢包率的有效控制。
[0271]
在本技术的一种示例性实施例中,纠错码计算单元1202根据参考冗余度和目标音频数据包对应的响度计算目标音频数据包对应的目标冗余度,包括:
[0272]
将目标音频数据包对应的响度作为预设函数表达式的输入计算输出值;
[0273]
将输出值和参考冗余度的乘积确定为目标音频数据包的目标冗余度。
[0274]
可见,实施该可选的实施例,能够结合目标音频数据包对应的响度重新确定冗余度(即,目标冗余度),可以提升目标音频数据包对应的响度与目标冗余度之间的正相关性,进而可以使得响度较高的音频信号对应的冗余度较高,有利于接收方终端更准确地还原目标音频数据包。
[0275]
在本技术的一种示例性实施例中,数据发送单元1203向接收方终端传输目标音频数据包和目标纠错码,包括:
[0276]
将目标音频数据包和目标纠错码打包为待传输数据包传输至接收方终端,以使得接收方终端在解码待传输数据包后根据解码结果中的目标纠错码检测目标音频数据包对
应的丢包情况并根据丢包情况对目标音频数据包进行纠错。
[0277]
可见,实施该可选的实施例,能够通过传输与目标音频数据包的响度相关的目标纠错码,改善接收方终端的纠错正确率。
[0278]
在本技术的一种示例性实施例中,接收方终端在解码待传输数据包后根据解码结果中的目标纠错码检测目标音频数据包对应的丢包情况并根据丢包情况对目标音频数据包进行纠错的方式具体为:
[0279]
接收方终端对待传输数据包进行解码,得到目标音频数据包中的音频码流和目标纠错码;
[0280]
接收方终端根据目标纠错码检测目标音频数据包中的音频码流的丢失码;
[0281]
接收方终端根据目标纠错码对丢失码进行还原,以实现对于目标音频数据包的纠错。
[0282]
可见,实施该可选的实施例,接收方终端可以依据解码得到的目标纠错码对接收到的目标音频数据包进行纠错,由于目标纠错码与目标音频数据包的响度呈正相关,因此,响度越高的音频数据被正确还原的概率越大,其中,响度越高的音频数据中包含人声的概率越大,这样可以保证输出给用户的响度高的音频信号清晰完整,从而改善用户的使用体验。
[0283]
在本技术的一种示例性实施例中,接收方终端根据目标纠错码对丢失码进行还原,以实现对于目标音频数据包的纠错之后,还包括:
[0284]
接收方终端对所有纠错后的目标音频数据包进行混音,得到混音信号并播放。
[0285]
可见,实施该可选的实施例,接收方终端在对目标音频数据包进行纠错后可以对其进行混音输出,该输出结果保留了会议中的重要音频内容,摒弃了人耳感知能力不强的音频内容,可以提升多人会议的消息转发效率,保证输出音频信号的实时性,从而改善用户的使用体验。
[0286]
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本技术的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
[0287]
由于本技术的示例实施例的数据传输装置的各个功能模块与上述数据传输方法的示例实施例的步骤对应,因此对于本技术装置实施例中未披露的细节,请参照本技术上述的数据传输方法的实施例。
[0288]
作为另一方面,本技术还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该电子设备执行时,使得该电子设备实现上述实施例中所述的方法。
[0289]
需要说明的是,本技术所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储
器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本技术中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本技术中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、rf等等,或者上述的任意合适的组合。
[0290]
附图中的流程图和框图,图示了按照本技术各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0291]
描述于本技术实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
[0292]
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本技术的其它实施方案。本技术旨在涵盖本技术的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本技术的一般性原理并包括本技术未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本技术的真正范围和精神由下面的权利要求指出。
[0293]
应当理解的是,本技术并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本技术的范围仅由所附的权利要求来限制。