CN115550459A - 语音数据的发送和接收方法以及相关设备 - Google Patents
语音数据的发送和接收方法以及相关设备 Download PDFInfo
- Publication number
- CN115550459A CN115550459A CN202110725190.3A CN202110725190A CN115550459A CN 115550459 A CN115550459 A CN 115550459A CN 202110725190 A CN202110725190 A CN 202110725190A CN 115550459 A CN115550459 A CN 115550459A
- Authority
- CN
- China
- Prior art keywords
- voice data
- data
- redundant
- sequence
- packet
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/04—Protocols for data compression, e.g. ROHC
-
- 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
Abstract
本申请公开了一种语音数据的发送和接收方法以及相关设备;可以获取待编码数据序列;针对待编码数据序列中每个语音数据,确定所述语音数据的关联语音数据;对所述语音数据和其对应的关联语音数据进行冗余编码,得到编码后数据序列,所述编码后数据序列包括多个具有时序关系的编码后语音数据包,编码后语音数据包包括载荷字段和冗余字段,载荷字段包含所述语音数据,冗余字段包含压缩后的关联语音数据;按照预定顺序向网络侧发送所述编码后数据序列中的语音数据包。本申请既能保证传输网络的抗丢包能力,又可以有效提升网络带宽的利用率。
Description
技术领域
本申请涉及计算机技术领域,具体涉及一种语音数据的发送和接收方法以及相关设备。
背景技术
语音通话是人们日常生活中常用的通讯手段,语音通话的质量直接影响到用户的通讯体验。其中,丢包是影响语音通话质量的重要因素。由于网络波动等因素的干扰,在传输包括语音数据的数据包时,可能会出现数据包丢失的问题。
在目前的相关技术中,一般通过丢包重传技术来解决该问题。丢包重传是当数据接收方检测到目标数据包超时仍未接收到或者发现目标接收包出错时,向数据发送方发出请求包,以请求数据发送方重传出错的数据报文的一种技术手段。
现有的丢包重传机制一般需要每个数据报文做接收状态确认,即需要发送和接收确认报文,这种操作占用了相当一部分网络带宽资源,如果第一次重传后,数据接收方仍然没有成功接收到正确的数据报文,则数据发送方需要继续进行重传直到成功为止,在网络能力较弱情况下,每个数据报文都可能经历这样的过程,这会导致消耗过多网络带宽资源,不利于进行数据传输。
发明内容
本申请实施例提供一种语音数据的发送和接收方法以及相关设备,相关设备可以包括语音数据的发送和接收装置、电子设备和存储介质,既能保证传输网络的抗丢包能力,同时,通过对关联语音数据进行压缩又可以有效提升网络带宽的利用率。
本申请实施例提供一种语音数据的发送方法,包括:
获取待编码数据序列,所述待编码数据序列包括多个待编码且具有时序关系的语音数据;
针对每个语音数据,确定所述语音数据的关联语音数据,所述关联语音数据为所述待编码数据序列中与所述语音数据之间的时序关系满足预设关联条件的语音数据;
针对每个语音数据,对所述语音数据和其对应的关联语音数据进行冗余编码,得到编码后数据序列,所述编码后数据序列包括多个具有时序关系的编码后语音数据包,所述编码后语音数据包包括:载荷字段和冗余字段,所述载荷字段包含所述语音数据,所述冗余字段包含压缩后的关联语音数据;
按照预定顺序向网络侧发送所述编码后数据序列中的语音数据包。
本申请实施例提供一种语音数据的接收方法,包括:
接收编码后数据序列中的编码后语音数据包,所述编码后语音数据包包括:载荷字段和冗余字段,所述载荷字段包含语音数据,所述冗余字段包含压缩后的关联语音数据,所述关联语音数据为与所述语音数据之间的时序关系满足预设关联条件的语音数据;
对所述编码后语音数据包进行解码,并基于解码结果进行数据传输的数据包丢失检测;
当检测到存在数据包丢失时,确定所述编码后数据序列中与丢失语音数据包相关联的目标关联语音数据包;
对所述目标关联语音数据包进行冗余解码,以从所述目标关联语音数据包的冗余字段中提取压缩后的关联语音数据;
根据压缩后的关联语音数据,对丢失语音数据包的载荷字段中语音数据进行数据恢复。
相应的,本申请实施例提供一种语音数据的发送装置,包括:
获取单元,用于获取待编码数据序列,所述待编码数据序列包括多个待编码且具有时序关系的语音数据;
第一确定单元,用于针对每个语音数据,确定所述语音数据的关联语音数据,所述关联语音数据为所述待编码数据序列中与所述语音数据之间的时序关系满足预设关联条件的语音数据;
编码单元,用于针对每个语音数据,对所述语音数据和其对应的关联语音数据进行冗余编码,得到编码后数据序列,所述编码后数据序列包括多个具有时序关系的编码后语音数据包,所述编码后语音数据包包括:载荷字段和冗余字段,所述载荷字段包含所述语音数据,所述冗余字段包含压缩后的关联语音数据;
发送单元,用于按照预定顺序向网络侧发送所述编码后数据序列中的语音数据包。
相应的,本申请实施例提供一种语音数据的接收装置,包括:
接收单元,用于接收编码后数据序列中的编码后语音数据包,所述编码后语音数据包包括:载荷字段和冗余字段,所述载荷字段包含语音数据,所述冗余字段包含压缩后的关联语音数据,所述关联语音数据为与所述语音数据之间的时序关系满足预设关联条件的语音数据;
解码单元,用于对所述编码后语音数据包进行解码,并基于解码结果进行数据传输的数据包丢失检测;
第二确定单元,用于当检测到存在数据包丢失时,确定所述编码后数据序列中与丢失语音数据包相关联的目标关联语音数据包;
冗余解码单元,用于对所述目标关联语音数据包进行冗余解码,以从所述目标关联语音数据包的冗余字段中提取压缩后的关联语音数据;
恢复单元,用于根据压缩后的关联语音数据,对丢失语音数据包的载荷字段中语音数据进行数据恢复。
可选的,在本申请的一些实施例中,所述语音数据的发送装置还包括生成单元和融合单元,如下:
所述生成单元,用于根据所述网络侧发送的丢包信息,生成冗余编码信息;
融合单元,用于将所述冗余编码信息和所述语音数据进行融合,得到至少一个冗余数据包,所述冗余数据包包括冗余融合字段,所述冗余融合字段包含所述冗余编码信息和所述语音数据的融合后信息;
所述发送单元具体可以用于将所述冗余数据包添加至所述编码后数据序列中,按照预定顺序向网络侧发送所述编码后数据序列中的语音数据包。
可选的,在本申请的一些实施例中,所述生成单元可以包括获取子单元和构建子单元,如下:
所述获取子单元,用于根据所述网络侧发送的丢包信息,获取冗余数据结构信息;
构建子单元,用于根据所述冗余数据结构信息,构建冗余编码信息。
可选的,在本申请的一些实施例中,所述编码单元可以包括编码子单元、设置子单元和压缩子单元,如下:
所述编码子单元,用于对所述语音数据进行编码,得到初始编码后语音数据包,所述初始编码后语音数据包包括载荷字段,所述载荷字段包括编码后的语音数据;
设置子单元,用于在所述初始编码后语音数据包中设置冗余字段;
压缩子单元,用于对所述语音数据对应的关联语音数据进行压缩,并将压缩后的关联语音数据添加至所述冗余字段中,以生成编码后语音数据包。
可选的,在本申请的一些实施例中,所述编码后数据序列还包括冗余数据包;所述冗余数据包包括冗余融合字段,所述冗余融合字段包含冗余编码信息和语音数据的融合后信息;
所述语音数据的接收装置还可以包括冗余数据包解码单元和数据恢复单元,如下:
所述冗余数据包解码单元,用于当所述目标关联语音数据包冗余解码失败时,对所述冗余数据包进行解码,以从所述冗余数据包的冗余融合字段中提取融合后信息;
数据恢复单元,用于根据所述融合后信息,对丢失语音数据包的载荷字段中语音数据进行数据恢复。
可选的,在本申请的一些实施例中,所述冗余数据包解码单元具体可以用于当所述目标关联语音数据包冗余解码失败、且接收到所述编码后数据序列中语音数据包的数量不小于预设数量时,对所述冗余数据包进行解码。
可选的,在本申请的一些实施例中,所述数据恢复单元可以包括逆运算子单元和恢复子单元,如下:
所述逆运算子单元,用于对所述融合后信息进行逆运算,得到所述融合后信息对应的逆编码矩阵;
恢复子单元,用于根据所述逆编码矩阵,对丢失语音数据包的载荷字段中语音数据进行数据恢复。
可选的,在本申请的一些实施例中,所述语音数据的接收装置还可以包括丢弃单元,如下:
所述丢弃单元,用于当所述目标关联语音数据包冗余解码失败、且解码时间超过预设时间时,丢弃所述目标关联语音数据包。
本申请实施例提供的一种电子设备,包括处理器和存储器,所述存储器存储有多条指令,所述处理器加载所述指令,以执行本申请实施例提供的语音数据的发送方法或语音数据的接收方法中的步骤。
此外,本申请实施例还提供一种存储介质,其上存储有计算机程序,其中,所述计算机程序被处理器执行时实现本申请实施例提供的语音数据的发送方法或语音数据的接收方法中的步骤。
本申请实施例提供了一种语音数据的发送和接收方法以及相关设备,可以获取待编码数据序列,所述待编码数据序列包括多个待编码且具有时序关系的语音数据;针对每个语音数据,确定所述语音数据的关联语音数据,所述关联语音数据为所述待编码数据序列中与所述语音数据之间的时序关系满足预设关联条件的语音数据;针对每个语音数据,对所述语音数据和其对应的关联语音数据进行冗余编码,得到编码后数据序列,所述编码后数据序列包括多个具有时序关系的编码后语音数据包,所述编码后语音数据包包括:载荷字段和冗余字段,所述载荷字段包含所述语音数据,所述冗余字段包含压缩后的关联语音数据;按照预定顺序向网络侧发送所述编码后数据序列中的语音数据包。本申请实施例可以通过编码后语音数据包携带压缩后的关联语音数据,以解决该关联语音数据对应的语音数据包的丢失问题,既能保证传输网络的抗丢包能力,同时,通过对关联语音数据进行压缩又可以有效提升网络带宽的利用率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1a是本申请实施例提供的语音数据的发送和接收方法的场景示意图;
图1b是本申请实施例提供的语音数据的发送和接收方法的流程图;
图1c是本申请实施例提供的语音数据的发送和接收方法的另一流程图;
图1d是本申请实施例提供的语音数据的发送和接收方法的说明示意图;
图1e是本申请实施例提供的语音数据的发送和接收方法的说明图;
图2a是本申请实施例提供的语音数据的发送和接收方法的另一流程图;
图2b是本申请实施例提供的语音数据的发送和接收方法的另一流程图;
图2c是本申请实施例提供的语音数据的发送和接收方法的说明图;
图2d是本申请实施例提供的语音数据的发送和接收方法的页面示意图;
图3a是本申请实施例提供的语音数据的发送装置的结构示意图;
图3b是本申请实施例提供的语音数据的接收装置的另一结构示意图;
图4是本申请实施例提供的电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供了一种语音数据的发送和接收方法以及相关设备。
具体地,本申请实施例提供适用于第一电子设备的语音数据的发送装置,该第一电子设备可以为终端或服务器等设备;本申请实施例还提供适用于第二电子设备的语音数据的接收装置,该第二电子设备可以为终端或者服务器等设备。其中,终端可以为手机、平板电脑、笔记本电脑、或个人计算机(PC,Personal Computer)等设备。服务器可以是单台服务器,也可以是由多个服务器组成的服务器集群。
本申请提供的语音数据的发送和接收方法,可以应用于如图1a中场景(a)所示的应用环境中。其中,该语音数据的发送和接收系统包括发送端110和接收端120,发送端110和接收端120通过网络连接。在一个实施例中,发送端110可以获取待编码数据序列,所述待编码数据序列包括多个待编码且具有时序关系的语音数据;针对每个语音数据,确定所述语音数据的关联语音数据,所述关联语音数据为所述待编码数据序列中与所述语音数据之间的时序关系满足预设关联条件的语音数据;针对每个语音数据,对所述语音数据和其对应的关联语音数据进行冗余编码,得到编码后数据序列,所述编码后数据序列包括多个具有时序关系的编码后语音数据包,所述编码后语音数据包包括:载荷字段和冗余字段,所述载荷字段包含所述语音数据,所述冗余字段包含压缩后的关联语音数据;按照预定顺序向网络侧(具体即接收端120)发送所述编码后数据序列中的语音数据包。
其中,接收端120可以用于:接收发送端110发送的编码后数据序列中的编码后语音数据包,所述编码后语音数据包包括:载荷字段和冗余字段,所述载荷字段包含语音数据,所述冗余字段包含压缩后的关联语音数据,所述关联语音数据为与所述语音数据之间的时序关系满足预设关联条件的语音数据;对所述编码后语音数据包进行解码,并基于解码结果进行数据传输的数据包丢失检测;当检测到存在数据包丢失时,确定所述编码后数据序列中与丢失语音数据包相关联的目标关联语音数据包;对所述目标关联语音数据包进行冗余解码,以从所述目标关联语音数据包的冗余字段中提取压缩后的关联语音数据;根据压缩后的关联语音数据,对丢失语音数据包的载荷字段中语音数据进行数据恢复。
在另一个实施例中,发送端110可以将所述编码后数据序列中的语音数据包传输至云服务器,通过云服务器转发至接收端120。如图1a中场景(b)所示,在一个具体的应用场景中,发送端110与接收端120上均运行有支持语音传输功能的应用程序,例如即时语音通信客户端。云服务器130可以为该应用程序提供计算能力及存储能力,发送端110、接收端120上的均可以通过网络与云服务器130连接,从而基于该云服务器130实现两端即时语音通信客户端的语音传输。
其中,发送端110、接收端120可以是终端,终端可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,还可以是车载设备,例如车载影音设备、车载显示设备和车载监控设备,等等。发送端110、接收端120也可以是服务器或服务器集群。云服务器130可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(CDN,Content Delivery Network)、以及大数据和人工智能平台等基础云计算服务的云服务器。终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。本申请所公开的语音数据的发送和接收方法或装置,其中多个服务器可组成为一区块链,而服务器为区块链上的节点。例如,在一些需要进行声纹识别的场景中,发送端发送的语音数据可以存储在区块链节点上,用于后续进行声纹语音以对用户身份进行验证。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
以下分别进行详细说明。需说明的是,以下实施例的描述顺序不作为对实施例优选顺序的限定。
本申请实施例将从语音数据的发送装置的角度进行描述,该语音数据的发送装置具体可以集成在第一电子设备中,该第一电子设备可以是终端或者服务器等设备。
如图1b所示,该语音数据的发送方法的具体流程如下:
101、获取待编码数据序列,所述待编码数据序列包括多个待编码且具有时序关系的语音数据。
其中,待编码数据序列可以是待编码的语音数据序列,具体地,一些实施例中,待编码数据序列可以包括多个按照时间先后顺序排列的语音数据,各个语音数据的时长不限。该语音数据可以是原始的模拟语音信号,也可以是数字的语音信号。
其中,待编码数据序列中的各个语音数据具体可以是通过对某一语音段进行划分得到的,其划分方式可以是等时长划分,即各个语音数据的时长相等,也可以按照不同时长进行划分,本实施例对此不作限制。
如图1c所示,在VoIP(Voice over Internet Protocol,互联网协议的语音)通话系统中,语音数据要经过采集、前处理、编码、流控、传输、解码、后处理和播放等多个阶段,每个阶段都会影响最终的语音质量。从端到端的角度,影响通话体验的因素,可以分成信源和信道(链路)两个部分。信源部分,主要干扰因素是声学侧的噪声、回声等物理特征;信道部分,主要干扰因素是网络环境造成的丢包、延迟和抖动等问题。其中,丢包会造成语音不连续、卡顿等问题。
本实施例中,可以通过一种联合信源和信道编码的方法来对抗丢包,从而提升VoIP的音频质量。可选地,信源编码可以通过带内FEC编码来实现,信道编码可以通过RSFEC编码来实现。其中,带内FEC编码可以将某个语音数据的关联语音数据作为冗余信息添加到该语音数据对应的语音数据包中,RSFEC编码则可以基于语音数据的丢包率,生成一定数量的冗余数据包,当发生数据包丢失时,可以通过冗余数据包恢复出丢失的数据包。
其中,FEC,全称为Forward Error Correction,即前向纠错,它是一种被广泛应用于通信系统中的纠错技术,发送端将负载数据加上一定的冗余纠错码一起发送,接收端根据接收到的冗余纠错码对数据进行差错检测,如果发现差错,则利用纠错码进行纠错。当FEC工作于传输层或应用层时,其处理的基本对象为数据包,可用来恢复网络中的丢包。
其中,RS(Reed–Solomon)编码是一种前向纠错的信道编码,对由校正过采样数据所产生的多项式有效。当接收器收到足够多正确的点(数据)后,它就可以恢复原来的多项式,即使接收到的多项式上有很多点被噪声干扰失真。具体地,RS编码是利用范特蒙矩阵或者柯西矩阵的特性来实现纠错码的功能,它可以通过构建冗余线性方程的原理,把n个原始载荷包(待保护数据),基于RS算法生成m个冗余包,向接收端发送n个原始载荷包和m个冗余包,这样接收端只要丢包少于m个都可以通过冗余包恢复出来,即通过接收到的数据包还原出丢失的数据包,这在一定程度上可以对抗连续丢包。
102、针对每个语音数据,确定所述语音数据的关联语音数据,所述关联语音数据为所述待编码数据序列中与所述语音数据之间的时序关系满足预设关联条件的语音数据。
其中,该预设关联条件可以根据实际情况进行设置。例如,该预设关联条件具体可以是关联语音数据对应的时间与该语音数据对应的时间是相邻的,比如,某语音数据为第11秒至第15秒对应的语音片段,则该语音数据的关联语音数据可以是第6秒至第10秒对应的语音片段。
具体地,待编码数据序列中的语音数据是按时间顺序进行排列的,一些实施例中,某个语音数据的关联语音数据可以是待编码数据序列中与该语音数据的位置相邻的语音数据;比如,关联语音数据可以是待编码数据序列中该语音数据的上一个时间段的语音数据。
103、针对每个语音数据,对所述语音数据和其对应的关联语音数据进行冗余编码,得到编码后数据序列,所述编码后数据序列包括多个具有时序关系的编码后语音数据包,所述编码后语音数据包包括:载荷字段和冗余字段,所述载荷字段包含所述语音数据,所述冗余字段包含压缩后的关联语音数据。
可选地,本实施例中,编码后数据序列中编码后语音数据包的排列顺序可以与待编码数据序列中语音数据的排列顺序对应;也就是说,编码后数据序列中编码后语音数据包可以基于该编码后语音数据包的载荷字段中语音数据对应的时序进行排列。一些实施例中,还可以根据编码后语音数据包的载荷字段中语音数据对应的时序,对编码后语音数据包进行编号,并将编号信息存储在其包头中,再根据编码信息确定其在编码后数据序列中的位置。
例如,编码后语音数据包的载荷字段中的语音数据为第16秒至第20秒的语音片段,则该编码后语音数据包对应的时序为第16秒至第20秒,可以基于该时序对编码后数据序列中的编码后语音数据包进行排序。
可选地,本实施例中,步骤“对所述语音数据和其对应的关联语音数据进行冗余编码”,可以包括:
对所述语音数据进行编码,得到初始编码后语音数据包,所述初始编码后语音数据包包括载荷字段,所述载荷字段包括编码后的语音数据;
在所述初始编码后语音数据包中设置冗余字段;
对所述语音数据对应的关联语音数据进行压缩,并将压缩后的关联语音数据添加至所述冗余字段中,以生成编码后语音数据包。
其中,通过对关联语音数据进行压缩,并添加到编码后语音数据包的冗余字段中,这样在该关联语音数据对应的语音数据包丢失时,通过该编码后语音数据包的冗余字段中压缩的关联语音数据,可以恢复出一个“质量尚可”的语音,同时,压缩后的关联语音数据也不会增加太多带宽。
在一具体实施例中,如图1d所示,待编码数据序列包括多个具有时序关系的语音数据,这些语音数据可以记为载荷1、载荷2以及载荷3等等,通过对语音数据进行冗余编码,得到编码后数据序列,编码后数据序列包括多个编码后语音数据包,其中,除了队首的编码后语音数据包,编码后语音数据包可以包括三部分结构——包头、载荷字段和冗余字段,编码后语音数据包的载荷字段可以携带对应的语音数据,冗余字段可以携带压缩后的关联语音数据,如图1d所示的第二个编码后语音数据包,载荷2为其本身对应的存储在载荷字段的语音数据,冗余1为压缩后的载荷1,若第一个编码后语音数据包丢失了,可以通过第二个编码后语音数据包中的冗余1,来对载荷1进行数据恢复。
本实施例中,可以通过带内FEC编码(也即信源编码),在本帧语音编码数据中携带前一帧语音数据的冗余信息,当发生丢包时,丢包位置的语音数据可以通过丢包位置下一帧的语音编码数据内携带的前一帧的冗余信息进行恢复。在编码码率固定的情况下,前一帧的冗余信息与本帧语音编码数据占用的比特之间存在竞争关系,当前一帧的冗余信息占用的比特数较高时会导致语音编码质量显著下降,因此本申请可以通过对前一帧的冗余信息的压缩,来提升网络带宽的利用率。
其中,可以基于Opus[RFC6716]和AMR[RFC4867]通过添加冗余包到编码载荷里面的方式来支持带内FEC机制。Opus是一个有损声音编码的格式,AMR是一种主要用于移动设备上的音频文件格式。RFC(Request For Comments)意即“请求评论”,是一系列以编号排定的文件。
104、按照预定顺序向网络侧发送所述编码后数据序列中的语音数据包。
其中,网络侧具体为语音数据包的接收端。预定顺序具体可以是语音数据的时序,基于编码后数据序列中语音数据包的载荷字段对应的语音数据的时序列,确定编码后数据序列中语音数据包的发送顺序;或者,语音数据包的包头可以存储有数据包编号,该数据包编号代表语音数据包的发送顺序。
可选地,本实施例中,步骤“按照预定顺序向网络侧发送所述编码后数据序列中的语音数据包”之前,还可以包括:
根据所述网络侧发送的丢包信息,生成冗余编码信息;
将所述冗余编码信息和所述语音数据进行融合,得到至少一个冗余数据包,所述冗余数据包包括冗余融合字段,所述冗余融合字段包含所述冗余编码信息和所述语音数据的融合后信息;
步骤“按照预定顺序向网络侧发送所述编码后数据序列中的语音数据包”,包括:
将所述冗余数据包添加至所述编码后数据序列中,按照预定顺序向网络侧发送所述编码后数据序列中的语音数据包。
其中,丢包信息表示在当前网络状态下进行数据传输时的丢包率。
其中,冗余编码信息和语音数据的融合方式可以有多种,本实施例对此不作限制。比如,该融合方式可以是相乘等。通过对冗余编码信息和语音数据进行融合,可以得到二者的融合后信息。本实施例中,可以将融合后信息作为冗余数据包的数据信息,将其存储至冗余数据包的冗余融合字段中。
需要说明的是,冗余数据包也可以视为语音数据包,具体地,冗余数据包是融合有冗余编码信息和语音数据的信息的数据包。
可选地,本实施例中,步骤“根据所述网络侧发送的丢包信息,生成冗余编码信息”,可以包括:
根据所述网络侧发送的丢包信息,获取冗余数据结构信息;
根据所述冗余数据结构信息,构建冗余编码信息。
其中,可以根据当前网络状态下的丢包信息(具体为丢包率),确定出需要向所述网络侧发送的冗余数据包的数量,所述冗余数据包的数量为向所述网络侧发送的编码后语音数据包的数量与当前网络状态下的丢包率的乘积。例如,当前网络状态下的数据传输丢包率为50%,而向网络侧发送的编码后语音数据包的数量为10个,则需要向网络侧发送的冗余数据包的数量为5个。
在当前网络状态下,在网络发送端与网络接收端之间进行网络数据传输时,网络接收端(即网络侧)会根据接收的网络发送端发送的网络数据包,统计出该网络状态下进行网络数据传输时的丢包率。
其中,可以根据所述网络侧发送的丢包信息,确定需要向所述网络侧发送的冗余数据包的数据包数量;基于所述数据包数量和所述编码后数据序列中编码后语音数据包的数量,生成冗余数据结构信息。
其中,冗余数据结构信息可以包括生成的冗余编码信息对应的编码矩阵的行数和列数。一些实施例中,冗余编码信息对应的编码矩阵的行数为编码后语音数据包和冗余数据包的数量之和,冗余编码信息对应的编码矩阵的列数与编码后语音数据包的数量相同。为了方便数据存储,冗余编码信息对应的编码矩阵上部可以为与编码后语音数据包对应的编码矩阵,下部为与冗余数据包对应的编码矩阵。
其中,冗余编码信息对应的编码矩阵是基于RS编码算法生成,并且冗余编码信息对应的编码矩阵满足任意子矩阵可逆的条件。
在一具体实施例中,假设需要向网络侧发送编码后语音数据包D1~D5和冗余数据包C1~C3;如图1e所示,编码后语音数据包D1~D5和冗余数据包C1~C3由冗余编码信息对应的编码矩阵B和数据矩阵D相乘得到,具体地,编码后语音数据包D1~D5表示编码后语音数据包的载荷字段中的语音数据D1~D5,冗余数据包C1~C3表示冗余数据包中冗余融合字段的融合后信息C1~C3。
其中,数据矩阵D的行数与编码后语音数据包的数量相同,数据矩阵的列数为1。具体地,数据矩阵D中的元素可以为编码后语音数据包的载荷字段中的语音数据D1~D5。
可选地,本实施例中,可以把编码后语音数据包视为向量D=(D1,D2,…,Dn),n为编码后语音数据包的数量,把冗余数据包视为向量C=(C1,C2,…Cm),m为冗余数据包的数量;根据RS编码原理,向网络侧发送n个编码后语音数据包和m个冗余数据包,当丢失的数据包个数少于m时,都可以根据冗余数据包恢复出丢失的数据包,这在一定程度上可以对抗连续丢包。
由上可知,本实施例可以获取待编码数据序列,所述待编码数据序列包括多个待编码且具有时序关系的语音数据;针对每个语音数据,确定所述语音数据的关联语音数据,所述关联语音数据为所述待编码数据序列中与所述语音数据之间的时序关系满足预设关联条件的语音数据;针对每个语音数据,对所述语音数据和其对应的关联语音数据进行冗余编码,得到编码后数据序列,所述编码后数据序列包括多个具有时序关系的编码后语音数据包,所述编码后语音数据包包括:载荷字段和冗余字段,所述载荷字段包含所述语音数据,所述冗余字段包含压缩后的关联语音数据;按照预定顺序向网络侧发送所述编码后数据序列中的语音数据包。本申请实施例可以通过编码后语音数据包携带压缩后的关联语音数据,以解决该关联语音数据对应的语音数据包的丢失问题,既能保证传输网络的抗丢包能力,同时,通过对关联语音数据进行压缩又可以有效提升网络带宽的利用率。
本实施例将从语音数据的接收装置的角度进行描述,该语音数据的接收装置具体可以集成在第二电子设备中,该第二电子设备可以是终端或者服务器等设备。
如图2a所示,该语音数据的接收方法的具体流程如下:
201、接收编码后数据序列中的编码后语音数据包,所述编码后语音数据包包括:载荷字段和冗余字段,所述载荷字段包含语音数据,所述冗余字段包含压缩后的关联语音数据,所述关联语音数据为与所述语音数据之间的时序关系满足预设关联条件的语音数据。
其中,编码后数据序列中的编码后语音数据包具有时序关系。
其中,该预设关联条件可以根据实际情况进行设置,本实施例对此不作限制。例如,该预设关联条件具体可以是关联语音数据对应的时间与该语音数据对应的时间是相邻的,比如,某语音数据为第11秒至第15秒对应的语音片段,则该语音数据的关联语音数据可以是第6秒至第10秒对应的语音片段。
具体地,编码后语音数据包中冗余字段的关联语音数据可以为载荷字段的语音数据的上一帧语音片段。
202、对所述编码后语音数据包进行解码,并基于解码结果进行数据传输的数据包丢失检测。
可选地,本实施例中,编码后语音数据包的数据包包头可以包括该数据包的编号信息,编号信息可以表示编码后语音数据包的时序,具体地,编号信息表示编码后语音数据包的载荷字段中语音数据对应的时序。对编码后语音数据包进行解码,具体可以是从编码后语音数据包的包头中提取编号信息。
例如,在上一个编码后语音数据包的解码结果为编号信息1的情况下,若对当前的编码后语音数据包进行解码,得到的解码结果为编号信息3,则说明数据传输的过程在发生了数据包丢失的状况,丢失的数据包的编号信息为2。
203、当检测到存在数据包丢失时,确定所述编码后数据序列中与丢失语音数据包相关联的目标关联语音数据包。
其中,目标关联语音数据包中包含有丢失语音数据包的载荷字段中语音数据的相关信息。具体地,目标关联语音数据包的冗余字段中压缩后的关联语音数据是通过对丢失语音数据包的载荷字段中语音数据压缩得到的;可以理解的是,目标关联语音数据包为编码后数据序列中与丢失语音数据包之间的时序关系满足所述预设关联条件的编码后语音数据包。
204、对所述目标关联语音数据包进行冗余解码,以从所述目标关联语音数据包的冗余字段中提取压缩后的关联语音数据。
205、根据压缩后的关联语音数据,对丢失语音数据包的载荷字段中语音数据进行数据恢复。
一些实施例中,可以将压缩后的关联语音数据直接作为丢失语音数据包的载荷字段中的语音数据,另一些实施例中,也可以对压缩后的关联语音数据进行上采样处理,将上采样处理后的语音数据作为丢失语音数据包的载荷字段中的语音数据。
在经过数据恢复,得到丢失语音数据包的载荷字段中的语音数据后,可以将该语音数据存入语音播放缓存中。
可选地,本实施例中,所述编码后数据序列还包括冗余数据包;所述冗余数据包包括冗余融合字段,所述冗余融合字段包含冗余编码信息和语音数据的融合后信息;该语音数据的接收方法还可以包括:
当所述目标关联语音数据包冗余解码失败时,对所述冗余数据包进行解码,以从所述冗余数据包的冗余融合字段中提取融合后信息;
根据所述融合后信息,对丢失语音数据包的载荷字段中语音数据进行数据恢复。
其中,目标关联语音数据包冗余解码失败,具体即无法从目标关联语音数据包的冗余字段中提取到压缩后的关联语音数据,也即带内FEC解码失败,则可以通过RS解码,即对冗余数据包进行解码。
可选地,本实施例中,步骤“当所述目标关联语音数据包冗余解码失败时,对所述冗余数据包进行解码”,可以包括:
当所述目标关联语音数据包冗余解码失败、且接收到所述编码后数据序列中语音数据包的数量不小于预设数量时,对所述冗余数据包进行解码。
可选地,该预设数量具体可以是发送端发送的编码后数据序列中编码后语音数据包的数量。
本实施例中,冗余数据包中冗余融合字段的融合后信息可以是基于冗余编码信息和语音数据融合得到,冗余编码信息是基于RS编码算法生成的。对于RS编码,若编码后数据序列包含n个编码后语音数据包和m个冗余数据包,当丢失的数据包个数少于m个时,也即当接收端接收到的数据包个数不小于n个时,可以根据冗余数据包恢复出丢失的编码后语音数据包的载荷字段中的语音数据。
其中,接收到的编码后数据序列中语音数据包可以包括编码后语音数据包和冗余数据包中的任意一种或组合。丢失语音数据包为编码后语音数据包和冗余数据包中的任意一种或组合。所述丢失语音数据包的数量不超过(小于等于)所述冗余数据包的数量,才可以根据接收到的数据包对丢失语音数据包进行数据恢复,即采用本实施例的RS码前向纠错方法可以最多恢复与冗余数据包数量相同的任意随机丢失的数据包。
可选地,本实施例中,步骤“根据所述融合后信息,对丢失语音数据包的载荷字段中语音数据进行数据恢复”,可以包括:
对所述融合后信息进行逆运算,得到所述融合后信息对应的逆编码矩阵;
根据所述逆编码矩阵,对丢失语音数据包的载荷字段中语音数据进行数据恢复。
其中,对于RS编解码,原始编码后语音数据包的数据矩阵与实际接收的编码后语音数据包和冗余数据包及其对应的逆编码矩阵的关系为:原始编码后语音数据包的数据矩阵等于实际接收的编码后语音数据包和冗余数据包与该实际接收的编码后语音数据包和冗余数据包对应的编码矩阵的逆矩阵的乘积;因此可以基于逆编码矩阵来恢复丢失语音数据包的载荷字段中语音数据。
本实施例提供的RS码前向纠错方法可以通过数据矩阵和采用RS编码算法生成的冗余编码信息,进而构建冗余数据包,以向网络接收端发送编码后语音数据包和冗余数据包,从而便于根据冗余数据包最大程度的恢复出编码后语音数据包。该方法不仅可以更好的解决因网络传输造成的网络数据包的突发丢包和随机丢包现象的问题,而且还可以保证音频流的解码完整性和实时性,保障音频通话的质量。
可选地,本实施例中,该语音数据的接收方法还可以包括:
当所述目标关联语音数据包冗余解码失败、且解码时间超过预设时间时,丢弃所述目标关联语音数据包。
其中,该预设时间可以根据实际情况进行设置,本实施例对此不做限制。比如,预设时间可以设置为60ms(毫秒)等。
在丢弃目标关联语音数据包后,网络接收端可以继续等待接收新的语音数据包。
在一具体实施例中,如图2b所示,展示了语音数据的发送和接收过程,具体如下:
(1)接收端发生网络丢包,并将丢包信息发送给发送端;
(2)发送端收到接收端发送的丢包信息;
(3)发送端基于丢包情况,通过带内FEC(即信源编码)和RSFEC(即信道编码)对待编码数据序列中的语音数据增加冗余,得到编码后语音数据包和冗余数据包;
(4)发送端将编码后语音数据包和冗余数据包通过网络传输给接收端;
(5)接收端检测当前是否存在数据包丢失;
(6)如果没有发生丢包,直接把语音数据包放入播放缓存,以供音频设备播放;
(7)如果发生丢包,首先进行带内FEC解码,具体即从丢失语音数据包相关联的目标关联语音数据包的冗余字段中提取压缩后的关联语音数据;
(8)判断带内FEC解码(即信源解码)是否成功,即判断是否获取到压缩后的关联语音数据;
(9)如果带内FEC解码成功,则把恢复后的语音包放入播放缓存;
(10)如果带内FEC解码失败,检测是否大于预设的等待超时;
(11)如果大于预设等待超时,则丢弃该目标关联语音数据包,重新回到步骤(5),继续等待接收新的语音数据包;
(12)如果小于等于等待超时,检测当前接收到的语音数据包个数是否大于等于n(n为发送端发送的编码后语音数据包的个数);
(13)如果当前接收到的语音数据包个数是否大于等于n,则可以根据冗余数据包进行RS解码(即信道解码),恢复出丢失语音数据包并且放入播放缓存;
(14)否则回到步骤(5),继续等待接收新的语音数据包。
其中,带内FEC编码的具体过程为:针对每个语音数据,确定语音数据在待编码数据序列中的关联语音数据,再对所述语音数据和其关联语音数据进行冗余编码,得到编码后语音数据包,编码后语音数据包包括:载荷字段和冗余字段,所述载荷字段包括所述语音数据,所述冗余字段包括压缩后的关联语音数据。
其中,RSFEC编码的具体过程为:通过RS编码根据丢包信息,生成冗余编码信息,再将冗余编码信息和语音数据进行融合,得到冗余数据包。
本申请提供的语音数据的发送和接收方法可以采用信源和信道联合编码,在发生丢包情况下如果通过信道编码恢复失败,也有一定几率通过信源编码进行恢复,增加了丢包抗性,而且提升网络带宽的利用率,减少延迟,从而提升语音通话质量。
在一具体实施例中,如图2c所示,发送端对三个语音数据包通过带内FEC进行信源编码,并且通过RSFEC进行信道编码,得到三个编码后语音数据包和冗余数据包,并将这三个编码后语音数据包和冗余数据包发送给接收端。在接收端,假设载荷2所在的编码后语音数据包在传输过程中丢包,如果只利用信道编码,需要等到冗余数据包到达才能进行RS解码,恢复出载荷2,这样系统增加的延迟为2个语音帧(假设1个语音帧携带的语音播放时长为20ms,则延迟为40ms);如果采用信源和信道联合编码,在收到载荷3的编码后语音数据包,由于载荷3的编码后语音数据包通过带内FEC携带了低码率的载荷2的冗余信息(即关联语音数据),可以直接恢复出载荷2,所以系统增加的延迟为1个音频包(20ms),减少了时延。
本申请的语音数据的发送和接收方法和装置可以应用在多种场景下,如图2d所示,为某即时通讯应用程序的多人语音会议,该会议会话中,每一个头像对应一个语音通话侧客户端,每个客户端可以发送一路上行语音流,然后通过媒体服务器中转,接收多路下行语音流。语音通话过程中,语音数据的发送和接收可以通过本申请提供的信源和信道联合编码方法,既能保证传输网络的抗丢包能力,又可以有效提升网络带宽的利用率。
由上可知,本实施例可以接收编码后数据序列中的编码后语音数据包,所述编码后语音数据包包括:载荷字段和冗余字段,所述载荷字段包含语音数据,所述冗余字段包含压缩后的关联语音数据,所述关联语音数据为与所述语音数据之间的时序关系满足预设关联条件的语音数据;对所述编码后语音数据包进行解码,并基于解码结果进行数据传输的数据包丢失检测;当检测到存在数据包丢失时,确定所述编码后数据序列中与丢失语音数据包相关联的目标关联语音数据包;对所述目标关联语音数据包进行冗余解码,以从所述目标关联语音数据包的冗余字段中提取压缩后的关联语音数据;根据压缩后的关联语音数据,对丢失语音数据包的载荷字段中语音数据进行数据恢复。本申请实施例可以通过编码后语音数据包携带压缩后的关联语音数据,以解决该关联语音数据对应的语音数据包的丢失问题,既能保证传输网络的抗丢包能力,同时,通过对关联语音数据进行压缩又可以有效提升网络带宽的利用率。
为了更好地实施以上方法,本申请实施例还提供一种语音数据的发送和接收系统。该语音数据的发送和接收系统包括语音数据的发送装置31和语音数据的接收装置32。如图3a所示,语音数据的发送装置31可以包括获取单元3101,第一确定单元3102,编码单元3103和发送单元3104;如图3b所示,语音数据的接收装置32可以包括接收单元3201,解码单元3202,第二确定单元3203,冗余解码单元3204和恢复单元3205,如下:
A.语音数据的发送装置31
(1)获取单元3101;
获取单元3101,用于获取待编码数据序列,所述待编码数据序列包括多个待编码且具有时序关系的语音数据。
(2)第一确定单元3102;
第一确定单元3102,用于针对每个语音数据,确定所述语音数据的关联语音数据,所述关联语音数据为所述待编码数据序列中与所述语音数据之间的时序关系满足预设关联条件的语音数据。
(3)编码单元3103;
编码单元3103,用于针对每个语音数据,对所述语音数据和其对应的关联语音数据进行冗余编码,得到编码后数据序列,所述编码后数据序列包括多个具有时序关系的编码后语音数据包,所述编码后语音数据包包括:载荷字段和冗余字段,所述载荷字段包含所述语音数据,所述冗余字段包含压缩后的关联语音数据。
可选的,在本申请的一些实施例中,所述编码单元可以包括编码子单元、设置子单元和压缩子单元,如下:
所述编码子单元,用于对所述语音数据进行编码,得到初始编码后语音数据包,所述初始编码后语音数据包包括载荷字段,所述载荷字段包括编码后的语音数据;
设置子单元,用于在所述初始编码后语音数据包中设置冗余字段;
压缩子单元,用于对所述语音数据对应的关联语音数据进行压缩,并将压缩后的关联语音数据添加至所述冗余字段中,以生成编码后语音数据包。
(4)发送单元3104;
发送单元3104,用于按照预定顺序向网络侧发送所述编码后数据序列中的语音数据包。
可选的,在本申请的一些实施例中,所述语音数据的发送装置还包括生成单元和融合单元,如下:
所述生成单元,用于根据所述网络侧发送的丢包信息,生成冗余编码信息;
融合单元,用于将所述冗余编码信息和所述语音数据进行融合,得到至少一个冗余数据包,所述冗余数据包包括冗余融合字段,所述冗余融合字段包含所述冗余编码信息和所述语音数据的融合后信息;
所述发送单元具体可以用于将所述冗余数据包添加至所述编码后数据序列中,按照预定顺序向网络侧发送所述编码后数据序列中的语音数据包。
可选的,在本申请的一些实施例中,所述生成单元可以包括获取子单元和构建子单元,如下:
所述获取子单元,用于根据所述网络侧发送的丢包信息,获取冗余数据结构信息;
构建子单元,用于根据所述冗余数据结构信息,构建冗余编码信息。
B.语音数据的接收装置32
(5)接收单元3201;
接收单元3201,用于接收编码后数据序列中的编码后语音数据包,所述编码后语音数据包包括:载荷字段和冗余字段,所述载荷字段包含语音数据,所述冗余字段包含压缩后的关联语音数据,所述关联语音数据为与所述语音数据之间的时序关系满足预设关联条件的语音数据。
(6)解码单元3202;
解码单元3202,用于对所述编码后语音数据包进行解码,并基于解码结果进行数据传输的数据包丢失检测。
(7)第二确定单元3203;
第二确定单元3203,用于当检测到存在数据包丢失时,确定所述编码后数据序列中与丢失语音数据包相关联的目标关联语音数据包。
(8)冗余解码单元3204;
冗余解码单元3204,用于对所述目标关联语音数据包进行冗余解码,以从所述目标关联语音数据包的冗余字段中提取压缩后的关联语音数据。
(9)恢复单元3205;
恢复单元3205,用于根据压缩后的关联语音数据,对丢失语音数据包的载荷字段中语音数据进行数据恢复。
可选的,在本申请的一些实施例中,所述编码后数据序列还包括冗余数据包;所述冗余数据包包括冗余融合字段,所述冗余融合字段包含冗余编码信息和语音数据的融合后信息;
所述语音数据的接收装置还可以包括冗余数据包解码单元和数据恢复单元,如下:
所述冗余数据包解码单元,用于当所述目标关联语音数据包冗余解码失败时,对所述冗余数据包进行解码,以从所述冗余数据包的冗余融合字段中提取融合后信息;
数据恢复单元,用于根据所述融合后信息,对丢失语音数据包的载荷字段中语音数据进行数据恢复。
可选的,在本申请的一些实施例中,所述冗余数据包解码单元具体可以用于当所述目标关联语音数据包冗余解码失败、且接收到所述编码后数据序列中语音数据包的数量不小于预设数量时,对所述冗余数据包进行解码。
可选的,在本申请的一些实施例中,所述数据恢复单元可以包括逆运算子单元和恢复子单元,如下:
所述逆运算子单元,用于对所述融合后信息进行逆运算,得到所述融合后信息对应的逆编码矩阵;
恢复子单元,用于根据所述逆编码矩阵,对丢失语音数据包的载荷字段中语音数据进行数据恢复。
可选的,在本申请的一些实施例中,所述语音数据的接收装置还可以包括丢弃单元,如下:
所述丢弃单元,用于当所述目标关联语音数据包冗余解码失败、且解码时间超过预设时间时,丢弃所述目标关联语音数据包。
由上可知,本实施例可以通过获取单元3101获取待编码数据序列,所述待编码数据序列包括多个待编码且具有时序关系的语音数据;由第一确定单元3102针对每个语音数据,确定所述语音数据的关联语音数据,所述关联语音数据为所述待编码数据序列中与所述语音数据之间的时序关系满足预设关联条件的语音数据;通过编码单元3103针对每个语音数据,对所述语音数据和其对应的关联语音数据进行冗余编码,得到编码后数据序列,所述编码后数据序列包括多个具有时序关系的编码后语音数据包,所述编码后语音数据包包括:载荷字段和冗余字段,所述载荷字段包含所述语音数据,所述冗余字段包含压缩后的关联语音数据;由发送单元3104按照预定顺序向网络侧发送所述编码后数据序列中的语音数据包;
或者,通过接收单元3201接收编码后数据序列中的编码后语音数据包,所述编码后语音数据包包括:载荷字段和冗余字段,所述载荷字段包含语音数据,所述冗余字段包含压缩后的关联语音数据,所述关联语音数据为与所述语音数据之间的时序关系满足预设关联条件的语音数据;由解码单元3202对所述编码后语音数据包进行解码,并基于解码结果进行数据传输的数据包丢失检测;当检测到存在数据包丢失时,通过第二确定单元3203确定所述编码后数据序列中与丢失语音数据包相关联的目标关联语音数据包;由冗余解码单元3204对所述目标关联语音数据包进行冗余解码,以从所述目标关联语音数据包的冗余字段中提取压缩后的关联语音数据;通过恢复单元3205根据压缩后的关联语音数据,对丢失语音数据包的载荷字段中语音数据进行数据恢复;
本申请实施例可以通过编码后语音数据包携带压缩后的关联语音数据,以解决该关联语音数据对应的语音数据包的丢失问题,既能保证传输网络的抗丢包能力,同时,通过对关联语音数据进行压缩又可以有效提升网络带宽的利用率。
本申请实施例还提供一种电子设备,如图4所示,其示出了本申请实施例所涉及的电子设备的结构示意图,该电子设备可以是终端或者服务器等,具体来讲:
该电子设备可以包括一个或者一个以上处理核心的处理器401、一个或一个以上计算机可读存储介质的存储器402、电源403和输入单元404等部件。本领域技术人员可以理解,图4中示出的电子设备结构并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
处理器401是该电子设备的控制中心,利用各种接口和线路连接整个电子设备的各个部分,通过运行或执行存储在存储器402内的软件程序和/或模块,以及调用存储在存储器402内的数据,执行电子设备的各种功能和处理数据,从而对电子设备进行整体监控。可选的,处理器401可包括一个或多个处理核心;优选的,处理器401可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器401中。
存储器402可用于存储软件程序以及模块,处理器401通过运行存储在存储器402的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器402可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据电子设备的使用所创建的数据等。此外,存储器402可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器402还可以包括存储器控制器,以提供处理器401对存储器402的访问。
电子设备还包括给各个部件供电的电源403,优选的,电源403可以通过电源管理系统与处理器401逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源403还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
该电子设备还可包括输入单元404,该输入单元404可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
尽管未示出,该电子设备还可以包括显示单元等,在此不再赘述。具体在本实施例中,电子设备中的处理器401会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器402中,并由处理器401来运行存储在存储器402中的应用程序,从而实现各种功能,如下:
获取待编码数据序列,所述待编码数据序列包括多个待编码且具有时序关系的语音数据;针对每个语音数据,确定所述语音数据的关联语音数据,所述关联语音数据为所述待编码数据序列中与所述语音数据之间的时序关系满足预设关联条件的语音数据;针对每个语音数据,对所述语音数据和其对应的关联语音数据进行冗余编码,得到编码后数据序列,所述编码后数据序列包括多个具有时序关系的编码后语音数据包,所述编码后语音数据包包括:载荷字段和冗余字段,所述载荷字段包含所述语音数据,所述冗余字段包含压缩后的关联语音数据;按照预定顺序向网络侧发送所述编码后数据序列中的语音数据包;
或者,
接收编码后数据序列中的编码后语音数据包,所述编码后语音数据包包括:载荷字段和冗余字段,所述载荷字段包含语音数据,所述冗余字段包含压缩后的关联语音数据,所述关联语音数据为与所述语音数据之间的时序关系满足预设关联条件的语音数据;对所述编码后语音数据包进行解码,并基于解码结果进行数据传输的数据包丢失检测;当检测到存在数据包丢失时,确定所述编码后数据序列中与丢失语音数据包相关联的目标关联语音数据包;对所述目标关联语音数据包进行冗余解码,以从所述目标关联语音数据包的冗余字段中提取压缩后的关联语音数据;根据压缩后的关联语音数据,对丢失语音数据包的载荷字段中语音数据进行数据恢复。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
由上可知,本实施例可以获取待编码数据序列,所述待编码数据序列包括多个待编码且具有时序关系的语音数据;针对每个语音数据,确定所述语音数据的关联语音数据,所述关联语音数据为所述待编码数据序列中与所述语音数据之间的时序关系满足预设关联条件的语音数据;针对每个语音数据,对所述语音数据和其对应的关联语音数据进行冗余编码,得到编码后数据序列,所述编码后数据序列包括多个具有时序关系的编码后语音数据包,所述编码后语音数据包包括:载荷字段和冗余字段,所述载荷字段包含所述语音数据,所述冗余字段包含压缩后的关联语音数据;按照预定顺序向网络侧发送所述编码后数据序列中的语音数据包。本申请实施例可以通过编码后语音数据包携带压缩后的关联语音数据,以解决该关联语音数据对应的语音数据包的丢失问题,既能保证传输网络的抗丢包能力,同时,通过对关联语音数据进行压缩又可以有效提升网络带宽的利用率。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本申请实施例提供一种存储介质,其中存储有多条指令,该指令能够被处理器进行加载,以执行本申请实施例所提供的任一种语音数据的发送和接收方法中的步骤。例如,该指令可以执行如下步骤:
获取待编码数据序列,所述待编码数据序列包括多个待编码且具有时序关系的语音数据;针对每个语音数据,确定所述语音数据的关联语音数据,所述关联语音数据为所述待编码数据序列中与所述语音数据之间的时序关系满足预设关联条件的语音数据;针对每个语音数据,对所述语音数据和其对应的关联语音数据进行冗余编码,得到编码后数据序列,所述编码后数据序列包括多个具有时序关系的编码后语音数据包,所述编码后语音数据包包括:载荷字段和冗余字段,所述载荷字段包含所述语音数据,所述冗余字段包含压缩后的关联语音数据;按照预定顺序向网络侧发送所述编码后数据序列中的语音数据包;
或者,
接收编码后数据序列中的编码后语音数据包,所述编码后语音数据包包括:载荷字段和冗余字段,所述载荷字段包含语音数据,所述冗余字段包含压缩后的关联语音数据,所述关联语音数据为与所述语音数据之间的时序关系满足预设关联条件的语音数据;对所述编码后语音数据包进行解码,并基于解码结果进行数据传输的数据包丢失检测;当检测到存在数据包丢失时,确定所述编码后数据序列中与丢失语音数据包相关联的目标关联语音数据包;对所述目标关联语音数据包进行冗余解码,以从所述目标关联语音数据包的冗余字段中提取压缩后的关联语音数据;根据压缩后的关联语音数据,对丢失语音数据包的载荷字段中语音数据进行数据恢复。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
其中,该存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
由于该存储介质中所存储的指令,可以执行本申请实施例所提供的任一种语音数据的发送和接收方法中的步骤,因此,可以实现本申请实施例所提供的任一种语音数据的发送和接收方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述语音数据的发送和接收方面的各种可选实现方式中提供的方法。
以上对本申请实施例所提供的一种语音数据的发送和接收方法以及相关设备进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (13)
1.一种语音数据的发送方法,其特征在于,包括:
获取待编码数据序列,所述待编码数据序列包括多个待编码且具有时序关系的语音数据;
针对每个语音数据,确定所述语音数据的关联语音数据,所述关联语音数据为所述待编码数据序列中与所述语音数据之间的时序关系满足预设关联条件的语音数据;
针对每个语音数据,对所述语音数据和其对应的关联语音数据进行冗余编码,得到编码后数据序列,所述编码后数据序列包括多个具有时序关系的编码后语音数据包,所述编码后语音数据包包括:载荷字段和冗余字段,所述载荷字段包含所述语音数据,所述冗余字段包含压缩后的关联语音数据;
按照预定顺序向网络侧发送所述编码后数据序列中的语音数据包。
2.根据权利要求1所述的方法,其特征在于,所述按照预定顺序向网络侧发送所述编码后数据序列中的语音数据包之前,还包括:
根据所述网络侧发送的丢包信息,生成冗余编码信息;
将所述冗余编码信息和所述语音数据进行融合,得到至少一个冗余数据包,所述冗余数据包包括冗余融合字段,所述冗余融合字段包含所述冗余编码信息和所述语音数据的融合后信息;
所述按照预定顺序向网络侧发送所述编码后数据序列中的语音数据包,包括:
将所述冗余数据包添加至所述编码后数据序列中,按照预定顺序向网络侧发送所述编码后数据序列中的语音数据包。
3.根据权利要求2所述的方法,其特征在于,所述根据所述网络侧发送的丢包信息,生成冗余编码信息,包括:
根据所述网络侧发送的丢包信息,获取冗余数据结构信息;
根据所述冗余数据结构信息,构建冗余编码信息。
4.根据权利要求1所述的方法,其特征在于,所述对所述语音数据和其对应的关联语音数据进行冗余编码,包括:
对所述语音数据进行编码,得到初始编码后语音数据包,所述初始编码后语音数据包包括载荷字段,所述载荷字段包括编码后的语音数据;
在所述初始编码后语音数据包中设置冗余字段;
对所述语音数据对应的关联语音数据进行压缩,并将压缩后的关联语音数据添加至所述冗余字段中,以生成编码后语音数据包。
5.一种语音数据的接收方法,其特征在于,包括:
接收编码后数据序列中的编码后语音数据包,所述编码后语音数据包包括:载荷字段和冗余字段,所述载荷字段包含语音数据,所述冗余字段包含压缩后的关联语音数据,所述关联语音数据为与所述语音数据之间的时序关系满足预设关联条件的语音数据;
对所述编码后语音数据包进行解码,并基于解码结果进行数据传输的数据包丢失检测;
当检测到存在数据包丢失时,确定所述编码后数据序列中与丢失语音数据包相关联的目标关联语音数据包;
对所述目标关联语音数据包进行冗余解码,以从所述目标关联语音数据包的冗余字段中提取压缩后的关联语音数据;
根据压缩后的关联语音数据,对丢失语音数据包的载荷字段中语音数据进行数据恢复。
6.根据权利要求5所述的方法,其特征在于,所述编码后数据序列还包括冗余数据包;所述冗余数据包包括冗余融合字段,所述冗余融合字段包含冗余编码信息和语音数据的融合后信息;所述方法还包括:
当所述目标关联语音数据包冗余解码失败时,对所述冗余数据包进行解码,以从所述冗余数据包的冗余融合字段中提取融合后信息;
根据所述融合后信息,对丢失语音数据包的载荷字段中语音数据进行数据恢复。
7.根据权利要求6所述的方法,其特征在于,所述当所述目标关联语音数据包冗余解码失败时,对所述冗余数据包进行解码,包括:
当所述目标关联语音数据包冗余解码失败、且接收到所述编码后数据序列中语音数据包的数量不小于预设数量时,对所述冗余数据包进行解码。
8.根据权利要求6所述的方法,其特征在于,所述根据所述融合后信息,对丢失语音数据包的载荷字段中语音数据进行数据恢复,包括:
对所述融合后信息进行逆运算,得到所述融合后信息对应的逆编码矩阵;
根据所述逆编码矩阵,对丢失语音数据包的载荷字段中语音数据进行数据恢复。
9.根据权利要求5所述的方法,其特征在于,所述方法还包括:
当所述目标关联语音数据包冗余解码失败、且解码时间超过预设时间时,丢弃所述目标关联语音数据包。
10.一种语音数据的发送装置,其特征在于,包括:
获取单元,用于获取待编码数据序列,所述待编码数据序列包括多个待编码且具有时序关系的语音数据;
第一确定单元,用于针对每个语音数据,确定所述语音数据的关联语音数据,所述关联语音数据为所述待编码数据序列中与所述语音数据之间的时序关系满足预设关联条件的语音数据;
编码单元,用于针对每个语音数据,对所述语音数据和其对应的关联语音数据进行冗余编码,得到编码后数据序列,所述编码后数据序列包括多个具有时序关系的编码后语音数据包,所述编码后语音数据包包括:载荷字段和冗余字段,所述载荷字段包含所述语音数据,所述冗余字段包含压缩后的关联语音数据;
发送单元,用于按照预定顺序向网络侧发送所述编码后数据序列中的语音数据包。
11.一种语音数据的接收装置,其特征在于,包括:
接收单元,用于接收编码后数据序列中的编码后语音数据包,所述编码后语音数据包包括:载荷字段和冗余字段,所述载荷字段包含语音数据,所述冗余字段包含压缩后的关联语音数据,所述关联语音数据为与所述语音数据之间的时序关系满足预设关联条件的语音数据;
解码单元,用于对所述编码后语音数据包进行解码,并基于解码结果进行数据传输的数据包丢失检测;
第二确定单元,用于当检测到存在数据包丢失时,确定所述编码后数据序列中与丢失语音数据包相关联的目标关联语音数据包;
冗余解码单元,用于对所述目标关联语音数据包进行冗余解码,以从所述目标关联语音数据包的冗余字段中提取压缩后的关联语音数据;
恢复单元,用于根据压缩后的关联语音数据,对丢失语音数据包的载荷字段中语音数据进行数据恢复。
12.一种电子设备,其特征在于,包括存储器和处理器;所述存储器存储有应用程序,所述处理器用于运行所述存储器内的应用程序,以执行权利要求1至4任一项所述的语音数据的发送方法或权利要求5至9任一项所述的语音数据的接收方法中的操作。
13.一种存储介质,其特征在于,所述存储介质存储有多条指令,所述指令适于处理器进行加载,以执行权利要求1至4任一项所述的语音数据的发送方法或权利要求5至9任一项所述的语音数据的接收方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110725190.3A CN115550459A (zh) | 2021-06-29 | 2021-06-29 | 语音数据的发送和接收方法以及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110725190.3A CN115550459A (zh) | 2021-06-29 | 2021-06-29 | 语音数据的发送和接收方法以及相关设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115550459A true CN115550459A (zh) | 2022-12-30 |
Family
ID=84705750
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110725190.3A Pending CN115550459A (zh) | 2021-06-29 | 2021-06-29 | 语音数据的发送和接收方法以及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115550459A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116668042A (zh) * | 2023-07-31 | 2023-08-29 | 北京众驰伟业科技发展有限公司 | 一种d-二聚体和fdp复合质控品生产数据信息传输方法 |
-
2021
- 2021-06-29 CN CN202110725190.3A patent/CN115550459A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116668042A (zh) * | 2023-07-31 | 2023-08-29 | 北京众驰伟业科技发展有限公司 | 一种d-二聚体和fdp复合质控品生产数据信息传输方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100680671B1 (ko) | 에러 정정용 데이터의 생성 방법 및 생성 장치와 생성 프로그램을 저장한 컴퓨터 판독가능한 기록 매체 | |
WO2018077083A1 (zh) | 音频帧丢失恢复方法和装置 | |
CN110943800B (zh) | 数据包的发送方法、装置及系统、存储介质、电子装置 | |
CN111800218B (zh) | 一种数据流的传输方法和设备 | |
EP2493105A1 (en) | Method and system for recovering lost media data packets | |
CN105681342B (zh) | 一种基于h264的多路视频会议系统的抗误码方法及系统 | |
US9166735B2 (en) | Correction data | |
JP2005136546A (ja) | 送信装置および方法、記録媒体、並びにプログラム | |
US10630426B2 (en) | Redundancy information for a packet data portion | |
US20230071243A1 (en) | Conserving network resources during transmission of packets of interactive services | |
CN115550459A (zh) | 语音数据的发送和接收方法以及相关设备 | |
US9276606B2 (en) | Correction data | |
CN101192903A (zh) | 数据帧编解码控制方法 | |
CN113541853B (zh) | 数据传输方法、终端及计算机可读存储介质 | |
CN113301387B (zh) | 数据编解码方法、相关设备及系统 | |
WO2005094039A1 (en) | Method and apparatus for processing header bits and payload bits | |
CN112165655A (zh) | 基于视联网的数据传输方法、装置、设备及介质 | |
CN112954255B (zh) | 视频会议码流的传输方法、装置、计算机设备和存储介质 | |
CN114448588B (zh) | 音频传输方法、装置、电子设备及计算机可读存储介质 | |
CN114337917B (zh) | 基于前向纠错数据传输方法和短报文发送方法 | |
CN114978427B (zh) | 数据处理方法、装置、程序产品、计算机设备和介质 | |
CN117118573B (zh) | 数据网络传输方法、装置、设备及存储介质 | |
CN114900716B (zh) | 云视频数据的传输方法、云平台、云终端及介质 | |
KR101695838B1 (ko) | 통신 시스템에서 데이터 송수신 장치 및 방법 | |
CN112217602A (zh) | 集群语音包的处理方法、装置和终端 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |