首页 > 乐器声学 专利正文
语音处理方法和语音处理装置与流程

时间:2022-02-20 阅读: 作者:专利查询

语音处理方法和语音处理装置与流程

1.本公开涉及音频技术领域,尤其涉及一种在语音传输中对语音进行编码和解码的语音处理方法和语音处理装置。


背景技术:

2.语音编解码技术在语音传输中至关重要,尤其在基于网际协议的语音传输(voice over internet protocol,voip)中备受关注。例如,超低码率的voip的语音可懂度和音质会影响实时通讯的用户在弱网情况下的用户体验,尤其在网络只能提供3kbps的语音传输带宽时,对voip的语音编解码能力有极大挑战。同时,在高网速状态下的高质量语音也是提升用户体验的关键所在。


技术实现要素:

3.本公开提供一种语音处理方法和语音处理装置,以至少解决上述问题。本公开的技术方案如下:
4.根据本公开实施例的第一方面,提供一种语音处理方法,可包括:获取当前语音传输网络的网络状态信息;根据所述网络状态信息确定用于对输入语音进行编码的当前码率;基于所述当前码率确定所述输入语音的语音特征信息和对所述语音特征信息进行编码的编码参数;按照所述编码参数对所述语音特征信息进行编码。
5.可选地,基于所述当前码率确定所述输入语音的语音特征信息,可包括:基于所述当前码率确定用于提取语音特征的维度信息;根据所述维度信息从所述输入语音中提取与所述维度信息相应的语音特征信息。
6.可选地,在高码率网络环境下提取高纬度的语音特征,在低码率环境下提取低纬度的语音特征,其中,所述维度信息的维度范围为16至64。
7.可选地,基于所述当前码率确定对所述语音特征信息进行编码的编码参数,可包括:基于所述当前码率确定用于对所述语音特征信息进行编码的码书和帧间依赖性中的至少一个,其中,所述码书表示单个语音帧的编码比特的数量,并且所述帧间依赖性表示在语音帧序列中语音帧参考其他语音帧的帧信息的数量。
8.可选地,基于所述当前码率确定用于对所述语音特征信息进行编码的码书和帧间依赖性中的至少一个,可包括:基于所述当前码率从预先存储的多个码书中选择用于对所述语音特征信息进行编码的码书;和/或基于所述当前码率从预先存储的多个帧间依赖性中选择用于对所述语音特征信息进行编码的帧间依赖性。
9.可选地,按照所述编码参数对所述语音特征信息进行编码,可包括:当所述帧间依赖性被选择为所述多个帧间依赖性中的第一帧间依赖性时,每个语音帧的语音特征信息由所述码书中的一组矢量进行编码。
10.可选地,按照所述编码参数对所述语音特征信息进行编码,可包括:当所述帧间依赖性被选择为所述多个帧间依懒性中的第二帧间依懒性时,每隔一个语音帧的语音特征信
息由所述码书中的一组矢量进行编码,未由所述码书编码的语音帧的语音特征信息由与其相邻的两个编码的语音帧的语音特征信息的均值进行编码。
11.可选地,按照所述编码参数对所述语音特征信息进行编码,可包括:当所述帧间依赖性被选择为所述多个帧间依懒性中的第三帧间依懒性时,在每四个语音帧中,一个语音帧的语音特征信息由所述码书中的一组矢量进行编码,与该语音帧相隔一帧的语音帧的语音特征信息使用预先存储的差分码书中的一组矢量进行编码,其余两个语音帧的语音特征信息分别使用与其相邻的两个语音帧的语音特征信息的均值进行编码。
12.可选地,在确定所述输入语音的语音特征信息之前,所述音频处理方法可包括:对所述输入语音进行降噪处理;基于所述当前码率从经过降噪处理的输入语音中提取所述语音特征信息。
13.根据本公开实施例的第二方面,提供一种语音处理方法,可包括:获取当前语音传输网络的网络状态信息;根据所述网络状态信息确定用于对接收到的编码语音的语音特征信息进行解码的当前码率;基于所述当前码率确定用于对所述语音特征信息进行解码的解码参数;按照所述解码参数对所述语音特征信息进行解码。
14.可选地,基于所述当前码率确定用于对所述语音特征信息进行解码的解码参数,可包括:基于所述当前码率确定用于对所述语音特征信息进行解码的码书和帧间依赖性中的至少一个,其中,所述码书表示单个语音帧的编码比特的数量,并且所述帧间依赖性表示在语音帧序列中语音帧参考其他语音帧的帧信息的数量。
15.可选地,基于所述当前码率确定用于对所述语音特征信息进行解码的码书和帧间依赖性中的至少一个,可包括:基于所述当前码率从预先存储的多个码书中选择用于对所述语音特征信息进行解码的码书;和/或基于所述当前码率从预先存储的多个帧间依赖性中选择用于对所述语音特征信息进行解码的帧间依赖性。
16.可选地,按照所述解码参数对所述语音特征信息进行解码,可包括:当所述帧间依赖性被选择为所述多个帧间依赖性中的第一帧间依赖性时,每个语音帧的语音特征信息由所述码书中的一组矢量进行解码。
17.可选地,按照所述解码参数对所述语音特征信息进行解码,可包括:当所述帧间依赖性被选择为所述多个帧间依懒性中的第二帧间依懒性时,每隔一个语音帧的语音特征信息由所述码书中的一组矢量进行解码,未由所述码书编码的语音帧的语音特征信息由与其相邻的两个编码的语音帧的语音特征信息的均值进行解码。
18.可选地,按照所述解码参数对所述语音特征信息进行解码,可包括:当所述帧间依赖性被选择为所述多个帧间依懒性中的第三帧间依懒性时,在每四个语音帧中,一个语音帧的语音特征信息由所述码书中的一组矢量进行解码,与该语音帧相隔一帧的语音帧的语音特征信息使用预先存储的差分码书中的一组矢量进行解码,其余两个语音帧的语音特征信息分别使用与其相邻的两个语音帧的语音特征信息的均值进行解码。
19.可选地,所述音频处理方法还可包括:基于解码的语音特征信息使用神经网络来生成与所述编码语音相应的语音信号。
20.根据本公开实施例的第三方面,提供一种语音处理装置,所述语音处理装置可包括:网络状态监控模块,被配置为获取当前语音传输网络的网络状态信息,并且根据所述网络状态信息确定用于对输入语音进行编码的当前码率;编码模块,被配置为基于所述当前
码率确定所述输入语音的语音特征信息和对所述语音特征信息进行编码的编码参数,并且按照所述编码参数对所述语音特征信息进行编码。
21.可选地,编码模块可被配置为:基于所述当前码率确定用于提取语音特征的维度信息;根据所述维度信息从所述输入语音中提取与所述维度信息相应的语音特征信息。
22.可选地,在高码率网络环境下提取高纬度的语音特征,在低码率环境下提取低纬度的语音特征,其中,所述维度信息的维度范围为16至64。
23.可选地,编码模块可被配置为:基于所述当前码率确定用于对所述语音特征信息进行编码的码书和帧间依赖性中的至少一个,其中,所述码书表示单个语音帧的编码比特的数量,并且所述帧间依赖性表示在语音帧序列中语音帧参考其他语音帧的帧信息的数量。
24.可选地,编码模块可被配置为:基于所述当前码率从预先存储的多个码书中选择用于对所述语音特征信息进行编码的码书;和/或基于所述当前码率从预先存储的多个帧间依赖性中选择用于对所述语音特征信息进行编码的帧间依赖性。
25.可选地,编码模块可被配置为:当所述帧间依赖性被选择为所述多个帧间依赖性中的第一帧间依赖性时,每个语音帧的语音特征信息由所述码书中的一组矢量进行编码。
26.可选地,编码模块可被配置为:当所述帧间依赖性被选择为所述多个帧间依懒性中的第二帧间依懒性时,每隔一个语音帧的语音特征信息由所述码书中的一组矢量进行编码,未由所述码书编码的语音帧的语音特征信息由与其相邻的两个编码的语音帧的语音特征信息的均值进行编码。
27.可选地,编码模块可被配置为:当所述帧间依赖性被选择为所述多个帧间依懒性中的第三帧间依懒性时,在每四个语音帧中,一个语音帧的语音特征信息由所述码书中的一组矢量进行编码,与该语音帧相隔一帧的语音帧的语音特征信息使用预先存储的差分码书中的一组矢量进行编码,其余两个语音帧的语音特征信息分别使用与其相邻的两个语音帧的语音特征信息的均值进行编码。
28.可选地,所述音频处理装置还可包括降噪模块,被配置为:在确定所述输入语音的语音特征信息之前,对所述输入语音进行降噪处理,其中,编码模块可基于所述当前码率从经过降噪处理的输入语音中提取所述语音特征信息。
29.根据本公开实施例的第四方面,提供一种语音处理装置,所述语音处理装置可包括:网络状态监控模块,被配置为获取当前语音传输网络的网络状态信息,并且根据所述网络状态信息确定用于对接收到的编码语音的语音特征信息进行解码的当前码率;解码模块,被配置为基于所述当前码率确定用于对所述语音特征信息进行解码的解码参数,并且按照所述解码参数对所述语音特征信息进行解码。
30.可选地,解码模块可被配置为:基于所述当前码率确定用于对所述语音特征信息进行解码的码书和帧间依赖性中的至少一个,其中,所述码书表示单个语音帧的编码比特的数量,并且所述帧间依赖性表示在语音帧序列中语音帧参考其他语音帧的帧信息的数量。
31.可选地,解码模块可被配置为:基于所述当前码率从预先存储的多个码书中选择用于对所述语音特征信息进行解码的码书;和/或基于所述当前码率从预先存储的多个帧间依赖性中选择用于对所述语音特征信息进行解码的帧间依赖性。
32.可选地,解码模块可被配置为:当所述帧间依赖性被选择为所述多个帧间依赖性中的第一帧间依赖性时,每个语音帧的语音特征信息由所述码书中的一组矢量进行解码。
33.可选地,解码模块可被配置为:当所述帧间依赖性被选择为所述多个帧间依懒性中的第二帧间依懒性时,每隔一个语音帧的语音特征信息由所述码书中的一组矢量进行解码,未由所述码书编码的语音帧的语音特征信息由与其相邻的两个编码的语音帧的语音特征信息的均值进行解码。
34.可选地,解码模块可被配置为:当所述帧间依赖性被选择为所述多个帧间依懒性中的第三帧间依懒性时,在每四个语音帧中,一个语音帧的语音特征信息由所述码书中的一组矢量进行解码,与该语音帧相隔一帧的语音帧的语音特征信息使用预先存储的差分码书中的一组矢量进行解码,其余两个语音帧的语音特征信息分别使用与其相邻的两个语音帧的语音特征信息的均值进行解码。
35.可选地,所述音频处理装置还可包括语音生成模块,被配置为:基于解码的语音特征信息使用神经网络来生成与所述编码语音相应的语音信号。
36.根据本公开实施例的第五方面,提供一种电子设备,所述电子设备可包括:至少一个处理器;至少一个存储计算机可执行指令的存储器,其中,所述计算机可执行指令在被所述至少一个处理器运行时,促使所述至少一个处理器执行如上所述的语音处理方法。
37.根据本公开实施例的第六方面,提供一种存储指令的计算机可读存储介质,当所述指令被至少一个处理器运行时,促使所述至少一个处理器执行如上所述的语音处理方法。
38.根据本公开实施例的第七方面,提供一种计算机程序产品,所述计算机程序产品中的指令被电子装置中的至少一个处理器运行以执行如上所述的语音处理方法。
39.本公开的实施例提供的技术方案至少带来以下有益效果:
40.提供了一种低复杂度的自适应可伸缩码率高音质语音编码方法,可根据网络状态进行选择不同码率,针对不同的码率选择适用于当前网络的语音编码或解码的参数来对语音数据进行编码或解码,使得在弱网情况下,能够保证语音具有良好的可懂度和较好的音质,在高速网络情况下,能够保证极佳的音质,提高用户体验。
41.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
42.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
43.图1是根据本公开的实施例的实时通信的应用环境的示图;
44.图2是根据本公开的实施例的用于语音编码的语音处理方法的流程图;
45.图3是根据本公开的实施例的用于语音解码的语音处理方法的流程图;
46.图4是根据本公开的实施例的用于语音处理的流程示意图;
47.图5是根据本公开的实施例的一种语音处理设备的结构示意图;
48.图6是根据本公开的实施例的用于语音编码的语音处理装置的框图;
49.图7是根据本公开的实施例的用于语音解码的语音处理装置的框图;
50.图8是根据本公开的实施例的电子设备的框图。
具体实施方式
51.为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
52.提供参照附图的以下描述以帮助对由权利要求及其等同物限定的本公开的实施例的全面理解。包括各种特定细节以帮助理解,但这些细节仅被视为是示例性的。因此,本领域的普通技术人员将认识到在不脱离本公开的范围和精神的情况下,可对描述于此的实施例进行各种改变和修改。此外,为了清楚和简洁,省略对公知的功能和结构的描述。
53.以下描述和权利要求中使用的术语和词语不限于书面含义,而仅由发明人用来实现本公开的清楚且一致的理解。因此,本领域的技术人员应清楚,本公开的各种实施例的以下描述仅被提供用于说明目的而不用于限制由权利要求及其等同物限定的本公开的目的。
54.需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
55.现有的语音编解码技术包括波形编码方法(诸如g.728、g.729标准或利用opus开源库实现等)和参数编码方法(诸如lyra语音编码)。然而,波形编码方法难以实现在6kbps码率以下的高音质、8khz有效频率宽度的语音传输,在仅能提供3kbps以下语音编码带宽的弱网环境情况下,存在极大的卡顿、丢包和音质损伤等影响voip体验的问题。此外,参数编码方法仅支持弱网情况下的8khz有效频率宽度的语音编解码,并且仅支持3kbps码率的语音编码,高音质难以保证,在高网速状态下无法实现码率可伸缩性,难以保证高音质的实时通讯体验,同时还存在复杂度过高、延迟较大(例如,延迟90ms)等问题,难以实际应用。
56.本公开提出了一种低复杂度的高音质语音编解码方法,能够在不同网络条件下自适应地基于码率进行编解码,不仅确保在弱网情况下语音具有较高可懂度和音质,同时确保在高网速状态下使用户具有极佳音质的良好实时通讯体验。
57.在下文中,根据本公开的各种实施例,将参照附图对本公开的方法、装置进行详细描述。
58.图1是根据本公开的实施例的实时通信的应用环境的示图。
59.参照图1,该应用环境100包括终端110和终端120。
60.终端110和终端120可以是用户所在终端,例如,两个用户分别使用终端110和120进行实时通讯。终端110和终端120可以是智能手机、平板电脑、便携式计算机和台式计算机等中的至少一种。终端110可安装有目标应用,用于诸如用于语音通信的应用。虽然本实施例仅示出两个终端进行说明,但是本领域技术人员可知晓,终端的数量可以为两个或更多个。本公开实施例不对终端的数量和设备类型进行任何限定。
61.终端110和终端120可通过无线网络进行通信,使得终端110和终端120的用户可进行实时通讯。例如,网络可包含局域网(lan)、广域网(wan)、无线链路、内联网、互联网或其
组合等。
62.终端110可对终端110的用户输入的语音进行编码,然后将编码后的语音数据发送给终端120,终端120可将接收到的编码数据进行解码,然后将解码数据还原为语音信号。此外,终端120可对终端120的用户输入的语音进行编码,然后将编码后的语音数据发送给终端110,终端110可将接收到的编码数据进行解码,然后将解码数据还原为语音信号。终端110和/或终端120可同时实现对语音的编码和解码。
63.根据本公开,当终端110作为编码端/发送端并且终端120作为解码端/接收端时,终端110可根据通信的网络状态确定用于编码的码率,然后根据该码率确定使用哪种编码模式对输入的语音进行编码,然后将编码后的语音数据发送给终端120。终端120可根据网络状态确定用于解码的码率,然后根据该码率确定使用哪种解码模式对接收到的编码数据进行解码,然后得到语音信号。
64.本公开可根据网络状态选取合适的编码方式和解码方式,使得在弱网情况下,可保证良好的语音可懂度和较好的语音音质,在高速网络下可保证极佳的音质,提高用户体验。下面将参照图2至图4更加详细地描述在不同的网络状态下如何对语音进行编码和解码。
65.图2是根据本公开的实施例的用于语音编码的语音处理方法的流程图。图2的语音处理方法可在任何具有音频编码功能的电子设备中实现。电子设备可以是包括如下中的至少一个,例如,智能电话、平板个人计算机(pc)、移动电话、视频电话、电子书阅读器(e

book reader)、桌上型pc、膝上型pc、上网本计算机、工作站、服务器、个人数字助理(pda)、便携式多媒体播放器(pmp)、运动图像专家组(mpeg

1或mpeg

2)音频层3(mp3)播放器、相机和可穿戴装置等。
66.参照图2,在步骤s201,获取当前语音传输网络的网络状态信息。例如,可通过实时地监测语音传输的网络状态来获取当前语音传输网络的网络状态信息。
67.在步骤s202,根据获取的网络状态信息确定用于对输入语音进行编码的当前码率。例如,可根据当前网络的传输带宽来确定适合于编码的当前码率。当前网络状态越好,可选择越高的当前码率。
68.作为示例,通过实时地监测当前网络状态,根据当前网络状态确定当前时刻n能够用于进行语音编码的码率bitrate(n)。例如,码率bitrate(n)的范围可设置在1.5kbps至24kbps之间。
69.在步骤s203,基于当前码率确定输入语音的语音特征信息和对语音特征信息进行编码的编码参数。
70.首先,可基于当前码率确定用于提取语音特征的维度信息,然后根据确定的维度信息从输入语音中提取与该维度信息相应的语音特征信息。在高码率网络环境下提取高纬度的语音特征,在低码率环境下提取低纬度的语音特征,在本公开中,维度信息的维度范围可以为16至64。
71.语音特征可以是梅尔频率倒谱系数mfcc、梅尔频率谱特征,但本公开不限于此。例如,可首先基于当前码率确定用于提取语音特征的维度,根据确定的维度信息从输入语音中提取相应维度的语音特征,然后根据确定的编码参数对语音特征进行编码。
72.例如,可基于当前码率对输入语音进行语音特征的提取。可利用以下等式(1)来提
取语音特征:
73.feature(n)=feat[x(n),bitrate(n)]
ꢀꢀꢀꢀꢀꢀꢀ
(1)
[0074]
其中,x(n)表示当前时刻n的语音帧,feature(n)为当前时刻n输出的语音特征,feat[*]表示特征提取处理过程,该过程可参考当前码率bitrate(n)来决定特征维度。在高码率网络环境下,可提取高维度特征,在低码率网络环境下,可提取低维度特征,例如,维度范围可被设置为16至64。然而,上述示例仅是示例性的,本公开不限于此。
[0075]
可基于当前码率确定用于对语音特征信息进行编码的码书和帧间依赖性中的至少一个,其中,码书表示单个语音帧的编码比特的数量,并且帧间依赖性表示在语音帧序列中语音帧参考其他语音帧的帧信息的数量。当前码率越高,可选择编码质量越高的编码参数。
[0076]
在本公开中,编码参数可包括码书和帧间依赖性中的至少一个。码书可确定单帧特征的编码比特数。码书越大,表示单个语音帧的编码比特数越多。帧间依赖性可被理解为比特排布规则,用于确定语音帧之间的编码方式。帧间依赖性越高,表示在语音帧序列中语音帧参考其他语音帧的帧信息越多。
[0077]
可预先在作为发送端/编码端的电子设备中存储多个码书和多个帧间依懒性,使得电子设备可根据当前码率在存储的码书和帧间依懒性中选择适用于当前码率的编码参数。
[0078]
可基于当前码率从预先存储的多个码书选择用于对输入语音进行编码的码书,例如,当前码率越高,可选择越大的码书。可基于当前码率从预先存储的多个帧间依赖性选择用于对输入语音进行编码的帧间依赖性,例如,当前码率越高,可选择越低的帧间依赖性。
[0079]
作为示例,可基于当前码率利用以下等式(2)来确定当前需要使用的码书:
[0080][0081]
其中,codebook(n)表示当前时刻n选择的码书,codebook1,codebook2,codebook3,...,codebookm分别表示不同的码书,码书的数量为m,bitrateth1,bitrateth2,bitrateth3,...,bitratethm

1分别表示不同的码率阈值,码率阈值按照序号逐个递。然而,上述示例仅是示例性的,本公开可根据需求对码书内容以及码书数量进行不同地设置。此外,用于确定码书的码率阈值可被不同地设置。
[0082]
可基于当前码率利用以下等式(3)来确定当前需要使用的帧间依懒性:
[0083][0084]
其中,distribution(n)表示当前时刻n确定使用的帧间依懒性,bitratetha,bitratethb,bitratethc分别表示不同的码率(比特率)阈值,码率阈值按顺序逐个递增,distributionstrong,distributionmiddle,distributionweak分别表示不同的帧间依懒性,即强帧间依赖性(即第三帧间依赖性)、中等帧间依赖性(即第二帧间依赖性)和弱帧间依赖性(即第一帧间依赖性),不同的帧间依赖性之间的差异主要在于语音帧序列中是否有
参考前后相邻的语音帧信息,参考信息越多,帧间依赖性越强,比特率越低。此外,用于确定帧间依赖性的码率阈值可被不同地设置。
[0085]
虽然上述示例仅示出了将帧间依赖性分类为三种的情况,但是本公开可根据不同的需求被分类为更多种情况。
[0086]
在步骤s204,按照确定的编码参数对输入语音的语音特征信息进行编码。
[0087]
作为示例,当帧间依赖性被选择为弱帧间依赖性时,每个语音帧可使用所选码书中的一组矢量进行编码。
[0088]
例如,对于弱帧间依赖性,每个语音帧可由矢量编码(vector quantization,vq)码书中的一组矢量表示,可利用以下等式(4)来表示:
[0089]
vqfeature(n)=vq[feature(n)]
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(4)
[0090]
其中,feature(n)表示当前时刻n的语音特征,vqfeature(n)表示当前时刻n的vq编码后的语音特征,vq[*]表示vq编码处理。
[0091]
当帧间依赖性被选择为中等帧间依赖性时,每隔一个语音帧可使用所选码书中的一组矢量进行编码,并且未由码书编码的语音帧可使用与其相邻的两个编码的语音帧的均值进行编码。
[0092]
例如,对于中等帧间依赖性,每隔一个语音帧可由vq码书中的一组矢量表示,两个vq编码的语音帧之间的一个语音帧可由其相邻两帧(即该两个vq编码的语音帧)的均值确定,可利用以下等式(5)来表示:
[0093][0094]
其中,vqfeature(n

1)表示前一时刻的vq编码的语音特征,vqfeature(n+1)表示后一时刻的vq编码的语音特征,feature(n)表示当前时刻n的语音特征,vqfeature(n)表示当前时刻n的vq编码的语音特征,vq[*]表示vq编码处理,mod(n,2)=1表示由vq码书中的一组矢量表示语音帧的情况,mod(n,2)=0表示不由vq码书中的一组矢量表示语音帧的情况。
[0095]
当帧间依赖性被选择为强帧间依赖性时,在每四个语音帧中,一个语音帧可使用所选码书中的一组矢量进行编码,与该语音帧(使用所选码书编码的语音帧)相隔一帧的语音帧可使用差分码书中的一组矢量进行编码,其余两个语音帧可分别使用与其相邻的两个语音帧的均值进行编码。
[0096]
例如,对于强帧间依赖性,每四个语音帧中有一个语音帧可由码书中的一组矢量表示,与由码书中的一组矢量表示的语音帧相隔一个语音帧的语音帧可使用差分vq码书中的一组矢量表示,四个语音帧中的其余两个语音帧可使用相邻的两个语音帧的均值编码获得,可利用以下等式(6)来表示:
[0097][0098]
其中,等式(6)中的与等式(5)相同的变量具有与等式(5)中的相应变量相同的含义,此外,diffvqfeature[*

#]表示差分vq处理,即对*和#两个元素的差值进行低码率vq编码。
[0099]
最后,将编码后的语音特征信息发送到接收端/解码端。例如,可将编码后的语音
数据通过网络传输到接收端/解码端。
[0100]
根据本公开的实施例,在对输入语音进行编码之前,可对输入语音进行降噪处理,以得到相对更加纯净的语音。可采用基于crnn的神经网络降噪方法来对输入语音执行降噪,然后可基于当前码率对经过降噪处理的语音进行语音特征的提取。
[0101]
例如,可对当前输入的原始语音进行降噪处理以得到去掉噪声后的语音。例如,可利用以下等式(7)进行去噪处理:
[0102]
x(n)=nr[raw(n]]
ꢀꢀꢀꢀꢀꢀꢀꢀ
(7)
[0103]
其中,raw(n)表示当前时刻n的原始输入的语音帧。每个语音帧的长度一般为10ms至20ms,x(n)表示当前时刻n的降噪后的语音帧,nr[*]表示降噪处理。
[0104]
本公开可实现一种低复杂度的高音质语音编码方法,实现在1.5kbps至24kbps区间范围的自适应可伸缩编码,能够在弱网情况下保证语音具有较高可懂度和音质,同时在高网速状态下保证极佳音质的良好实时通讯体验。
[0105]
图3是根据本公开的实施例的用于语音解码的语音处理方法的流程图。图3的语音处理方法可在任何具有音频解码功能的电子设备中实现。电子设备可以是包括如下中的至少一个,例如,智能电话、平板个人计算机(pc)、移动电话、视频电话、电子书阅读器(e

book reader)、桌上型pc、膝上型pc、上网本计算机、工作站、服务器、个人数字助理(pda)、便携式多媒体播放器(pmp)、运动图像专家组(mpeg

1或mpeg

2)音频层3(mp3)播放器、相机和可穿戴装置等。
[0106]
参照图3,在步骤s301,获取当前语音传输网络的网络状态信息。
[0107]
在步骤s302,根据获取的网络状态信息确定用于对接收到的编码语音的语音特征信息进行解码的当前码率。
[0108]
例如,可根据当前网络的传输带宽来确定适合于编码的当前码率。当前网络状态越好,可选择越高的当前码率。
[0109]
在步骤s303,基于当前码率确定用于编码语音的语音特征信息的解码参数。当前码率越高,可选择解码质量越高的解码参数。解码参数可包括码书和帧间依赖性中的至少一个。码书越大,可表示单个语音帧的编码比特数越多,帧间依赖性越高,可表示在语音帧序列中语音帧参考其他语音帧的帧信息越多。
[0110]
可预先在作为接收端/解码端的电子设备中存储多个码书和多个帧间依懒性,使得电子设备可根据当前码率在存储的码书和帧间依懒性中选择适用于当前码率的编码参数。
[0111]
在本公开中,在发送端/编码端中预先存储的码书和帧间依赖性与在接收端中的预先存储的码书和帧间依赖性相同,这样,接收端/解码端接收到发送端发送的编码数据后,可按照相同的编码参数对编码数据进行相应的解码。
[0112]
作为示例,可基于当前码率从预先存储的多个码书选择用于对编码语音进行解码的码书。例如,当前码率越高,可选择越大的码书。可基于当前码率从预先存储的多个帧间依赖性选择用于对编码语音进行解码的帧间依赖性,例如,当前码率越高,可选择越低的帧间依赖性。选择解码参数的过程与选择编码参数的过程类似,可参照上述等式(2)和(3)来选择解码参数。
[0113]
在步骤s304,按照确定的解码参数对编码语音的语音特征信息进行解码。对编码
语音进行解码的过程可被认为是对输入语音进行编码的逆过程。
[0114]
当帧间依赖性被选择为弱帧间依赖性时,每个语音帧由所选码书中的一组矢量进行解码。
[0115]
当帧间依赖性被选择为中等帧间依赖性时,每隔一个语音帧可由所选码书中的一组矢量进行解码,未由码书编码的语音帧可由与其相邻的两个编码的语音帧的均值进行解码。
[0116]
当所述帧间依赖性被选择为强帧间依赖性时,在每四个语音帧中,一个语音帧可由所选码书中的一组矢量进行解码,与该语音帧相隔一帧的语音帧可使用预先存储的差分码书中的一组矢量进行解码,其余两个语音帧可分别使用与其相邻的两个语音帧的均值进行解码。
[0117]
根据本公开的实施例,可按照确定的解码参数对编码语音的语音特征进行解码,然后基于解码的语音特征来生成与编码语音相应的语音信号。例如,可基于解码的语音特征使用神经网络来生成最终的语音信号。
[0118]
例如,在从发送端接收到vq编码的语音特征的情况下,可利用以下等式(8)来表示对vq编码的语音特征进行解码的过程:
[0119]
devqfeature(n)=devq[vqfeature(n),codebook(n),distribution(n)]
ꢀꢀꢀ
(8)
[0120]
其中,devq[*,codebook(n),distribution(n)]表示基于当前时刻n的码率获得的vq码书和帧间依赖性进行语音特征的解码处理,devqfeature(n)表示当前时刻n解码的语音特征,vqfeature(n)表示当前时刻n接收到的vq编码的语音特征。
[0121]
接下来,可基于解码的语音特征来生成最终的语音。可利用以下等式(9)来表示生成语音的过程:
[0122]
y(n)=speechgenerate[devqfeature(n)
ꢀꢀꢀꢀꢀꢀ
(9)
[0123]
其中,y(n)表示最终得到的当前时刻n的输出语音帧,speechgenerate[*]表示语音生成(语音解码)处理,该处理一般可采用基于神经网络的语音生成模型方法。
[0124]
作为示例,可利用神经网络来生成最终的语音。例如,语音生成模型可由四个集联模块构成,分别为两个卷积神经网络(cnn)层和两个门控循环单元(gru)层,其中,cnn层一般为一维卷积,卷积核大小一般选取3,可根据需求调整,gru层的单元数量一般为512,可根据需求调整,激活函数一般选取tanh或softmax函数。模型的训练数据可由数百小时时长、涵盖数百名不同年龄和性别的说话人的纯净语音获得。可将纯净语音利用上面的等式(1)来提取语音特征,再对提取的语音特征按照等式(4)、(5)、(6)和(8)的不同的码率的编解码处理后得到的语音特征作为语音生成模型的输入,利用语音生成模型输出预测的语音,通过对真实的纯净语音与预测的相应语音进行比较来训练该语音生成模型。然而,上述示例仅是示例性的,本公开不限于此。
[0125]
图4是根据本公开的实施例的用于语音处理的流程示意图。
[0126]
参照图4,降噪模块可去除发送端/编码端输入语音中的噪声,以保留希望传输的语音信号。特征提取模块可从降噪的语音信号中提取能够表征该语音特征的代表性关键信息。特征编码模块可使用基于当前码率确定的码本和比特分布规则(即帧间依赖性)将该语音特征进行编码,即用特定数量的比特来表征该语音特征。网络传输模块可将编码后的特征信息传送到接收端/解码端。网络状态监控模块可实时监测网络状态,以确定能够分配用
于进行语音编码的带宽。特征解码模块可将发送端编码的语音特征恢复为近似原始的语音特征。语音解码模块可将解码的语音特征进行解码,得到最终输出的语音。
[0127]
根据本公开的实施例,通过考虑网络状态来选取合适的编码方案,在弱网情况下,可保证良好的语音可懂度和较好的语音音质;在高速网络下,可保证极佳的音质,提高用户体验。
[0128]
图5是本公开实施例的硬件运行环境的语音处理设备的结构示意图。这里,语音处理设备500可实现上述编码功能和/或解码功能。
[0129]
如图5所示,语音处理设备500可包括:处理组件501、通信总线502、网络接口503、输入输出接口504、存储器505以及电源组件506。其中,通信总线502用于实现这些组件之间的连接通信号。输入输出接口504可以包括视频显示器(诸如,液晶显示器)、麦克风和扬声器以及用户交互接口(诸如,键盘、鼠标、触摸输入装置等),可选地,输入输出接口504还可包括标准的有线接口、无线接口。网络接口503可选的可包括标准的有线接口、无线接口(如无线保真接口)。存储器505可以是高速的随机存取存储器,也可以是稳定的非易失性存储器。存储器505可选的还可以是独立于前述处理组件501的存储装置。
[0130]
本领域技术人员可以理解,图5中示出的结构并不构成对语音处理设备500的限定,可包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
[0131]
如图5所示,作为一种存储介质的存储器505中可包括操作系统(诸如mac操作系统)、数据存储模块、网络通信模块、用户接口模块、语音处理程序以及数据库。
[0132]
在图5所示的语音处理设备500中,网络接口503主要用于与外部设备/终端进行数据通信;输入输出接口504主要用于与用户进行数据交互;语音处理设备500中的处理组件501、存储器505可被设置在语音处理设备500中,语音处理设备500通过处理组件501调用存储器505中存储的语音处理程序以及由操作系统提供的各种api,执行本公开实施例提供的语音处理方法。
[0133]
处理组件501可以包括至少一个处理器,存储器505中存储有计算机可以执行指令集合,当计算机可以执行指令集合被至少一个处理器执行时,执行根据本公开实施例的语音处理方法。此外,处理组件501可执行如上所述的编码操作和解码操作等。然而,上述示例仅是示例性的,本公开不限于此。
[0134]
可预先在存储器505中存储预设的多个码本和多种比特分布规则(即帧间依赖性),以选择适合于当前网络状态的用于编码或解码的码本和比特分布规则。处理组件501可按照选择的码本和比特分布规则对输入的语音进行编码或者对接收到的编码语音进行解码。
[0135]
作为示例,语音处理设备500可以是pc计算机、平板装置、个人数字助理、智能手机、或其他能够执行上述指令集合的装置。这里,语音处理设备500并非必须是单个的电子设备,还可以是任何能够单独或联合执行上述指令(或指令集)的装置或电路的集合体。语音处理设备500还可以是集成控制系统或系统管理器的一部分,或者可以被配置为与本地或远程(例如,经由无线传输)以接口互联的便携式电子设备。
[0136]
在语音处理设备500中,处理组件501可包括中央处理器(cpu)、图形处理器(gpu)、可编程逻辑装置、专用处理器系统、微控制器或微处理器。作为示例而非限制,处理组件501还可以包括模拟处理器、数字处理器、微处理器、多核处理器、处理器阵列、网络处理器等。
[0137]
处理组件501可运行存储在存储器中的指令或代码,其中,存储器505还可以存储数据。指令和数据还可以经由网络接口503而通过网络被发送和接收,其中,网络接口503可以采用任何已知的传输协议。
[0138]
存储器505可以与处理器集成为一体,例如,将ram或闪存布置在集成电路微处理器等之内。此外,存储器505可包括独立的装置,诸如,外部盘驱动、存储阵列或任何数据库系统可以使用的其他存储装置。存储器和处理器可以在操作上进行耦合,或者可以例如通过i/o端口、网络连接等互相通信,使得处理器能够读取存储在存储器中的文件。
[0139]
图6是根据本公开的实施例的用于语音编码的语音处理装置的框图。
[0140]
参照图6,语音处理装置600可包括网络状态监控模块601、降噪模块602、特征提取模块603、编码模块604和发送模块605。语音处理装置600中的每个模块可由一个或多个模块来实现,并且对应模块的名称可根据模块的类型而变化。在各种实施例中,可省略语音处理装置600中的一些模块,或者还可包括另外的模块。此外,根据本公开的各种实施例的模块/元件可被组合以形成单个实体,并且因此可等效地执行相应模块/元件在组合之前的功能。
[0141]
网络状态监控模块601可实时监测语音传输的网络状态,并且根据当前网络状态确定用于对输入语音进行编码的当前码率。当前网络状态越好,网络状态监控模块601可选择越高的当前码率。
[0142]
特征提取模块603可基于当前码率确定用于提取语音特征的维度信息,根据该维度信息从输入语音中提取与该维度信息相应的语音特征信息。
[0143]
编码模块604基于当前码率确定输入语音的语音特征信息的编码参数,并且按照编码参数对输入语音的语音特征信息进行编码。当前码率越高,编码模块604可选择编码质量越高的编码参数。
[0144]
发送模块605可将编码后的语音发送到接收端/解码端。
[0145]
根据本公开的实施例,编码参数可包括码书和帧间依赖性中的至少一个,其中,码书越大,表示单个语音帧的编码比特数越多,帧间依赖性越高,表示在语音帧序列中语音帧参考其他语音帧的帧信息越多。
[0146]
编码模块604可基于当前码率从预先存储的多个码书选择用于对输入语音进行编码的码书。例如,当前码率越高,编码模块604可选择越大的码书。
[0147]
编码模块604可基于当前码率从预先存储的多个帧间依赖性选择用于对输入语音进行编码的帧间依赖性。例如,当前码率越高,编码模块604可选择越低的帧间依赖性。
[0148]
当帧间依赖性被选择为弱帧间依赖性时,编码模块604可对每个语音帧使用码书中的一组矢量进行编码。
[0149]
当帧间依赖性被选择为中等帧间依赖性时,编码模块604可对每隔一个语音帧使用码书中的一组矢量进行编码,对未由码书编码的语音帧使用与其相邻的两个编码的语音帧的均值进行编码。
[0150]
当帧间依赖性被选择为强帧间依赖性时,在每四个语音帧中,一个语音帧可由码书中的一组矢量被编码,与该语音帧相隔一帧的语音帧可使用差分码书中的一组矢量被编码,其余两个语音帧可分别使用与其相邻的两个语音帧的均值被编码。
[0151]
编码模块604可对输入语音的语音特征进行编码。
[0152]
特征提取模块603可基于当前码率确定用于提取语音特征的维度,根据该维度信息从输入语音中提取相应维度的语音特征。编码模块604可按照确定的编码参数对语音特征进行编码。
[0153]
此外,在对输入语音进行编码之前,降噪模块602可对输入语音进行降噪处理,然后编码模块604可按照确定的编码参数对经过降噪处理的输入语音进行编码。
[0154]
图7是根据本公开的实施例的接收端的语音处理装置的框图。
[0155]
参照图7,语音处理装置700可包括网络状态监控模块701、接收模块702、解码模块703和语音生成模块704。语音处理装置700中的每个模块可由一个或多个模块来实现,并且对应模块的名称可根据模块的类型而变化。在各种实施例中,可省略语音处理装置700中的一些模块,或者还可包括另外的模块。此外,根据本公开的各种实施例的模块/元件可被组合以形成单个实体,并且因此可等效地执行相应模块/元件在组合之前的功能。
[0156]
网络状态监控模块701可实时监测语音传输的网络状态,并且根据当前网络状态确定用于对所述编码语音进行解码的当前码率。当前网络状态越好,网络状态监控模块701可选择越高的当前码率
[0157]
接收模块702可接收编码语音。
[0158]
解码模块703可基于当前码率确定编码语音的语音特征信息的解码参数,并且按照确定的解码参数对编码语音的语音特征信息进行解码。当前码率越高,解码模块703可选择解码质量越高的解码参数。
[0159]
解码参数可包括码书和帧间依赖性中的至少一个,其中,码书越大,表示单个语音帧的编码比特数越多,帧间依赖性越高,表示在语音帧序列中语音帧参考其他语音帧的帧信息越多。
[0160]
解码模块703可基于当前码率从预先存储的多个码书选择用于对编码语音进行解码的码书。例如,当前码率越高,解码模块703可选择越大的码书。
[0161]
解码模块703可基于当前码率从预先存储的多个帧间依赖性选择用于对编码语音进行解码的帧间依赖性。例如,当前码率越高,解码模块703可选择越低的帧间依赖性。
[0162]
当帧间依赖性被选择为弱帧间依赖性时,解码模块703可针对每个语音帧使用所选码书中的一组矢量进行解码。
[0163]
当帧间依赖性被选择为中等帧间依赖性时,解码模块703可针对每隔一个语音帧使用所选码书中的一组矢量进行解码,针对未由码书编码的语音帧使用与其相邻的两个编码的语音帧的均值进行解码。
[0164]
当帧间依赖性被选择为强帧间依赖性时,在每四个语音帧中,解码模块703可针对一个语音帧使用所选码书中的一组矢量进行解码,针对与该语音帧相隔一帧的语音帧使用预先存储的差分码书中的一组矢量进行解码,针对其余两个语音帧分别使用与其相邻的两个语音帧的均值进行解码。
[0165]
解码模块703可按照确定的解码参数对编码语音的语音特征进行解码,语音生成模块704可基于解码的语音特征来生成与编码语音相应的语音信号。
[0166]
语音生成模块704可基于解码的语音特征使用神经网络来生成相应的语音信号。
[0167]
根据本公开的实施例,可提供一种电子设备。图8是根据本公开实施例的电子设备的框图,该电子设备1000可包括至少一个存储器1002和至少一个处理器1001,所述至少一
个存储器1002存储有计算机可执行指令集合,当计算机可执行指令集合被至少一个处理器1001执行时,执行根据本公开实施例的语音处理方法(即语音编码方法和/或语音解码方法)。
[0168]
处理器1001可包括中央处理器(cpu)、音频处理器、可编程逻辑装置、专用处理器系统、微控制器或微处理器。作为示例而非限制,处理器1001还可包括模拟处理器、数字处理器、微处理器、多核处理器、处理器阵列、网络处理器等。
[0169]
作为一种存储介质的存储器1002可包括操作系统(例如mac操作系统)、数据存储模块、网络通信模块、用户接口模块、音频处理程序、音频编解码程序以及数据库。
[0170]
存储器1002可与处理器1001集成为一体,例如,可将ram或闪存布置在集成电路微处理器等之内。此外,存储器1002可包括独立的装置,诸如,外部盘驱动、存储阵列或任何数据库系统可使用的其他存储装置。存储器1002和处理器1001可在操作上进行耦合,或者可例如通过i/o端口、网络连接等互相通信,使得处理器1001能够读取存储在存储器1002中的文件。
[0171]
此外,电子设备1000还可包括视频显示器(诸如,液晶显示器)和用户交互接口(诸如,键盘、鼠标、触摸输入装置等)。电子设备1000的所有组件可经由总线和/或网络而彼此连接。
[0172]
作为示例,电子设备1000可以是pc计算机、平板装置、个人数字助理、智能手机、或其他能够执行上述指令集合的装置。这里,电子设备1000并非必须是单个的电子设备,还可以是任何能够单独或联合执行上述指令(或指令集)的装置或电路的集合体。电子设备1000还可以是集成控制系统或系统管理器的一部分,或者可被配置为与本地或远程(例如,经由无线传输)以接口互联的便携式电子设备。
[0173]
本领域技术人员可理解,图8中示出的结构并不构成对的限定,可包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
[0174]
根据本公开的实施例,还可提供一种存储指令的计算机可读存储介质,其中,当指令被至少一个处理器运行时,促使至少一个处理器执行根据本公开的语音处理方法(语音编码方法和/或语音解码方法)。这里的计算机可读存储介质的示例包括:只读存储器(rom)、随机存取可编程只读存储器(prom)、电可擦除可编程只读存储器(eeprom)、随机存取存储器(ram)、动态随机存取存储器(dram)、静态随机存取存储器(sram)、闪存、非易失性存储器、cd

rom、cd

r、cd+r、cd

rw、cd+rw、dvd

rom、dvd

r、dvd+r、dvd

rw、dvd+rw、dvd

ram、bd

rom、bd

r、bd

r lth、bd

re、蓝光或光盘存储器、硬盘驱动器(hdd)、固态硬盘(ssd)、卡式存储器(诸如,多媒体卡、安全数字(sd)卡或极速数字(xd)卡)、磁带、软盘、磁光数据存储装置、光学数据存储装置、硬盘、固态盘以及任何其他装置,所述任何其他装置被配置为以非暂时性方式存储计算机程序以及任何相关联的数据、数据文件和数据结构并将所述计算机程序以及任何相关联的数据、数据文件和数据结构提供给处理器或计算机使得处理器或计算机能执行所述计算机程序。上述计算机可读存储介质中的计算机程序可在诸如客户端、主机、代理装置、服务器等计算机设备中部署的环境中运行,此外,在一个示例中,计算机程序以及任何相关联的数据、数据文件和数据结构分布在联网的计算机系统上,使得计算机程序以及任何相关联的数据、数据文件和数据结构通过一个或多个处理器或计算机以分布式方式存储、访问和执行。
[0175]
根据本公开的实施例中,还可提供一种计算机程序产品,该计算机程序产品中的指令可由计算机设备的处理器执行以完成上述语音处理方法(语音编码方法和/或语音解码方法)。
[0176]
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本技术旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
[0177]
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。