CN111381973B - 一种语音数据处理方法、装置及计算机可读存储介质 - Google Patents
一种语音数据处理方法、装置及计算机可读存储介质 Download PDFInfo
- Publication number
- CN111381973B CN111381973B CN201811628553.6A CN201811628553A CN111381973B CN 111381973 B CN111381973 B CN 111381973B CN 201811628553 A CN201811628553 A CN 201811628553A CN 111381973 B CN111381973 B CN 111381973B
- Authority
- CN
- China
- Prior art keywords
- data
- frame data
- voice frame
- path
- voice
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 11
- 239000000872 buffer Substances 0.000 claims abstract description 135
- 238000000034 method Methods 0.000 claims abstract description 37
- 238000012545 processing Methods 0.000 claims abstract description 37
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 claims abstract description 11
- 238000005070 sampling Methods 0.000 claims description 15
- 238000013523 data management Methods 0.000 claims description 3
- 230000008569 process Effects 0.000 description 9
- 230000006870 function Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000026676 system process Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000008570 general process Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- 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/008—Multichannel audio signal coding or decoding using interchannel correlation to reduce redundancy, e.g. joint-stereo, intensity-coding or matrixing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Signal Processing (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Telephonic Communication Services (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请涉及一种语音数据处理方法、装置及计算机可读存储介质,该方法包括:获取多路语音帧数据;将多路语音帧数据分别存入一级缓冲区中对应的缓存;确定一级缓冲区中各路语音帧数据的调度速度系数;当满足预设数据调度时延或二级缓冲区的预设水位高度时,根据一级缓冲区中各路语音帧数据的调度速度系数读取各路语音帧数据;对各路语音帧数据进行拼接处理后存入所述二级缓冲区。本申请实施例提高了每路语音帧数据的处理效率,提升了语音数据处理的并发性能,同时,可以保证相应通道的语音帧数据的时延,避免语音帧数据丢失和影响通话质量。
Description
技术领域
本申请涉及通信领域,尤其涉及一种语音数据处理方法、装置及计算机可读存储介质。
背景技术
随着并行处理器技术的发展,其特有的并发性和加速性使得它在视频处理、深度学习等方面得到了广泛的应用,对于语音来讲,由于语音转码具有流程串行且较长的特点,在并行处理器上既要保持单路sg处理时间短,又要保证能充分利用并行处理器提高语音编解码的效率,因此,目前并行处理器在处理语音转码方面还未得到应用。
目前的语音转码方法,通常采取的是在收到一路数据后立即处理并转发该路数据,具有时延较小的优点,但同时也存在并发性能不高的问题。若使用并行处理器进行语音转码,则语音转码的并发性能将会得到大幅度提高,然而将会出现无法同时保证语音转码的时延、效率和通话质量等性能的问题。
由于并行处理器需要根据其内部线程的数量,每次争取批量转码较多的的数据以体现其并行处理能力,保证并行处理器有较高的处理效率。然而,在并行处理器的实际应用场景中,多路语音数据往往不能够同时到达,若要实现多路语音数据的高效处理则必然会导致其中一部分通道的语音数据需要等待处理,导致无法保证语音转码的时延,而处于等待处理状态的相应通道可能还会持续接收到新的语音数据,如果语音数据的并行处理效率不高则将会导致接收到的新的语音数据丢失,从而影响语音数据转码后的通话质量。
有鉴于此,急需一种新的语音转码方法,能够在保证语音转码时延的前提下,提高语音数据的并行处理效率,且语音数据转码后的通话质量不受影响。
发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本申请提供了一种语音数据处理方法、装置及计算机可读存储介质。
第一方面,本申请提供了一种语音数据处理方法,所述方法包括:
获取多路语音帧数据;
将多路所述语音帧数据分别存入一级缓冲区中对应的缓存;
确定所述一级缓冲区中各路所述语音帧数据的调度速度系数;
当满足预设数据调度时延或二级缓冲区的预设水位高度时,根据所述一级缓冲区中各路所述语音帧数据对应的调度速度系数读取各路所述语音帧数据;
对各路所述语音帧数据进行拼接处理后存入所述二级缓冲区。
结合第一方面,在第一方面第一种可能的实施方式中,所述方法还包括:
根据接收到的并行解码命令读取所述二级缓冲区中的各路所述语音帧数据;
利用并行解码器对各路所述语音帧数据进行异步解码操作,生成解码后的多路PCM数据;
根据接收到的并行编码命令读取编码后的多路所述PCM数据;
利用并行编码器对多路所述PCM数据进行异步编码操作,生成编码后的多路语音帧数据。
结合第一方面,在第一方面第二种可能的实施方式中,所述利用并行解码器对各路所述语音帧数据进行异步解码操作,生成解码后的多路PCM数据包括:
获取解码后的多路所述PCM数据的调度速度系数;
当所述PCM数据的调度速度系数大于对应的调度速度系数阈值时,对所述PCM数据进行压缩处理;
当所述PCM数据的调度速度系数小于对应的调度速度系数阈值时,对所述PCM数据进行拉伸处理。
结合第一方面,在第一方面第三种可能的实施方式中,所述利用并行解码器对各路所述语音帧数据进行异步解码操作,生成解码后的多路PCM数据,包括:
当所述并行解码器和并行编码器的采样率不同时,将解码后的多路所述PCM数据的采样率调整到与所述并行编码器的采样率一致。
结合第一方面,在第一方面第四种可能的实施方式中,所述确定所述一级缓冲区中各路所述语音帧数据的调度速度系数,包括:
记录各路所述语音帧数据的接收参数;
根据各路所述语音帧数据的接收参数分别计算所述一级缓冲区的目标缓存级别;
根据多个所述一级缓冲区的目标缓存级别和所述一级缓冲区的当前缓存级别确定各路所述语音帧数据的调度速度系数。
结合第一方面,在第一方面第五种可能的实施方式中,所述根据多个所述一级缓冲区的目标缓存级别和所述一级缓冲区的当前缓存级别确定各路所述语音帧数据的调度速度系数,包括:
获取所述一级缓冲区的当前缓存级别和多个所述目标缓存级别的比例的预设置信区间与预设调度速度系数之间的对应关系表;
在所述对应关系表中查找与所述一级缓冲区的当前缓存级别和所述目标缓存级别的比例的置信区间对应的调度速度系数;
将与所述一级缓冲区的当前缓存级别和所述目标缓存级别的比例的置信区间对应的调度速度系数确定为所述语音帧数据的调度速度系数。
结合第一方面,在第一方面第六种可能的实施方式中,所述获取多路语音帧数据包括:
读取多个终端设备本地存储的语音数据包;
解析所述语音数据包获取所述语音帧数据;
和/或,
接收通过无线方式发送的语音数据包;
解析所述语音数据包获取所述语音帧数据。
第二方面,本申请提供了一种语音数据处理装置,所述装置包括:
获取单元,配置用于获取多路语音帧数据;
一级缓冲区,配置用于将所述获取单元获取到的多路所述语音帧数据存储到对应的缓存;
调度速度系数确定单元,配置用于确定所述一级缓冲区中各路所述语音帧数据的调度速度系数;
数据管理单元,配置用于当满足预设数据调度时延或二级缓冲区的预设水位高度时,根据所述一级缓冲区中各路所述语音帧数据对应的调度速度系数读取各路所述语音帧数据;
二级缓冲区,配置用于对拼接处理后的各路所述语音帧数据进行存储。
结合第二方面,在第二方面第一种可能的实施方式中,所述装置还包括:
语音帧数据读取单元,配置用于根据接收到的并行解码命令读取所述二级缓冲区中的各路所述语音帧数据;
并行解码单元,配置用于利用并行解码器对各路所述语音帧数据进行异步解码操作,生成解码后的多路PCM数据;
解码数据读取单元,配置用于根据接收到的并行编码命令读取编码后的多路所述PCM数据;
并行编码单元,配置用于利用并行编码器对多路所述PCM数据进行异步编码操作,生成编码后的多路语音帧数据。
第三方面,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有语音数据处理程序,所述语音数据处理程序被处理器执行时实现如第一方面所述的语音数据处理方法的步骤。
本申请实施例提供的上述技术方案与现有技术相比具有如下优点:
本申请实施例提供的该方法,将获取到的多路语音帧数据分别存入一级缓冲区中对应的缓存,从而提高了单路语音帧数据的处理效率,通过确定一级缓冲区中各路语音帧数据对应的调度速度系数,当满足预设数据调度时延或二级缓冲区的预设水位高度时,根据一级缓冲区中各路语音帧数据的调度速度系数读取各路语音帧数据,对各路所述语音帧数据进行拼接处理后存入所述二级缓冲区,也就是说,一级缓冲区中的每路语音帧数据都有对应的调度速度系数,可以提高每路语音帧数据的处理效率,提升并发性能,同时,可以保证相应通道的语音帧数据的时延,避免语音帧数据处理不当或不及时导致的语音帧数据丢失和影响通话质量。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种语音数据处理方法的流程图;
图2为本申请实施例提供的另一种语音数据处理方法的流程图;
图3为本申请实施例提供的另一种语音数据处理方法的流程图;
图4为本申请实施例提供的又一种语音数据处理方法的流程图;
图5为本申请实施例提供的一种对多种转码格式的语音帧数据处理的方法流程图;
图6为本申请实施例提供的一种语音数据处理装置的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供的一种语音数据处理方法,如图1所示,该方法包括以下步骤:
S101、获取多路语音帧数据。
S102、将多路语音帧数据分别存入一级缓冲区中对应的缓存。
S103、确定一级缓冲区中各路语音帧数据对应的调度速度系数。
S104、当满足预设数据调度时延或二级缓冲区的预设水位高度时,根据一级缓冲区中各路语音帧数据的调度速度系数读取各路语音帧数据。
S105、对各路语音帧数据进行拼接处理后存入二级缓冲区。
优选地,将本申请实施例中的预设数据调度时延设置为20ms,将预设水位高度设置为800路。为了更好地消除网络抖动对语音帧数据带来的影响,本申请实施例根据各路语音帧数据对应的调度速度系数,从一级缓冲区中每次读取一帧或多帧语音帧数据,通过并行解码器对读取到的每路语音帧数据进行解码,最后通过语音时长调整技术对解码后的数据进行拉伸或压缩处理。
在本申请实施例中,通过转码服务器接收多个终端发动来的语音数据包,当转码服务器接收到多个终端发送来的语音数据包后,解析出语音数据包中的语音帧数据,将各路语音帧数据存入到一级缓冲区中各自对应的缓存中,并设定一级缓冲区的缓存级别参数到最大值,示例性的,本申请实施例中将一级缓冲区的缓存级别参数的最大值设置为100ms,以防止语音帧数据未及时处理而可能发生数据丢失的问题。
在本申请另一实施例中,如图2所示,上述语音数据处理方法还包括:
S201、根据接收到的并行解码命令读取二级缓冲区中的各路语音帧数据。
S202、利用并行解码器对各路语音帧数据进行异步解码操作,生成解码后的多路PCM(Pulse Code Modulation,脉冲编码调制)数据。
在本申请实施例中,上述步骤S202、利用并行解码器对各路语音帧数据进行异步解码操作,生成解码后的多路PCM数据包括:
获取解码后的多路所述PCM数据的调度速度系数;
当所述PCM数据的调度速度系数大于对应的调度速度系数阈值时,对所述PCM数据进行压缩处理;
当所述PCM数据的调度速度系数小于对应的调度速度系数阈值时,对所述PCM数据进行拉伸处理;
当PCM数据的调度速度系数等于对应的调度速度系数阈值时,对PCM数据进行正常处理。
示例性的,将调度速度系数阈值设置为1,对解码后的PCM数据进行拉伸或压缩处理由计算出的PCM数据的调度速度系数决定,当PCM数据的调度速度系数为1时,对PCM数据进行正常处理;当PCM数据的调度速度系数大于1时,对PCM数据进行压缩处理;当PCM数据的调度速度系数小于1时,对PCM数据进行拉伸处理。通过对解码后的PCM数据进行相应的拉伸或压缩处理,可以更好地消除网络抖动对数据带来的影响。
S203、根据接收到的并行编码命令读取编码后的多路PCM数据。
S204、利用并行编码器对多路PCM数据进行异步编码操作,生成编码后的多路语音帧数据。
在本申请实施例中,如果语音帧数据转码前后的采样率不同,即当并行解码器和并行编码器的采样率不同时,将解码后输出的PCM数据进行采样率转换后再送入并行编码器中进行编码,也就是说,将解码后输出的PCM数据的采样率调整到与并行编码器的采样率一致。
本申请实施例中的并行解码器和并行编码器分别采用异步解码和异步编码的调度方法,在并行解码和并行编码的同时CPU无需等待,CPU可同时进行其它操作,以提高并发性能,异步解码和异步编码的具体实现方式本申请实施例不做限定。在异步编码操作完成后,对各路编码后的语音帧数据进行打包,将打包后的数据发送给各个终端,完成转码过程。如果不需要将打包后的数据通过无线方式发送,则可以将编码后的语音帧数据或者打包后的语音帧数据按照对应的文件格式进行本地存储。
在本申请另一实施例中,既可以在网络中通过无线方式传输语音数据包,也可以不在网络中传输语音数据包,上述步骤S101、获取多路语音帧数据,包括:
读取多个终端设备本地存储的语音数据包;
解析语音数据包获取语音帧数据;
和/或,
接收通过无线方式发送的语音数据包;
解析语音数据包获取语音帧数据。
在本申请另一实施例中,如图3所示,上述步骤S103、确定一级缓冲区中各路语音帧数据对应的调度速度系数,包括:
S1031、记录各路语音帧数据的接收参数。
S1032、根据各路语音帧数据的接收参数分别计算一级缓冲区的目标缓存级别。
S1033、根据多个一级缓冲区的目标缓存级别和一级缓冲区的当前缓存级别确定各路语音帧数据的调度速度系数。
在本申请实施例中,在接收到语音数据包后,记录该语音数据包的收包时间和时间戳等接收参数,根据接收参数计算出一级缓冲区的目标缓存级别,并根据一级缓冲区的目标缓存级别和当前缓存级别的比例设定不同的调度速度系数,得到与语音数据包中的各路语音帧数据对应的调度速度系数。
在本申请另一实施例中,如图4所示,上述步骤S1033、根据多个所述一级缓冲区的目标缓存级别和所述一级缓冲区的当前缓存级别确定各路所述语音帧数据的调度速度系数,包括:
S10331、获取一级缓冲区的当前缓存级别和多个目标缓存级别的比例的预设置信区间与预设调度速度系数之间的对应关系表。
S10332、在对应关系表中查找与一级缓冲区的当前缓存级别和目标缓存级别的比例的置信区间对应的调度速度系数。
S10333、将与一级缓冲区的当前缓存级别和目标缓存级别的比例的置信区间对应的调度速度系数确定为语音帧数据的调度速度系数。
下面结合具体的使用场景对本申请实施例进行具体说明。
第一种使用场景:单种格式转码的场景。
如图5所示,以语音转码服务器为例,并行处理器使用GPU,将1000路G711帧数据转码为AMR-WB,具体的转码过程如下:
从网络上收取多个终端发送的多路G711的RTP(Real-time Transport Protocol,实时传输协议)数据包,对各路G711的RTP数据包进行解析,提取出RTP数据包中的多路G711帧数据存入一级缓冲区中各自对应的缓存中。
在本申请实施例中,一级缓冲区设置在CPU上,用于存放各路G711帧数据,由于网络抖动和处理时延的存在,将一级缓冲区的最大缓存级别参数设置为100ms,以防止G711帧数据未及时处理而可能发生数据丢失的问题,而在网络状态和系统处理正常的情况下,该一级缓冲区的缓存级别通常设置为20ms到40ms。在接收到各路G711的RTP数据包时,记录该RTP数据包的收包时间和时间戳,计算解析出的G711帧数据的目标缓存级别,一级缓冲区的当前缓存级别和目标缓存级别的比例的置信区间设定不同的档位,得到与G711帧数据对应的目标调度速度系数,如表一所示。
表一、目标调度速度系数的计算方法
当前缓存级别/目标缓存级别 | 调度速度系数c |
>2 | 2.0 |
(1.2,2] | 1.5 |
[0.8,1.2] | 1 |
<0.8 | 0.75 |
当满足预设数据调度时延或二级缓冲区的预设水位高度时,根据各路G711帧数据对应的调度速度系数将各路G711帧数据映射到二级缓冲区中,并维护各路G711帧数据和其相关参数及内存的对应关系。二级缓冲区是CPU上的一块连续内存和GPU上的一块连续内存的总和,CPU上的一块连续内存中存放各路G711帧数据,并需要将各路G711帧数据拷贝到GPU上的一块连续内存,以供GPU上的并行解码器进行解码。
优选地,将预设数据调度时延设置为rfc3550(实时应用传输协议)的默认包时长20ms,即一个RTP数据包的处理时延;将二级缓冲区的预设水位高度设置为800路。在接收到的G711帧数据的路数超过预设水位高度时或者达到预设数据调度时延时,从各路G711帧数据对应的缓存中读取n帧语音数据,假设语音时长调整处理帧数的上限为M,则n的取值范围为1=<n<M,n的具体取值由上述计算出的调度速度系数决定,调度速度系数越大,n的取值越大。
一级缓冲区为先入先出,将一级缓冲区中的每路G711帧数据拷贝到二级缓冲区中(CPU上的一块连续内存),第N路数据对应二级缓冲区的第N个索引位置,再将二级缓冲区(CPU上的一块连续内存)中的G711帧数据拷贝到二级缓冲区(GPU上的一块连续内存)中,最后将二级缓冲区(GPU上的一块连续内存)中的G711帧数据批量发送到并行解码器,并行解码器对各路G711帧数据进行G711解码,输出解码后的PCM数据。
通常情况下,每路PCM数据对应一帧G711语音帧数据,在网络发生抖动或系统处理发生抖动时,为了消除抖动带来的影响,需要对PCM数据进行拉伸或压缩处理。拉伸或压缩的比例由一级缓冲区计算出的调度速度系数决定。当调度速度系数为1时,对PCM数据正常处理,当调度速度系数>1时,对PCM数据进行压缩,反之对PCM数据进行拉伸。解码后通过语音时长调整技术将PCM数据压缩或拉伸为相应的倍数。
为了提高并发性能,并行解码器在解码时采用异步解码的方式,利用GPU的回调机制,在并行解码器中注册回调函数,在回调函数中处理解码后的数据流,向并行解码器发送解码命令后,立即返回处理其他操作。
优选地,由于G711解码器的采样率为8k,而AMR-WB编码器的采样率为16k,因此需要对解码后的PCM数据进行采样率转换,将PCM数据的采样率由8k转换为16k;然后由并行编码器对多路PCM数据进行AMR-WB编码,生成编码后的帧数据。
为了提高并发性能,并发编码器在编码时采用异步编码的方式,利用GPU的回调机制,在并行编码器中注册回调函数,在回调函数中处理编码后的数据流,向并行编码器发送编码命令后,立即返回处理其他操作。
对各路编码后的G711帧数据进行打包,生成RTP数据包,将各路RTP数据包发送到对应的终端,各路终端收到对应的RTP数据包后进行解析后可播放该语音数据。
此外,在转码过程中,通常为了检测网络质量,每路会伴随发送RTCP包,RTCP包的转发处理同通用处理,此处不再赘述。
第二种使用场景:多种格式转码的场景。
如图6所示,在实际应用中,往往存在不同格式的各种终端,对语音转码服务器来说,经常要同时处理多种转码格式并存的情况,例如,同时将1000路G711转码为AMR-WB,将500路G729转码为AMR-NB,与单种格式转码方法的区别是对多路语音帧数据的内存映射和资源管理操作。
从网络上收取多个终端发送的多路G711的RTP数据包和G729的RTP数据包,对各路的RTP数据包进行解析,提取出RTP数据包中相应的语音帧数据存入一级缓冲区中各自对应的缓存中,处理方法同上述单种格式转码的方法,此处不再赘述。
对多种不同转码格式的G711语音帧数据和G729语音帧数据的内存映射和资源管理方法为:
按不同的转码格式进行分组,对于G711转AMR-WB的1000路数据分配G711解码器、AMR-WB编码器和二级缓冲区A(二级缓存A),第N路映射到第N块内存,N=0,1,...,999;对于G729转AMR-NB的500路数据分配G729解码器、AMR-NB编码器和二级缓冲区B(二级缓存B),第M路映射到第M块内存,M=0,1,...,499。
本申请实施例,实现了基于并行处理器GPU进行多路语音转码,一次批量处理多路语音帧数据,在控制时延的前提下,提升了并发性能,避免了语音帧数据处理不当或不及时导致的语音帧数据丢失和影响通话质量,降低了成本。
本申请实施例提供的一种语音数据处理装置,如图6所示,该装置包括:
获取单元11,配置用于获取多路语音帧数据;
一级缓冲区12,配置用于将所述获取单元11获取到的多路所述语音帧数据存储到对应的缓存;
调度速度系数确定单元13,配置用于确定所述一级缓冲区12中各路所述语音帧数据的调度速度系数;
数据管理单元14,配置用于当满足预设数据调度时延或二级缓冲区的预设水位高度时,根据所述一级缓冲区12中各路所述语音帧数据对应的调度速度系数读取各路所述语音帧数据;
二级缓冲区15,配置用于对拼接处理后的各路所述语音帧数据进行存储。
在本申请另一实施例中,所述装置还包括:
语音帧数据读取单元,配置用于根据接收到的并行解码命令读取所述二级缓冲区中的各路所述语音帧数据;
并行解码单元,配置用于利用并行解码器对各路所述语音帧数据进行异步解码操作,生成解码后的多路PCM数据;
解码数据读取单元,配置用于根据接收到的并行编码命令读取编码后的多路所述PCM数据;
并行编码单元,配置用于利用并行编码器对多路所述PCM数据进行异步编码操作,生成编码后的多路语音帧数据。
本申请实施例提供的一种计算机可读存储介质,该计算机可读存储介质上存储有语音数据处理程序,语音数据处理程序被处理器执行时实现如图1所示的语音数据处理方法的步骤。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种语音数据处理方法,其特征在于,所述方法包括:
获取多路语音帧数据;
将多路所述语音帧数据分别存入一级缓冲区中对应的缓存;
确定所述一级缓冲区中各路所述语音帧数据的调度速度系数;
当满足预设数据调度时延或二级缓冲区的预设水位高度时,根据所述一级缓冲区中各路所述语音帧数据的调度速度系数读取各路所述语音帧数据;
对各路所述语音帧数据进行拼接处理后存入所述二级缓冲区。
2.根据权利要求1所述的语音数据处理方法,其特征在于,所述方法还包括:
根据接收到的并行解码命令读取所述二级缓冲区中的各路所述语音帧数据;
利用并行解码器对各路所述语音帧数据进行异步解码操作,生成解码后的多路PCM数据;
根据接收到的并行编码命令读取编码后的多路所述PCM数据;
利用并行编码器对多路所述PCM数据进行异步编码操作,生成编码后的多路语音帧数据。
3.根据权利要求2所述的语音数据处理方法,其特征在于,所述利用并行解码器对各路所述语音帧数据进行异步解码操作,生成解码后的多路PCM数据包括:
获取解码后的多路所述PCM数据的调度速度系数;
当所述PCM数据的调度速度系数大于对应的调度速度系数阈值时,对所述PCM数据进行压缩处理;
当所述PCM数据的调度速度系数小于对应的调度速度系数阈值时,对所述PCM数据进行拉伸处理。
4.根据权利要求2所述的语音数据处理方法,其特征在于,所述利用并行解码器对各路所述语音帧数据进行异步解码操作,生成解码后的多路PCM数据,包括:
当所述并行解码器和并行编码器的采样率不同时,将解码后的多路所述PCM数据的采样率调整到与所述并行编码器的采样率一致。
5.根据权利要求1所述的语音数据处理方法,其特征在于,所述确定所述一级缓冲区中各路所述语音帧数据的调度速度系数,包括:
记录各路所述语音帧数据的接收参数;
根据各路所述语音帧数据的接收参数分别计算所述一级缓冲区的目标缓存级别;
根据多个所述一级缓冲区的目标缓存级别和所述一级缓冲区的当前缓存级别确定各路所述语音帧数据的调度速度系数。
6.根据权利要求5所述的语音数据处理方法,其特征在于,所述根据多个所述一级缓冲区的目标缓存级别和所述一级缓冲区的当前缓存级别确定各路所述语音帧数据的调度速度系数,包括:
获取所述一级缓冲区的当前缓存级别和多个所述目标缓存级别的比例的预设置信区间与预设调度速度系数之间的对应关系表;
在所述对应关系表中查找与所述一级缓冲区的当前缓存级别和所述目标缓存级别的比例的置信区间对应的调度速度系数;
将与所述一级缓冲区的当前缓存级别和所述目标缓存级别的比例的置信区间对应的调度速度系数确定为所述语音帧数据的调度速度系数。
7.根据权利要求1所述的语音数据处理方法,其特征在于,所述获取多路语音帧数据包括:
读取多个终端设备本地存储的语音数据包;
解析所述语音数据包获取所述语音帧数据;
和/或,
接收通过无线方式发送的语音数据包。
8.一种语音数据处理装置,其特征在于,所述装置包括:
获取单元,配置用于获取多路语音帧数据;
一级缓冲区,配置用于将所述获取单元获取到的多路所述语音帧数据存储到对应的缓存;
调度速度系数确定单元,配置用于确定所述一级缓冲区中各路所述语音帧数据的调度速度系数;
数据管理单元,配置用于当满足预设数据调度时延或二级缓冲区的预设水位高度时,根据所述一级缓冲区中各路所述语音帧数据对应的调度速度系数读取各路所述语音帧数据;
二级缓冲区,配置用于对拼接处理后的各路所述语音帧数据进行存储。
9.根据权利要求8所述的语音数据处理装置,其特征在于,所述装置还包括:
语音帧数据读取单元,配置用于根据接收到的并行解码命令读取所述二级缓冲区中的各路所述语音帧数据;
并行解码单元,配置用于利用并行解码器对各路所述语音帧数据进行异步解码操作,生成解码后的多路PCM数据;
解码数据读取单元,配置用于根据接收到的并行编码命令读取编码后的多路所述PCM数据;
并行编码单元,配置用于利用并行编码器对多路所述PCM数据进行异步编码操作,生成编码后的多路语音帧数据。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有语音数据处理程序,所述语音数据处理程序被处理器执行时实现如权利要求1至7中任一项所述的语音数据处理方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811628553.6A CN111381973B (zh) | 2018-12-28 | 2018-12-28 | 一种语音数据处理方法、装置及计算机可读存储介质 |
PCT/CN2019/124913 WO2020135082A1 (zh) | 2018-12-28 | 2019-12-12 | 一种语音数据处理方法、装置及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811628553.6A CN111381973B (zh) | 2018-12-28 | 2018-12-28 | 一种语音数据处理方法、装置及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111381973A CN111381973A (zh) | 2020-07-07 |
CN111381973B true CN111381973B (zh) | 2024-03-01 |
Family
ID=71127518
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811628553.6A Active CN111381973B (zh) | 2018-12-28 | 2018-12-28 | 一种语音数据处理方法、装置及计算机可读存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN111381973B (zh) |
WO (1) | WO2020135082A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116112697B (zh) * | 2022-11-28 | 2023-08-11 | 长沙千视电子科技有限公司 | 一种基于ndi的实时视频录像方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1463125A (zh) * | 2002-05-28 | 2003-12-24 | 华为技术有限公司 | 一种实现缓存去抖的大容量实时流处理方法 |
CN101968959A (zh) * | 2010-09-19 | 2011-02-09 | 北京航空航天大学 | 一种基于faad2 main模式的多路音频实时解码软件设计方法 |
CN102664015A (zh) * | 2012-04-18 | 2012-09-12 | 王正鑫 | 一种基于g726编码的多路音频实时编码软硬件方案 |
CN104113777A (zh) * | 2014-08-01 | 2014-10-22 | 广州金山网络科技有限公司 | 一种音频流解码方法及装置 |
CN104506455A (zh) * | 2014-12-26 | 2015-04-08 | 深圳市兰丁科技有限公司 | 数据包排序去抖方法及装置 |
CN106878736A (zh) * | 2017-03-17 | 2017-06-20 | 郑州云海信息技术有限公司 | 一种视频编解码的方法与装置 |
CN106921863A (zh) * | 2014-04-22 | 2017-07-04 | 联发科技股份有限公司 | 使用多个解码器核心解码视频比特流的方法、装置以及处理器 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI390503B (zh) * | 2009-11-19 | 2013-03-21 | Gemtek Technolog Co Ltd | Dual channel voice transmission system, broadcast scheduling design module, packet coding and missing sound quality damage estimation algorithm |
DE102015104407B4 (de) * | 2015-03-24 | 2023-02-23 | Apple Inc. | Verfahren und Vorrichtungen zum Steuern der Sprachqualität |
-
2018
- 2018-12-28 CN CN201811628553.6A patent/CN111381973B/zh active Active
-
2019
- 2019-12-12 WO PCT/CN2019/124913 patent/WO2020135082A1/zh active Application Filing
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1463125A (zh) * | 2002-05-28 | 2003-12-24 | 华为技术有限公司 | 一种实现缓存去抖的大容量实时流处理方法 |
CN101968959A (zh) * | 2010-09-19 | 2011-02-09 | 北京航空航天大学 | 一种基于faad2 main模式的多路音频实时解码软件设计方法 |
CN102664015A (zh) * | 2012-04-18 | 2012-09-12 | 王正鑫 | 一种基于g726编码的多路音频实时编码软硬件方案 |
CN106921863A (zh) * | 2014-04-22 | 2017-07-04 | 联发科技股份有限公司 | 使用多个解码器核心解码视频比特流的方法、装置以及处理器 |
CN104113777A (zh) * | 2014-08-01 | 2014-10-22 | 广州金山网络科技有限公司 | 一种音频流解码方法及装置 |
CN104506455A (zh) * | 2014-12-26 | 2015-04-08 | 深圳市兰丁科技有限公司 | 数据包排序去抖方法及装置 |
CN106878736A (zh) * | 2017-03-17 | 2017-06-20 | 郑州云海信息技术有限公司 | 一种视频编解码的方法与装置 |
Non-Patent Citations (1)
Title |
---|
基于EVRC解码算法的语音业务还原设计与实现;汪小雨 等;《电子设计工程》;第25卷(第03期);第61-64页 * |
Also Published As
Publication number | Publication date |
---|---|
CN111381973A (zh) | 2020-07-07 |
WO2020135082A1 (zh) | 2020-07-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113542655B (zh) | 视频通信中的视频标注技术 | |
CN102226944B (zh) | 混音方法及设备 | |
KR20200050940A (ko) | 멀티 레이트 스피치와 오디오 코덱을 위한 프레임 손실 은닉 방법 및 장치 | |
CN1943189B (zh) | 增加通信系统中所感知交互性的方法及设备 | |
US7054805B2 (en) | Method and system for allocating memory during encoding of a datastream | |
CN110838894B (zh) | 语音处理方法、装置、计算机可读存储介质和计算机设备 | |
TWI446338B (zh) | 可擴縮音訊處理方法及裝置 | |
US20070263672A1 (en) | Adaptive jitter management control in decoder | |
KR20100096218A (ko) | 반향 검출 방법 및 장치 | |
GB2525948A (en) | Packet loss and bandwidth coordination | |
US8438018B2 (en) | Method and arrangement for speech coding in wireless communication systems | |
CN104506287A (zh) | 一种td-lte应急通信下的实时语音通信方法 | |
KR20170082901A (ko) | 재생 지연 조절 방법 및 이를 적용한 전자 장치 | |
US20090063165A1 (en) | System and method for providing amr-wb dtx synchronization | |
CN111381973B (zh) | 一种语音数据处理方法、装置及计算机可读存储介质 | |
CN109600341B (zh) | 一种即时通信检测方法、设备和计算机存储介质 | |
US9313338B2 (en) | System, device, and method of voice-over-IP communication | |
WO2013102403A1 (zh) | 一种音频信号处理方法、装置及终端 | |
KR20140108119A (ko) | 음성 복호 장치 | |
US7362770B2 (en) | Method and apparatus for using and combining sub-frame processing and adaptive jitter-buffers for improved voice quality in voice-over-packet networks | |
US11070666B2 (en) | Methods and devices for improvements relating to voice quality estimation | |
CN115831132A (zh) | 音频编解码方法、装置、介质及电子设备 | |
CN116095395A (zh) | 一种调整缓冲区长度的方法、装置、电子设备和存储介质 | |
JPH0236628A (ja) | 音声信号の送信方式及び送受信方式 | |
CN114448957B (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 |