WO2021103778A1 - 语音处理方法、装置、计算机可读存储介质和计算机设备 - Google Patents
语音处理方法、装置、计算机可读存储介质和计算机设备 Download PDFInfo
- Publication number
- WO2021103778A1 WO2021103778A1 PCT/CN2020/116511 CN2020116511W WO2021103778A1 WO 2021103778 A1 WO2021103778 A1 WO 2021103778A1 CN 2020116511 W CN2020116511 W CN 2020116511W WO 2021103778 A1 WO2021103778 A1 WO 2021103778A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- speech
- redundancy
- voice
- packet
- error correction
- Prior art date
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 20
- 238000012937 correction Methods 0.000 claims abstract description 152
- 238000000034 method Methods 0.000 claims abstract description 37
- 238000004590 computer program Methods 0.000 claims description 43
- 238000001514 detection method Methods 0.000 claims description 25
- 230000005540 biological transmission Effects 0.000 claims description 20
- 238000012545 processing Methods 0.000 claims description 11
- 239000000284 extract Substances 0.000 claims description 4
- 238000005259 measurement Methods 0.000 abstract 1
- 230000006870 function Effects 0.000 description 15
- 238000013139 quantization Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 8
- 238000001228 spectrum Methods 0.000 description 8
- 238000004364 calculation method Methods 0.000 description 7
- 239000011159 matrix material Substances 0.000 description 7
- 230000009471 action Effects 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 230000006835 compression Effects 0.000 description 4
- 238000007906 compression Methods 0.000 description 4
- 230000037433 frameshift Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 238000005538 encapsulation Methods 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 235000008694 Humulus lupulus Nutrition 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 208000003028 Stuttering Diseases 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000005311 autocorrelation function Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000009432 framing Methods 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000035772 mutation Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000008521 reorganization Effects 0.000 description 1
- 230000003595 spectral effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
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
- H04L1/0045—Arrangements at the receiver end
-
- 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/005—Correction of errors induced by the transmission channel, if related to the coding algorithm
-
- 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/0001—Systems modifying transmission characteristics according to link quality, e.g. power backoff
- H04L1/0009—Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the channel coding
-
- 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/0001—Systems modifying transmission characteristics according to link quality, e.g. power backoff
- H04L1/0015—Systems modifying transmission characteristics according to link quality, e.g. power backoff characterised by the adaptation strategy
- H04L1/0017—Systems modifying transmission characteristics according to link quality, e.g. power backoff characterised by the adaptation strategy where the mode-switching is based on Quality of Service requirement
-
- 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
-
- 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
- H04L1/0046—Code rate detection or code type detection
-
- 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/22—Arrangements for detecting or preventing errors in the information received using redundant apparatus to increase reliability
-
- 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
- G10L15/00—Speech recognition
- G10L15/04—Segmentation; Word boundary detection
-
- 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
- G10L15/00—Speech recognition
- G10L15/02—Feature extraction for speech recognition; Selection of recognition unit
- G10L2015/025—Phonemes, fenemes or fenones being the recognition units
-
- 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
-
- 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/90—Pitch determination of speech signals
Definitions
- the voice may be the voice collected by the microphone in the early stage of the user's voice or video call; or it may be the voice collected by the microphone in the early stage of the user's voice or video live broadcast.
- the step of performing pulse code modulation on speech to obtain speech coded data may specifically include: the terminal samples the collected speech, where the sampling frequency is greater than twice the highest frequency of the speech signal. Then, the terminal quantizes the sampled speech, which can be uniform quantization or non-uniform quantization, and non-uniform quantization can use a ⁇ -law compression algorithm or an A-law compression algorithm. Finally, the terminal encodes the quantized speech, and then packs the encoded speech data into multiple speech encoding packets.
- the encoding methods include waveform encoding, parameter encoding, and hybrid encoding.
- the terminal inputs the speech rate value into the calculation formula used to adjust the forward error correction redundancy.
- the forward error correction redundancy is also adjusted to obtain the target redundancy. Redundancy.
- the terminal when the target redundancy is less than the lower limit of the redundancy, the terminal performs forward error correction coding on the speech coded packet according to the lower limit of the redundancy to obtain a redundant packet.
- the number is the product of the lower limit of redundancy and the number of speech coding packets.
- the speech rate value is less than the upper limit of the speech rate, select the maximum value from the forward error correction redundancy and the lower limit of the redundancy, and perform forward error correction coding on the speech coded packet according to the maximum value to obtain a redundant packet; if If the speech rate value is greater than the upper limit of the speech rate and less than the upper limit of the speech rate, perform forward error correction coding on the speech coded packet according to the target redundancy to obtain the redundant packet; if the speech rate value is greater than the upper limit of the speech rate Limit, select the minimum value from the forward error correction redundancy and the upper limit of the redundancy, and perform forward error correction coding on the voice coding packet according to the minimum value to obtain the redundant packet.
- the non-reference-based detection method is used in this embodiment to measure the speaker's speech rate.
- the non-referenced speech rate detection calculation is realized based on the statistics of the change speed of vad and pitch period. Because the pitch period (or pitch frequency) before and after the same phoneme is continuous, that is, the jump is small, but the front and back frames of different phonemes are The pitch period (or pitch frequency) of is obviously hopping, and the speech rate v is equivalently described by analyzing the number of mutations of the pitch period (or fundamental frequency) per unit time and the number of voice frame hopping.
- the pseudo code is as follows:
- the above formula presets the following constant values: the upper limit of speech rate V 2 and the lower limit of speech rate V 1 , the lower limit of FEC redundancy R min and the upper limit of redundancy R max , and c is a constant.
- the above formula can calculate the target redundancy r'.
- the processor when the computer program is executed by the processor to determine the speech rate value according to the frequency of phoneme hopping in the phoneme sequence, the processor specifically executes the following steps: detecting the pitch period or the pitch period of the phoneme per unit time in the phoneme sequence. The number of jumps of the pitch frequency; the speech rate value is determined according to the number of jumps per unit time.
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Quality & Reliability (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请涉及一种语音处理方法、装置、计算机可读存储介质和计算机设备,所述方法包括:对获取的语音进行语速检测,得到语速值;获取前向纠错冗余度;依据所述语速值调整所述前向纠错冗余度,得到目标冗余度;对所述语音进行语音编码,得到语音编码包;按照所述目标冗余度对所述语音编码包进行前向纠错编码,得到冗余包;向接收端发送所述冗余包和所述语音编码包。
Description
本申请要求于2019年11月27日提交中国专利局,申请号为2019111798696,发明名称为“语音处理方法、装置、计算机可读存储介质和计算机设备”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
本申请涉及语音处理技术领域,特别是涉及一种语音处理方法、装置、计算机可读存储介质和计算机设备。
在进行语音通话的过程中,语音可以通过网络从发送端传输到接收端,由于网络质量的问题,使得语音在传输的过程中可能会出现语音数据包丢失现象,会导致接收端所接收的语音会出现卡顿和不连贯的情况,从而影响语音接听效果。
传统抗丢包的方案中,对语音数据包进行FEC(Forward Error Correction,前向纠错)编码得到冗余包,将语音数据包和冗余包一起发送到接收端,若出现丢包情况时,接收端根据冗余包可以恢复出丢包位置的完整语音,从而达到抗丢包的效果。FEC冗余度(即冗余包个数与语音数据包个数的比值)越大抗丢包能力越强,但会额外消耗大量带宽,若FEC冗余度较小,将无法达到纠错的效果。
发明内容
根据本申请的各种实施例,提供一种语音处理方法、装置、计算机可读存储介质和计算机设备。
一种语音处理方法,由终端执行,所述方法包括:
对获取的语音进行语速检测,得到语速值;
获取前向纠错冗余度;
依据所述语速值调整所述前向纠错冗余度,得到目标冗余度;
对所述语音进行语音编码,得到语音编码包;
按照所述目标冗余度对所述语音编码包进行前向纠错编码,得到冗余包;
向接收端发送所述冗余包和所述语音编码包。
一种语音处理装置,所述装置包括:
检测模块,用于对获取的语音进行语速检测,得到语速值;
获取模块,用于获取前向纠错冗余度;
调整模块,用于依据所述语速值调整所述前向纠错冗余度,得到目标冗余度;
第一编码模块,用于对所述语音进行语音编码,得到语音编码包;
第二编码模块,用于按照所述目标冗余度对所述语音编码包进行前向纠错编码,得到冗余包;
发送模块,用于向接收端发送所述冗余包和所述语音编码包。
一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行以下步骤:
对获取的语音进行语速检测,得到语速值;
获取前向纠错冗余度;
依据所述语速值调整所述前向纠错冗余度,得到目标冗余度;
对所述语音进行语音编码,得到语音编码包;
按照所述目标冗余度对所述语音编码包进行前向纠错编码,得到冗余包;
向接收端发送所述冗余包和所述语音编码包。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行以下步骤:
对获取的语音进行语速检测,得到语速值;
获取前向纠错冗余度;
依据所述语速值调整所述前向纠错冗余度,得到目标冗余度;
对所述语音进行语音编码,得到语音编码包;
按照所述目标冗余度对所述语音编码包进行前向纠错编码,得到冗余包;
向接收端发送所述冗余包和所述语音编码包。
一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器 从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述方面的各种可选实现方式中提供的语音处理方法。
本申请的一个或多个实施例的细节在下面的附图和描述中提出。本申请的其它特征和优点将从说明书、附图以及权利要求书变得明显。
图1为一个实施例中语音处理方法的应用环境图;
图2为一个实施例中语音处理方法的流程示意图;
图3为一个实施例中对语音分帧的示意图;
图4a为一个实施例中发送端进行前向纠错编码的示意图;
图4b为另一个实施例中语音处理方法的流程示意图;
图5为一个实施例中计算语速值步骤的流程示意图;
图6为一个实施例中调整前向纠错冗余度,将所得的目标冗余度与冗余度上限值和冗余度下限值进行比较,根据比较结果进行前向纠错编码步骤的流程示意图;
图7为一个实施例中发送端调整前向纠错冗余度并进行前向纠错编码,接收端进行前向纠错解码恢复语音编码包的流程示意图;
图8为一个实施例中语音处理装置的结构框图;
图9为另一个实施例中语音处理装置的结构框图;
图10为一个实施例中计算机设备的结构框图。
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
图1为一个实施例中语音处理方法的应用环境图。参照图1,该语音处理方法应用于语音处理***。该语音处理***包括终端110、传输节点120和终端130。终端110、传输节点120和终端130通过网络连接。终端110可作为发送 端(也可用作接收端),具体可以是台式终端或移动终端,移动终端具体可以手机、平板电脑、笔记本电脑等中的至少一种。对应地,终端130可作为接收端(也可用作发送端),当终端110为发送端时,终端130可以是接收端,具体可以是台式终端或移动终端,移动终端具体可以手机、平板电脑、笔记本电脑等中的至少一种。传输节点120可以包括网络中的交换机(或路由器)以及其它传输设备,如SDH(Synchronous Digital Hierarchy,同步数字体系)或PTN(Packet Transport Network,分组传送网)设备,此外,传输节点120还可以包括通信基站,如3G、4G和5G以及后续版本的通信基站。
如图2所示,在一个实施例中,提供了一种语音处理方法。本实施例主要以该方法应用于上述图1中的终端110来举例说明。参照图2,该语音处理方法具体包括如下步骤:
S202,对获取的语音进行语速检测,得到语速值。
其中,该语言可以是用户在语音或视频通话过程中所发出的语音,也可以是在进行语音或视频直播过程中所发出的语音。语速值可以是用于表示说话人语速快慢的值,不同的说话人,语速值可能存在一定的差异。该语速值可以是平均语速值,也可以是某个瞬时的语速值。
在一个实施例中,当进行语音或视频通话时,终端通过麦克风采集用户发出的语音。例如,用户使用即时通信应用与他人进行语音或视频通话时,终端通过内置的麦克风采集用户发出的语音。其中,该即时通信应用可以包括社交应用和其它用于即时通信的应用。
在一个实施例中,当进行语音或视频直播时,终端通过麦克风采集用户发出的语音。例如,用户使用直播软件进行语音或视频直播时,终端通过内置的麦克风采集用户发出的语音。
在一个实施例中,终端对采集的语音进行音素检测,得到音素序列;然后基于所得的音素序列计算单位时间内的音素个数,根据单位时间内的音素个数确定语速值。其中,音素个数可以通过基音周期或基音频率的跳变来确定。例如,单位时间内出现了20次基音周期或基音频率的跳变,则可以确定单位时间内有20个音素个数。其中。音素分为元音与辅音两大类,是根据语音的自然属性划 分出来的最小语音单位,依据音节里的发音动作来分析,一个动作构成一个音素。如汉语音节a只有一个音素,ai有两个音素,dai有三个音素等。
在一个实施例中,终端对采集的语音进行音素检测,得到音素序列;然后将音素序列转换为对应的字序列,基于转换所得的字序列计算单位时间内的字个数,根据单位时间内的字个数确定语速值。
在一个实施例中,终端采用窗函数对采集的语音进行分帧,从而得到分帧后的语音。具体地,可以采用交叠分段的方式对所采集的语音进行分帧,从而可以使帧与帧之间平滑过渡。其中,前一帧和后一帧的交叠部分称为帧移,帧移的帧长与语音帧的帧长之间的比值通常为0至0.5范围内。窗函数可以是矩形窗函数、汉宁窗函数、海明窗函数或布莱克曼窗函数等。
例如,假设语音用s(n)表示,采用窗函数ω(n)来乘s(n),从而形成加窗后的语音Sω(n)=s(n)×ω(n),如图3所示,语音帧的帧长为N,移帧的帧长为M。
在一个实施例中,终端对各语音帧进行检测,检测出各语音帧是否包含有语音内容,从而终端可以对包含有语音内容的语音帧进行语速检测,得到语音序列;然后基于所得的音素序列计算单位时间内的音素个数,根据单位时间内的音素个数确定语速值。或者,终端将音素序列转换为对应的字序列,基于转换所得的字序列计算单位时间内的字个数,根据单位时间内的字个数确定语速值。
S204,获取前向纠错冗余度。
其中,上述前向纠错冗余度是根据包丢失率配置所得。前向纠错是一种差错控制方式,即在传输语音的同时也会传输冗余包,当传输中出现丢包或产生错误时,允许接收端根据冗余包重建所丢失或出错的部分语音。例如,语音在送入传输信道之前,预先对语音对应的语音编码包进行前向纠错编码处理,得到带有语音本身特征的冗余包,然后将语音编码包和冗余包一并传输至接收端,接收端对接收到的语音编码包和冗余包进行解码,从而找出在传输过程中产生错误的语音编码包或丢失的语音编码包并将其纠正。前向纠错冗余度可以指在进行前向纠错编码过程中所形成冗余包个数与语音编码包个数的比值。其中,前向纠错冗余度可以是根据语音编码包的丢失率配置所得。
在一个实施例中,终端在接收到对方发送的语音编码包时,根据所接收到的 语音编码包确定包丢失率配置对应的前向纠错冗余度。当包丢失率较大,则配置的前向纠错冗余度也越大;当包丢失率较小,则配置的前向纠错冗余度也越小。
在一个实施例中,终端也可以根据网络质量预测丢包率,根据预测的丢包率配置对应的前向纠错冗余度。或者,终端也可以根据网络质量配置对应的前向纠错冗余度。
例如,当网络质量较差时,丢包率通常较大,此时可以配置较大的前向纠错冗余度。当网络质量较好时,丢包率通常较小,此时可以配置较小的前向纠错冗余度。
S206,依据语速值调整前向纠错冗余度,得到目标冗余度。
其中,不同的说话人由于语种不同、说话习惯不同,在说话时,对应的语速值是存在差异的,当说话人的语速快时,单位时间采集到的语音中所含信息量比较大,即在一定时间内包含了许多不同的音素,从而即使丢失少量语音编码包也会导致缺失很多音素,而使接收端得到的信息量不完整。同理,当说话人的语速较慢时,单位时间采集到的语音所含信息量较少,即在一定时间内包含的音素较少,大部分是特征相近的音素,此时即使丢失了少量语音包,接收端的用户通过收听到的剩余音素也能获知发送方所表达的内容。
在一个实施例中,当语速值较大时,终端可以将前向纠错冗余度调大;当语速值较小时,终端可以将前向纠错冗余度调小,从而得到目标冗余度。
在一个实施例中,当语速值较大时,终端可以获取对应的第一调整系数,将该第一调整系数与前向纠错冗余度之间的乘积作为目标冗余度。当语速值较小时,终端可以获取对应的第二调整系数,将该第二调整系数与前向纠错冗余度之间的乘积作为目标冗余度。
S208,对语音进行语音编码,得到语音编码包。
在一个实施例中,终端对采集到的语音进行采样,其中,采样频率大于语音信号最高频率的两倍。然后,终端对采样后的语音进行量化,可以是均匀量化或非均匀量化,非均匀量化可以采用μ律压缩算法或A律压缩算法。最后,终端对量化后的语音进行编码,然后对编码后所得的语音编码数据打包成多个语音编码包,编码的方式包括有波形编码(如脉冲编码调制编码)、参数编码和混合 编码。
其中,当采用均匀量化来量化采样后的语音时,无论对幅值大的语音还是幅值小的语音,均采用相同的量化间隔,这样既适应幅度大的语音又保证量化精度。当采用非均匀量化时,对于幅值大的语音采用较大的量化间隔,对于幅值小的语音采用较小的量化间隔,这样就能在保证精度的前提下采用较小的量化位数。
S210,按照目标冗余度对语音编码包进行前向纠错编码,得到冗余包。
在一个实施例中,终端按照目标冗余度来对语音编码包进行前向纠错编码,得到冗余包,该冗余包的数量为目标冗余度与语音编码包个数的乘积。
例如,设语音编码包的个数为k,字长为w比特(bits),w的取值可以是8、16或32。终端按照目标冗余度对k个语音编码包进行前向纠错编码,生成m个冗余包与语音编码包对应。
S212,向接收端发送冗余包和语音编码包。
在一个实施例中,终端利用实时传输协议对语音编码包和冗余包进行封装,得到封装后的语音数据包,然后向接收端发送封装语音编码包和冗余包所得的语音数据包。
其中,该实时传输协议(Real-time Transport Protocol,RTP)可以为语音提供具有实时特征的端对端传送服务,实时传输协议实行有序传送,实时传输协议中允许接收端对发送端的包序列进行重组,同时序列号也能用于决定适当的包位置。该语音数据包为RTP报文格式的语音数据包,由两部分组成:报头和有效载荷,该有效载荷为语音编码包和冗余包。
例如,设k个语音编码包
前向纠错冗余度为r/k,根据目标冗余度和语音编码包计算出冗余包的个数为r;令r个冗余数据包C=(C
1,C
2,...,C
r),那么语音数据包表示为
其中Y
i=D
i(0≤i≤k-1),Y
j=C
j(k≤j≤n-1)。B为n×k维前向纠错生成矩阵,该前向纠错生成矩阵由单位矩阵I和矩阵G组成,则语音数据包可表示为如下所示:
作为一个示例,如图4a所示,终端对采集的语音进行编码,得到语音编码 包p1-p8,当调整前向纠错冗余度得到目标冗余度时,按照目标冗余度的要求对语音编码包p1-p8进行前向纠错编码,得到冗余包r1、r2和r3,然后通过RTP封装得到包含语音编码包p1-p8和冗余包r1-r3的语音数据包,然后将该语音数据包通过网络向接收端进行发送。
在一个实施例中,终端也可以接收来自接收端发送的语音数据包,该语音数据包包含由语音编码包和冗余包,若解析该语音数据包发现存在丢包现象时,则可以根据剩余的语音编码包和冗余包对所丢失的语音编码包进行重建,从而得到完整的语音编码包,对该语音编码包进行解码,得到对应的语音。
若矩阵B’为非奇异矩阵,则通过如下逆变换得到原始的语音编码包,完成恢复,变换式如下:
作为一个示例,该语音处理方法可应用于网络通信的应用场景,可参考图4b,具体如下:用户a与远端的用户b通过社交应用进行语音通信,用户a的终端A在采集到用户a发出的语音时,对用户a发出的语音进行语速检测,从而得到语速值s;当语速值s大于语速下限值S1、且小于语速上限值S2时,依据该语速值s对原始的前向纠错冗余度进行调整,得到目标冗余度,如将前向纠错冗余度进行调小得到目标冗余度。当对获取的语音进行编码得到语音编码包时,按照目标冗余度对该语音编码包进行前向纠错编码,得到冗余包,然后向用户b的终端B发送冗余包和语音编码包。
上述实施例中,通过对语音进行语速检测,利用检测所得的语速值对前向纠错冗余度进行调整,从而可以使用调整后的目标冗余度对语音编码包进行前向纠错编码,从而得到冗余包,当语速较慢,语音数据包所包含的语音内容较少,而当语速较快,语音数据包所包含的语音内容较多,按照语速值来动态调整前向 纠错冗余度,可以确保发生丢失的语音数据包可以有效地被恢复过来,从而实现对语音数据包的有效纠错,而且也能避免额外消耗大量带宽。
在一个实施例中,如图5所示,S202具体可以包括:
S502,采集语音。
其中,该语音可以是用户在进行语音或视频通话过程中的前期,通过麦克风采集的语音;或者,可以是用户在进行语音或视频直播过程中的前期,通过麦克风采集的语音。
在一个实施例中,当通过即时通信应用进行语音或视频通话时,终端通过麦克风采集用户发出的语音。其中,该即时通信应用可以包括社交应用和其它用于即时通信的应用。
在一个实施例中,当通过直播软件进行语音或视频直播时,终端通过麦克风采集用户发出的语音。
在一个实施例中,终端采用窗函数对采集的语音进行分帧,从而得到分帧后的语音。具体地,可以采用交叠分段的方式对所采集的语音进行分帧,从而可以使帧与帧之间平滑过渡。其中,前一帧和后一帧的交叠部分称为帧移,帧移的帧长与语音帧的帧长之间的比值通常为0至0.5范围内。
在一个实施例中,终端对各语音帧进行检测,检测出各语音帧是否包含有语音内容,从而终端可以对包含有语音内容的语音帧进行语速检测。
在一个实施例中,检测出各语音帧是否包含有语音内容的方式,具体可以包括:终端分别对各语音帧进行脉冲编码调制,得到PCM语音数据,将该PCM语音数据输入vad语音检测函数,然后输出为语音标识。例如,若输出的语音标识为0,则不包含有语音内容;若输出的语音标识为1,则包含有语音内容。
S504,从语音中识别出音素序列。
其中,音素分为元音与辅音两大类,是根据语音的自然属性划分出来的最小语音单位,依据音节里的发音动作来分析,一个动作构成一个音素。如汉语音节a只有一个音素,ai有两个音素,dai有三个音素等。
在一个实施例中,S504具体可以包括:对语音进行脉冲编码调制,得到语音编码数据;从语音编码数据中识别出包含有语音内容的语音段;从语音编码数 据的语音段中识别出音素序列。
在一个实施例中,对语音进行脉冲编码调制,得到语音编码数据的步骤,具体可以包括:终端对采集到的语音进行采样,其中,采样频率大于语音信号最高频率的两倍。然后,终端对采样后的语音进行量化,可以是均匀量化或非均匀量化,非均匀量化可以采用μ律压缩算法或A律压缩算法。最后,终端对量化后的语音进行编码,然后对编码后所得的语音编码数据打包成多个语音编码包,编码的方式包括有波形编码、参数编码和混合编码。
在另一个实施例中,S504具体可以包括:终端从语音中提取语音特征;对语音特征进行解码,得到解码后语音特征;从解码后语音特征中识别出音素序列。
其中,语音特征可以是关于语音的对数功率谱或梅尔频率倒谱系数。
在一个实施例中,终端对所采集的语音进行傅里叶变换,将时域下的语音转换为频域下的频谱。终端获取频谱对应的幅值,根据该幅值利用功率密度函数计算出功率谱。
例如,假设语音的信号表达式为f(t),对f(t)进行傅里叶变换获得频谱,令频谱的表达式为F
T(w),将频谱对应的幅值代入以下功率谱密度函数,即可获得关于语音的功率谱。
具体地,终端根据自适应的声学模型,对提取出的语音特征进行维特比解码,从解码后地语音特征中识别出音素序列。此外,终端还可以确定音素序列中各音素的起始时间和终止时间。
S506,根据音素序列中音素的跳变频次确定语速值。
在一个实施例中,S506具体可以包括:在音素序列中检测单位时间内音素的基音周期或基音频率的跳变次数;根据单位时间内的跳变次数确定语速值。
在一个实施例中,终端判定基音周期或基音频率的跳变次数是否大于预设基频跳变门限,若是,则确定语音的音调发生了明显变化;若否,则确定语音的音调未发生明显变化。其中,基音周期与基音频率互为倒数,可以相互转换。
在一个实施例中,终端分别对各语音帧进行脉冲编码调制,得到PCM语音 数据,将该PCM语音数据输入基频估计函数,可以得到各语音帧对应的基音频率。其中,基频估计函数可以基于时域自相关函数。
上述实施例中,通过从采集的语音中识别出音素序列,根据音素序列中音素的跳变频次确定语速值,从而可以按照语速值来动态调整前向纠错冗余度,可以确保发生丢失的语音数据包可以有效地被恢复过来,从而实现对语音数据包的有效纠错,而且也能避免额外消耗大量带宽。
在一个实施例中,如图6所示,S206具体可以包括:
S602,当语速值大于语速下限值、且小于语速上限值时,基于语速值计算调整参数;按照调整参数对前向纠错冗余度进行调整,得到目标冗余度。
在一个实施例中,当语速值大于语速下限值、且小于语速上限值时,若语速值越大,终端则将前向纠错冗余度调大;若语速值越小,终端则将前向纠错冗余度调小。
在一个实施例中,终端将语速值输入用于调整前向纠错冗余度的计算式,在计算出调整参数时,同时也对前向纠错冗余度进行了调整,得到目标冗余度。
例如,调整前向纠错冗余度的计算式可以是
V
1≤v≤V
2,其中,r'为调整后的目标冗余度,r
0为前向纠错冗余度,
为调整参数,其中的c为常数,v为语速值,V
1和V
2分别为语速下限值和语速上限值。
S604,将目标冗余度分别与冗余度上限值、冗余度下限值进行比较。
例如,参考如下函数式
V
1≤v≤V
2,将目标冗余度
分别与冗余度上限值R
max、冗余度下限值R
min进行比较,根据比较结果确定最终的目标冗余度。当目标冗余度小于冗余度上限值、且大于冗余度下限值时,则将目标冗余度
作为最终的目标冗余度,执行S606。当目标冗余度小于冗余度下限值时,则将冗余度下限值作为最终的目标冗余度,执行S608。当目标冗余度大于冗余度上限值时,则将照冗余度上限值作为最终的目标冗余度,执行S610。
S606,当目标冗余度小于冗余度上限值、且大于冗余度下限值时,则按照目 标冗余度对语音编码包进行前向纠错编码,得到冗余包。
在一个实施例中,终端按照目标冗余度来对语音编码包进行前向纠错编码,得到冗余包,该冗余包的数量为目标冗余度与语音编码包个数的乘积。
例如,设语音编码包的个数为k,字长为w比特(bits),w的取值可以是8、16或32。终端按照目标冗余度对k个语音编码包进行前向纠错编码,生成m个冗余包与语音编码包对应。
S608,当目标冗余度小于冗余度下限值时,则按照冗余度下限值对语音编码包进行前向纠错编码,得到冗余包。
在一个实施例中,当目标冗余度小于冗余度下限值时,终端按照冗余度下限值来对语音编码包进行前向纠错编码,得到冗余包,该冗余包的数量为冗余度下限值与语音编码包个数的乘积。
S610,当目标冗余度大于冗余度上限值时,则按照冗余度上限值对语音编码包进行前向纠错编码,得到冗余包。
在一个实施例中,当目标冗余度大于冗余度上限值时,终端按照冗余度上限值来对语音编码包进行前向纠错编码,得到冗余包,该冗余包的数量为冗余度上限值与语音编码包个数的乘积。
参考如下函数式
若语速值小于语速上限值,从前向纠错冗余度和冗余度下限值中选取最大值,按照最大值对语音编码包进行前向纠错编码,得到冗余包;若语速值大于语速上限值、且小于语速上限值,执行按照目标冗余度对语音编码包进行前向纠错编码,得到冗余包的步骤;若语速值大于语速上限值,从前向纠错冗余度和冗余度上限值中选取最小值,按照最小值对语音编码包进行前向纠错编码,得到冗余包。
上述实施例中,根据语速值对前向纠错冗余度进行调整,得到调整后的目标冗余度,从而可以按照目标冗余度对语音编码包进行前向纠错编码得到冗余包,将冗余包和语音编码包封装为语音数据包向接收端发送,可以确保传输过程中 发生丢失的语音数据包可以有效地被恢复过来,从而实现对语音数据包的有效纠错,而且也能避免额外消耗大量带宽。
作为一个示例,本实施例首先对用户的语音做语速检测,得到平均语速值v,假设基于传统前向纠错方案所得到的前向纠错冗余度为r
0,经过本实施例调整后的目标冗余度为r′,计算语音的平均语速值、调整前向纠错冗余度的方式,以及通过调整后所得的目标冗余度进行前向纠错编码等内容具体如下所述:
1)计算语音平均语速
在实际通话过程中,由于说话内容是不受限的,本实施例中采用基于无参考的检测方法来测量说话人语速。无参考的语速检测计算是基于vad和基音周期变化速度的统计来实现的,由于同一个音素其前后基音周期(或者基音频率)是连续的,即跳变较小,而不同音素其前后帧的基音周期(或者基音频率)是跳变明显的,通过分析单位时间内基音周期(或基频)突变次数以及语音帧跳变次数来等价描述语速v。其伪代码如下:
//initial
Changecnt=0;//Changecnt代表在单位时间内基频跳变次数以及从非语音帧到语音帧的跳变次数之和
Totcnt=0;//Totcnt代表当前检测帧数
vad_cur=0;//vad_cur代表当前帧的语音标识,其值为0代表非语音帧,其值为1代表语音帧
vad_pre=0;//vad_pre代表前一帧的语音标识,其值为0代表非语音帧,其值为1代表语音帧
pitchfreq_cur=0;//pitchfreq_cur代表当前帧的基音频率
pitchfreq_pre=0;//pitchfreq_pre代表前一帧的基音频率
pitchfreq_cur=PitchFreqEst(pcmdata);//PitchFreqEst()为基频估计函数,输入为PCM语音数据,输出为估计得到的基音频率,基频估计可以基于时域自相关,或者基于倒谱法的方法来求取
vad_cur=VadDet(pcmdata);//VadDet()为vad语音检测函数,输入为PCM语音数据,输出为语音标识,输出为0则为不包含语音内容的非语音帧,输出为 1则为包含语音内容的语音帧
If Totcnt<=T Then//T代表语速检测周期
Totcnt++;
If vad_cur=1Then
if abs(pitchfreq_pre-pitchfreq_cur)>threshold1Then//threshold1代表设定的基频跳变门限,如果变化值超过该门限说明音调发生明显变化
Changecnt++;
End
End
pitchfreq_pre=pitchfreq_cur;
If vad_cur=1and vad_pre=0Then
Changecnt++;
End
Else
v=Changecnt;
Totcnt=0;
Changecnt=0;
End
通过上述过程,可以得到拼接语速值v,用于后续的FEC冗余度计算。
2)FEC冗余度计算
上述得到的平均语速值v,最终的目标冗余度r′通过如下计算公式得到:
上述公式预先设定以下常数值:语速上限值V
2和语速下限值V
1,FEC冗余度下限值R
min和冗余度上限值R
max,以及c为常数,通过上述公式可以计算出目标冗余度r′。
3)获取用户发出的语音,并对语音进行语音编码,得到多个语音编码包; 然后按照目标冗余度r′对语音编码包进行前向纠错编码,得到对应的冗余包;然后通过RTP方式对冗余包和语音编码包进行打包,得到RTP语音数据包,然后将该RTP语音数据包通过网络发送给接收端,如图7所示。
如图7所示,接收端在接收端RTP语音数据包之后,一方面统计丢包率,另一方面进行前向纠错解码,将丢失的语音编码包恢复出来,然后将所有的语音编码包进行解码,从而可以得到用户的原始语音。
基于说话人的语速检测结果来调整FEC冗余度,确保更有效的保护传输的语音内容,提升端到端通话语音质量,以实现高可靠性的VoIP(Voice over Internet Protocol,基于IP的语音传输)、广播以及语音和视频直播等业务的实时语音数据传输。
图2、5、6为一个实施例中语音处理方法的流程示意图。应该理解的是,虽然图2、5、6的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2、5、6中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
如图8所示,本发明实施例中提供了一种语音处理装置,该装置包括:检测模块802、获取模块804、调整模块806、第一编码模块808、第二编码模块810和发送模块812;其中:
检测模块802,用于对获取的语音进行语速检测,得到语速值;
获取模块804,用于获取前向纠错冗余度;
调整模块806,用于依据语速值调整前向纠错冗余度,得到目标冗余度;
第一编码模块808,用于对语音进行语音编码,得到语音编码包;
第二编码模块810,用于按照目标冗余度对语音编码包进行前向纠错编码, 得到冗余包;
发送模块812,用于向接收端发送冗余包和语音编码包。
在一个实施例中,如图9所示,该装置还包括:封装模块814;其中:
封装模块814,用于利用实时传输协议对语音编码包和冗余包进行封装,得到封装后的语音数据包;
发送模块812,还用于向接收端发送封装语音编码包和冗余包所得的语音数据包。
上述实施例中,通过对语音进行语速检测,利用检测所得的语速值对前向纠错冗余度进行调整,从而可以使用调整后的目标冗余度对语音编码包进行前向纠错编码,从而得到冗余包,当语速较慢,语音数据包所包含的语音内容较少,而当语速较快,语音数据包所包含的语音内容较多,按照语速值来动态调整前向纠错冗余度,可以确保发生丢失的语音数据包可以有效地被恢复过来,从而实现对语音数据包的有效纠错,而且也能避免额外消耗大量带宽。
在一个实施例中,检测模块802,还用于:采集语音;从语音中识别出音素序列;根据音素序列中音素的跳变频次确定语速值。
在一个实施例中,检测模块802,还用于:对语音进行脉冲编码调制,得到语音编码数据;从语音编码数据中识别出语音段;从语音编码数据的语音段中识别出音素序列。
在一个实施例中,检测模块802,还用于:从语音中提取语音特征;对语音特征进行解码,得到解码后语音特征;从解码后语音特征中识别出音素序列。
在一个实施例中,检测模块802,还用于:在音素序列中检测单位时间内音素的基音周期或基音频率的跳变次数;根据单位时间内的跳变次数确定语速值。
上述实施例中,通过从采集的语音中识别出音素序列,根据音素序列中音素的跳变频次确定语速值,从而可以按照语速值来动态调整前向纠错冗余度,可以确保发生丢失的语音数据包可以有效地被恢复过来,从而实现对语音数据包的有效纠错,而且也能避免额外消耗大量带宽。
在一个实施例中,调整模块806,还用于:当语速值大于语速下限值、且小于语速上限值时,基于语速值计算调整参数;按照调整参数对前向纠错冗余度进 行调整,得到目标冗余度。
在一个实施例中,如图9所示,该装置还包括:比较模块816;其中:
比较模块816,用于将目标冗余度分别与冗余度上限值、冗余度下限值进行比较;当目标冗余度小于冗余度上限值、且大于冗余度下限值时,则通过第二编码模块810按照目标冗余度对语音编码包进行前向纠错编码,得到冗余包。
在一个实施例中,第二编码模块810,还用于:当目标冗余度小于冗余度下限值时,则按照冗余度下限值对语音编码包进行前向纠错编码,得到冗余包;当目标冗余度大于冗余度上限值时,则按照冗余度上限值对语音编码包进行前向纠错编码,得到冗余包。
在一个实施例中,第二编码模块810,还用于:
若语速值小于语速上限值,从前向纠错冗余度和冗余度下限值中选取最大值,按照最大值对语音编码包进行前向纠错编码,得到冗余包;
若语速值大于语速下限值、且小于语速上限值,执行按照目标冗余度对语音编码包进行前向纠错编码,得到冗余包的步骤;
若语速值大于语速上限值,从前向纠错冗余度和冗余度上限值中选取最小值,按照最小值对语音编码包进行前向纠错编码,得到冗余包。
上述实施例中,根据语速值对前向纠错冗余度进行调整,得到调整后的目标冗余度,从而可以按照目标冗余度对语音编码包进行前向纠错编码得到冗余包,将冗余包和语音编码包封装为语音数据包向接收端发送,可以确保传输过程中发生丢失的语音数据包可以有效地被恢复过来,从而实现对语音数据包的有效纠错,而且也能避免额外消耗大量带宽。
图10示出了一个实施例中计算机设备的内部结构图。该计算机设备具体可以是图1中的终端110。如图10所示,该计算机设备包括该计算机设备包括通过***总线连接的处理器、存储器、网络接口、输入装置和显示屏。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作***,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现语音处理方法。该内存储器中也可储存有计算机程序,该计算机程序被 处理器执行时,可使得处理器执行语音处理方法。计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图10中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,本申请提供的语音处理装置可以实现为一种计算机程序的形式,计算机程序可在如图10所示的计算机设备上运行。计算机设备的存储器中可存储组成该语音处理装置的各个程序模块,比如,图8所示的检测模块802、获取模块804、调整模块806、第一编码模块808、第二编码模块810和发送模块812。各个程序模块构成的计算机程序使得处理器执行本说明书中描述的本申请各个实施例的语音处理方法中的步骤。
例如,图10所示的计算机设备可以通过如图8所示的语音处理装置中的检测模块802执行S202。计算机设备可通过获取模块804执行S204。计算机设备可通过调整模块806执行S206。第一编码模块808执行S208。计算机设备可通过第二编码模块810执行S210。计算机设备可通过发送模块812执行S212。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行以下步骤:对获取的语音进行语速检测,得到语速值;获取前向纠错冗余度;依据语速值调整前向纠错冗余度,得到目标冗余度;对语音进行语音编码,得到语音编码包;按照目标冗余度对语音编码包进行前向纠错编码,得到冗余包;向接收端发送冗余包和语音编码包。
在一个实施例中,计算机程序被处理器执行对获取的语音进行语速检测,得到语速值的步骤时,使得处理器具体执行以下步骤:采集语音;从语音中识别出 音素序列;根据音素序列中音素的跳变频次确定语速值。
在一个实施例中,计算机程序被处理器执行从语音中识别出音素序列的步骤时,使得处理器具体执行以下步骤:对语音进行脉冲编码调制,得到语音编码数据;从语音编码数据中识别出包含有语音内容的语音段;从语音编码数据的语音段中识别出音素序列。
在一个实施例中,计算机程序被处理器执行从语音中识别出音素序列的步骤时,使得处理器具体执行以下步骤:从语音中提取语音特征;对语音特征进行解码,得到解码后语音特征;从解码后语音特征中识别出音素序列。
在一个实施例中,计算机程序被处理器执行根据音素序列中音素的跳变频次确定语速值的步骤时,使得处理器具体执行以下步骤:在音素序列中检测单位时间内音素的基音周期或基音频率的跳变次数;根据单位时间内的跳变次数确定语速值。
在一个实施例中,计算机程序被处理器执行依据语速值调整前向纠错冗余度,得到目标冗余度的步骤时,使得处理器具体执行以下步骤:当语速值大于语速上限值、且小于语速上限值时,基于语速值计算调整参数;按照调整参数对前向纠错冗余度进行调整,得到目标冗余度。
在一个实施例中,计算机程序被处理器执行时,使得处理器还执行以下步骤:将目标冗余度分别与冗余度上限值、冗余度下限值进行比较;当目标冗余度小于冗余度上限值、且大于冗余度下限值时,则执行按照目标冗余度对语音编码包进行前向纠错编码,得到冗余包的步骤。
在一个实施例中,计算机程序被处理器执行时,使得处理器还执行以下步骤:当目标冗余度小于冗余度下限值时,则按照冗余度下限值对语音编码包进行前向纠错编码,得到冗余包;
当目标冗余度大于冗余度上限值时,则按照冗余度上限值对语音编码包进行前向纠错编码,得到冗余包。
在一个实施例中,计算机程序被处理器执行时,使得处理器还执行以下步骤:
若语速值小于语速上限值,从前向纠错冗余度和冗余度下限值中选取最大值,按照最大值对语音编码包进行前向纠错编码,得到冗余包;
若语速值大于语速上限值、且小于语速上限值,执行按照目标冗余度对语音编码包进行前向纠错编码,得到冗余包的步骤;
若语速值大于语速上限值,从前向纠错冗余度和冗余度上限值中选取最小值,按照最小值对语音编码包进行前向纠错编码,得到冗余包。
在一个实施例中,计算机程序被处理器执行时,使得处理器还执行以下步骤:利用实时传输协议对语音编码包和冗余包进行封装,得到封装后的语音数据包;
计算机程序被处理器执行向接收端发送冗余包和语音编码包的步骤时,使得处理器具体执行以下步骤:
向接收端发送封装语音编码包和冗余包所得的语音数据包。
在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时,使得处理器执行以下步骤:对获取的语音进行语速检测,得到语速值;获取前向纠错冗余度;依据语速值调整前向纠错冗余度,得到目标冗余度;对语音进行语音编码,得到语音编码包;按照目标冗余度对语音编码包进行前向纠错编码,得到冗余包;向接收端发送冗余包和语音编码包。
在一个实施例中,计算机程序被处理器执行对获取的语音进行语速检测,得到语速值的步骤时,使得处理器具体执行以下步骤:采集语音;从语音中识别出音素序列;根据音素序列中音素的跳变频次确定语速值。
在一个实施例中,计算机程序被处理器执行从语音中识别出音素序列的步骤时,使得处理器具体执行以下步骤:对语音进行脉冲编码调制,得到语音编码数据;从语音编码数据中识别出包含有语音内容的语音段;从语音编码数据的语音段中识别出音素序列。
在一个实施例中,计算机程序被处理器执行从语音中识别出音素序列的步骤时,使得处理器具体执行以下步骤:从语音中提取语音特征;对语音特征进行解码,得到解码后语音特征;从解码后语音特征中识别出音素序列。
在一个实施例中,计算机程序被处理器执行根据音素序列中音素的跳变频次确定语速值的步骤时,使得处理器具体执行以下步骤:在音素序列中检测单位时间内音素的基音周期或基音频率的跳变次数;根据单位时间内的跳变次数确 定语速值。
在一个实施例中,计算机程序被处理器执行依据语速值调整前向纠错冗余度,得到目标冗余度的步骤时,使得处理器具体执行以下步骤:当语速值大于语速上限值、且小于语速上限值时,基于语速值计算调整参数;按照调整参数对前向纠错冗余度进行调整,得到目标冗余度。
在一个实施例中,计算机程序被处理器执行时,使得处理器还执行以下步骤:将目标冗余度分别与冗余度上限值、冗余度下限值进行比较;当目标冗余度小于冗余度上限值、且大于冗余度下限值时,则执行按照目标冗余度对语音编码包进行前向纠错编码,得到冗余包的步骤。
在一个实施例中,计算机程序被处理器执行时,使得处理器还执行以下步骤:当目标冗余度小于冗余度下限值时,则按照冗余度下限值对语音编码包进行前向纠错编码,得到冗余包;
当目标冗余度大于冗余度上限值时,则按照冗余度上限值对语音编码包进行前向纠错编码,得到冗余包。
在一个实施例中,计算机程序被处理器执行时,使得处理器还执行以下步骤:
若语速值小于语速上限值,从前向纠错冗余度和冗余度下限值中选取最大值,按照最大值对语音编码包进行前向纠错编码,得到冗余包;
若语速值大于语速上限值、且小于语速上限值,执行按照目标冗余度对语音编码包进行前向纠错编码,得到冗余包的步骤;
若语速值大于语速上限值,从前向纠错冗余度和冗余度上限值中选取最小值,按照最小值对语音编码包进行前向纠错编码,得到冗余包。
在一个实施例中,计算机程序被处理器执行时,使得处理器还执行以下步骤:利用实时传输协议对语音编码包和冗余包进行封装,得到封装后的语音数据包;
计算机程序被处理器执行向接收端发送冗余包和语音编码包的步骤时,使得处理器具体执行以下步骤:
向接收端发送封装语音编码包和冗余包所得的语音数据包。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述程序可存储于一非易失性 计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、及存储器总线动态RAM等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (20)
- 一种语音处理方法,由终端执行,其特征在于,所述方法包括:对获取的语音进行语速检测,得到语速值;获取前向纠错冗余度;依据所述语速值调整所述前向纠错冗余度,得到目标冗余度;对所述语音进行语音编码,得到语音编码包;按照所述目标冗余度对所述语音编码包进行前向纠错编码,得到冗余包;向接收端发送所述冗余包和所述语音编码包。
- 根据权利要求1所述的方法,其特征在于,所述对获取的语音进行语速检测,得到语速值包括:从获取的语音中识别出音素序列;根据所述音素序列中音素的跳变频次确定语速值。
- 根据权利要求2所述的方法,其特征在于,所述从获取的语音中识别出音素序列包括:对获取的语音进行脉冲编码调制,得到语音编码数据;从所述语音编码数据中识别出包含有语音内容的语音段;从所述语音编码数据的语音段中识别出音素序列。
- 根据权利要求2所述的方法,其特征在于,所述从获取的语音中识别出音素序列包括:从获取的语音中提取语音特征;对所述语音特征进行解码,得到解码后语音特征;从所述解码后语音特征中识别出音素序列。
- 根据权利要求2所述的方法,其特征在于,所述根据所述音素序列中音素的跳变频次确定语速值包括:在所述音素序列中检测单位时间内音素的基音周期或基音频率的跳变次数;根据所述单位时间内的跳变次数确定语速值。
- 根据权利要求1至5任一项所述的方法,其特征在于,所述依据所述语 速值调整所述前向纠错冗余度,得到目标冗余度包括:当所述语速值大于语速下限值、且小于语速上限值时,基于所述语速值计算调整参数;按照所述调整参数对所述前向纠错冗余度进行调整,得到目标冗余度。
- 根据权利要求6所述的方法,其特征在于,所述方法还包括:将所述目标冗余度分别与冗余度上限值、冗余度下限值进行比较;当所述目标冗余度小于所述冗余度上限值、且大于所述冗余度下限值时,则执行所述按照所述目标冗余度对所述语音编码包进行前向纠错编码,得到冗余包的步骤。
- 根据权利要求7所述的方法,其特征在于,所述方法还包括:当所述目标冗余度小于所述冗余度下限值时,则按照所述冗余度下限值对所述语音编码包进行前向纠错编码,得到冗余包;当所述目标冗余度大于所述冗余度上限值时,则按照所述冗余度上限值对所述语音编码包进行前向纠错编码,得到冗余包。
- 根据权利要求1至5任一项所述的方法,其特征在于,所述方法还包括:若所述语速值小于语速上限值,从所述前向纠错冗余度和冗余度下限值中选取最大值,按照所述最大值对所述语音编码包进行前向纠错编码,得到冗余包;若所述语速值大于语速下限值、且小于语速上限值,执行所述按照所述目标冗余度对所述语音编码包进行前向纠错编码,得到冗余包的步骤;若所述语速值大于语速上限值,从所述前向纠错冗余度和冗余度上限值中选取最小值,按照所述最小值对所述语音编码包进行前向纠错编码,得到冗余包。
- 根据权利要求1至8任一项所述的方法,其特征在于,所述向接收端发送所述冗余包和所述语音编码包之前,所述方法还包括:利用实时传输协议对所述语音编码包和所述冗余包进行封装,得到封装后的语音数据包;所述向接收端发送所述冗余包和所述语音编码包包括:向接收端发送封装所述语音编码包和所述冗余包所得的语音数据包。
- 一种语音处理装置,其特征在于,所述装置包括:检测模块,用于对获取的语音进行语速检测,得到语速值;获取模块,用于获取前向纠错冗余度;调整模块,用于依据所述语速值调整所述前向纠错冗余度,得到目标冗余度;第一编码模块,用于对所述语音进行语音编码,得到语音编码包;第二编码模块,用于按照所述目标冗余度对所述语音编码包进行前向纠错编码,得到冗余包;发送模块,用于向接收端发送所述冗余包和所述语音编码包。
- 根据权利要求11所述的装置,其特征在于,所述检测模块,还用于:从获取的语音中识别出音素序列;根据所述音素序列中音素的跳变频次确定语速值。
- 根据权利要求12所述的装置,其特征在于,所述检测模块,还用于:对获取的语音进行脉冲编码调制,得到语音编码数据;从所述语音编码数据中识别出语音段;从所述语音编码数据的语音段中识别出音素序列。
- 根据权利要求12所述的装置,其特征在于,所述检测模块,还用于:从获取的语音中提取语音特征;对所述语音特征进行解码,得到解码后语音特征;从所述解码后语音特征中识别出音素序列。
- 根据权利要求12所述的装置,其特征在于,所述检测模块,还用于:在所述音素序列中检测单位时间内音素的基音周期或基音频率的跳变次数;根据所述单位时间内的跳变次数确定语速值。
- 根据权利要求11至15任一项所述的装置,其特征在于,所述调整模块,还用于:当所述语速值大于语速上限值、且小于语速上限值时,基于所述语速值计算调整参数;按照所述调整参数对所述前向纠错冗余度进行调整,得到目标冗余度。
- 根据权利要求16所述的装置,其特征在于,所述装置还包括:将所述目标冗余度分别与冗余度上限值、冗余度下限值进行比较;当所述目标冗余度小于所述冗余度上限值、且大于所述冗余度下限值时,则执行所述按照所述目标冗余度对所述语音编码包进行前向纠错编码,得到冗余包的步骤。
- 根据权利要求17所述的装置,其特征在于,所述装置还包括:比较模块;其中:所述比较模块,用于当所述目标冗余度小于所述冗余度下限值时,则按照所述冗余度下限值对所述语音编码包进行前向纠错编码,得到冗余包;当所述目标冗余度大于所述冗余度上限值时,则按照所述冗余度上限值对所述语音编码包进行前向纠错编码,得到冗余包。
- 一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如权利要求1至10中任一项所述方法的步骤。
- 一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如权利要求1至10中任一项所述方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP20892490.2A EP4002731A4 (en) | 2019-11-27 | 2020-09-21 | METHOD AND APPARATUS FOR VOICE PROCESSING, COMPUTER READABLE MATERIAL AND COMPUTER DEVICE |
US17/520,733 US11869516B2 (en) | 2019-11-27 | 2021-11-08 | Voice processing method and apparatus, computer- readable storage medium, and computer device |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911179869.6A CN110838894B (zh) | 2019-11-27 | 2019-11-27 | 语音处理方法、装置、计算机可读存储介质和计算机设备 |
CN201911179869.6 | 2019-11-27 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US17/520,733 Continuation US11869516B2 (en) | 2019-11-27 | 2021-11-08 | Voice processing method and apparatus, computer- readable storage medium, and computer device |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2021103778A1 true WO2021103778A1 (zh) | 2021-06-03 |
Family
ID=69577414
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2020/116511 WO2021103778A1 (zh) | 2019-11-27 | 2020-09-21 | 语音处理方法、装置、计算机可读存储介质和计算机设备 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11869516B2 (zh) |
EP (1) | EP4002731A4 (zh) |
CN (1) | CN110838894B (zh) |
WO (1) | WO2021103778A1 (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110838894B (zh) | 2019-11-27 | 2023-09-26 | 腾讯科技(深圳)有限公司 | 语音处理方法、装置、计算机可读存储介质和计算机设备 |
CN111245734B (zh) * | 2020-01-08 | 2022-03-08 | 腾讯科技(深圳)有限公司 | 音频数据传输方法、装置、处理设备及存储介质 |
CN111464458B (zh) * | 2020-04-03 | 2024-01-02 | 广州市百果园信息技术有限公司 | 抗丢包方法、装置、设备及存储介质 |
CN111371957B (zh) * | 2020-05-26 | 2020-08-25 | 腾讯科技(深圳)有限公司 | 一种冗余度控制方法、装置、电子设备和存储介质 |
CN113936669A (zh) * | 2020-06-28 | 2022-01-14 | 腾讯科技(深圳)有限公司 | 数据传输方法、***、装置、计算机可读存储介质及设备 |
CN112767955B (zh) * | 2020-07-22 | 2024-01-23 | 腾讯科技(深圳)有限公司 | 音频编码方法及装置、存储介质、电子设备 |
CN113192520B (zh) * | 2021-07-01 | 2021-09-24 | 腾讯科技(深圳)有限公司 | 一种音频信息处理方法、装置、电子设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101072083A (zh) * | 2007-06-04 | 2007-11-14 | 深圳市融合视讯科技有限公司 | 一种优化网络数据传输冗余纠错率的方法 |
US20170103761A1 (en) * | 2015-10-10 | 2017-04-13 | Dolby Laboratories Licensing Corporation | Adaptive Forward Error Correction Redundant Payload Generation |
CN108183774A (zh) * | 2018-03-26 | 2018-06-19 | 浙江齐聚科技有限公司 | 一种流媒体传输的前向纠错方法和*** |
CN108684050A (zh) * | 2018-04-12 | 2018-10-19 | 京信通信***(中国)有限公司 | 前向纠错功能的调节方法、装置、计算机设备和存储介质 |
CN110838894A (zh) * | 2019-11-27 | 2020-02-25 | 腾讯科技(深圳)有限公司 | 语音处理方法、装置、计算机可读存储介质和计算机设备 |
CN111245734A (zh) * | 2020-01-08 | 2020-06-05 | 腾讯科技(深圳)有限公司 | 音频数据传输方法、装置、处理设备及存储介质 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4066964A (en) * | 1967-01-06 | 1978-01-03 | Rockwell International Corporation | Communication system |
US5907822A (en) * | 1997-04-04 | 1999-05-25 | Lincom Corporation | Loss tolerant speech decoder for telecommunications |
US6671292B1 (en) * | 1999-06-25 | 2003-12-30 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and system for adaptive voice buffering |
CN101030832B (zh) * | 2006-03-03 | 2011-08-10 | 华为技术有限公司 | 实现实时传输协议报文冗余机制的方法及其*** |
US20080002711A1 (en) * | 2006-06-30 | 2008-01-03 | Bugenhagen Michael K | System and method for access state based service options |
US8352252B2 (en) * | 2009-06-04 | 2013-01-08 | Qualcomm Incorporated | Systems and methods for preventing the loss of information within a speech frame |
US9026434B2 (en) * | 2011-04-11 | 2015-05-05 | Samsung Electronic Co., Ltd. | Frame erasure concealment for a multi rate speech and audio codec |
JP2014007664A (ja) * | 2012-06-26 | 2014-01-16 | Panasonic Corp | 送信装置、通信システム、及び送信方法 |
GB201316575D0 (en) * | 2013-09-18 | 2013-10-30 | Hellosoft Inc | Voice data transmission with adaptive redundancy |
CN103617797A (zh) * | 2013-12-09 | 2014-03-05 | 腾讯科技(深圳)有限公司 | 一种语音处理方法,及装置 |
CN104167210A (zh) | 2014-08-21 | 2014-11-26 | 华侨大学 | 一种轻量级的多方会议混音方法和装置 |
CN105788601B (zh) * | 2014-12-25 | 2019-08-30 | 联芯科技有限公司 | VoLTE的抖动隐藏方法和装置 |
US20170084280A1 (en) * | 2015-09-22 | 2017-03-23 | Microsoft Technology Licensing, Llc | Speech Encoding |
CN106571893B (zh) * | 2016-11-10 | 2022-05-24 | 深圳市潮流网络技术有限公司 | 一种语音数据的编解码方法 |
CN106656422B (zh) * | 2017-01-03 | 2019-12-24 | 珠海全志科技股份有限公司 | 一种动态调整fec冗余度的流媒体传输方法 |
US10475456B1 (en) * | 2018-06-04 | 2019-11-12 | Qualcomm Incorporated | Smart coding mode switching in audio rate adaptation |
US10937443B2 (en) * | 2018-09-04 | 2021-03-02 | Babblelabs Llc | Data driven radio enhancement |
WO2020218634A1 (ko) * | 2019-04-23 | 2020-10-29 | 엘지전자 주식회사 | 응답 기기 결정 방법 및 장치 |
-
2019
- 2019-11-27 CN CN201911179869.6A patent/CN110838894B/zh active Active
-
2020
- 2020-09-21 WO PCT/CN2020/116511 patent/WO2021103778A1/zh unknown
- 2020-09-21 EP EP20892490.2A patent/EP4002731A4/en active Pending
-
2021
- 2021-11-08 US US17/520,733 patent/US11869516B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101072083A (zh) * | 2007-06-04 | 2007-11-14 | 深圳市融合视讯科技有限公司 | 一种优化网络数据传输冗余纠错率的方法 |
US20170103761A1 (en) * | 2015-10-10 | 2017-04-13 | Dolby Laboratories Licensing Corporation | Adaptive Forward Error Correction Redundant Payload Generation |
CN108183774A (zh) * | 2018-03-26 | 2018-06-19 | 浙江齐聚科技有限公司 | 一种流媒体传输的前向纠错方法和*** |
CN108684050A (zh) * | 2018-04-12 | 2018-10-19 | 京信通信***(中国)有限公司 | 前向纠错功能的调节方法、装置、计算机设备和存储介质 |
CN110838894A (zh) * | 2019-11-27 | 2020-02-25 | 腾讯科技(深圳)有限公司 | 语音处理方法、装置、计算机可读存储介质和计算机设备 |
CN111245734A (zh) * | 2020-01-08 | 2020-06-05 | 腾讯科技(深圳)有限公司 | 音频数据传输方法、装置、处理设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
EP4002731A4 (en) | 2022-09-21 |
CN110838894B (zh) | 2023-09-26 |
CN110838894A (zh) | 2020-02-25 |
US11869516B2 (en) | 2024-01-09 |
US20220059101A1 (en) | 2022-02-24 |
EP4002731A1 (en) | 2022-05-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2021103778A1 (zh) | 语音处理方法、装置、计算机可读存储介质和计算机设备 | |
JP6374028B2 (ja) | 音声プロファイルの管理および発話信号の生成 | |
US11605394B2 (en) | Speech signal cascade processing method, terminal, and computer-readable storage medium | |
WO2018077083A1 (zh) | 音频帧丢失恢复方法和装置 | |
WO2016192410A1 (zh) | 一种音频信号增强方法和装置 | |
US9985855B2 (en) | Call quality estimation by lost packet classification | |
BR112018002979B1 (pt) | Controle de sinal-alvo de banda alta | |
WO2015169064A1 (zh) | 一种网络语音质量评估方法、装置和*** | |
US20210089863A1 (en) | Method and apparatus for recurrent auto-encoding | |
CN112767955A (zh) | 音频编码方法及装置、存储介质、电子设备 | |
US11070666B2 (en) | Methods and devices for improvements relating to voice quality estimation | |
JP2003218932A (ja) | エラー隠蔽装置及び方法 | |
Florencio et al. | Enhanced adaptive playout scheduling and loss concealment techniques for voice over ip networks | |
WO2014010175A1 (ja) | 符号化装置及び符号化方法 | |
Peláez-Moreno et al. | A comparison of front-ends for bitstream-based ASR over IP | |
Chaouch et al. | Multiple Description Coding and Forward Error Correction Concealment Methods for ACELP Coders in Packet Networks | |
Bakri et al. | Implementing the PLC Techniques with G 729 Coded to Improving the Speech Quality for VoIP Transmission | |
JP2005142757A (ja) | 受信装置および方法 | |
Ma et al. | Design and research of MELP vocoder based on Beidou voice communication | |
Xie et al. | A Discontinuous Transmission Method for LPC Speech Codec | |
KR101551236B1 (ko) | 패킷 손실 은닉에서의 적응형 뮤팅 방법 | |
Gokhale | Packet loss concealment in voice over internet | |
Bhoyar et al. | A Study of LPC: Speech Coding Compression Method | |
Li et al. | A Side Information Based Packet Loss Recovery Algorithm in VoIP | |
Hoene et al. | Classifying VoIP µ-law Packets in Real-Time |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 20892490 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2020892490 Country of ref document: EP Effective date: 20220215 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |