CN117640015B - 一种语音编码、解码方法、装置、电子设备及存储介质 - Google Patents
一种语音编码、解码方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN117640015B CN117640015B CN202410103944.5A CN202410103944A CN117640015B CN 117640015 B CN117640015 B CN 117640015B CN 202410103944 A CN202410103944 A CN 202410103944A CN 117640015 B CN117640015 B CN 117640015B
- Authority
- CN
- China
- Prior art keywords
- data packets
- data packet
- packet
- frame
- candidate
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 117
- 238000011156 evaluation Methods 0.000 claims abstract description 100
- 238000012545 processing Methods 0.000 claims abstract description 34
- 238000001514 detection method Methods 0.000 claims description 74
- 238000012216 screening Methods 0.000 claims description 51
- 238000004458 analytical method Methods 0.000 claims description 37
- 230000008859 change Effects 0.000 claims description 37
- 230000015654 memory Effects 0.000 claims description 37
- 238000004590 computer program Methods 0.000 claims description 30
- 238000011084 recovery Methods 0.000 claims description 30
- 230000035772 mutation Effects 0.000 claims description 11
- 238000001914 filtration Methods 0.000 claims description 3
- 230000008569 process Effects 0.000 abstract description 61
- 230000005540 biological transmission Effects 0.000 description 62
- 238000010586 diagram Methods 0.000 description 38
- 238000012937 correction Methods 0.000 description 27
- 230000006870 function Effects 0.000 description 15
- 238000005516 engineering process Methods 0.000 description 14
- 238000004891 communication Methods 0.000 description 10
- 238000004364 calculation method Methods 0.000 description 9
- 230000003287 optical effect Effects 0.000 description 7
- 230000000694 effects Effects 0.000 description 5
- 230000005236 sound signal Effects 0.000 description 5
- 238000004422 calculation algorithm Methods 0.000 description 4
- 239000000284 extract Substances 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000000737 periodic effect Effects 0.000 description 4
- 230000000903 blocking effect Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 3
- 239000000203 mixture Substances 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 230000004075 alteration Effects 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 2
- 238000005253 cladding Methods 0.000 description 2
- 230000000295 complement effect Effects 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 210000005069 ears Anatomy 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 238000001303 quality assessment method Methods 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L25/00—Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
- G10L25/03—Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the type of extracted parameters
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L25/00—Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
- G10L25/48—Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 specially adapted for particular use
- G10L25/51—Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 specially adapted for particular use for comparison or discrimination
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0041—Arrangements at the transmitter end
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0045—Arrangements at the receiver end
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
-
- 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/60—Network streaming of media packets
- H04L65/75—Media network packet handling
- H04L65/762—Media network packet handling at the source
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- Acoustics & Sound (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请涉及数据处理技术领域,尤其涉及一种语音编码、解码方法、装置、电子设备及存储介质,并在语音编码过程中,提出了采用语音编码器,获得各原始语音帧各自的编码数据包;分别基于所述各原始语音帧的语音特征,获得表征各编码数据包的重要性评估值;再将所述各编码数据包,按时序划分为多组候选数据包,其中,每获得一组候选数据包,基于确定的关键数据包,生成N个冗余数据包,并将各候选数据包、编码的N个冗余数据包,以及关键数据包的指示信息,发送至音频接收端,这样,在原始语音帧的编码过程中,降低了生成冗余数据包时消耗的计算资源,并能够降低数据传输过程中消耗的传输资源,极大的提高了计算资源和传输资源的利用效率。
Description
技术领域
本申请涉及数据处理技术领域,尤其涉及一种语音编码、解码方法、装置、电子设备及存储介质。
背景技术
相关技术下,为了应对音频数据包传输过程中的丢包问题,通常借助于前向纠错(Forward Error Correction,FEC)技术,在音频数据传输之前,对原始音频数据进行编码生成的冗余数据,并将原始音频数据和冗余数据一同发送到接收方设备,以使接收方设备使用冗余数据对原始音频数据中丢失的数据包进行丢包恢复。
例如,在采用FEC技术进行处理的过程中,输入由k个原始语音帧得到的k个编码数据包,得到由r个冗余数据包和k个编码数据包组成的n个数据包,其中,r/n的比值越大,则抗网络丢包能力越强,对带宽要求更高。
然而,由于原始音频数据中可能掺杂无声音的无效语音帧,而借助于FEC技术进行处理的过程中,需要针对每k个原始语音帧的编码数据包生成对应的r个冗余数据包,这使得需要耗费大量的计算资源结合无效语音帧生成冗余数据包,以及需要耗费大量的传输资源,传输结合无效语音帧生成的冗余数据包,这极大地降低了计算资源和传输资源的有效利用率。
发明内容
本申请实施例提供一种一种语音编码、解码方法、装置、电子设备及存储介质,用以在音频数据传输过程中,提高计算资源和传输资源的有效利用率。
第一方面,提出一种语音编码方法,包括:
采用预设的语音编码器,获得各原始语音帧各自的编码数据包;
分别基于所述各原始语音帧的语音特征,获得表征相应的编码数据包是否为关键数据包的重要性评估值;
将各编码数据包,按时序划分为多组候选数据包,其中,每获得一组候选数据包,执行以下操作:
在一组候选数据包覆盖的各候选数据包中,确定对应的重要性评估结果满足预设的重要性筛选条件的各关键数据包,并采用FEC编码器,基于所述各关键数据包编码生成N个冗余数据包,N≥1;
将用于指示所述各关键数据包的指示信息、所述各候选数据包,以及所述N个冗余数据包,作为一个目标数据组,发送至音频接收设备,以使所述音频接收设备确定所述各关键数据包中存在丢包时,采用相应的FEC解码器,基于所述N个冗余数据包对丢失的关键数据包进行丢包恢复。
第二方面,提出一种语音解码方法,包括:
每接收一个音频发送设备发送的目标数据组,执行以下操作:
确定一个目标数据组中包括冗余数据包时,获取所述目标数据组中各关键数据包的指示信息,以及获取所述指示信息对应的各候选数据包和N个冗余数据包;
对所述各候选数据包进行丢包分析,并在确定所述各候选数据包中存在丢包时,根据所述指示信息,在所述各候选数据包中确定各关键数据包,以及在确定丢包位置对应关键数据包时,采用FEC解码器,基于所述N个冗余数据包在所述各关键数据包中进行丢包恢复,得到处理后的各候选数据包;
采用预设的语音解码器,对所述处理后的各候选数据包进行解码,获得原始语音帧。
第三方面,提出一种语音编码装置,包括:
采用单元,用于采用预设的语音编码器,获得各原始语音帧各自的编码数据包;
获得单元,用于分别基于所述各原始语音帧的语音特征,获得表征相应的编码数据包是否为关键数据包的重要性评估值;
执行单元,用于将各编码数据包,按时序划分为多组候选数据包,其中,每获得一组候选数据包,执行以下操作:
在一组候选数据包覆盖的各候选数据包中,确定对应的重要性评估结果满足预设的重要性筛选条件的各关键数据包,并采用FEC编码器,基于所述各关键数据包编码生成N个冗余数据包,N≥1;
将用于指示所述各关键数据包的指示信息、所述各候选数据包,以及所述N个冗余数据包,作为一个目标数据组,发送至音频接收设备,以使所述音频接收设备确定所述各关键数据包中存在丢包时,采用相应的FEC解码器,基于所述N个冗余数据包对丢失的关键数据包进行丢包恢复。
可选的,所述分别基于所述各原始语音帧的语音特征,获得表征相应的编码数据包是否为关键数据包的重要性评估值时,所述获得单元用于:
分别提取各原始语音帧各自的帧检测信息、帧能量信息,以及基音周期;
基于各原始语音帧各自的帧检测信息,结合每相邻两个原始语音帧之间帧检测信息的变化情况、帧能量信息的突增情况和基音周期的变化情况,获得所述各原始语音帧各自的语音帧评估值,并将各语音帧评估值作为表征相应的各编码数据包是否为关键数据包的各重要性评估值。
可选的,所述基于各原始语音帧各自的帧检测信息,结合每相邻两个原始语音帧之间帧检测信息的变化情况、帧能量信息的突增情况和基音周期的变化情况,获得所述各原始语音帧各自的语音帧评估值时,所述获得单元用于:
基于各原始语音帧的帧检测信息,分别获得表征各原始语音帧是否对应语音内容的各语音判定值,并基于每相邻两个原始语音帧之间帧检测信息的变化情况,分别获得表征所述各原始语音帧是否为起始语音帧的各帧检测值;
基于所述每相邻两个原始语音帧之间帧能量信息的突增情况,分别获得所述各原始语音帧各自的能量突增值,并基于所述每相邻两个原始语音帧之间基音周期的变化情况,分别获得所述各原始语音帧各自的周期突变值;
基于所述各原始语音帧各自对应的语音判定值、帧检测值、能量突增值,以及周期突变值,获得所述各原始语音帧各自的语音帧评估值。
可选的,所述将各编码数据包,按时序划分为多组候选数据包时,所述执行单元用于以下任意一项:
将各编码数据包,按照时序每M个划分为一组候选数据包,得到多组候选数据包,M≥1;
获取预设的重要数据包总数,并按照预设的数据包筛选条件,从所述各编码数据包中确定出重要数据包,以及按照所述各编码数据包的时序顺序,依次将包含所述重要数据包总数个重要数据包的各编码数据包,划分为一组候选数据包,得到多组候选数据包。
可选的,所述在一组候选数据包覆盖的各候选数据包中,确定对应的重要性评估结果满足预设的重要性筛选条件的各关键数据包时,所述执行单元用于执行以下任意一项:
在一组候选数据包覆盖的各候选数据包中,将对应的重要性评估值超过重要性阈值的候选数据包,确定为满足预设的重要性筛选条件的各关键数据包;
在一组候选数据包覆盖的各候选数据包中,将最大的H个重要性评估值对应的H个候选数据包中,对应的重要性评估值高于预设的最低门限值的候选数据包,确定为满足预设的重要性筛选条件的各关键数据包,H≥1。
可选的,在一组候选数据包覆盖的各候选数据包中,不存在对应的重要性评估结果满足预设的重要性筛选条件的各关键数据包时,所述执行单元还用于:
将所述各候选数据包作为一个目标数据组,发送至音频接收设备。
可选的,所述装置还包括反馈单元,所述反馈单元用于:
获取音频接收设备反馈的丢包结果,并根据所述丢包结果,调整所述N的取值。
可选的,所述采用FEC编码器,基于所述各关键数据包编码生成N个冗余数据包时,所述执行单元用于:
确定所述各关键数据包对应的数据包总数,并确定与所述数据包总数匹配的目标FEC编码器;
将所述各关键数据包进行数据长度对齐处理,并采用所述目标FEC编码器,基于处理后的所述各关键数据包,编码生成N个冗余数据包。
第四方面,提出一种语音解码装置,包括:
每接收一个音频发送设备发送的目标数据组,所述装置执行以下操作:
确定单元,用于确定一个目标数据组中包括冗余数据包时,获取所述目标数据组中各关键数据包的指示信息,以及获取所述指示信息对应的各候选数据包和N个冗余数据包;
分析单元,用于对所述各候选数据包进行丢包分析,并在确定所述各候选数据包中存在丢包时,根据所述指示信息,在所述各候选数据包中确定各关键数据包,以及在确定丢包位置对应关键数据包时,采用FEC解码器,基于所述N个冗余数据包在所述各关键数据包中进行丢包恢复,得到处理后的各候选数据包;
获得单元,用于采用预设的语音解码器,对所述处理后的各候选数据包进行解码,获得原始语音帧。
可选的,所述对所述各候选数据包进行丢包分析之后,所述分析单元还用于:
在确定所述各候选数据包中不存在丢包时,采用预设的语音解码器,对所述各候选数据包进行解码,并播放解码得到的原始语音帧。
可选的,所述根据所述指示信息,在所述各候选数据包中确定各关键数据包之后,所述分析单元还用于:
在确定丢失的数据包不为关键数据包时,采用预设的语音解码器,对丢失的候选数据包进行丢包恢复,得到处理后的各候选数据包,并对所述处理后的各候选数据包进行解码;
播放解码得到的原始语音帧。
可选的,所述对所述各候选数据包进行丢包分析之后,所述分析单元还用于:
统计得到丢包结果,并将所述丢包结果反馈给音频发送设备。
可选的,所述装置还包括接收单元,所述接收单元用于:
接收与所述指示信息、所述各候选数据包和所述N个冗余数据包同步发送的视频数据包;
解码所述视频数据包得到各待播放视频帧,并按照时间对齐的方式,同步播放所述各待播放视频帧,以及对处理后的所述各候选数据包解码得到的原始语音帧。
可选的,确定所述一个目标数据组中不包括冗余数据包时,所述装置中的执行单元执行以下操作:
对所述各候选数据包进行丢包分析,获得所述各候选数据包的丢包结果;
在确定所述各候选数据包中存在丢包时,采用预设的语音解码器,对所述各候选数据包进行丢包恢复,得到处理后的各候选数据包,并对所述处理后的各候选数据包进行解码,得到待播放的原始语音帧;
以及,在确定所述各候选数据包中不存在丢包时,采用预设的语音编码器,对所述各候选数据包进行解码,得到待播放的原始语音帧。
第五方面,提出一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法。
第六方面,提出一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述方法。
第七方面,提出一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现上述方法。
本申请有益效果如下:
本申请提出一种语音编码、解码方法、装置、电子设备及存储介质,并在语音编码过程中,在得到语音编码器编码的各编码数据包后,借助于带外编码的方式,每次按照时序从编码数据包中划分出的一组候选数据包,进而从一组候选数据包覆盖的各候选数据包中,确定出重要性评估值满足重要性筛选条件的各关键数据包,再采用FEC编码器,对各关键数据包进行冗余编码,生成N个冗余数据包;基于此,在生成冗余数据包的过程中,仅将筛选出的重要性满足筛选条件的各关键数据包,作为FEC编码器的输入,因而生成的N个冗余数据包仅与各关键数据包有关,从而仅针对各关键数据包配置有由FEC技术实现丢包恢复的能力;相当于对需要借助于FEC编码技术生成冗余数据的输入数据包进行了筛选,不再将基于各原始语音帧生成的各编码数据包先后作为FEC编码器的输入,因而在原始语音帧的编码过程中,降低了生成冗余数据包时消耗的计算资源,并能够降低数据传输过程中消耗的传输资源,极大的提高了计算资源和传输资源的利用效率,而且,能够极大的降低音频数据传输过程中的运营成本,提高音频数据传输网络质量。
在语音解码过程中,提出了每接收一个目标数据组,执行以下操作:确定所述一个目标数据组中包括冗余数据包时,获取音频发送设备发送的各关键数据包的指示信息,以及获取所述指示信息对应的各候选数据包和N个冗余数据包;再对所述各候选数据包进行丢包分析,并在确定所述各候选数据包中存在丢包时,根据所述指示信息,在所述各候选数据包中确定各关键数据包,以及在确定丢包位置对应关键数据包时,采用FEC解码器,基于所述N个冗余数据包进行丢包恢复,得到处理后的各候选数据包;之后,采用预设的语音解码器,对所述处理后的各候选数据包进行解码,获得原始语音帧。
这样,能够在确定丢包位置对应各候选数据包中的关键数据包后,采用FEC解码器,基于N个冗余数据包,对丢失的关键数据包进行丢包恢复,能够有效解决音频数据传输过程中的丢包问题,避免由于重要性高的关键数据包丢失而产生音频中断和卡顿,提高了音频数据的传输效果。
附图说明
图1为本申请实施例中基于RS编码技术生成冗余数据包的过程示意图;
图2为本申请实施例中可能的应用场景示意图;
图3A为本申请实施例中语音编码的过程示意图;
图3B为本申请实施例中确定原始语音帧i的语音帧评估值的过程示意图;
图3C为本申请实施例中确定编码数据包i的重要性评估值的过程示意图;
图4A为本申请实施例中一种划分候选数据包组的过程示意图;
图4B为本申请实施例中另一种划分候选数据包组的过程示意图;
图5A为本申请实施例中语音解码的流程示意图;
图5B为本申请实施例中恢复关键数据包的过程示意图;
图6A为本申请实施中无线通话中的前向纠错编解码流程示意图;
图6B为本申请实施例中前向纠错编解码流程示意图;
图6C为本申请实施例中直播场景下的内容呈现示意图;
图6D为本申请实施例中语音通话场景下的页面呈现示意图;
图6E为本申请实施例中游戏场景下的页面呈现示意图;
图7为本申请实施例中语音编码装置的逻辑结构示意图;
图8为本申请实施例中语音解码装置的逻辑结构示意图;
图9为应用本申请实施例的一种电子设备的硬件组成结构示意图;
图10为应用本申请实施例的另一种电子设备的硬件组成结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请技术方案的一部分实施例,而不是全部的实施例。基于本申请文件中记载的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请技术方案保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够在除了这里图示或描述的那些以外的顺序实施。
本申请实施例中,术语“模块”或“单元”是指有预定功能的计算机程序或计算机程序的一部分,并与其他相关部分一起工作以实现预定目标,并且可以通过使用软件、硬件(如处理电路或存储器)或其组合来全部或部分实现。同样的,一个处理器(或多个处理器或存储器)可以用来实现一个或多个模块或单元。此外,每个模块或单元都可以是包含该模块或单元功能的整体模块或单元的一部分。
以下对本申请实施例中的部分用语进行解释说明,以便于本领域技术人员理解。
前向纠错校正(FEC):是一种错误纠正技术,通常用于数字通信领域,通过在发送数据时添加冗余信息来使接收端能够检测和纠正传输中的错误。例如,在基于IP的语音传输(Voice over Internet Protocol,VoIP)应用中,这种编码方案可以将原始音视频数据分成多个小段,并在每个小段中添加冗余信息,然后将这些小段分别传输给接收端。如果某些小段在传输过程中发生了丢失或错误,接收端可以使用其他小段中的冗余信息来检测和纠正这些错误,从而还原原始音视频数据。在本申请实施例中,前向纠错通过冗余包编码算法恢复信道丢包,减少弱网环境下语音卡顿。常用的FEC算法主要有里所码(Reed-solomoncodes,RS),汉明/海明(Hamming)码,低密度奇偶校验码(Low Density Parity CheckCode,LDPC),异或(exclusive OR,XOR)码等。
RS编码:是一种编码方案,常用于前向纠错技术中的冗余数据生成。具体而言,RS编码可以生成一定数量的冗余符号或冗余包,并将它们与原始数据一同发送至音频接收端,能够提高音频数据传输的可靠性和完整性。在前向纠错中,使用RS编码可以实现纠正一定数量的数据错误。通常情况下,RS编码的冗余字节数量越多,前向纠错能力就越强,数据传输的开销越大。
FEC冗余度:是指进行FEC编码时的冗余程度,具体体现为生成的冗余数据包的数目(即N值的取值)。例如,采用异或的算法进行FEC,冗余度为20%,则本申请实施例中,关键语音包(或称关键数据包)与冗余数据包比例为5:1,说明FEC编码时,每5个关键语音包,产生一个冗余包,假设确定K个候选数据包中包括5个关键数据包,则可以确定编码得到1个冗余数据包,这K个候选数据包和1个冗余数据包可以认为是一个FEC Group,且对应配置有用于标识关键数据包的指示信息;进而,可将K个候选数据包和1个冗余数据包打包发送至音频接收设备;基于此,当音频接收设备确定存在关键数据包丢失时,可在当前FEC Group中利用冗余数据包进行丢包恢复。
丢包率:网络中的丢包是随机的,比如丢包率为10%,那说明100个包(包括候选数据包和冗余数据包)中丢失10个数据包。在本申请实施例中,当丢包率低则使用较低的FEC冗余度,即配置取值较小的N值;相反,当丢包率较高则使用较高的FEC冗余度,即配置取值较大的N值,以抵抗网络丢包。基于丢包率确定原始FEC冗余度时,例如丢包率为16.67%,此时选择20%冗余度可以实现无失真恢复,音质良好无断续。
下面对本申请实施例的设计思想进行简要介绍:
目前,在数据包级的音频数据传输过程中,常出现丢包情况。
例如,在基于IP的语音传输(Voice over Internet Protocol,VoIP)应用中,为了保证音视频传输的实时性,通常使用UDP不可靠连接协议方式,而由于互联网普遍存在带宽竞争、传输拥塞现象,导致数据包极容易发生丢失,这对于语音通话质量影响非常大,为了应对数据包丢失情况,大部分语音解码器会自带有丢包补偿功能(Packet LossConcealment,PLC),但只能有限度地修复少量丢包(例如1~2个包),如果连续丢包在3个以上,语音解码器的PLC功能基本失效,甚至会听到明显的不自然噪声或断续感,另外大量连续丢包下人耳能明显感知丢包导致的卡顿掉字等现象,非常影响通话主观体验。
申请人在构思采用语音编码器带外前向纠错方式,解决音频数据包传输过程中的丢包问题时,想到在数据传输之前,音频数据发送设备可以采用FEC技术对音频数据进行编码,进而将原始数据包和生成的冗余数据包一同发送到音频数据接收设备;基于此,音频数据接收设备能够使用收到的冗余数据包进行错误检测和纠正错误的数据,从而提高数据传输的可靠性。
例如,参阅图1所示,其为本申请实施例中基于RS编码技术生成冗余数据包的过程示意图,采用RS编码技术进行处理的过程中,涉及到的处理过程包括编码和解码两个步骤,其中,RS编码和解码可以应用于数据包级传输应用。
继续结合附图1可知,假设采用语音编码器对k个原始语音帧进行编码后得到k个原始数据包,为了包级RS编码,需要将所有输入数据包统一长度,对长度不足的数据包需要填0处理(解码时对应原始数据包长度把填充的0去掉即可)。进而,在配置生成的冗余数据包个数取值r的情况下,借助于FEC编码器,能够基于k个原始数据包生成r个冗余数据包。
然而,由于k个原始数据包中可能掺杂无声音的无效数据包,而借助于FEC技术进行处理的过程中,需要针对每k个原始数据包生成对应的r个冗余数据包,这使得需要耗费大量的计算资源结合无效数据包生成冗余数据包,以及需要耗费大量的传输资源,传输结合无效数据包生成的冗余数据包,这极大地降低了计算资源和传输资源的有效利用率。
有鉴于此,本申请提出一种语音编码、解码方法、装置、电子设备及存储介质,并在语音编码过程中,提出了采用预设的语音编码器,获得各原始语音帧各自的编码数据包;再分别基于所述各原始语音帧的语音特征,获得表征相应编码数据包是否为关键数据包的重要性评估值;之后,将所述各编码数据包,按时序划分为多组候选数据包,其中,每获得一组候选数据包,执行以下操作:在一组候选数据包覆盖的各候选数据包中,确定对应的重要性评估结果满足预设的重要性筛选条件的各关键数据包,并采用FEC编码器,基于所述各关键数据包编码生成N个冗余数据包,N≥1;将用于指示所述各关键数据包的指示信息、所述各候选数据包,以及所述N个冗余数据包,作为一个目标数据组,发送至音频接收设备,以使所述音频接收设备确定所述各关键数据包中存在丢包时,采用相应的FEC解码器,基于所述N个冗余数据包对丢失的关键数据包进行丢包恢复。
这样,在得到语音编码器编码的各编码数据包后,借助于带外编码的方式,每次按照时序从编码数据包中划分出的一组候选数据包,进而从一组候选数据包覆盖的各候选数据包中,确定出重要性评估值满足重要性筛选条件的各关键数据包,再采用FEC编码器,对各关键数据包进行冗余编码,生成N个冗余数据包;基于此,在生成冗余数据包的过程中,仅将筛选出的重要性满足筛选条件的各关键数据包,作为FEC编码器的输入,因而生成的N个冗余数据包仅与各关键数据包有关,从而仅针对各关键数据包配置有由FEC技术实现丢包恢复的能力;相当于对需要借助于FEC编码技术生成冗余数据的输入数据包进行了筛选,不再将基于各原始语音帧生成的各编码数据包先后作为FEC编码器的输入,因而在原始语音帧的编码过程中,降低了生成冗余数据包时消耗的计算资源,并能够降低数据传输过程中消耗的传输资源,极大的提高了计算资源和传输资源的利用效率,而且,能够极大的降低音频数据传输过程中的运营成本,提高音频数据传输网络质量。
在语音解码过程中,提出了每接收一个目标数据组,执行以下操作:确定所述一个目标数据组中包括冗余数据包时,获取音频发送设备发送的各关键数据包的指示信息,以及获取所述指示信息对应的各候选数据包和N个冗余数据包;再对所述各候选数据包进行丢包分析,并在确定所述各候选数据包中存在丢包时,根据所述指示信息,在所述各候选数据包中确定各关键数据包,以及在确定丢包位置对应关键数据包时,采用FEC解码器,基于所述N个冗余数据包进行丢包恢复,得到处理后的各候选数据包;之后,采用预设的语音解码器,对所述处理后的各候选数据包进行解码,获得原始语音帧。
这样,能够在确定丢包位置对应各候选数据包中的关键数据包后,采用FEC解码器,基于N个冗余数据包,对丢失的关键数据包进行丢包恢复,能够有效解决音频数据传输过程中的丢包问题,避免由于重要性高的关键数据包丢失而产生音频中断和卡顿,提高了音频数据的传输效果。
以下结合说明书附图对本申请的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本申请,并不用于限定本申请,并且在不冲突的情况下,本申请实施例及实施例中的特征可以相互组合。
参阅图2所示,其为本申请实施例中可能的应用场景示意图。该应用场景示意图中,包括音频发送设备210,以及音频接收设备220。
在本申请可行的实施例中,音频发送设备210采用内置的音频采集组件或者外接的音频采集设备采集各原始语音帧后,借助于内部预设的语音编码器,依次对各原始语音帧进行编码,获得各原始语音帧各自的编码数据包;进而,为了实现对各编码数据包中,重要的关键数据包进行丢包恢复,分别基于各原始语音帧的语音特征,获得表征相应编码数据包是否为关键数据包的重要性评估值,其中,语音特征包括但不限于是帧检测信息、帧能量信息,以及基音周期;进而,将各编码数据包按时序划分为多组候选数据包。
其中,每获得一组候选数据包,音频发送设备210执行以下操作:在一组候选数据包覆盖的各候选数据包中,确定出各关键数据包,并采用FEC编码器,基于各关键数据包编码生成N个冗余数据包,并将各候选数据包、N个冗余数据包,以及用于指示各关键数据包的指示信息,作为一个目标数据组,发送至音频接收设备220,以使音频接收设备220根据N个冗余数据包,对关键数据包进行丢包恢复。
在音频发送设备210将一组候选数据包、基于该组候选数据包中的关键数据包编码得到的N个冗余数据包,以及用于指示各关键数据包的指示信息,作为一个目标数据组,发送至音频接收设备220之后,音频接收设备220每接收一个目标数据组,确定一个目标数据组中包括冗余数据包时,获取音频发送设备发送的各关键数据包的指示信息,以及获取指示信息对应的各候选数据包和N个冗余数据包,进而针对接收的各候选数据包进行丢包分析,并在确定存在丢包时,解析用于指示各关键数据包的指示信息,确定丢失的是否为关键数据包,以及在确定丢失关键数据包时,采用FEC解码器基于N个冗余数据包对丢失的关键数据包进行丢包恢复;再采用语音解码器,对处理后的各候选数据包进行解码,并播放解码得到的原始语音帧。
在本申请实施例中,音频发送设备210和音频接收设备220之间可以存在音频交互,或者,单方面的音频发送,其中,音频发送过程可以在小程序应用、客户端应用,以及网页应用中的任意一种应用上触发,本申请对此不做具体限制。
音频发送设备210包括但不限于手机、平板电脑、笔记本、电子书阅读器、智能语音交互设备、智能家电、车载终端、飞行器等。
音频接收设备220包括但不限于手机、平板电脑、笔记本、电子书阅读器、智能语音交互设备、智能家电、车载终端、飞行器等。
本申请实施例中,音频发送设备210与音频接收设备220之间,可以通过有线网络或无线网络进行通信。
下面结合可能的应用场景,对语音编解码过程进行示意性说明:
应用场景一、音视频通话场景中的语音编码和解码。
具体的,在音视频通过场景中,音频发送设备实时采集一个通话者的说话语音,得到各原始语音帧,并采用预设的语音编码器,对各原始语音帧进行编码,得到各原始语音帧各自的编码数据包;进而,确定每个目标数据组对应的编码数据包范围,按照时序将各编码数据包划分为相应的各组候选数据包,并在每组候选数据包中确定关键数据包,以及对关键数据包进行FEC编码,得到N个冗余数据包;进而将一个候选数据包覆盖的各候选数据包、N个冗余数据包,以及对于各关键数据包的指示信息,作为一个目标数据组,发送至音频接收设备。
对应的,音频接收设备在音视频通话过程中,持续接收源自音频发送设备的各目标数据组,其中,一个目标数据组中包括:一组候选数据包中的各候选数据包、对应该组候选数据包中的各关键数据包编码得到N个冗余数据包,以及用于指示各关键数据包的指示信息;使得在接收的目标数据组中丢包位置为关键数据包时,采用FEC解码器,借助于该目标数据组中的N个冗余数据包和未丢包的其他关键数据包,对丢失的关键数据包进行解码恢复。
基于此,音频接收设备通过解码处理后的各候选数据包(包含有关键数据包),能够得到原始语音帧,进而通过播放原始语音帧,能够听到通话对象在音频发送设备上发出的声音。
应该理解的是,语音交互过程中,一个设备同时可以是音频接收设备和音频发送设备;具体的,对于使用设备A的通话对象而言,设备A为音频发送设备,而对于与该通话对象通话的另一个对象而言,设备A为音频接收设备。
应用场景二、直播场景中的语音编码和解码。
具体的,在直播场景中,音频发送设备实时采集直播者的语音,得到各原始语音帧,并采用预设的语音编码器,对各原始语音帧进行编码,得到各原始语音帧各自的编码数据包;进而,确定每个目标数据组对应的编码数据包范围,按照时序将各编码数据包划分为相应的各组候选数据包,并在每组候选数据包中确定关键数据包,以及对关键数据包进行FEC编码,得到N个冗余数据包;之后,将一个候选数据包覆盖的各候选数据包、N个冗余数据包,以及对于各关键数据包的指示信息,作为一个目标数据组,经由服务器发送至音频接收设备。
对应的,直播观看对象在进入直播者的直播间后,可以接收服务器对于该直播间的推流,获取实时的各目标数据组,其中,一个目标数据组中包括:一组候选数据包中的各候选数据包、对应该组候选数据包中的各关键数据包编码得到N个冗余数据包,以及用于指示各关键数据包的指示信息;使得在接收的目标数据组中丢包位置为关键数据包时,采用FEC解码器,借助于该目标数据组中的N个冗余数据包和未丢包的其他关键数据包,能够对丢失的关键数据包进行解码恢复。
基于此,音频接收设备通过解码处理后的各候选数据包,得到可以播放的原始语音帧,能够听到直播对象在直播间的直播内容。
应用场景三、游戏过程中的语音编码和解码。
具体的,在游戏场景中,音频发送设备实时采集游戏者的语音,得到各原始语音帧,并采用预设的语音编码器,对各原始语音帧进行编码,得到各原始语音帧各自的编码数据包;进而,确定每个目标数据组对应的编码数据包范围,按照时序将各编码数据包划分为相应的各组候选数据包,并在每组候选数据包中确定关键数据包,以及对关键数据包进行FEC编码,得到N个冗余数据包;进而将一个候选数据包覆盖的各候选数据包、N个冗余数据包,以及对于各关键数据包的指示信息,作为一个目标数据组,发送至音频接收设备。
对应的,与游戏者同队伍的其他游戏者开启语音接收控制后,其他游戏者的终端设备获取实时的各目标数据组,其中,一个目标数据组中包括:一组候选数据包中的各候选数据包、对应该组候选数据包中的各关键数据包编码得到N个冗余数据包,以及用于指示各关键数据包的指示信息;使得在接收的目标数据组中丢包位置为关键数据包时,采用FEC解码器,借助于该目标数据组中的N个冗余数据包和未丢包的其他关键数据包,对丢失的关键数据包进行解码恢复。
应用场景四、发布音频数据过程中的音频编码和解码。
具体的,在音频数据的发布过程中,相关对象可以在音频发送设备上录制待发布音频,并采用预设的音频编码器,对各待发布语音帧进行编码,得到各待发布语音帧各自的编码数据包;进而,确定每个目标数据组对应的编码数据包范围,按照时序将各编码数据包划分为相应的各组候选数据包,并在每组候选数据包中确定关键数据包,以及对关键数据包进行FEC编码,得到N个冗余数据包;进而将一个候选数据包覆盖的各候选数据包、N个冗余数据包,以及对于各关键数据包的指示信息,作为一个目标数据组,发送至音频接收设备。
对应的,浏览对象在终端设备上请求查看发布的音频后,接收发布的音频对应的各目标数据组,其中,一个目标数据组中包括:一组候选数据包中的各候选数据包、对应该组候选数据包中的各关键数据包编码得到N个冗余数据包,以及用于指示各关键数据包的指示信息;使得在接收的目标数据组中丢包位置为关键数据包时,采用FEC解码器,借助于该目标数据组中的N个冗余数据包和未丢包的其他关键数据包,对丢失的关键数据包进行解码恢复。
另外,需要理解的是,在本申请的具体实施方式中,涉及语音编码和解码过程,当本申请记载的实施例运用到具体产品或技术中时,相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
下面结合附图,首先从语音编码的角度,对音频发送设备进行语音编码的过程进行说明:
参阅图3A所示,其为本申请实施例中语音编码的过程示意图,下面结合附图3A,对语音编码过程进行说明:
步骤301:音频发送设备采用预设的语音编码器,获得各原始语音帧各自的编码数据包。
本申请实施例中,在一些可行的实现方式中,音频发送设备借助于音频采集组件,实时采集各原始语音帧,并采用预设的语音编码器,对采集的各原始语音帧进行实时处理,获得各原始语音帧各自的编码数据包;在另一些可行的实现方式中,音频发送设备借助于音频采集组件,采集各原始语音帧之后,可以响应于相关对象触发的音频数据发送指示,采用预设的语音编码器,对历史采集的各原始语音帧进行编码处理,获得各原始语音帧各自的编码数据包。
需要说明的是,本申请实施例中,音频采集组件可以是集成在音频发送设备上的,或者,可以是额外配置的实现音频采集功能的外接设备,本申请对此不做具体限制;各原始语音帧对应的音频时长相同,在采用预设的音频编码器,对应各原始语音帧得到各编码数据包后,各编码数据包各自对应的数据包长度可能不同。
例如,音频采集设备采集的每20ms的数字信号,可以作为一个原始语音帧。
在本申请可行的实现方式中,音频发送设备可以将编码后的各编码数据包,缓存至指定位置;基于此,后续在执行步骤303时,可以从指定位置处获取各编码数据包进行相关处理。
步骤302:音频发送设备分别基于各原始语音帧的语音特征,获得表征相应的编码数据包是否为关键数据包的重要性评估值。
在执行步骤302时,音频发送设备先分别提取各原始语音帧各自的帧检测信息、帧能量信息,以及基音周期,作为语音特征。
具体的,本申请实施例中,对于表征编码数据包是否为关键数据包的重要性评估值而言,在根据一个原始语音帧的语音特征,获得表征一个原始语音帧是否为关键语音帧的语音帧评估值后,将一个原始语音帧的语音帧评估值,确定为相应的编码数据包的重要性评估值。基于此,为了在各原始语音帧中确定出关键语音帧,从而将对应关键语音帧编码得到的编码数据包确定为关键数据包,需要对各原始语音帧进行语音特征的提取,并借助于提取的语音特征,衡量原始语音帧的声音质量,使得对于一段时间内的整体音频质量贡献程度高的原始语音帧,能够被选定为关键语音帧。
本申请在根据大量音频样本进行客观质量评价(Perceptual evaluation ofspeech quality,PESQ)试验后,选定帧检测信息、帧能量信息,以及基音周期,作为语音特征,其中,
帧检测信息:又称语音帧检测信息,用于表征被检测的原始语音帧是否对应语音内容。在一些可行的实现方式中,可以借助于语音活动检测(Voice Activity Detection,VAD)算法,获得帧检测信息,此时,通过子带信噪比判决的方式获得帧检测信息,其中,帧检测信息的取值为vad=0或vad=1,vad=0则表示被检测的原始语音帧为非语音(静音或噪声),vad=1则表示被检测的原始语音帧为语音;在另一些可行的实现方式中,可以借助于深度神经网络(Deep Neural Networks,DNN)训练语音帧判别模型,得到表征被检测的原始语音帧是否对应语音内容的判别结果,其中,判别结果的取值为0,则说明被检测的原始语音帧为非语音,反之,判别结果的取值为1,则说明被检测的原始语音帧为语音。
帧能量信息:也称音量信息,在计算一个原始语音帧的帧能量信息时,可以由该帧时间窗内的数据样点值求平方和的均值得到。
基音周期(Pitch):基音周期随着发声内容音素的变化而产生变化,其中,基音周期可以采用基于倒谱的基音检测技术得到,或者,可以采用其他可行的方式得到,本申请对此不做具体限制。
之后,音频发送设备基于各原始语音帧各自的帧检测信息,结合每相邻两个原始语音帧之间帧检测信息的变化情况、帧能量信息的突增情况和基音周期的变化情况,获得各原始语音帧各自的语音帧评估值。
具体的,音频发送设备基于各原始语音帧的帧检测信息,分别获得表征各原始语音帧是否对应语音内容的各语音判定值,并基于每相邻两个原始语音帧之间帧检测信息的变化情况,分别获得表征各原始语音帧是否为起始语音帧的各帧检测值;再基于每相邻两个原始语音帧之间帧能量信息的突增情况,分别获得各原始语音帧各自的能量突增值,并基于每相邻两个原始语音帧之间基音周期的变化情况,分别获得各原始语音帧各自的周期突变值;之后,基于各原始语音帧各自对应的语音判定值、帧检测值、能量突增值,以及周期突变值,获得各原始语音帧各自的语音帧评估值。
具体的,基于定义的语音特征,可以对原始语音帧的重要程度进行量化,而且,借助于定义的语音特征,能够得到四个特征指标,分别为用于描述原始语音帧是否对应语音内容的语音判定值、用于描述是否为语音内容的起始语音帧的帧检测值、用于描述是否较比相邻的前一帧语音帧存在能量突增的能量突增值,以及用于描述是否较比相邻的前一帧语音帧存在基音周期突变的周期突变值。进而,借助于各原始语音帧各自对应的语音判定值、帧检测值、能量突增值,以及周期突变值,能够获得各原始语音帧各自对应的语音帧评估值。
下面分别对四个特征指标:语音判定值、帧检测值、能量突增值,以及周期突变值的计算过程进行分别说明:
1)计算语音判定值。
在计算语音判定值时,可以将各原始语音帧各自对应的帧检测信息,确定为各原始语音帧各自的语音判定值。
2)帧检测值。
在针对各原始语音帧分别计算帧检测值时,可以针对每相邻两个原始语音帧之间帧检测信息的变化情况,确定各原始语音帧各自对应的帧检测值。特别的,对于首个原始语音帧(即不存在前一帧语音帧的原始语音帧)而言,可以将该原始语音帧的帧检测值,设置为与其对应的帧检测值取值相同。
例如,对于相邻的两个原始语音帧-原始语音帧i-1和原始语音帧i来说,若原始语音帧i-1的帧检测信息为:vad=0,而原始语音帧i的帧检测信息为:vad=1;则原始语音帧i的帧检测值为:r1=1;反之,若原始语音帧i-1的帧检测信息为:vad=1,而原始语音帧i的帧检测信息为:vad=0;则原始语音帧i的帧检测值为:r1=0 。
3)能量突增值。
在针对各原始语音帧分别计算能量突增值时,可以基于每相邻两个原始语音帧之间帧能量信息的突增情况,分别获得各原始语音帧各自的能量突增值;特别的,对于首个原始语音帧(即不存在前一帧语音帧的原始语音帧)而言,可以将该原始语音帧的能量突增值,直接设置为0或者1。
针对每个原始语音帧,在考量该原始语音帧与相邻的前一个语音帧之间帧能量信息的突增情况时,可以基于当前原始语音帧与相邻的前一个语音帧之间帧能量信息的倍数关系,并结合当前原始语音帧与预设门限值之间的大小关系,确定当前原始语音帧的能量突增值。
例如,对于相邻的两个原始语音帧-原始语音帧i-1和原始语音帧i来说,若原始语音帧i-1的帧能量信息为a1,原始语音帧i的帧能量信息为a2,且预设的倍数值为β,预设门限值为E,其中,β取值大于1;则在a2>E,且a2>β*a1的情况下,原始语音帧i的能量突增值为1,否则,原始语音帧i的能量突增值为0。
4)周期突变值。
在针对各原始语音帧分别计算周期突增值时,可以基于每相邻两个原始语音帧之间基音周期的突变情况,分别获得各原始语音帧各自的周期突变值;特别的,对于首个原始语音帧(即不存在前一帧语音帧的原始语音帧)而言,可以将该原始语音帧的周期突变值,直接设置为0或者1。
针对每个原始语音帧,在考量该原始语音帧与相邻的前一个语音帧之间基音周期的突变情况时,可以基于当前原始语音帧与相邻的前一个语音帧之间基音周期差值的绝对值,与设定阈值的关系,确定当前原始语音帧的能量突增值。
例如,对于相邻的两个原始语音帧-原始语音帧i-1和原始语音帧i来说,若原始语音帧i-1的基音周期为t1,原始语音帧i的基音周期为t2,且设定阈值为T;则在|t2-t1|>T情况下,原始语音帧i的周期突变值为1,否则,原始语音帧i的周期突变值为0。
基于上述计算各原始语音帧各自对应的语音判定值、帧检测值、能量突增值,以及周期突变值的方式,音频发送设备可以采用如下公式,计算各原始语音帧各自的语音帧评估值:
其中,r为语音帧评估值;c1、c2、c3、c4为预设系数,如,c1=0.1,c2=0.3,c3=0.3,c4=0.3;为帧检测值;/>为能量突增值;/>为周期突变值;/>为语音判定值。
例如,参阅图3B所示,其为本申请实施例中确定原始语音帧i的语音帧评估值的过程示意图,根据附图3B所示意的内容可知,在确定原始语音帧i对应的语音帧评估值时,需要根据原始语音帧i的语音特征,以及与原始语音帧相邻的前一个语音帧,即原始语音帧i-1的语音特征,来确定原始语音帧i的帧检测值、能量突增值、周期突变值,以及语音判定值;进而,借助于语音帧评估值的计算公式,计算原始语音帧i的语音帧评估值。
这样,在确定原始语音帧的语音帧评估值时,能够综合语音帧相较于相邻前一个语音帧的帧能量信息的突增情况、基音周期的变化情况,以及帧检测信息的变化情况,使得能够更好的从一段时间内的各原始语音帧中,确定出对于整体语音贡献程度高的关键音频帧。
进一步的,音频数据发送设备可以将各语音帧评估值作为表征相应的各编码数据包是否为关键数据包的各重要性评估值;也就是说,可以根据从各原始语音帧中确定关键语音帧的方式,从各原始语音帧各自对应的编码数据包中,确定出关键数据包。
另外,本申请实施例中,应该理解的是,针对各原始语音帧确定语音帧评估值的时机,即,针对各编码数据包,确定用于表征编码数据包是否为关键数据包的重要性评估值的时机,可以是获取各原始语音帧之后,或者,可以是对各原始语音帧编码得到各编码数据包之后,在进行FEC编码之前,本申请对此不做具体限制。
例如,参阅图3C所示,其为本申请实施例中确定编码数据包i的重要性评估值的过程示意图,根据附图3C所示意的内容可知,针对原始语音帧i确定对应的语音帧评估值后,对于编码原始语音帧i得到的编码数据包i,可以将原始语音帧i的语音帧评估值,确定为编码数据包i的重要性评估值。
这样,借助于各原始语音帧的语音特征,能够确定各原始语音帧各自对应的语音帧评估值,进而将各原始语音帧各自的语音帧评估值,作为相应的各编码数据包的重要性评估值,能够为从各编码数据包中筛选出关键数据包提供界定依据。
步骤303:音频发送设备将各编码数据包,按时序划分为多组候选数据包,并依次将基于每组候选数据包各个目标数据组,发送至音频接收设备。
本申请实施例中,音频发送设备将各编码数据包,按时序划分为多组候选数据包时,存在包括但不限于以下两种划分方式:
方式一、每M个候选数据包划分为一组。
在方式一对应的划分方式中,音频发送设备将各编码数据包,按照时序每M个划分为一组候选数据包,得到多组候选数据包,M≥1。
具体的,在音频发送设备将采用语音编码器编码各原始语音帧得到的各编码数据包,缓存至指定位置的情况下,音频发送设备可以按照各原始语音帧被采集的时序顺序,获取编码数据包,并可以将按照时序顺序获取的每M个编码数据包,划分至一个候选数据包组。
例如,参阅图4A所示,其为本申请实施例中一种划分候选数据包组的过程示意图,假设编码得到的各编码数据包缓存在指定位置,且每四个编码数据包被划分为一个候选数据包组;根据附图4A所示意的内容可知,缓存的编码数据包的标号越小,则表示对应的原始语音帧被采集的越早,如,编码数据包1对应的时序顺序,在编码数据包2之前;在按照时序获取各编码数据包时,对应的原始语音帧被采集的时间越早,则编码数据包越先被获取。基于此,先后划分得到的第一组候选数据包中包括编码数据包1-4,第二组候选数据包中包括编码数据包5-8,其中,编码数据包1具体为候选数据包组中的候选数据包1,同理,编码数据包2具体为候选数据包组中的候选数据包2,编码数据包3具体为候选数据包组中的候选数据包3,编码数据包4具体为候选数据包组中的候选数据包4。
方式二、将包含重要数据包总数个重要数据包的各编码数据包划分至一组。
在方式二对应的划分方式中,音频发送设备获取预设的重要数据包总数,并按照预设的数据包筛选条件,从各编码数据包中确定出重要数据包,以及按照各编码数据包的时序顺序,依次将包含重要数据包总数个重要数据包的各编码数据包,划分为一组候选数据包,得到多组候选数据包。
需要说明的是,本申请实施例中,数据包筛选条件用于从各候选数据包中筛选出重要数据包,具体可以是重要性评估值超过预设的筛选阈值。
具体的,由于针对各候选数据包的分组划分,是为了服务于后续的FEC编码过程,故在可行的实现方式中,可以从上一次FEC编码涉及的编码数据包之后开始计数,时序在其后且重要性评估值超过预设的筛选阈值的编码数据包,能够被划分至一组候选数据包中,直至确定的重要性评估值超过筛选阈值的各重要数据包总数,超过预设的重要数据包总数。
例如,参阅图4B所示,其为本申请实施例中另一种划分候选数据包组的过程示意图,假设编码得到的各编码数据包缓存在指定位置,且划分的每组候选数据包中包括2个重要数据包;根据附图4B所示意的内容可知,缓存的编码数据包的标号越小,则表示对应的原始语音帧被采集的越早,如,编码数据包1对应的时序顺序,在编码数据包2之前,在按照时序获取各编码数据包时,对应的原始语音帧被采集的时间越早,则编码数据包越先被获取。基于此,在划分得到第一组候选数据包时,先后获取编码数据包1和编码数据包2,且确定编码数据包2符合数据包筛选条件,故编码数据包2可以作为一个重要数据包,之后,继续获取编码数据包3,且确定编码数据包3符合数据包筛选条件,故可以作为一个重要数据包,故包括2个重要数据包的一组候选数据包中包括;编码数据包1-3,同理,可以划分得到其他组候选数据包。
这样,借助于方式一和方式二的处理,能够对语音编码器编码得到的各编码数据包进行分组,相当于为后续的FEC编码过程划分了数据包范围,也就是限定了一个目标数据组中包括的各编码数据包。
下面以音频发送设备每划分得到一个候选数据包组,执行的处理过程为例,对编码生成冗余数据和传输音频数据的过程进行说明:
下面继续结合附图3A,对相关的处理过程进行说明:
步骤3031:音频发送设备在一组候选数据包覆盖的各候选数据包中,确定对应的重要性评估结果满足预设的重要性筛选条件的各关键数据包,并采用FEC编码器,基于各关键数据包编码生成N个冗余数据包。
本申请实施中,音频发送设备在一组候选数据包覆盖的各候选数据包中,确定对应的重要性评估结果满足预设的重要性筛选条件的各关键数据包时,在一些可行的实现方式中,可以在一组候选数据包覆盖的各候选数据包中,将对应的重要性评估值超过重要性阈值的候选数据包,确定为满足预设的重要性筛选条件的各关键数据包;或者,在另一些可行的实现方式中,可以在一组候选数据包覆盖的各候选数据包中,将最大的H个重要性评估值对应的H个候选数据包中,对应的重要性评估值高于预设的最低门限值的候选数据包,确定为满足预设的重要性筛选条件的各关键数据包,H≥1。
具体的,在上述方式一对应的分组方式下,可以从M个候选数据包中先确定出重要性评估值最大的H个候选数据包,再将H个候选数据包中,对应的重要性评估值高于预设的最低门限值的候选数据包,确定为关键数据包;或者,可以将M个候选数据包中,重要性评估值超过重要性阈值的候选数据包,确定为关键数据包。在上述方式二对应的分组方式下,可以根据实际的处理需要,将各重要数据包作为各关键数据包,或者,在重要性阈值高于筛选阈值的情况下,可以从各重要数据包中进一步确定出关键数据包;又或者,在H的取值,高于重要数据包总数的情况下,可以在各重要数据包的基础上,扩展确定各关键数据包。
这样,音频发送设备能够从候选数据包组覆盖的各候选数据包中,确定出满足重要性筛选条件的各关键数据包,相当于借助于重要性筛选条件,能够实现对各候选数据包的重要性评估,以便确定出重要性较高的关键数据包。
之后,音频发送设备采用FEC编码器,基于各关键数据包,编码生成N个冗余数据包,其中,确定的各关键数据包作为FEC编码的输入时,各关键数据包的位置(即对应的时间戳),可以被记录为FEC编码组包信息;FEC编码组包信息也称用于指示关键数据包的指示信息;另外,本申请不对采用FEC编码器执行的具体编码过程进行限制。
具体的,音频发送设备采用FEC编码器,基于各关键数据包编码生成N个冗余数据包的过程中,先确定各关键数据包对应的数据包总数,并确定与数据包总数匹配的目标FEC编码器;再将各关键数据包进行数据长度对齐处理,并采用目标FEC编码器,基于处理后的各关键数据包,编码生成N个冗余数据包。
需要说明的是,在输入的数据包个数不同的情况下,需要采用不同的FEC编码器,本申请实施例中,可以维护对应不同输入数据包数目的不同FEC编码器,使得在编码生成冗余数据包的过程中,能够采用与确定的关键数据包总数匹配的FEC编码器,生成N个冗余数据包,其中,N≥1。另外,由于语音编码器对应不同原始语音帧编码得到的编码数据包,具有不同的数据长度,故为了实现输入数据包的长度对齐,可以采用在关键数据包中添0补位的方式,将各关键数据包的长度统一为各关键数据包中的最大长度。
例如,假设确定存在4个关键数据包,且4个关键数据包中的数据长度 分别为15bits、24bits、30bits,以及20bits,故可以将4个关键数据包的数据长度,统一为30bits。
这样,通过对输入至FEC编码器中的各关键数据包进行长度一致性处理,能够统一输入数据包的长度,保障编码过程的顺利进行;而且,在编码过程中,能够根据输入的各关键数据包的个数,选择匹配的目标FEC编码器,相当于维护了多个FEC解码器实现解码功能,因而能够有效应对各样的FEC编码环境。
另外,在确定生成的冗余数据包数目,即,确定N值的取值时,音频发送设备可以获取音频接收设备反馈的丢包结果,并根据丢包结果,调整N值的取值,其中,丢包结果可以具体以丢包率来衡量。
例如,可以配置丢包结果与冗余数据包的数目之间的对应关系,使得丢包率越高,则配置的冗余数据包的数目越大。
这样,借助于音频接收设备反馈的丢包结果,能够及时感知音频数据传输过程中的传输质量变化,并对生成的冗余数据包的数目进行适应性调整,因而能够及时对传输过程中的变化做出响应,降低丢包影响。
特别的,在一组候选数据包覆盖的各候选数据包中,不存在对应的重要性评估结果满足预设的重要性筛选条件的各关键数据包时,音频发送设备可以将各候选数据包作为一个目标数据组,发送至音频接收设备。
具体的,在确定当前一组候选数据包中,不包括符合重要性筛选条件的关键数据包时,则不对该组候选数据包执行FEC编码,不生成对应的冗余数据包,直接将该组候选数据包作为一个目标数据组,发送至音频接收设备。
这样,能够在确定候选数据包中不包括符合重要性筛选条件的关键数据包时,直接将各候选数据包发送至音频接收设备,这能够节省数据的传输带宽,避免不重要的候选数据包占用过多的计算资源,提高计算资源和传输资源的利用效率。
步骤3032:音频发送设备将用于指示各关键数据包的指示信息、各候选数据包,以及N个冗余数据包,作为一个目标数据组,发送至音频接收设备,以使音频接收设备确定各关键数据包中存在丢包时,采用相应的FEC解码器,基于N个冗余数据包对丢失的关键数据包进行丢包恢复。
具体的,音频发送设备向音频接收设备发送各关键数据包的指示信息、各候选数据包,以及N个冗余数据包后,使得音频接收设备借助于得到的N个冗余数据包,具有采用FEC解码器对关键数据包进行丢包恢复的能力。
需要说明的是,在向音频发送设备发送目标数据组时,根据实际的处理需要,可以将各候选数据包和各冗余数据包一起或者分开打包后,发送至音频接收设备,本申请对此不做具体限制。
下面结合附图,对语音解码过程中执行的处理过程进行说明。
参阅图5A所示,其为本申请实施例中语音解码的流程示意图,下面结合附图5A,以音频接收设备接收音频发送设备发送的一个目标数据组后,执行的语音解码过程为例,对相关的解码过程进行说明:
步骤501:音频接收设备确定一个目标数据组中包括冗余数据包时,获取目标数据组中各关键数据包的指示信息,以及获取指示信息对应的各候选数据包和N个冗余数据包。
需要说明的是,各关键数据包的指示信息在不同的场景中具有不同的存在形式,如,在VoIP应用中,用于指示各关键数据包的指示信息可以按照协议约定,写在指定位置;或者,在其他数据包级传输应用中,用于指示各关键数据包的指示信息,可以以包内数据的形式存在,本申请对此不做具体限制。
特别的,音频接收设备确定一个目标数据组中不包括冗余数据包时,执行以下操作:对各候选数据包进行丢包分析,获得各候选数据包的丢包结果;在确定各候选数据包中存在丢包时,采用预设的语音解码器,对各候选数据包进行丢包恢复,得到处理后的各候选数据包,并对处理后的各候选数据包进行解码,得到待播放的原始语音帧;以及,在确定各候选数据包中不存在丢包时,采用预设的语音编码器,对各候选数据包进行解码,得到待播放的原始语音帧。
具体的,音频接收设备确定一个目标数据组中不包括冗余数据包时,则确定没有可用于FEC解码的冗余数据包,故无需进行FEC解码。再此情况下,在对接收的各候选数据包进行丢包分析后,可以采用语音编码器进行进一步处理,使得在各候选数据包中存在丢包时,可以借助于语音编码器进行简单的丢包恢复,进而解码得到待播放的原始语音帧;以及,在各候选数据包中不存在丢包时,可以借助于语音编码器进行解码,得到待播放的原始语音帧。
这样,针对不包含关键数据包的各候选数据包,可以直接借助于语音编码器进行相应的处理,占用较少的计算资源,实现对重要程度不高的候选数据包的处理,实现对计算资源的合理利用。
步骤502:音频接收设备对各候选数据包进行丢包分析,并在确定各候选数据包中存在丢包时,根据用于指示各关键数据包的指示信息,在各候选数据包中确定各关键数据包,以及在确定丢包位置对应关键数据包时,采用FEC解码器,基于N个冗余数据包在各关键数据包中进行丢包恢复,得到处理后的各候选数据包。
本申请实施例中,音频接收设备可以借助于丢包检测组件,对接收的各候选数据包进行丢包分析,进而在确定存在丢包情况时,则解析用于指示各关键数据包的指示信息,确定丢包位置是否为关键数据包,以及处于同一个目标数据组的各关键数据包的信息(如时间戳信息);之后,在确定丢包位置是关键数据包时,采用FEC解码器,基于未丢包的关键数据包和冗余数据包,进行FEC解码,还原丢包数据,其中,丢包检测组件用于检测接收的数据包中的丢包情况,具体可以是抖动(jitter)缓冲组件,本申请在此不对丢包检测逻辑和采用的丢包检测组件进行具体限定。
例如,参阅图5B所示,其为本申请实施例中恢复关键数据包的过程示意图,根据附图5B的内容可知,对于音频发送设备发送的一个目标数据组而言,一个目标数据组中包括:帧序号为6-14的原始语音帧各自对应的编码数据包、用于指示帧序号为8、9、13、14的原始语音帧为关键语音帧的指示信息,即,指示帧序号8、9、13、14的原始语音帧各自对应的编码数据包为确定的4个关键数据包,以及对应4个关键数据包编码生成的N个冗余数据包。
继续结合附图5B进行说明,音频接收设备接收的一个目标数据组中,假设帧序号9的原始语音帧对应的编码数据包出现丢包,则通过解析指示信息,可以确定丢包的是关键数据包,且同目标数据组的其他关键数据包为:帧序号为8、13、14的原始语音帧各自对应的编码数据包;进而,采用FEC解码器,基于帧序号为8、13、14的原始语音帧各自对应的编码数据包,以及N个冗余数据包,能够解码得到帧序号为9的原始语音帧对应的编码数据包。
在一些特别的应用场景中,音频接收设备对各候选数据包进行丢包分析之后,在确定各候选数据包中不存在丢包时,可以直接采用预设的语音解码器,对各候选数据包进行解码,并播放解码得到的各待播放语音帧。
具体的,在接收的各候选数据包中不存在丢包情况时,则可以采用与语音编码器对应的语音解码器,对各候选数据包进行解码,获得能够播放的原始语音帧。
这样,在确定接收的数据包中不存在丢包时,则可以不对各关键数据包的指示信息进行解析,并忽视冗余数据包,分别从各候选数据包中解析出可播放的原始语音帧。
在另一些特别的场景中,音频接收设备在确定丢失的数据包不为关键数据包时,可以采用预设的语音解码器,对丢失的候选数据包进行丢包恢复,得到处理后的各候选数据包,并对处理后的各候选数据包进行解码;再播放解码得到的原始语音帧。
具体的,在音频发送设备发送的非语音关键帧丢失(即非关键数据包出现丢包),可以采用诸如PLC、语音解码器自带的丢包恢复功能等其它更低带宽消耗的丢包恢复方式,对非关键数据包进行丢包处理;进而,采用语音解码器对处理后的各候选数据包进行解码,获得可播放的原始语音帧。
这样,在本申请提出的技术方案中,关键数据包的丢包可以通过FEC解码进行丢包恢复,而非关键数据包的丢包,可以通过低带宽消耗的丢包恢复方式来处理,因而能够差异化地处理关键数据包和非关键数据包的丢包问题,能够实现对带宽资源的高效利用,以及对信源音频信号的差异性处理。
需要说明的是,本申请实施例中,音频接收设备对获取的各候选数据包进行丢包分析后,可以得到对应当前目标数据组的丢包结果,并将丢包结果反馈给音频发送设备,以使音频发送设备基于得到的丢包结果,调整用于生成冗余数据包的N值,其中,丢包结果具体可以是丢包率,本申请在此不对丢包结果的统计方式进行具体限制。
这样,通过统计丢包结果,能够反映出当前的数据传输网络质量,使得音频发送设备能够及时感知数据传输网络质量的变化,以便及时的做出适应性调整,配置符合丢包情况的FEC参数(即N值),进行FEC编码。
步骤503:音频接收设备采用预设的语音解码器,对处理后的各候选数据包进行解码,获得原始语音帧。
具体的,在对部分数据包进行丢包恢复处理后,音频接收设备采用预设的语音解码器,对处理后的各候选数据包进行解码,获得可播放的原始语音帧,并播放得到的原始语音帧。
需要说明的是,在传输的原始语音帧存在关联的视频数据时,音频接收设备在接收一个目标数据组的内容同时,接收与一个目标数据组中的指示信息、各候选数据包和N个冗余数据包同步发送的视频数据包;再解码视频数据包得到各待播放视频帧,并按照时间对齐的方式,同步播放各待播放视频帧,以及对处理后的各候选数据包解码得到的原始语音帧。
这样,能够在视频传输过程中,采用本申请请求保护的语音编解码方式,保障音频数据传输的可靠性和完整性,使得在视频播放过程中,能够保障音频播放质量。
下面结合具体的业务场景举例,对语音编码和解码过程进行示意性说明:
参阅图6A所示,其为本申请实施中无线通话中的前向纠错编解码流程示意图,以采用FEC编码中的RS解码实现前向纠错为例,音频发送端的语音编码器把采集到的各原始语音帧进行编码,得到编码后的各码流数据,即编码后的各编码数据包;之后,通过在各原始语音帧中确定关键语音帧,能够在各编码数据包中确定各关键数据包;再采用PRS编码器,基于各关键数据包编码生成N个冗余数据包;之后,将从各编码数据包中划分的各候选数据包,以及对应各候选数据包中的关键数据包编码得到的N个冗余数据包,发送至音频接收设备,其中,N值的取值是依据丢包预测器的预测结果确定的,丢包预测器基于音频接收端反馈的丢包数进行预测。
对应的,在音频接收设备的处理过程中,在关键数据包丢包时,采用PRS解码器,基于N个冗余数据包和未丢包的关键数据包,进行丢失的关键数据包的恢复还原。之后,将各候选数据包和恢复的关键数据包经过语音解码器进行解码,并播放解码后的声音信号。
这样,本申请提出的基于语音关键性分析的前向纠错技术,能够从历史相邻多帧中提取出有限的关键语音帧,并只对关键语音帧对应的关键数据包进行有效的前向纠错编码,进而显著降低前向纠错带来的传输网络带宽激增问题,在最大程度地确保音频接收端接收的音频信号的内容可懂度和语音质量,同时避免了现有前向纠错技术必然带来传输带宽极大消耗问题。
参阅图6B所示,其为本申请实施例中前向纠错编解码流程示意图,下面结合附图6B,对音频发送端和音频接收端在前向纠错编码过程中,执行的操作进行概括性说明:
步骤701:音频发送端进行音频采集、编码,以及编码数据缓存。
步骤702:音频发送端计算音频帧的语音帧评估值。
步骤703:音频发送端通过不同策略提取每个FEC分组中高语音帧评估值对应的关键编码数据,并对应一个FEC分组中的关键编码数据做FEC编码。
其中,关键编码数据是指关键数据包;在存在FEC编码器编码生成的冗余数据包的情况下,发送至音频数据接收端的一个目标数据组,也可以称为一个FEC分组。
步骤704:音频发送端将一个FEC分组中的各编码数据、FEC冗余数据,以及FEC编码组包信息发送至音频接收端。
步骤705:音频接收端进行收包缓存和丢包检测。
步骤706:音频接收端解析FEC编码组包信息,提取相应数据包。
步骤707:音频接收端进行FEC解码,恢复丢包的关键编码数据。
步骤708:音频接收端进行音频解码,并播放解码后的音频。
进一步的,参阅图6C所示,其为本申请实施例中直播场景下的内容呈现示意图,在直播场景中,音频发送设备实时采集直播者的语音,得到各原始语音帧,并采用预设的语音编码器,对各原始语音帧进行编码,得到各原始语音帧各自的编码数据包;之后,为了有效应对丢包问题,需要确定一次FEC编码对应的编码数据包范围,故将各编码数据包,按时序划分为多组候选数据包,其中,每获得一组候选数据包,执行以下操作:在一个候选数据包覆盖的各候选数据包中,筛选出各关键数据包,并采用FEC编码器,基于各关键数据包编码生成N个冗余数据包,其中,N≥1;之后,将用于指示各关键数据包的指示信息、各候选数据包,以及N个冗余数据包,作为一个目标数据组,经由服务器向观看直播的用户设备推流。
对应的,直播观看对象在进入直播者的直播间后,可以接收服务器对于该直播间的推流,获取实时的各目标数据组,其中,对应每个目标数据组配置有用于指示各关键数据包的指示信息,一个目标数据组中包括:一组候选数据包中的各候选数据包、对应该组候选数据包中的各关键数据包编码得到N个冗余数据包;每接收一个目标数据组,执行以下操作:对各候选数据包进行丢包分析,并在确定各候选数据包中存在丢包时,根据指示信息,在各候选数据包中确定各关键数据包,以及在确定丢失的数据包为关键数据包时,采用FEC解码器,基于N个冗余数据包进行丢包恢复得到处理后的各候选数据包;采用预设的语音解码器,基于处理后的各候选数据包,解码得到原始语音帧。
基于此,音频接收设备通过播放原始语音帧,能够听到直播对象在直播间的直播内容,并能够呈现图6C所示意的页面。
参阅附图6D所示,其为本申请实施例中语音通话场景下的页面呈现示意图,具体的,在音视频通过场景中,音频发送设备实时采集一个通话者说话语音,得到各原始语音帧,并采用预设的语音编码器,对各原始语音帧进行编码,得到各原始语音帧各自的编码数据包;之后,为了有效应对丢包问题,需要确定一次FEC编码对应的编码数据包范围,故将各编码数据包,按时序划分为多组候选数据包,其中,每获得一组候选数据包,执行以下操作:在一个候选数据包覆盖的各候选数据包中,筛选出各关键数据包,并采用FEC编码器,基于各关键数据包编码生成N个冗余数据包,其中,N≥1;之后,将用于指示各关键数据包的指示信息、各候选数据包,以及N个冗余数据包,作为一个目标数据组,发送至音频接收设备。
对应的,音频接收设备在音视频通话过程中,持续接收源自音频发送设备的各目标数据组,其中,对应每个目标数据组配置有用于指示各关键数据包的指示信息,一个目标数据组中包括:一组候选数据包中的各候选数据包、对应该组候选数据包中的各关键数据包编码得到N个冗余数据包;每接收一个目标数据组,执行以下操作:对各候选数据包进行丢包分析,并在确定各候选数据包中存在丢包时,根据指示信息,在各候选数据包中确定各关键数据包,以及在确定丢失的数据包为关键数据包时,采用FEC解码器,基于N个冗余数据包进行丢包恢复得到处理后的各候选数据包;采用预设的语音解码器,基于处理后的各候选数据包,解码得到原始语音帧。
基于此,音频接收设备通过播放原始语音帧,能够听到通话对象在音频发送设备上发出的声音。
参阅图6E所示,其为本申请实施例中游戏场景下的页面呈现示意图,在游戏场景中,音频发送设备实时采集游戏者的语音,得到各原始语音帧,并采用预设的语音编码器,对各原始语音帧进行编码,得到各原始语音帧各自的编码数据包;之后,为了有效应对丢包问题,需要确定一次FEC编码对应的编码数据包范围,故将各编码数据包,按时序划分为多组候选数据包,其中,每获得一组候选数据包,执行以下操作:在一个候选数据包覆盖的各候选数据包中,筛选出各关键数据包,并采用FEC编码器,基于各关键数据包编码生成N个冗余数据包,其中,N≥1;之后,将用于指示各关键数据包的指示信息、各候选数据包,以及N个冗余数据包,作为一个目标数据组,经由服务器向同队伍其他队友的设备进行推送。
对应的,与游戏者同队伍的其他游戏者开启语音接收控制后,其他游戏者的终端设备获取实时的各目标数据组,其中,对应每个目标数据组配置有用于指示各关键数据包的指示信息,一个目标数据组中包括:一组候选数据包中的各候选数据包、对应该组候选数据包中的各关键数据包编码得到N个冗余数据包;每接收一个目标数据组,执行以下操作:对各候选数据包进行丢包分析,并在确定各候选数据包中存在丢包时,根据指示信息,在各候选数据包中确定各关键数据包,以及在确定丢失的数据包为关键数据包时,采用FEC解码器,基于N个冗余数据包进行丢包恢复得到处理后的各候选数据包;采用预设的语音解码器,基于处理后的各候选数据包,解码得到原始语音帧,以及在游戏中播放得到的原始语音帧。
综上所述,本申请提出一种基于语音关键性的前向纠错编码方式,音频发送端对采集到的音频信号进行语音关键性分析,通过不同策略从存储的编码数据包中,挑选出有限的满足重要性筛选条件的关键数据包进行前向纠错编码;语音接收设备进行解码时,通过前向纠错解码对丢失的关键数据包进行恢复,本申请中编码数据包按语音关键性进行排序或分级,只对关键数据包进行有效保护(对关键语音帧进行足够的数据冗余),从而更有效地利用有限网络带宽解决传输抗丢包问题。
应该理解的是,本申请提出的前向纠错方法适用于所有涉及音频数据传输的场景,例如音视频通话、直播、广播、游戏等业务。音频发送端进行语音关键性检测分析,并根据语音帧评估值,确定参与FEC编码的关键数据包,实现编码输入筛选;音频接收端前向纠错解码过程中,基于编码过程中涉及到的关键数据包和编码生成的冗余数据包,进行前向纠错解码。另外,本申请入的计算开销非常小,直接利用一些语音特征进行判别和分析,而且,由于在通常情况下,关键语音帧只占所有传输音频数据的30%以下,所以需要进行前向纠错编码的数据只有原方案的30%以下,所以对于节省带宽是非常有效的,对于降低运营成本,改善数据传输网络质量环境是有显著效果的。
基于同一发明构思,参阅图7所示,其为本申请实施例中语音编码装置的逻辑结构示意图,语音编码装置700中包括采用单元701、获得单元702,以及执行单元703,其中,
采用单元701,用于采用预设的语音编码器,获得各原始语音帧各自的编码数据包;
获得单元702,用于分别基于各原始语音帧的语音特征,获得表征相应的编码数据包是否为关键数据包的重要性评估值;
执行单元703,用于将各编码数据包,按时序划分为多组候选数据包,其中,每获得一组候选数据包,执行以下操作:
在一组候选数据包覆盖的各候选数据包中,确定对应的重要性评估结果满足预设的重要性筛选条件的各关键数据包,并采用FEC编码器,基于各关键数据包编码生成N个冗余数据包,N≥1;
将用于指示各关键数据包的指示信息、各候选数据包,以及N个冗余数据包,作为一个目标数据组,发送至音频接收设备,以使音频接收设备确定各关键数据包中存在丢包时,采用相应的FEC解码器,基于N个冗余数据包对丢失的关键数据包进行丢包恢复。
可选的,分别基于各原始语音帧的语音特征,获得表征相应的编码数据包是否为关键数据包的重要性评估值时,获得单元702用于:
分别提取各原始语音帧各自的帧检测信息、帧能量信息,以及基音周期;
基于各原始语音帧各自的帧检测信息,结合每相邻两个原始语音帧之间帧检测信息的变化情况、帧能量信息的突增情况和基音周期的变化情况,获得各原始语音帧各自的语音帧评估值,并将各语音帧评估值作为表征相应的各编码数据包是否为关键数据包的各重要性评估值。
可选的,基于各原始语音帧各自的帧检测信息,结合每相邻两个原始语音帧之间帧检测信息的变化情况、帧能量信息的突增情况和基音周期的变化情况,获得各原始语音帧各自的语音帧评估值时,获得单元702用于:
基于各原始语音帧的帧检测信息,分别获得表征各原始语音帧是否对应语音内容的各语音判定值,并基于每相邻两个原始语音帧之间帧检测信息的变化情况,分别获得表征各原始语音帧是否为起始语音帧的各帧检测值;
基于每相邻两个原始语音帧之间帧能量信息的突增情况,分别获得各原始语音帧各自的能量突增值,并基于每相邻两个原始语音帧之间基音周期的变化情况,分别获得各原始语音帧各自的周期突变值;
基于各原始语音帧各自对应的语音判定值、帧检测值、能量突增值,以及周期突变值,获得各原始语音帧各自的语音帧评估值。
可选的,将各编码数据包,按时序划分为多组候选数据包时,执行单元703用于以下任意一项:
将各编码数据包,按照时序每M个划分为一组候选数据包,得到多组候选数据包,M≥1;
获取预设的重要数据包总数,并按照预设的数据包筛选条件,从各编码数据包中确定出重要数据包,以及按照各编码数据包的时序顺序,依次将包含重要数据包总数个重要数据包的各编码数据包,划分为一组候选数据包,得到多组候选数据包。
可选的,在一组候选数据包覆盖的各候选数据包中,确定对应的重要性评估结果满足预设的重要性筛选条件的各关键数据包时,执行单元703用于执行以下任意一项:
在一组候选数据包覆盖的各候选数据包中,将对应的重要性评估值超过重要性阈值的候选数据包,确定为满足预设的重要性筛选条件的各关键数据包;
在一组候选数据包覆盖的各候选数据包中,将最大的H个重要性评估值对应的H个候选数据包中,对应的重要性评估值高于预设的最低门限值的候选数据包,确定为满足预设的重要性筛选条件的各关键数据包,H≥1。
可选的,在一组候选数据包覆盖的各候选数据包中,不存在对应的重要性评估结果满足预设的重要性筛选条件的各关键数据包时,执行单元703还用于:
将各候选数据包作为一个目标数据组,发送至音频接收设备。
可选的,装置还包括反馈单元704,反馈单元704用于:
获取音频接收设备反馈的丢包结果,并根据丢包结果,调整N的取值。
可选的,采用FEC编码器,基于各关键数据包编码生成N个冗余数据包时,执行单元703用于:
确定各关键数据包对应的数据包总数,并确定与数据包总数匹配的目标FEC编码器;
将各关键数据包进行数据长度对齐处理,并采用目标FEC编码器,基于处理后的各关键数据包,编码生成N个冗余数据包。
基于同一发明构思,参阅图8所示,其为本申请实施例中语音解码装置的逻辑结构示意图,语音解码装置800中包括确定单元801、分析单元802,以及获得单元803,其中,
每接收一个音频发送设备发送的目标数据组,装置执行以下操作:
确定单元801,用于确定一个目标数据组中包括冗余数据包时,获取目标数据组中各关键数据包的指示信息,以及获取指示信息对应的各候选数据包和N个冗余数据包;
分析单元802,用于对各候选数据包进行丢包分析,并在确定各候选数据包中存在丢包时,根据指示信息,在各候选数据包中确定各关键数据包,以及在确定丢包位置对应关键数据包时,采用FEC解码器,基于N个冗余数据包在各关键数据包中进行丢包恢复,得到处理后的各候选数据包;
获得单元803,用于采用预设的语音解码器,对处理后的各候选数据包进行解码,获得原始语音帧。
可选的,对各候选数据包进行丢包分析之后,分析单元802还用于:
在确定各候选数据包中不存在丢包时,采用预设的语音解码器,对各候选数据包进行解码,并播放解码得到的原始语音帧。
可选的,根据指示信息,在各候选数据包中确定各关键数据包之后,分析单元802还用于:
在确定丢失的数据包不为关键数据包时,采用预设的语音解码器,对丢失的候选数据包进行丢包恢复,得到处理后的各候选数据包,并对处理后的各候选数据包进行解码;
播放解码得到的原始语音帧。
可选的,对各候选数据包进行丢包分析之后,分析单元802还用于:
统计得到丢包结果,并将丢包结果反馈给音频发送设备。
可选的,装置还包括接收单元804,接收单元804用于:
接收与指示信息、各候选数据包和N个冗余数据包同步发送的视频数据包;
解码视频数据包得到各待播放视频帧,并按照时间对齐的方式,同步播放各待播放视频帧,以及对处理后的各候选数据包解码得到的原始语音帧。
可选的,确定一个目标数据组中不包括冗余数据包时,装置中的执行单元805执行以下操作:
对各候选数据包进行丢包分析,获得各候选数据包的丢包结果;
在确定各候选数据包中存在丢包时,采用预设的语音解码器,对各候选数据包进行丢包恢复,得到处理后的各候选数据包,并对处理后的各候选数据包进行解码,得到待播放的原始语音帧;
以及,在确定各候选数据包中不存在丢包时,采用预设的语音编码器,对各候选数据包进行解码,得到待播放的原始语音帧。
为了描述的方便,以上各部分按照功能划分为各模块(或单元)分别描述。当然,在实施本申请时可以把各模块(或单元)的功能在同一个或多个软件或硬件中实现。
在介绍了本申请示例性实施方式的语音编码、解码方法和装置之后,接下来,介绍根据本申请的另一示例性实施方式的电子设备。
所属技术领域的技术人员能够理解,本申请的各个方面可以实现为系统、方法或程序产品。因此,本申请的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
与上述方法实施例基于同一发明构思,本申请实施例中还提供了一种电子设备。参阅图9所示,其为应用本申请实施例的一种电子设备的硬件组成结构示意图,在一种实施例中,该电子设备可以是图2所示的音频发送设备210。在该实施例中,电子设备的结构可以如图9所示,包括存储器901,通讯模块903以及一个或多个处理器902。
存储器901,用于存储处理器902执行的计算机程序。存储器901可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统,以及运行即时通讯功能所需的程序等;存储数据区可存储各种即时通讯信息和操作指令集等。
存储器901可以是易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);存储器901也可以是非易失性存储器(non-volatilememory),例如只读存储器,快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD);或者存储器901是能够用于携带或存储具有指令或数据结构形式的期望的计算机程序并能够由计算机存取的任何其他介质,但不限于此。存储器901可以是上述存储器的组合。
处理器902,可以包括一个或多个中央处理单元(central processing unit,CPU)或者为数字处理单元等等。处理器902,用于调用存储器901中存储的计算机程序时实现上述语音编码方法。
通讯模块903用于与音频接收设备和服务器进行通信。
本申请实施例中不限定上述存储器901、通讯模块903和处理器902之间的具体连接介质。本申请实施例在图9中以存储器901和处理器902之间通过总线904连接,总线904在图9中以粗线描述,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。总线904可以分为地址总线、数据总线、控制总线等。为便于描述,图9中仅用一条粗线描述,但并不描述仅有一根总线或一种类型的总线。
存储器901中存储有计算机存储介质,计算机存储介质中存储有计算机可执行指令,计算机可执行指令用于实现本申请实施例的预估播放时长的确定方法。处理器902用于执行上述的语音编码方法,如图3A所示。
在另一种实施例中,电子设备也可以是其他电子设备,参阅图10所示,其为应用本申请实施例的另一种电子设备的硬件组成结构示意图,该电子设备具体可以是图2所示的音频接收设备220。在该实施例中,电子设备的结构可以如图10所示,包括:通信组件1010、存储器1020、显示单元1030、摄像头1040、传感器1050、音频电路1060、蓝牙模块1070、处理器1080等部件。
通信组件1010用于与服务器进行通信。在一些实施例中,可以包括电路无线保真(Wireless Fidelity,WiFi)模块,WiFi模块属于短距离无线传输技术,电子设备通过WiFi模块可以帮助用户收发信息。
存储器1020可用于存储软件程序及数据。处理器1080通过运行存储在存储器1020的软件程序或数据,从而执行音频发送设备210的各种功能以及数据处理。本申请中存储器1020可以存储操作系统及各种应用程序,还可以存储执行本申请实施例语音解码方法的计算机程序。
显示单元1030还可用于显示由用户输入的信息或提供给用户的信息以及音频发送设备210的各种菜单的图形用户界面(graphical user interface,GUI)。具体地,显示单元1030可以包括设置在音频发送设备210正面的显示屏1032。显示单元1030可以用于显示本申请实施例中视频内容等。
显示单元1030还可用于接收输入的数字或字符信息,产生与音频发送设备210的用户设置以及功能控制有关的信号输入,具体地,显示单元1030可以包括设置在音频接收设备220正面的触摸屏1031,可收集用户在其上或附近的触摸操作。
其中,触摸屏1031可以覆盖在显示屏1032之上,也可以将触摸屏1031与显示屏1032集成而实现音频发送设备210的输入和输出功能,集成后可以简称触摸显示屏。本申请中显示单元1030可以显示应用程序以及对应的操作步骤。
摄像头1040可用于捕获静态图像,用户可以将摄像头1040拍摄的图像通过应用发布评论。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,CCD)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,CMOS)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给处理器1080转换成数字图像信号。
音频发送设备还可以包括至少一种传感器1050,比如加速度传感器1051、距离传感器1052、指纹传感器1053、温度传感器1054。音频发送设备还可配置有陀螺仪、气压计、湿度计、温度计、红外线传感器、光传感器、运动传感器等其他传感器。
音频电路1060、扬声器1061、传声器1062可提供用户与音频发送设备210之间的音频接口。音频电路1060可将接收到的音频数据转换后的电信号,传输到扬声器1061,由扬声器1061转换为声音信号输出。另一方面,传声器1062将收集的声音信号转换为电信号,由音频电路1060接收后转换为音频数据,再将音频数据输出至通信组件1010以发送给比如另一音频发送设备210,或者将音频数据输出至存储器1020以便进一步处理。
蓝牙模块1070用于通过蓝牙协议来与其他具有蓝牙模块的蓝牙设备进行信息交互。
处理器1080是音频发送设备的控制中心,利用各种接口和线路连接整个终端的各个部分,通过运行或执行存储在存储器1020内的软件程序,以及调用存储在存储器1020内的数据,执行音频发送设备的各种功能和处理数据。在一些实施例中,处理器1080可包括至少一个处理单元;处理器1080还可以集成应用处理器和基带处理器。本申请中处理器1080可以运行操作系统、应用程序、用户界面显示及触控响应,以及本申请实施例的语音解码方法。另外,处理器1080与显示单元1030耦接。
在一些可能的实施方式中,本申请提供的语音编码和解码方法的各个方面还可以实现为一种程序产品的形式,其包括计算机程序,当程序产品在电子设备上运行时,计算机程序用于使电子设备执行本说明书上述描述的根据本申请各种示例性实施方式的语音编码和解码方法中的步骤,例如,电子设备可以执行如图3A或图5A中所示的步骤。
程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
本申请的实施方式的程序产品可以采用便携式紧凑盘只读存储器(CD-ROM)并包括计算机程序,并可以在电子设备上运行。然而,本申请的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被命令执行系统、装置或者器件使用或者与其结合使用。
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读计算机程序。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由命令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的计算机程序可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本申请操作的计算机程序,程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。计算机程序可以完全地在用户电子设备上执行、部分地在用户电子设备上执行、作为一个独立的软件包执行、部分在用户电子设备上部分在远程电子设备上执行、或者完全在远程电子设备或服务器上执行。在涉及远程电子设备的情形中,远程电子设备可以通过任意种类的网络包括局域网(LAN)或广域网(WAN)连接到用户电子设备,或者,可以连接到外部电子设备(例如利用因特网服务提供商来通过因特网连接)。
应当注意,尽管在上文详细描述中提及了装置的若干单元或子单元,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多单元的特征和功能可以在一个单元中具体化。反之,上文描述的一个单元的特征和功能可以进一步划分为由多个单元来具体化。
此外,尽管在附图中以特定顺序描述了本申请方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用计算机程序的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序命令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序命令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据音频接收设备的处理器以产生一个机器,使得通过计算机或其他可编程数据音频接收设备的处理器执行的命令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (20)
1.一种语音编码方法,其特征在于,包括:
采用预设的语音编码器,获得各原始语音帧各自的编码数据包;
分别基于所述各原始语音帧的语音特征,获得表征相应的编码数据包是否为关键数据包的重要性评估值,其中,在得到一个原始音频帧的重要性评估值时,依据的特征指标包括:用于描述原始语音帧是否对应语音内容的语音判定值、用于描述是否为语音内容的起始语音帧的帧检测值、用于描述是否较比相邻的前一帧原始语音帧存在能量突增的能量突增值,以及用于描述是否较比相邻的前一帧原始语音帧存在基音周期突变的周期突变值;
将各编码数据包,按时序划分为多组候选数据包,其中,每获得一组候选数据包,执行以下操作:
在一组候选数据包覆盖的各候选数据包中,确定对应的重要性评估结果满足预设的重要性筛选条件的各关键数据包,并采用FEC编码器,基于所述各关键数据包编码生成N个冗余数据包,N≥1;
将用于指示所述各关键数据包的指示信息、所述各候选数据包,以及所述N个冗余数据包,作为一个目标数据组,发送至音频接收设备,以使所述音频接收设备确定所述各关键数据包中存在丢包时,采用相应的FEC解码器,基于所述N个冗余数据包对丢失的关键数据包进行丢包恢复;
其中,所述将各编码数据包,按时序划分为多组候选数据包,包括:获取预设的重要数据包总数,并按照预设的数据包筛选条件,从所述各编码数据包中确定出重要数据包,以及按照所述各编码数据包的时序顺序,依次将包含所述重要数据包总数个重要数据包的各编码数据包,划分为一组候选数据包,得到多组候选数据包;一组候选数据包中指定数目的各关键数据包,是在所述一组候选数据包中各重要数据包的基础上扩展确定的。
2.如权利要求1所述的方法,其特征在于,所述分别基于所述各原始语音帧的语音特征,获得表征相应的编码数据包是否为关键数据包的重要性评估值,包括:
分别提取各原始语音帧各自的帧检测信息、帧能量信息,以及基音周期;
基于各原始语音帧各自的帧检测信息,结合每相邻两个原始语音帧之间帧检测信息的变化情况、帧能量信息的突增情况和基音周期的变化情况,获得所述各原始语音帧各自的语音帧评估值,并将各语音帧评估值作为表征相应的各编码数据包是否为关键数据包的各重要性评估值。
3.如权利要求2所述的方法,其特征在于,所述基于各原始语音帧各自的帧检测信息,结合每相邻两个原始语音帧之间帧检测信息的变化情况、帧能量信息的突增情况和基音周期的变化情况,获得所述各原始语音帧各自的语音帧评估值,包括:
基于各原始语音帧的帧检测信息,分别获得表征各原始语音帧是否对应语音内容的各语音判定值,并基于每相邻两个原始语音帧之间帧检测信息的变化情况,分别获得表征所述各原始语音帧是否为起始语音帧的各帧检测值;
基于所述每相邻两个原始语音帧之间帧能量信息的突增情况,分别获得所述各原始语音帧各自的能量突增值,并基于所述每相邻两个原始语音帧之间基音周期的变化情况,分别获得所述各原始语音帧各自的周期突变值;
基于所述各原始语音帧各自对应的语音判定值、帧检测值、能量突增值,以及周期突变值,获得所述各原始语音帧各自的语音帧评估值。
4.如权利要求1所述的方法,其特征在于,所述将各编码数据包,按时序划分为多组候选数据包,还包括:
将各编码数据包,按照时序每M个划分为一组候选数据包,得到多组候选数据包,M≥1。
5.如权利要求1所述的方法,其特征在于,所述在一组候选数据包覆盖的各候选数据包中,确定对应的重要性评估结果满足预设的重要性筛选条件的各关键数据包,包括以下任意一项:
在一组候选数据包覆盖的各候选数据包中,将对应的重要性评估值超过重要性阈值的候选数据包,确定为满足预设的重要性筛选条件的各关键数据包;
在一组候选数据包覆盖的各候选数据包中,将最大的H个重要性评估值对应的H个候选数据包中,对应的重要性评估值高于预设的最低门限值的候选数据包,确定为满足预设的重要性筛选条件的各关键数据包,H≥1。
6.如权利要求5所述的方法,其特征在于,在一组候选数据包覆盖的各候选数据包中,不存在对应的重要性评估结果满足预设的重要性筛选条件的各关键数据包时,所述方法还包括:
将所述各候选数据包作为一个目标数据组,发送至音频接收设备。
7.如权利要求1-6任一项所述的方法,其特征在于,所述方法还包括:
获取音频接收设备反馈的丢包结果,并根据所述丢包结果,调整所述N的取值。
8.如权利要求1-6任一项所述的方法,其特征在于,所述采用FEC编码器,基于所述各关键数据包编码生成N个冗余数据包,包括:
确定所述各关键数据包对应的数据包总数,并确定与所述数据包总数匹配的目标FEC编码器;
将所述各关键数据包进行数据长度对齐处理,并采用所述目标FEC编码器,基于处理后的所述各关键数据包,编码生成N个冗余数据包。
9.一种语音解码方法,其特征在于,包括:
每接收一个音频发送设备发送的目标数据组,执行以下操作:
确定一个目标数据组中包括冗余数据包时,获取所述目标数据组中各关键数据包的指示信息,以及获取所述指示信息对应的各候选数据包和N个冗余数据包,其中,关键数据包是依据重要性评估值筛选确定的,在得到一个原始音频帧的重要性评估值时,依据的特征指标包括:用于描述原始语音帧是否对应语音内容的语音判定值、用于描述是否为语音内容的起始语音帧的帧检测值、用于描述是否较比相邻的前一帧原始语音帧存在能量突增的能量突增值,以及用于描述是否较比相邻的前一帧原始语音帧存在基音周期突变的周期突变值;
对所述各候选数据包进行丢包分析,并在确定所述各候选数据包中存在丢包时,根据所述指示信息,在所述各候选数据包中确定各关键数据包,以及在确定丢包位置对应关键数据包时,采用FEC解码器,基于所述N个冗余数据包在所述各关键数据包中进行丢包恢复,得到处理后的各候选数据包;
采用预设的语音解码器,对所述处理后的各候选数据包进行解码,获得原始语音帧;
其中,一组候选数据包是音频发送设备采用如下方式分组得到的:获取预设的重要数据包总数,并按照预设的数据包筛选条件,从各编码数据包中确定出重要数据包,以及按照所述各编码数据包的时序顺序,依次将包含所述重要数据包总数个重要数据包的各编码数据包,划分为一组候选数据包;一组候选数据包中指定数目的各关键数据包,是在一组候选数据包中的各重要数据包的基础上扩展确定的。
10.如权利要求9所述的方法,其特征在于,所述对所述各候选数据包进行丢包分析之后,还包括:
在确定所述各候选数据包中不存在丢包时,采用预设的语音解码器,对所述各候选数据包进行解码,并播放解码得到的原始语音帧。
11.如权利要求9所述的方法,其特征在于,所述根据所述指示信息,在所述各候选数据包中确定各关键数据包之后,还包括:
在确定丢失的数据包不为关键数据包时,采用预设的语音解码器,对丢失的候选数据包进行丢包恢复,得到处理后的各候选数据包,并对所述处理后的各候选数据包进行解码;
播放解码得到的原始语音帧。
12.如权利要求9-11任一项所述的方法,其特征在于,所述对所述各候选数据包进行丢包分析之后,还包括:
统计得到丢包结果,并将所述丢包结果反馈给音频发送设备。
13.如权利要求9-11任一项所述的方法,其特征在于,所述方法还包括:
接收与所述指示信息、所述各候选数据包和所述N个冗余数据包同步发送的视频数据包;
解码所述视频数据包得到各待播放视频帧,并按照时间对齐的方式,同步播放所述各待播放视频帧,以及对处理后的所述各候选数据包解码得到的原始语音帧。
14.如权利要求9-11任一项所述的方法,其特征在于,确定所述一个目标数据组中不包括冗余数据包时,执行以下操作:
对所述各候选数据包进行丢包分析,获得所述各候选数据包的丢包结果;
在确定所述各候选数据包中存在丢包时,采用预设的语音解码器,对所述各候选数据包进行丢包恢复,得到处理后的各候选数据包,并对所述处理后的各候选数据包进行解码,得到待播放的原始语音帧;
以及,在确定所述各候选数据包中不存在丢包时,采用预设的语音解码器,对所述各候选数据包进行解码,得到待播放的原始语音帧。
15.一种语音编码装置,其特征在于,包括:
采用单元,用于采用预设的语音编码器,获得各原始语音帧各自的编码数据包;
获得单元,用于分别基于所述各原始语音帧的语音特征,获得表征相应的编码数据包是否为关键数据包的重要性评估值,其中,在得到一个原始音频帧的重要性评估值时,依据的特征指标包括:用于描述原始语音帧是否对应语音内容的语音判定值、用于描述是否为语音内容的起始语音帧的帧检测值、用于描述是否较比相邻的前一帧原始语音帧存在能量突增的能量突增值,以及用于描述是否较比相邻的前一帧原始语音帧存在基音周期突变的周期突变值;
执行单元,用于将各编码数据包,按时序划分为多组候选数据包,其中,每获得一组候选数据包,执行以下操作:
在一组候选数据包覆盖的各候选数据包中,确定对应的重要性评估结果满足预设的重要性筛选条件的各关键数据包,并采用FEC编码器,基于所述各关键数据包编码生成N个冗余数据包,N≥1;
将用于指示所述各关键数据包的指示信息、所述各候选数据包,以及所述N个冗余数据包,作为一个目标数据组,发送至音频接收设备,以使所述音频接收设备确定所述各关键数据包中存在丢包时,采用相应的FEC解码器,基于所述N个冗余数据包对丢失的关键数据包进行丢包恢复;
其中,所述将各编码数据包,按时序划分为多组候选数据包,包括:获取预设的重要数据包总数,并按照预设的数据包筛选条件,从所述各编码数据包中确定出重要数据包,以及按照所述各编码数据包的时序顺序,依次将包含所述重要数据包总数个重要数据包的各编码数据包,划分为一组候选数据包,得到多组候选数据包;一组候选数据包中指定数目的各关键数据包,是在所述一组候选数据包中各重要数据包的基础上扩展确定的。
16.如权利要求15所述的装置,其特征在于,所述将各编码数据包,按时序划分为多组候选数据包时,所述执行单元还用于:
将各编码数据包,按照时序每M个划分为一组候选数据包,得到多组候选数据包,M≥1。
17.一种语音解码装置,其特征在于,包括:
每接收一个音频发送设备发送的目标数据组,所述装置执行以下操作:
确定单元,用于确定一个目标数据组中包括冗余数据包时,获取所述目标数据组中各关键数据包的指示信息,以及获取所述指示信息对应的各候选数据包和N个冗余数据包,其中,关键数据包是依据重要性评估值筛选确定的,在得到一个原始音频帧的重要性评估值时,依据的特征指标包括:用于描述原始语音帧是否对应语音内容的语音判定值、用于描述是否为语音内容的起始语音帧的帧检测值、用于描述是否较比相邻的前一帧原始语音帧存在能量突增的能量突增值,以及用于描述是否较比相邻的前一帧原始语音帧存在基音周期突变的周期突变值;
分析单元,用于对所述各候选数据包进行丢包分析,并在确定所述各候选数据包中存在丢包时,根据所述指示信息,在所述各候选数据包中确定各关键数据包,以及在确定丢包位置对应关键数据包时,采用FEC解码器,基于所述N个冗余数据包在所述各关键数据包中进行丢包恢复,得到处理后的各候选数据包;
获得单元,用于采用预设的语音解码器,对所述处理后的各候选数据包进行解码,获得原始语音帧;
其中,一组候选数据包是音频发送设备采用如下方式分组得到的:获取预设的重要数据包总数,并按照预设的数据包筛选条件,从各编码数据包中确定出重要数据包,以及按照所述各编码数据包的时序顺序,依次将包含所述重要数据包总数个重要数据包的各编码数据包,划分为一组候选数据包;一组候选数据包中指定数目的各关键数据包,是在一组候选数据包中的各重要数据包的基础上扩展确定的。
18.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-14任一项所述的方法。
19.一种计算机可读存储介质,其上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现如权利要求1-14任一项所述的方法。
20.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-14任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410103944.5A CN117640015B (zh) | 2024-01-25 | 2024-01-25 | 一种语音编码、解码方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410103944.5A CN117640015B (zh) | 2024-01-25 | 2024-01-25 | 一种语音编码、解码方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117640015A CN117640015A (zh) | 2024-03-01 |
CN117640015B true CN117640015B (zh) | 2024-05-24 |
Family
ID=90025525
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410103944.5A Active CN117640015B (zh) | 2024-01-25 | 2024-01-25 | 一种语音编码、解码方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117640015B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102143367A (zh) * | 2010-01-30 | 2011-08-03 | 华为技术有限公司 | 一种纠错校验方法、设备和系统 |
CN103632671A (zh) * | 2013-06-28 | 2014-03-12 | 华为软件技术有限公司 | 数据编解码方法、装置及数据通信系统 |
CN103929265A (zh) * | 2013-01-14 | 2014-07-16 | 北京邮电大学 | 一种通信前向纠错方法及装置 |
CN108306705A (zh) * | 2016-08-23 | 2018-07-20 | 上海交通大学 | 一种基于媒体内容的自适应fec机制及系统 |
CA3069594A1 (en) * | 2017-07-11 | 2019-01-17 | Shanghai Jiao Tong University | Media content-based adaptive method, device and system for fec coding and decoding of systematic code, and medium |
CN109862440A (zh) * | 2019-02-22 | 2019-06-07 | 深圳市凯迪仕智能科技有限公司 | 音视频传输前向纠错方法、装置、计算机设备及存储介质 |
CN110830819A (zh) * | 2019-11-19 | 2020-02-21 | 聚好看科技股份有限公司 | 编码、解码方法、编码端和解码端 |
CN112802485A (zh) * | 2021-04-12 | 2021-05-14 | 腾讯科技(深圳)有限公司 | 语音数据处理方法、装置、计算机设备及存储介质 |
-
2024
- 2024-01-25 CN CN202410103944.5A patent/CN117640015B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102143367A (zh) * | 2010-01-30 | 2011-08-03 | 华为技术有限公司 | 一种纠错校验方法、设备和系统 |
CN103929265A (zh) * | 2013-01-14 | 2014-07-16 | 北京邮电大学 | 一种通信前向纠错方法及装置 |
CN103632671A (zh) * | 2013-06-28 | 2014-03-12 | 华为软件技术有限公司 | 数据编解码方法、装置及数据通信系统 |
CN108306705A (zh) * | 2016-08-23 | 2018-07-20 | 上海交通大学 | 一种基于媒体内容的自适应fec机制及系统 |
CA3069594A1 (en) * | 2017-07-11 | 2019-01-17 | Shanghai Jiao Tong University | Media content-based adaptive method, device and system for fec coding and decoding of systematic code, and medium |
CN109862440A (zh) * | 2019-02-22 | 2019-06-07 | 深圳市凯迪仕智能科技有限公司 | 音视频传输前向纠错方法、装置、计算机设备及存储介质 |
CN110830819A (zh) * | 2019-11-19 | 2020-02-21 | 聚好看科技股份有限公司 | 编码、解码方法、编码端和解码端 |
CN112802485A (zh) * | 2021-04-12 | 2021-05-14 | 腾讯科技(深圳)有限公司 | 语音数据处理方法、装置、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN117640015A (zh) | 2024-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11227612B2 (en) | Audio frame loss and recovery with redundant frames | |
KR101290425B1 (ko) | 소거된 스피치 프레임을 복원하는 시스템 및 방법 | |
KR101301843B1 (ko) | 스피치 프레임내의 정보의 분실을 방지하는 시스템 및 방법 | |
US20220172731A1 (en) | Data transmission method and apparatus, terminal, storage medium, and system | |
JP6077011B2 (ja) | 冗長フレーム符号化および復号のためのデバイス | |
US9286905B2 (en) | Frame erasure concealment for a multi-rate speech and audio codec | |
JP5996670B2 (ja) | オーディオデータの冗長送信に対するビット割振りのためのシステム、方法、装置、およびコンピュータ可読媒体 | |
CN110620892A (zh) | 视频通信中的视频标注技术 | |
US9985855B2 (en) | Call quality estimation by lost packet classification | |
JP7383138B2 (ja) | 音声伝送方法及びそのシステム、装置、コンピュータプログラム、並びにコンピュータ機器 | |
WO2008040250A1 (fr) | Procédé, dispositif et système destinés au masquage d'erreurs d'un flux de données audio | |
CN111371534B (zh) | 一种数据重传方法、装置、电子设备和存储介质 | |
CN111464262B (zh) | 数据处理方法、装置、介质及电子设备 | |
WO2023202250A1 (zh) | 音频传输方法、装置、终端、存储介质及程序产品 | |
CN112769524B (zh) | 语音传输方法、装置、计算机设备和存储介质 | |
TR201909562T4 (tr) | Ses kodlamada DTX kalıntısı için usuller ve aygıtlar. | |
CN117640015B (zh) | 一种语音编码、解码方法、装置、电子设备及存储介质 | |
CN113936690A (zh) | 用于评估音频卡顿率的方法、装置、计算设备及存储介质 | |
KR20070059860A (ko) | 디지털 오디오 패킷 손실을 복구하기 위한 방법 및 장치 | |
JP4761391B2 (ja) | 受聴品質評価方法および装置 | |
JP2023517973A (ja) | 音声符号化方法、装置、コンピュータ機器及びコンピュータプログラム | |
CN117793078B (zh) | 一种音频数据的处理方法、装置、电子设备和存储介质 | |
CN113936669A (zh) | 数据传输方法、系统、装置、计算机可读存储介质及设备 | |
CN116996489A (zh) | 投屏码的传输、投屏方法、装置及设备 | |
CN115641854A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |