CN112996053B - 语音数据包的重排序方法、装置及设备 - Google Patents
语音数据包的重排序方法、装置及设备 Download PDFInfo
- Publication number
- CN112996053B CN112996053B CN201911295566.0A CN201911295566A CN112996053B CN 112996053 B CN112996053 B CN 112996053B CN 201911295566 A CN201911295566 A CN 201911295566A CN 112996053 B CN112996053 B CN 112996053B
- Authority
- CN
- China
- Prior art keywords
- group
- nvoc
- voice data
- data packet
- expected
- 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 57
- 238000004590 computer program Methods 0.000 claims description 9
- 238000010586 diagram Methods 0.000 description 8
- 230000003139 buffering effect Effects 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W28/00—Network traffic management; Network resource management
- H04W28/02—Traffic management, e.g. flow control or congestion control
- H04W28/06—Optimizing the usage of the radio link, e.g. header compression, information sizing, discarding information
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/32—Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/622—Queue service order
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W28/00—Network traffic management; Network resource management
- H04W28/02—Traffic management, e.g. flow control or congestion control
- H04W28/10—Flow control between communication endpoints
- H04W28/14—Flow control between communication endpoints using intermediate storage
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W72/00—Local resource management
- H04W72/12—Wireless traffic scheduling
- H04W72/1263—Mapping of traffic onto schedule, e.g. scheduled allocation or multiplexing of flows
-
- 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
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/04—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
- G10L19/16—Vocoder architecture
- G10L19/167—Audio streaming, i.e. formatting and decoding of an encoded audio signal representation into a data stream for transmission or storage purposes
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种语音数据包的重排序方法、装置及设备。该方法包括接收第一NVOC语音数据包;获取该第一NVOC语音数据包的第一组号和第一组内序号;按照该第一组号和该第一组内序号,将该第一NVOC语音数据包放入缓存队列,使缓存队列中的NVOC语音数据包按照组号和组内序号从小到大的顺序排列,进而使该终端设备根据该缓存队列进行语音播放。该方法提高了语音播放的质量。
Description
技术领域
本发明涉及移动通信领域,尤其涉及一种语音数据包的重排序方法、装置及设备。
背景技术
窄带语音编码(Narrow band Voice Code,NVOC)是警用数字集群(PoliceDigital Trunking,PDT)协议的标准语音编码格式,NVOC声码器每20ms输出一个NVOC语音数据包,由于PDT协议的调度周期为60ms,因此在一个PDT协议调度周期可以同时发送三个NVOC语音数据包。
当采用长期演进(Long Term Evolution,LTE)***承载NVOC语音数据包时,由于LTE协议的调度周期没有60ms的选项,例如LTE调度周期为20ms或40ms,LTE网络侧设备只能对一个PDT协议调度周期内的NVOC语音数据包进行拆包发送给终端设备。
当LTE网络侧设备对NVOC语音数据包进行拆包发送后,由于无线信道的不稳定性,终端设备接收到的NVOC语音数据包不可避免的会发生乱序,从而导致语音播放质量下降。
发明内容
本发明提供一种语音数据包的重排序方法、装置及设备,解决了终端设备接收到的NVOC语音数据包的乱序问题,提高了语音播放的质量。
第一方面,本发明提供一种语音数据包的重排序方法,应用于终端设备,包括:
接收第一NVOC语音数据包;
获取所述第一NVOC语音数据包的第一组号和第一组内序号;其中,所述第一组号用于指示所述第一NVOC语音数据包所属的第一NVOC语音数据包组,所述第一NVOC语音数据包组中包括多个NVOC语音数据包;所述第一组内序号用于指示所述第一NVOC语音数据在所述第一NVOC语音数据包组内的排序;
按照所述第一组号和所述第一组内序号,将所述第一NVOC语音数据包放入缓存队列,所述缓存队列中的NVOC语音数据包按照组号和组内序号从小到大的顺序排列,以使所述终端设备根据所述缓存队列进行语音播放。
可选的,所述方法还包括:
若NVOC语音数据包为端到端加密数据包,则当所述第一NVOC语音数据包组的多个NVOC语音数据包全部在所述缓存队列中时,将所述第一NVOC语音数据包组的多个NVOC语音数据包送入播放队列以进行语音播放。
可选的,所述获取所述第一NVOC语音数据包的第一组号和第一组内序号之后,所述方法还包括:
获取第一期望组号和第一期望组内序号;所述第一期望组号和所述第一期望组内序号用于指示所述终端设备期望接收到的NVOC语音数据包;
将所述第一组号和所述第一组内序号与所述第一期望组号和所述第一期望组内序号进行比较;
若所述第一组号和所述第一组内序号与所述第一期望组号和所述第一期望组内序号分别相同,则设置第二期望组号和第二期望组内序号;
若所述第一组号小于所述第一期望组号,则将所述第一NVOC语音数据包丢弃。
可选的,所述设置第二期望组号和第二期望组内序号,包括:
若所述第一NVOC语音数据包组的多个NVOC语音数据包中的部分在所述缓存队列中,则将所述第二期望组号设置为所述第一组号,将所述第二期望组内序号设置为所述第一组内序号加一;
若所述第一NVOC语音数据包组的多个NVOC语音数据包全部在所述缓存队列中,则将所述第二期望组号设置为所述第一组号加一,将所述第二期望组号设置为起始组内序号。
可选的,所述方法还包括:
若在预设定时器超时后未接收到第二NVOC语音数据包,则根据所述缓存队列中的第三NVOC语音数据包设置第三期望组号和第三期望组内序号;
其中,所述第二NVOC语音数据包为所述第二期望组号和所述第二期望组内序号对应的NVOC语音数据包;所述第三NVOC语音数据包为所述第二NVOC语音数据包之后的组号和组内序号最小的NVOC语音数据包。
可选的,所述方法还包括:
若NVOC语音数据包为端到端加密数据包,则将所述缓存队列中所述第二期望组号对应的除所述第二NVOC语音数据包之外的其他NVOC语音数据包丢弃。
可选的,所述方法还包括:
若NVOC语音数据包为非加密数据包,且所述第二期望组号对应的除所述第二NVOC语音数据包之外的其他NVOC语音数据包全部在所述缓存队列中,则将所述其他NVOC语音数据包送入播放队列以进行语音播放。
第二方面,本发明提供一种语音数据包的重排序装置,包括:
接收模块,用于接收第一NVOC语音数据包;
获取模块,用于获取所述第一NVOC语音数据包的第一组号和第一组内序号;其中,所述第一组号用于指示所述第一NVOC语音数据包所属的第一NVOC语音数据包组,所述第一NVOC语音数据包组中包括多个NVOC语音数据包;所述第一组内序号用于指示所述第一NVOC语音数据在所述第一NVOC语音数据包组内的排序;
缓存模块,用于按照所述第一组号和所述第一组内序号,将所述第一NVOC语音数据包放入缓存队列,所述缓存队列中的NVOC语音数据包按照组号和组内序号从小到大的顺序排列,以使所述终端设备根据所述缓存队列进行语音播放。
可选的,所述缓存模块还用于:
若NVOC语音数据包为端到端加密数据包,则当所述第一NVOC语音数据包组的多个NVOC语音数据包全部在所述缓存队列中时,将所述第一NVOC语音数据包组的多个NVOC语音数据包送入播放队列以进行语音播放。
可选的,所述获取模块还用于:
获取第一期望组号和第一期望组内序号;所述第一期望组号和所述第一期望组内序号用于指示所述终端设备期望接收到的NVOC语音数据包;
相应的,所述装置还包括:
比较模块,用于将所述第一组号和所述第一组内序号与所述第一期望组号和所述第一期望组内序号进行比较;
设置模块,用于若所述第一组号和所述第一组内序号与所述第一期望组号和所述第一期望组内序号分别相同,则设置第二期望组号和第二期望组内序号;
相应的,缓存模块还用于若所述第一组号小于所述第一期望组号,则将所述第一NVOC语音数据包丢弃。
可选的,所述设置模块用于:
若所述第一NVOC语音数据包组的多个NVOC语音数据包中的部分在所述缓存队列中,则将所述第二期望组号设置为所述第一组号,将所述第二期望组内序号设置为所述第一组内序号加一;
若所述第一NVOC语音数据包组的多个NVOC语音数据包全部在所述缓存队列中,则将所述第二期望组号设置为所述第一组号加一,将所述第二期望组号设置为起始组内序号。
可选的,所述设置模块还用于:
若在预设定时器超时后未接收到第二NVOC语音数据包,则根据所述缓存队列中的第三NVOC语音数据包设置第三期望组号和第三期望组内序号;
其中,所述第二NVOC语音数据包为所述第二期望组号和所述第二期望组内序号对应的NVOC语音数据包;所述第三NVOC语音数据包为所述第二NVOC语音数据包之后的组号和组内序号最小的NVOC语音数据包。
可选的,所述缓存模块还用于:
若NVOC语音数据包为端到端加密数据包,则将所述缓存队列中所述第二期望组号对应的除所述第二NVOC语音数据包之外的其他NVOC语音数据包丢弃。
可选的,所述缓存模块还用于:
若NVOC语音数据包为非加密数据包,且所述第二期望组号对应的除所述第二NVOC语音数据包之外的其他NVOC语音数据包全部在所述缓存队列中,则将所述其他NVOC语音数据包送入播放队列以进行语音播放。
第三方面,本发明提供一种终端设备,包括存储器和处理器;所述存储器和所述处理器连接;
所述存储器,用于存储计算机程序;
所述处理器,用于在计算机程序被执行时,实现如上述第一方面中任一项所述的语音数据包的重排序方法。
第四方面,本发明提供一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现如上述第一方面中任一项所述的语音数据包的重排序方法。
本发明提供一种语音数据包的重排序方法、装置及设备,该方法通过接收第一NVOC语音数据包并获取该第一NVOC语音数据包的第一组号和第一组内序号,按照该第一组号和该第一组内序号,将该第一NVOC语音数据包放入缓存队列,使缓存队列中的NVOC语音数据包按照组号和组内序号从小到大的顺序排列,进而使该终端设备根据该缓存队列进行语音播放。该方法、装置及设备通过将缓存队列中的NVOC语音数据包按照组号和组内序号排序,解决了终端设备接收到的NVOC语音数据包的乱序问题,提高了语音播放的质量。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的一种语音数据包的重排序方法的应用场景示意图;
图2为本发明提供的一种语音数据包的重排序方法的流程示意图一;
图3为本发明提供的一种语音数据包的重排序方法的流程示意图二;
图4为本发明提供的一种期望数据包的确定方法示意图一;
图5为本发明提供的一种期望数据包的确定方法示意图二;
图6为本发明提供的一种期望数据包的确定方法示意图三;
图7为本发明提供的一种期望数据包的确定方法示意图四;
图8为本发明提供的一种语音数据包的重排序装置的结构示意图;
图9为本发明提供的一种终端设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明提供的一种语音数据包的重排序方法的应用场景示意图。如图1中所示,PDT***与LTE***对接实现两个***中的终端设备的语音交互。当采用NVOC进行语音编码时,NVOC声码器每20ms输出一个NVOC语音数据包,由于PDT协议的调度周期为60ms,因此在一个PDT协议调度周期可以同时发送三个NVOC语音数据包。若LTE调度周期为20ms或40ms,则一个LTE调度周期中只能发送一个或两个NVOC语音数据包。
因此,LTE网络设备,如基站,接收到PDT***的一个调度周期的NVOC语音数据包后,只能对其进行拆包后发送给LTE终端设备。由于无线信道的不稳定性,LTE终端设备接收到的NVOC语音数据包不可避免的会发生乱序,从而导致语音播放质量下降。为了提升语音播放质量,本发明提出一种语音数据包的重排序方法,即LTE终端设备在接收到NVOC语音包后多NVOC语音数据包进行重新排序,从而避免由于语音数据包乱序而影响语音播放质量。以下结合具体实施例对本发明提供过的语音数据包的重排序方法进行说明。
图2为本发明提供的一种语音数据包的重排序方法的流程示意图一。该方法的执行主体为语音数据包的重排序装置,该装置可以通过软件和/或硬件的方式实现,例如该装置可以为手机、平板电脑、笔记本电脑等终端设备。
如图2所示,该方法包括:
S201、接收第一NVOC语音数据包。
本实施例中,终端设备接收到的第一NVOC语音数据包是经过LTE网络设备,如基站,拆包后的NVOC语音数据包。以LTE***的调度周期为20ms进行示例,由于PDT***在一个PDT调度周期的60ms发送三个NVOC语音数据包,而LTE一个调度周期为20ms只能发送一个NVOC语音数据包,因此LTE基站将一个PDT调度周期的三个NVOC语音数据包进行拆分后分三次进行发送给LTE终端设备,每个调度周期发送一个NVOC语音数据包。第一NVOC语音数据包即为LTE基站在任一调度周期向LTE终端设备所发送的一个NVOC语音数据包。
S202、获取该第一NVOC语音数据包的第一组号和第一组内序号。
其中,该第一组号用于指示该第一NVOC语音数据包所属的第一NVOC语音数据包组,该第一NVOC语音数据包组中包括多个NVOC语音数据包;该第一组内序号用于指示该第一NVOC语音数据在该第一NVOC语音数据包组内的排序。
组号和组内序号是LTE基站在拆分NVOC语音数据包时为每个NVOC语音数据包设置的标识,每个PDT调度周期内的三个NVOC语音数据包为一个NVOC语音数据包组,且具有对应的一个组号,组号按照发送顺序进行递增设置。同时,这三个NOC语音数据包分别具有对应的组内序号用于指示其在NVOC语音数据包组中的排序。
可选的,组号和组内序号可以通过一个字节发送,该字节的前六位标识组号,后两位标识组内序号,从而组号的取值范围为000000-111111,组内组号则为00、01或10,起始组内序号为00。此处以组号和组内序号通过一个字节发送为例进行说明,在实际应用中也可以根据实际需要进行设置。
第一NVOC语音数据包具有对应的第一组号和第一组内组号,例如第一组号为010111,第一组内序号为01。可以理解的是,第一组号010111所对应的第一NVOC语音数据包组还包括除第一NVOC语音数据包之外的另外两个NVOC语音数据包,且该另外两个NVOC语音数据包的组内序号分别为00和10。
S203、按照该第一组号和该第一组内序号,将该第一NVOC语音数据包放入缓存队列。
其中,该缓存队列中的NVOC语音数据包按照组号和组内序号从小到大的顺序排列,以使该终端设备根据该缓存队列进行语音播放。
终端设备按照缓存队列中的NVOC语音包的排序对其进行解析和语音播放,因此,在获取到第一组号和第一组内序号后,根据第一组号和该第一组内序号将第一NVOC语音数据包放入缓存队列,使缓存队列中的各NVOC语音数据包按照组号和组内序号从小到大的顺序排列,即不同组号的NVOC语音数据包按照组号从小到大的顺序排列,同一组号的NVOC语音数据包按照组内序号从小到大的顺序排列。
示例的,第一组号为010111,第一组内序号为01,缓存队列中已有组号为010111、组内序号为10的NVOC语音数据包,则将第一NVOC语音数据包放在该NVOC语音数据包之前。再如,第一组号为010111,第一组内序号为01,缓存队列中已有组号为010110、组内序号为01的NVOC语音数据包,则将第一NVOC语音数据包放在该NVOC语音数据包之后。
本实施例提供的语音数据包的重排序方法,通过接收第一NVOC语音数据包并获取该第一NVOC语音数据包的第一组号和第一组内序号,按照该第一组号和该第一组内序号,将该第一NVOC语音数据包放入缓存队列,使缓存队列中的NVOC语音数据包按照组号和组内序号从小到大的顺序排列,进而使该终端设备根据该缓存队列进行语音播放。该方法通过将缓存队列中的NVOC语音数据包按照组号和组内序号排序,解决了终端设备接收到的NVOC语音数据包的乱序问题,提高了语音播放的质量。
由于NVOC语音数据包的发送可以是端到端加密或者非加密两种情况,对于端到端加密语音数据包,即一个PDT调度周期内的三个NVOC语音数据包共同实现加密操作,终端设备只有在完整接收到这三个NVOC语音数据包后,才能对其进行解析。因此,在上述实施例的基础上,该方法还包括:
若NVOC语音数据包为端到端加密数据包,则当该第一NVOC语音数据包组的多个NVOC语音数据包全部在该缓存队列中时,将该第一NVOC语音数据包组的多个NVOC语音数据包送入播放队列以进行语音播放。
示例的,第一NVOC语音数据包的第一组号为010111,第一组内序号为01。相应的,第一组号010111所对应的第一NVOC语音数据包组还包括除第一NVOC语音数据包之外的另外两个NVOC语音数据包,且另外两个NVOC语音数据包的组内序号分别为00和10。若在按照上述实施例的方法将第一NVOC放入缓存队列后,第一NVOC语音数据包组的三个NVOC语音数据包都在缓存队列中,即,缓存队列中具有组号为010111,组内序号分别为00、01和10的三个NVOC语音数据包,则将这三个NVOC语音数据包送入播放队列以进行语音播放。若缓存队列中还不具有全部的三个NVOC语音数据包,则表示第一NVOC语音数据包组暂未完全接收到,因此还暂不能送入播放队列中。
由于语音播放的业务场景通常对实时性的要求较高,为了避免由于长时间等待某个NVOC语音数据包而影响语音播放,或者占用过多缓存队列空间,本发明中通过设置期望组号、期望组内序号和预设定时器来指示终端设备期望接收到的NVOC语音数据包,即期望数据包。
在上述实施例的基础上,本发明还提供一种语音数据包的重排序方法。图3为本发明提供的一种语音数据包的重排序方法的流程示意图二。如图3所示,在图2所示的S202获取该第一NVOC语音数据包的第一组号和第一组内序号之后,该方法还包括:
S301、获取第一期望组号和第一期望组内序号。
该第一期望组号和该第一期望组内序号用于指示该终端设备期望接收到的NVOC语音数据包。
S302、将该第一组号和该第一组内序号与该第一期望组号和该第一期望组内序号进行比较。若该第一组号和该第一组内序号与该第一期望组号和该第一期望组内序号分别相同,则执行S303;若该第一组号小于该第一期望组号,则执行S304。
本实施例中,终端设备通过设置期望组号和期望组内序号来指示终端设备当前期望接收到的NVOC语音数据包,称为期望数据包,期望组号即期望数据包所在的期望数据包组的组号,期望组内序号即期望数据包在期望数据包组内的排序。同时,终端设备还通过预设定时器来限定接收期望数据包的时间,若在定时器超时后未收到期望接收到期望数据包,则会重新设置新的期望数据包,即设置新的期望组号和期望组内序号。
当终端设备接收到第一NVOC语音数据包后,将获取到的第一组号和第一组内序号与第一期望组号和第一期望组内序号分别对比,以确定第一NVOC语音数据包是否是期望数据包。其中,第一期望组号和第一期望组内序号是终端设备在接收到第一NVOC语音数据包之前所设置的期望数据包的组号和组内序号,且终端设备在设置第一期望组号和第一期望组内序号后启动预设定时器。
S303、设置第二期望组号和第二期望组内序号。
若第一组号和该第一组内序号与该第一期望组号和该第一期望组内序号分别相同,则表示第一NVOC语音数据包即为终端设备当前期望接收到的NVOC语音数据包,那么在接收到了当前期望接收到的NVOC语音数据包之后,则继续设置新的期望组号和期望组内序号,即设置第二期望组号和第二期望组内序号。
具体的,设置第二期望组号和第二期望组内序号,包括:
若该第一NVOC语音数据包组的多个NVOC语音数据包中的部分在该缓存队列中,则将该第二期望组号设置为该第一组号,将该第二期望组内序号设置为该第一组内序号加一。
示例的,如图4所示,第一NVOC语音数据包的第一组号为010111,第一组内序号为01,第一期望组号为010111、第一期望组内序号为01,且缓存序列中已有第一NVOC语音数据包之前的一个NVOC语音数据包,即组号为010111,组内序号为00的NVOC语音数据包,但是没有第一NVOC语音数据包之后的一个组号为010111的NVOC语音数据包,则第二期望组号仍为010111,第二期望组内序号为10。
若该第一NVOC语音数据包组的多个NVOC语音数据包全部在该缓存队列中,则将该第二期望组号设置为该第一组号加一,将该第二期望组号设置为起始组内序号。
示例的,如图5所示,若第一NVOC语音数据包的第一组号为010111,第一组内序号为10,第一期望组号为010111、第一期望组内序号为10,且缓存队列中已有组号为010111、组内序号为00的NVOC语音数据包,以及,组号为010111、组内序号为01的NVOC语音数据包,则第二期望组号设置为011000、组内序号为00,也就是起始组内序号。值得注意的是,若NVOC语音数据包的组号采用六位字符标识,即组号范围为000000-111111,则当第一期望组号为111111,第一期望组内序号为10,下一个设置的第二期望组号为000000。
S304、将该第一NVOC语音数据包丢弃。
若第一组号小于第一期望组号,则表示第一NVOC语音数据包是之前超时未收到的NVOC语音数据包,如图6所示,第一期望组号为011000、第一期望组内序号为00,但是接收到的第一NVOC语音数据包组号为010110,第一组内序号为01,也就是第一NVOC是之前超时未接收到的NVOC语音数据包,由于语音业务的实时性,此时直接将第一NVOC语音数据包丢弃,也避免了占用缓存队列空间。
本实施例提供的语音数据包的重排序方法,通过设置期望组号和期望组内序号,以及预设定时器的超时时间,避免了终端设备长时间等待未接收到的语音数据包,提高了语音业务的实时性。
在上述实施例的基础上,相应的,该方法还包括:
若在预设定时器超时后未接收到第二NVOC语音数据包,则根据该缓存队列中的第三NVOC语音数据包设置第三期望组号和第三期望组内序号。
其中,该第二NVOC语音数据包为该第二期望组号和该第二期望组内序号对应的NVOC语音数据包;该第三NVOC语音数据包为该第二NVOC语音数据包之后的组号和组内序号最小的NVOC语音数据包。
终端设备设置第二期望组号和第二期望组内序号后重置预设定时器,若在预设定时器超时之前,接收到第二期望组号和第二期望组内序号对应的第二NVOC语音数据包,则参照S303中的方法重新设置新的期望组号和期望组内序号,并重置预设定制器。
若在预设定时器超时后仍为接收到第二NVOC语音数据包,则确定第二NVOC语音数据包丢失,则根据该缓存队列中的第三NVOC语音数据包参照S303中的方法重新设置第三期望组号和第三期望组内序号。如图7所示,第二期望组号为010111,第二期望组内序号为10,然而终端设备在定时器超时时间T结束后并没有接收到对应的该第二NVOC语音数据包,但是接收到组号为011000、组内序号为00的第三NVOC语音数据包,则设置新的期望数据包为第三期望组号为011000、第三期望组号为01。
在上述实施例中,若终端设备在预设定时器超时后没有接受到期望接收到的NVOC语音数据包,则表示该期望接收到的NVOC语音数据包已丢失。对于数据包丢失的情况,可以按照以下方式进行处理。
若NVOC语音数据包为端到端加密数据包,则将该缓存队列中该第二期望组号对应的除该第二NVOC语音数据包之外的其他NVOC语音数据包丢弃。
在NVOC语音数据包端到端加密的场景中,终端设备只有在接收到完整的一组三个NVOC语音数据包后,才能对其进行解析,因此,若在端到端加密场景中,第二期望组号和第二期望组内序号对应的第二NVOC语音数据包丢失,那么与第二期望组号同一组中的其他NVOC语音数据包即使已在缓存队列中也无法解析,因此将该缓存队列中该第二期望组号对应的除该第二NVOC语音数据包之外的其他NVOC语音数据包丢弃。
若NVOC语音数据包为非加密数据包,且该第二期望组号对应的除该第二NVOC语音数据包之外的其他NVOC语音数据包全部在该缓存队列中,则将该其他NVOC语音数据包送入播放队列以进行语音播放。
在NVOC语音数据包非加密的场景中,若第二期望组号和第二期望组内序号对应的第二NVOC语音数据包丢失,若与第二期望组号同一组中的其他NVOC语音数据包已在缓存队列中,则还可以正常解析播放,因此将其他NVOC语音数据包送入播放队列以进行语音播放。
本实施例提供的语音数据包的重排序方法,通过预设定时器来限定接收期望数据包的时间,若在定时器超时时间后未接收到期望数据包,则确认该期望数据包丢失,避免了终端设备长时间等待期望数据包。在期望数据包丢失的情况下,对于端到端加密场景,直接将期望数据包所在数据包组的其他数据包丢弃,避免了占用缓存队列空间,而对于非加密场景,将期望数据包所在数据包组的其他数据包送入播放队列进行语音播放,避免了对语音播放产生影响,提高了语音播放的实时性。
图8为本发明提供的一种语音数据包的重排序装置的结构示意图。如图8所示,语音数据包的重排序装置80包括:
接收模块801,用于接收第一NVOC语音数据包;
获取模块802,用于获取该第一NVOC语音数据包的第一组号和第一组内序号;其中,该第一组号用于指示该第一NVOC语音数据包所属的第一NVOC语音数据包组,该第一NVOC语音数据包组中包括多个NVOC语音数据包;该第一组内序号用于指示该第一NVOC语音数据在该第一NVOC语音数据包组内的排序;
缓存模块803,用于按照该第一组号和该第一组内序号,将该第一NVOC语音数据包放入缓存队列,该缓存队列中的NVOC语音数据包按照组号和组内序号从小到大的顺序排列,以使该终端设备根据该缓存队列进行语音播放。
可选的,该缓存模块803还用于:
若NVOC语音数据包为端到端加密数据包,则当该第一NVOC语音数据包组的多个NVOC语音数据包全部在该缓存队列中时,将该第一NVOC语音数据包组的多个NVOC语音数据包送入播放队列以进行语音播放。
可选的,该获取模块801还用于:
获取第一期望组号和第一期望组内序号;该第一期望组号和该第一期望组内序号用于指示该终端设备期望接收到的NVOC语音数据包;
相应的,语音数据包的重排序装置80还包括:
比较模块804,用于将该第一组号和该第一组内序号与该第一期望组号和该第一期望组内序号进行比较;
设置模块805,用于若该第一组号和该第一组内序号与该第一期望组号和该第一期望组内序号分别相同,则设置第二期望组号和第二期望组内序号;
相应的,缓存模块803还用于若该第一组号小于该第一期望组号,则将该第一NVOC语音数据包丢弃。
可选的,该设置模块805用于:
若该第一NVOC语音数据包组的多个NVOC语音数据包中的部分在该缓存队列中,则将该第二期望组号设置为该第一组号,将该第二期望组内序号设置为该第一组内序号加一;
若该第一NVOC语音数据包组的多个NVOC语音数据包全部在该缓存队列中,则将该第二期望组号设置为该第一组号加一,将该第二期望组号设置为起始组内序号。
可选的,该设置模块805还用于:
若在预设定时器超时后未接收到第二NVOC语音数据包,则根据该缓存队列中的第三NVOC语音数据包设置第三期望组号和第三期望组内序号;
其中,该第二NVOC语音数据包为该第二期望组号和该第二期望组内序号对应的NVOC语音数据包;该第三NVOC语音数据包为该第二NVOC语音数据包之后的组号和组内序号最小的NVOC语音数据包。
可选的,该缓存模块803还用于:
若NVOC语音数据包为端到端加密数据包,则将该缓存队列中该第二期望组号对应的除该第二NVOC语音数据包之外的其他NVOC语音数据包丢弃。
可选的,该缓存模块803还用于:
若NVOC语音数据包为非加密数据包,且该第二期望组号对应的除该第二NVOC语音数据包之外的其他NVOC语音数据包全部在该缓存队列中,则将该其他NVOC语音数据包送入播放队列以进行语音播放。
本实施例提供的语音数据包的重排序装置可用于执行上述任一方法实施例中的语音数据包的重排序方法,其实现原理和技术效果类似,此处不再赘述。
图9为本发明提供的一种终端设备的结构示意图。如图9所示,终端设备90包括存储器901和处理器902;存储器901和处理器902连接;
存储器901,用于存储计算机程序;
处理器902,用于在计算机程序被执行时,实现上述任一实施例中的语音数据包的重排序方法。
本发明提供一种存储介质,其上存储有计算机程序,该计算机程序被处理器执行时,实现上述任一实施例中的语音数据包的重排序方法。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (7)
1.一种语音数据包的重排序方法,应用于终端设备,其特征在于,包括:
接收第一NVOC语音数据包;
获取所述第一NVOC语音数据包的第一组号和第一组内序号;其中,所述第一组号用于指示所述第一NVOC语音数据包所属的第一NVOC语音数据包组,所述第一NVOC语音数据包组中包括多个NVOC语音数据包;所述第一组内序号用于指示所述第一NVOC语音数据在所述第一NVOC语音数据包组内的排序;
按照所述第一组号和所述第一组内序号,将所述第一NVOC语音数据包放入缓存队列,所述缓存队列中的NVOC语音数据包按照组号和组内序号从小到大的顺序排列,以使所述终端设备根据所述缓存队列进行语音播放;
所述获取所述第一NVOC语音数据包的第一组号和第一组内序号之后,所述方法还包括:
获取第一期望组号和第一期望组内序号;所述第一期望组号和所述第一期望组内序号用于指示所述终端设备期望接收到的NVOC语音数据包;
将所述第一组号和所述第一组内序号与所述第一期望组号和所述第一期望组内序号进行比较;
若所述第一组号和所述第一组内序号与所述第一期望组号和所述第一期望组内序号分别相同,则设置第二期望组号和第二期望组内序号;
若所述第一组号小于所述第一期望组号,则将所述第一NVOC语音数据包丢弃;
若在预设定时器超时后未接收到第二NVOC语音数据包,则根据所述缓存队列中的第三NVOC语音数据包设置第三期望组号和第三期望组内序号;
其中,所述第二NVOC语音数据包为所述第二期望组号和所述第二期望组内序号对应的NVOC语音数据包;所述第三NVOC语音数据包为所述第二NVOC语音数据包之后的组号和组内序号最小的NVOC语音数据包;
所述设置第二期望组号和第二期望组内序号,包括:
若所述第一NVOC语音数据包组的多个NVOC语音数据包中的部分在所述缓存队列中,则将所述第二期望组号设置为所述第一组号,将所述第二期望组内序号设置为所述第一组内序号加一;
若所述第一NVOC语音数据包组的多个NVOC语音数据包全部在所述缓存队列中,则将所述第二期望组号设置为所述第一组号加一,将所述第二期望组号设置为起始组内序号。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若NVOC语音数据包为端到端加密数据包,则当所述第一NVOC语音数据包组的多个NVOC语音数据包全部在所述缓存队列中时,将所述第一NVOC语音数据包组的多个NVOC语音数据包送入播放队列以进行语音播放。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若NVOC语音数据包为端到端加密数据包,则将所述缓存队列中所述第二期望组号对应的除所述第二NVOC语音数据包之外的其他NVOC语音数据包丢弃。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若NVOC语音数据包为非加密数据包,且所述第二期望组号对应的除所述第二NVOC语音数据包之外的其他NVOC语音数据包全部在所述缓存队列中,则将所述其他NVOC语音数据包送入播放队列以进行语音播放。
5.一种语音数据包的重排序装置,其特征在于,包括:
接收模块,用于接收第一NVOC语音数据包;
获取模块,用于获取所述第一NVOC语音数据包的第一组号和第一组内序号;其中,所述第一组号用于指示所述第一NVOC语音数据包所属的第一NVOC语音数据包组,所述第一NVOC语音数据包组中包括多个NVOC语音数据包;所述第一组内序号用于指示所述第一NVOC语音数据在所述第一NVOC语音数据包组内的排序;
获取模块,还用于获取第一期望组号和第一期望组内序号;所述第一期望组号和所述第一期望组内序号用于指示终端设备期望接收到的NVOC语音数据包;
比较模块,用于将所述第一组号和所述第一组内序号与所述第一期望组号和所述第一期望组内序号进行比较;
设置模块,用于若所述第一组号和所述第一组内序号与所述第一期望组号和所述第一期望组内序号分别相同,则设置第二期望组号和第二期望组内序号;
设置模块,还用于若在预设定时器超时后未接收到第二NVOC语音数据包,则根据缓存队列中的第三NVOC语音数据包设置第三期望组号和第三期望组内序号;
其中,所述第二NVOC语音数据包为所述第二期望组号和所述第二期望组内序号对应的NVOC语音数据包;所述第三NVOC语音数据包为所述第二NVOC语音数据包之后的组号和组内序号最小的NVOC语音数据包;
缓存模块,用于按照所述第一组号和所述第一组内序号,将所述第一NVOC语音数据包放入缓存队列,所述缓存队列中的NVOC语音数据包按照组号和组内序号从小到大的顺序排列,以使终端设备根据所述缓存队列进行语音播放;
缓存模块,还用于若所述第一组号小于所述第一期望组号,则将所述第一NVOC语音数据包丢弃;
所述设置模块具体用于:
若该第一NVOC语音数据包组的多个NVOC语音数据包中的部分在该缓存队列中,则将该第二期望组号设置为该第一组号,将该第二期望组内序号设置为该第一组内序号加一;
若该第一NVOC语音数据包组的多个NVOC语音数据包全部在该缓存队列中,则将该第二期望组号设置为该第一组号加一,将该第二期望组号设置为起始组内序号。
6.一种终端设备,其特征在于,包括存储器和处理器;所述存储器和所述处理器连接;
所述存储器,用于存储计算机程序;
所述处理器,用于在计算机程序被执行时,实现如上述权利要求1-4中任一项所述的语音数据包的重排序方法。
7.一种存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现如上述权利要求1-4中任一项所述的语音数据包的重排序方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911295566.0A CN112996053B (zh) | 2019-12-16 | 2019-12-16 | 语音数据包的重排序方法、装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911295566.0A CN112996053B (zh) | 2019-12-16 | 2019-12-16 | 语音数据包的重排序方法、装置及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112996053A CN112996053A (zh) | 2021-06-18 |
CN112996053B true CN112996053B (zh) | 2023-04-18 |
Family
ID=76343440
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911295566.0A Active CN112996053B (zh) | 2019-12-16 | 2019-12-16 | 语音数据包的重排序方法、装置及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112996053B (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7145869B1 (en) * | 1999-03-17 | 2006-12-05 | Broadcom Corporation | Method for avoiding out-of-ordering of frames in a network switch |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7760737B2 (en) * | 2000-11-30 | 2010-07-20 | Audiocodes, Inc. | Method for reordering and reassembling data packets in a network |
US20030173269A1 (en) * | 2002-03-01 | 2003-09-18 | Heinz-Gerhard Breden | Sorting data with long SORT fields |
US7480308B1 (en) * | 2004-03-29 | 2009-01-20 | Cisco Technology, Inc. | Distributing packets and packets fragments possibly received out of sequence into an expandable set of queues of particular use in packet resequencing and reassembly |
US7680118B2 (en) * | 2006-04-13 | 2010-03-16 | Motorola, Inc. | Method and apparatus for reordering fragments within a MAC layer service data unit within a downlink frame |
CN101662461B (zh) * | 2008-08-27 | 2012-08-08 | 华为技术有限公司 | 一种多链路协议分片数据的重组方法、装置及*** |
CN103152134B (zh) * | 2013-02-26 | 2015-12-02 | 汉柏科技有限公司 | 基于rtp协议的接收端重排语音包的方法和*** |
CN103607261B (zh) * | 2013-11-22 | 2017-06-23 | 大唐移动通信设备有限公司 | 一种数据传输方法及装置 |
CN105610544B (zh) * | 2015-12-18 | 2018-07-20 | 福建星海通信科技有限公司 | 一种语音数据传输方法及装置 |
CN106792262A (zh) * | 2016-12-05 | 2017-05-31 | 乐视控股(北京)有限公司 | 视频数据传输方法及装置 |
CN108809542B (zh) * | 2017-05-05 | 2021-04-20 | 华为技术有限公司 | 一种数据传输的处理方法和装置 |
CN109714295B (zh) * | 2017-10-25 | 2021-10-26 | 普天信息技术有限公司 | 一种语音加解密同步处理方法和装置 |
CN109729552B (zh) * | 2017-10-27 | 2022-03-25 | 成都鼎桥通信技术有限公司 | 语音传输方法和装置 |
-
2019
- 2019-12-16 CN CN201911295566.0A patent/CN112996053B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7145869B1 (en) * | 1999-03-17 | 2006-12-05 | Broadcom Corporation | Method for avoiding out-of-ordering of frames in a network switch |
Non-Patent Citations (2)
Title |
---|
Packet out-of-order and retransmission in statistics-based traffic analysis;Su-Kang Lee等;《The 16th Asia-Pacific Network Operations and Management Symposium》;全文 * |
嵌入式流媒体***的设计;秦贵和等;《微计算机信息》(第23期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112996053A (zh) | 2021-06-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3720052B1 (en) | Service identification method and device, and network device | |
US20170331757A1 (en) | Traffic control method, traffic control apparatus and server | |
EP4284004A1 (en) | Screen projection data transmission method and apparatus, electronic device, and storage medium | |
JP7053808B2 (ja) | 情報伝送方法及び装置 | |
JP2009284479A (ja) | バッファ状態報告を実行する方法及び通信装置 | |
CN107104782B (zh) | 数据传输方法及装置 | |
MX2008000317A (es) | Sistema y metodo para resolver conflictos en comunicaciones simultaneas multiples en un sistema inalambrico. | |
US20180115488A1 (en) | Arranging media access control protocol data units in a wireless transmission | |
CN111328104B (zh) | 数据包的解压缩方法和装置 | |
Salvador et al. | VoIPiggy: Analysis and implementation of a mechanism to boost capacity in IEEE 802.11 WLANs carrying VoIP traffic | |
US10383090B2 (en) | Data sending method, user equipment, and network device | |
CN111224903A (zh) | 一种数据传输方法、设备及计算机可读存储介质 | |
CN113573003B (zh) | 一种基于弱网的音视频实时通信方法、装置以及设备 | |
US8824428B2 (en) | Method for resolving data conflicts and mobile terminal | |
WO2020142214A1 (en) | Selective relay of data packets | |
CN112996053B (zh) | 语音数据包的重排序方法、装置及设备 | |
CN109039994B (zh) | 一种计算音频和视频异步时差的方法及设备 | |
US10225310B2 (en) | Transmission processing methods and apparatuses of data packet | |
WO2017032075A1 (zh) | 一种服务质量复用方法及装置、计算机存储介质 | |
CN107800653B (zh) | 报文压缩方法及装置 | |
CN112217734B (zh) | 一种语音信息的同步方法和通信*** | |
CN109461451B (zh) | 一种基于opus的语音传输方法和设备及*** | |
US10142249B2 (en) | Method and apparatus for determining buffer status of user equipment | |
CN114980150A (zh) | 缓冲优化方法、装置、电子设备、通信***和存储介质 | |
US8791981B2 (en) | Bit rate control apparatus and method thereof |
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 |