1.本技术涉及人工智能领域,尤其是一种信息转换方法和装置、电子设备、计算机可读存储介质和计算机程序产品。
背景技术:2.随着计算机技术和人工智能网络的发展,语音合成(也称为文语转换,text
‑
to
‑
speech)技术在近些年来得到了快速提升,被愈发广泛的应用于人类生活的各个领域。语音合成多样化的应用为日常生活提供了极大的便利,同时也丰富了多媒体技术带来的观感。比如,基于语音合成的阅读辅助不仅仅使视障人士能够阅读更加广泛的文字材料,也给普通人提供了更多的阅读场景。比如,基于语音合成的虚拟形象能够利用精简的发音数据库模拟逼真的人声,为游戏娱乐、增强现实和虚拟现实等领域提供更为泛用的技术。
3.语音合成系统主要功能是将文本转换为语音。常见的语音合成系统包含三个模块:文本前端、声学模块和声码器。其中,文本前端主要用于对文本进行语义和语言学分析,声学模块主要用于对声学特征进行建模与预测,而声码器主要用于将声学特征转换为最终的语音波形信号。近年来,在深度学习技术发展的推动下,声学模型逐渐被广泛应用于语音合成系统,部分端到端的声学模型(例如tacotron等)绕开了传统模型中的隐马尔科夫假设,使得语音合成的韵律感和自然度在传统模型的基础上得到大幅的提升,改善了人机交互体验。
4.然而,基于现有语音模型的语音合成系统通常存在稳定性的问题,其生成的语音所表现的韵律在多变的应用场景下容易产生较长的时延或者较大的误差,最终影响合成语音的自然度,导致用户感觉语音不够真实。这一问题在需要高表现力的场景下(比如,在利用人工语音进行虚拟朗读或者虚拟演讲时)尤其突出,由于这些场景对合成语音的自然度有非常高的要求,即使合成语音的韵律和节奏稍微偏离用户的对真实人声的认知,也会严重影响人机交互体验。
5.类似的,在其他需要高表现力场景下的信息转换过程中也存在同样的问题。例如,当需要从简化的描述性信息获得模拟人类面部表情或者日常生活中行动的图像或者动画时,该转换过程对目标信息的自然度也会提出非常高的要求,此时,如果信息转换过程的稳定性交叉,同样会严重影响人机交互体验。
6.综上,如何使得转换系统能够稳定、高效的生成具有高自然度的目标信息,是本领域技术人员亟待解决的问题。
技术实现要素:7.有鉴于此,本技术提供了一种信息转换方法和装置、电子设备、计算机可读存储介质和计算机程序产品,以构建能够稳定、高效的生成目标信息的信息转换系统,并提高合成语音的韵律感和自然度。
8.为了实现上述目标,本技术实施例提供了以下技术方案。
9.本技术实施例的一方面提供了一种信息转换方法,包括:调用第一编码模型对输入信息进行编码,得到第一特征,其中,前述第一特征至少包含前述第一编码模型输出的n层第一编码;以及,调用第一解码模型对前述第一特征进行解码,得到输出信息,其中,前述输出信息与前述输入信息为不同类型的信息,前述第一解码模型至少包含n层第一解码器,前述n层第一编码与前述n层第一解码器一一对应。其中,对任何1≤n≤n,第n层第一解码器对应于第n层第一编码,且第n层第一编码输入第n层第一解码器。其中,对任何1≤n<n,第n+1层第一解码器的输出编码输入第n层第一解码器,第n+1层第一解码器的输出编码用于表征前述输出信息在第n层第一解码器对应粒度下的组成部分的特征,且第n+1层第一解码器的对应粒度大于第n层第一解码器的对应粒度。其中,n、n均为正整数。
10.本技术实施例的另一方面提供了一种信息转换装置,包括:解码模块,用于调用第一编码模型对输入信息进行编码,得到第一特征,其中,前述第一特征至少包含前述第一编码模型输出的n层第一编码;以及,编码模块,用于调用第一解码模型对前述第一特征进行解码,得到输出信息,其中,前述输出信息与前述输入信息为不同类型的信息,前述第一解码模型至少包含n层第一解码器,前述n层第一编码与前述n层第一解码器一一对应。其中,对任何1≤n≤n,第n层第一解码器对应于第n层第一编码,且第n层第一编码输入第n层第一解码器。其中,对任何1≤n<n,第n+1层第一解码器的输出编码输入第n层第一解码器,第n+1层第一解码器的输出编码用于表征前述输出信息在第n层第一解码器对应粒度下的组成部分的特征,且第n+1层第一解码器的对应粒度大于第n层第一解码器的对应粒度。其中,n、n均为正整数。
11.本技术实施例的又一方面提供了一种电子设备,该电子设备可用于实现前述信息转换方法。在一些实施例中,该电子设备包含处理器和存储器。其中,该存储器存储有指令,且该指令被该处理器执行时使得所述电子设备执行前述信息转换方法。
12.本技术实施例的又一方面提供了一种计算机可读存储介质。该计算机可读存储介质存储有计算机指令,且该计算机指令被处理器执行时使得计算机执行前述信息转换方法。
13.本技术实施例的又一方面提供了一种计算机程序产品。该计算机程序产品包含计算机指令,且该计算机指令在计算机上运行时使得该计算机执行前述信息转换方法。
14.由此可见,根据本技术实施例提供的技术方案,首先,调用第一编码模型对输入信息进行编码得到第一特征,然后调用第一解码模型对第一特征进行解码,得到与输入信息类型不同的输出信息。其中,第一特征至少包含第一编码模型输出的n层第一编码,第一解码模型至少包含与n层第一编码依序一一对应的n层第一解码器,每层第一解码器的输入包含其对应的第一编码,且除第1层外还包含下一层第一解码器的输出编码。每层第一解码器的输出编码用于表征输出信息在其对应粒度下的组成部分的特征,且其对应粒度小于下一层第一解码器对应的粒度。本方案中的编解码过程使得输入信息中多个粒度下组成部分的特征被充分的捕捉,同时逐层解码的过程使得这些特征从整体到细节逐步解耦到生成的输入信息中,从而使得信息转换的准确性和稳定性大幅提升。当输入信息和输出信息分别为文本和语音时,这种层次化的编解码过程能够稳定、高效的生成具有高自然度的合成语音。
附图说明
15.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
16.图1示出了本技术实施例中一种信息转换方法的流程图;
17.图2示出了本技术实施例中进行信息转换时第一解码模型和第一编码模型的信息流示意图;
18.图3示出了本技术实施例中另一种信息转换方法的流程图;
19.图4示出了本技术实施例中一种信息转换方法的局部流程图;
20.图5示出了本技术实施例中进行信息转换时第一编码器的信息流示意图;
21.图6示出了本技术实施例中另一种信息转换方法的局部流程图;
22.图7示出了本技术实施例中进行信息转换时第一解码器的信息流示意图;
23.图8示出了本技术实施例中信息转换时第一解码模型和第一编码模型的另一信息流示意图;
24.图9示出了本技术实施例中另一种信息转换方法的流程图;
25.图10示出了本技术实施例中又一种信息转换方法的局部流程图;
26.图11示出了本技术实施例中进行训练时第一解码模型和第一编码模型的信息流示意图;
27.图12示出了本技术实施例中进行训练时第一解码器的信息流示意图;
28.图13示出了本技术实施例中进行训练时第一解码模型和第一编码模型的另一信息流示意图;
29.图14示出了本技术实施例中又一种信息转换方法的局部流程图;
30.图15示出了使用第二编码模型时的信息流示意图;
31.图16示出了训练第二编码模型时的信息流示意图;
32.图17示出了本技术实施例中一种信息转换装置的结构示意图;以及,
33.图18示出了本技术实施例中另一种信息转换装置的结构示意图。
具体实施方式
34.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
35.以下首先对本发明所使用的一部分术语进行介绍。
36.语音合成,也称文语转换(text
‑
to
‑
speech,tts),是将计算机可读的文字或者文字编码转换为拟人化的虚拟语音的过程。
37.语音识别(speech recognition),也称为自动语音识别(automatic speech recognition,asr),是将人类语音转换为计算机可读的文字或者指令的过程,是模式识别的一个重要分支。
38.编码器(encoder):即自动编码器(autoencoder)结构中的编码侧,用于将输入映射为编码(也称为隐变量、隐藏表示)。
39.解码器(decoder):即自动编码器结构中的解码侧,用于将编码映射为输出,通常情况下,该输出在一定程度上是对编码侧输入的重构。
40.tacotron模型:一种基于注意力(attention)机制的端到端常规语音合成模型,能够基于文本直接生成语音。
41.bert模型:即基于变换器的双向编码器表示模型(bidirectional encoder representations from transformers),是一种使用深度双向的无监督的语言表示、且仅使用纯文本语料库进行预训练的模型,属于自然语言处理的预训练技术,由谷歌公司(google inc.)与2018年提出,其主要目的是理解用户搜索语句的含义,抽取文本中包含的韵律信息。
42.对比预测编码(contrastive predictive coding,cpc)模型,一种非监督的通用算法,用于在高维度数据中提取有用的表示信息,其核心在于通过自回归模型来学习预测的隐变量表示。cpc模型通过构建噪声对比估计(noise contrastive estimator,nce)来优化损失函数,并使用对比损失概率(probabilistic contrastive loss)来引入最大化预测样本的信息的隐变量。
43.现有的语音合成技术方案主要可以分为两类,一类是端到端自回归语音合成方案,另一类是非自回归语音合成方案。
44.端到端自回归语音合成以tacotron方案为代表,采用一个典型的编码器
‑
解码器架构,编码器用于对输入的语言学特征进行编码建模,同时解码器通过自回归(auto
‑
regressive)逐帧生成声学特征。此时,编码器和解码器之间序列不等长的问题通常通过注意力机制来解决,即进行序列对齐。然而,自回归生成的序列往往不是模型的最优解。具体的,自回归方案通过将联合概率分解成若干条件概率的累乘来对模型进行训练,但是在使用模型进行语音合成的过程中,逐帧自回归所产生的每个声学特征只依赖此前已生成的声学特征,生成误差会逐渐累加,导致初始的误差不断放大,最终影响长时间语音的自然度。另一方面,自回归生成存在效率瓶颈,其逐帧依赖的生成过程导致无法对整个序列并行化的处理,其低下的效率带来了较高的系统时延,从而影响用户体验。此外,自回归方案所采用的注意力机制还存在稳定性问题。由于注意力机制中对权重的学习单纯由数据驱动,无法保证语音和文本之间序列对齐是准确的,这导致合成系统无法避免错误的发音,进一步影响用户体验。
45.非自回归语音合成以fastspeech、parallel tacotron为代表,抛弃了带来不稳定因素的注意力机制。这些方案采用额外的时长模块对文本序列进行上采样,从而获得与语音帧序列长度相同的序列,然后使用非自回归的解码器结构(如卷积网络、自注意力机制网络等)来预测目标声学特征序列。非自回归语音合成虽然在一定程度上可以规避自回归带来的部分问题,但同时也引入了新的问题。比如,非自回归语音合成通常采用最小均方误差(mean square error,mse)准则来训练模型。一方面,文本序列和语音帧序列之间元素的的对应是一对多的关系,但计算mse的本质是在统计上平均,因此会抹除语音信号中的高频变化成分,直接导致合成语音的音质和韵律较为单调,即自然度下降。另一方面,采用mse准则的训练是针对各个单帧独立进行训练,没有考虑语音帧序列的时序特性,因此生成的语音
缺乏多样性,同样会导致自然度较差。
46.因此,如背景介绍中所述,基于现有语音模型的语音合成系统的准确性和稳定性较差,其生成的语音所表现的韵律在多变的应用场景下容易产生较长的时延或者较大的误差,最终影响合成语音的自然度,使用户感觉语音不够真实。另外,在其他需要高表现力场景下的信息转换过程中也存在同样的问题。
47.本技术实施例的第一方面提供了一种信息转换方法,用于将输入信息转换为内容对应但类型不同的输出信息。可以理解,当输入信息和输出信息分别为文本信息和语音信息时,该信息转换方法能够特化为语音合成方法,但本技术实施例中的信息转换方法还可以有tts之外的其他应用场景,如asr、视频生成、视频标注等等。在本实施例中,上述信息转换方法可应用于包含第一编码模型和第一解码模型的自动编解码网络。该自动编解码网络可以通过硬件、软件、或两者的结合来实施。比如,该自动编解码网络可存在于由服务器和终端所构成的硬件环境中,服务器和终端之间通过网络进行连接,该网络包括但不限于局域网、城域网或广域网。此时,以上编码模型和解码模型可通过运行在服务器和终端上的软件来实现,或者通过内嵌于服务器和终端上的硬件中的命令来实现。需要注意的是,以上编码模型和解码模型也可全部运行在服务器或者终端上,本实施例对此不做限制。
48.请参考图1。图1是本技术实施例中一种信息转换方法的流程图。如图1所示,该信息转换方法包含以下步骤:
49.s200、调用第一编码模型对输入信息进行编码,得到第一特征。其中,前述第一特征至少包含该第一编码模型输出的n层第一编码,n为正整数。
50.在不同的应用场景中,输入信息可以表现为不同类型的信息。比如,在tts应用场景中输入信息包含文本信息,在asr应用场景中输入信息包含语音信息,在视频生成场景中输入信息包含图像信息、在视频标注场景中输入信息可以包含视频信息,等等。这里的文本信息可以表现为人类通过视觉或者触觉可以识别具体字符图形,也可以表现为机器可识别的文本代码。这里的语音信息可以表现为通过麦克风采集到的人声,也可以表现为存储介质中、由机器可识别代码构成的音频文件,如mp3文件、wav文件或者视频音轨文件。这里的图像/视频信息可以表现为通过摄像机、光学探测器阵列等图像采集设备采集到的图像/视频,也可以表现为存储介质中、有机器可识别代码构成图像/视频文件。可以理解,输入信息和以上各种信息还可以有其他的实现方式,本技术实施例不限于此。在一些实施例中,输入信息表现为与时间或者空间相关的输入序列。比如,文本信息为空间顺序的字符序列,图像信息为空间顺序的像素序列,语音信息为时间顺序的语音帧序列,视频信息为时间顺序的视频帧序列,等等。
51.第一编码模型为对输入编码进行编码操作的数学模型,其在信息转换过程中的信息流可参见图2的左半部分。图2是本技术实施例中一种信息转换方法的信息流示意图。从图2中可以看出,输入信息经过第一编码模型的处理,得到包含n层第一编码o1至o
n
。对于其中任意符合1≤n≤n的正整数n来说,第n层第一编码o
n
表征了输入信息中至少一个组成部分的特征。
52.当输入信息表现为序列时,序列中相邻元素的组合可以形成输入信息中的各个组成部分。作为示例,当输入信息为文本(或语音)时,其可以表示为字符序列(或语音帧序列)。此时,通过对相邻字符(或语音帧)的组合,可获得输入信息的一个或多个组成部分,每
个组成部分包含一个或多个字符(或语音帧),而相应的第一编码o
n
中各个元素用于表征这些组成部分的特征。因此,从某种意义上来说,第一编码o
n
对应了对字符序列(或者语音帧序列)中各元素到各组成部分的一种组合方式。通常情况下,不同层的第一编码o
n
所对应的组合方式不同。
53.当第一编码o
n
需要表征不止一个组成部分的特征时,其可以采用的向量的形式,即o
n
={o1,o2,
…
,o
i
}。其中,i表示第一编码o
n
所需表示的组成部分的数量,元素o
ni
表示第i个组成部分的特征,1≤i≤i。第一编码o
n
中各元素的排列顺序与其表征的组成部分在输入信息中的排列顺序相对应。当输入信息表现为序列时,序列中相邻元素的组合可以形成前述各粒度下的组成部分。此时,o
n
中排列靠前的元素所对应的组成部分在该时间序列中也位于较为靠前的位置。
54.由此可见,第一编码模型在信息转换过程中能够按照输入信息的结构来执行层次化的特征提取操作,从而使得第一特征中包含多种结构尺度下、输入信息各组成部分的特征信息。由于第一特征是后续解码的基础,丰富的层次化特征信息使得解码后能够充分还原输入信息的结构特性。
55.步骤400、调用第一解码模型对该第一特征进行解码,得到输出信息。其中,前述输出信息与前述输入信息为不同类型的信息。前述第一解码模型至少包含n层第一解码器,前述n层第一编码与该n层第一解码器一一对应。对任何1≤n≤n,第n层第一解码器对应于第n层第一编码,且第n层第一编码输入第n层第一解码器,对任何1≤n<n,第n+1层第一解码器的输出编码输入第n层第一解码器,第n+1层第一解码器的输出编码用于表征前述输出信息在第n层第一解码器对应粒度下的组成部分的特征。对任何1≤n<n,第n+1层第一解码器的对应粒度大于第n层第一解码器的对应粒度。
56.这里的粒度是指信息中组成部分的结构尺度。例如,对于一篇文章的文本信息或者语音信息,其在段落级别的粒度上可以划分为不同的段落,在句子级别的粒度上可以划分为不同的句子,在词语级别的粒度上可以划分为不同的词语,同时在字符级别的粒度上可以划分为不同的字符。由于段落、句子、词语、字符在结构尺度上依次减小,可以认为段落级别的粒度大于句子级别的粒度,句子级别的粒度大于词语级别的粒度,词语级别的粒度大于字符级别的粒度。当然,在上述粒度之外还可能包含其他粒度,例如篇章级别、子句级别的粒度,本技术不限定于此。
57.与输入信息类似,在不同的应用场景中,输出信息可以表现为不同类型的信息。比如,在tts应用场景中输出信息为语音信息,在asr应用场景中输出信息为文本信息,在视频生成场景中输出信息为视频信息、在视频标注场景中输出信息可以为图像或者文字信息,等等。可以理解,输出还可以有其他的实现方式,本技术实施例不限于此,只要在实际应用场景中与输入信息类型不同即可。在一些实施例中,输出信息表现为与时间或者空间相关的输出序列,此时,输入序列中的每个元素依序与输出序列中的一个或多个元素对应,或者输出序列中的每个元素依序与输入序列中的一个或多个元素对应。例如,在tts场景下,输入序列中的每个字符或者词语依序对应输出序列中的一个或多个语音帧,在asr场景下,输出序列中的每个字符或者词语依序对应输入序列中的一个或多个语音帧。
58.第一解码模型为对第一特征进行编码操作的数学模型,其在信息转换过程中的信息流可参见图2的右半部分。从图2中可以看出,第一特征中的每层第一编码均输入对应的
第一解码器,即第n层第一编码o
n
输入第n层第一解码器d
n
。除第n层第一解码器d
n
之外,各第一解码器的输入还包含其紧邻的上层第一解码器的输出编码,即第n+1层第一解码器的输出编码p
n+1
(图中未示出标记)输入第n层第一解码器d
n
。
59.第n层第一解码器d
n
的输入为即第n+1层第一解码器的输出编码p
n+1
(除第一解码器d
n
以外)和第n层第一编码器的输出编码o
n
,因此,与编码侧对应,p
n+1
表征了输出信息中至少一个组成部分的特征,且这些组成部分与o
n
所表征的输入信息的组成部分相互对应,从而使得第一解码器d
n
能够对这些特征进行解码。进一步的,第一解码器d
n
所对应的粒度即输出编码p
n+1
所表征的、输出信息的组成部分所具有的粒度。当输出信息表现为序列时,序列中相邻元素的多重组合方式可以形成多种粒度下的组成部分。这里的粒度是指输出信息在结构上的尺度,因此,第n+1层第一解码器d
n+1
的对应粒度大于第n层第一解码器d
n
的对应粒度,意味着p
n+1
所表征的组成部分在结构尺度上大于p
n
所表征的组成部分。作为示例,当输出信息为语音(或文本)时,其可以表示为语音帧序列(或字符序列)。此时通过对相邻语音(或字符)的组合,可获得分别由t(如1、4、8、16、32或64)个语音帧(或字符)构成的一系列组成部分。可以理解,t越大表示组成部分的粒度越大。在一个示例中,p
n+1
表征语音(或文本)中每32个语音帧(或字符)的特征,而p
n
表征语音(或文本)中每16个语音帧(或字符)的特征。在另一个示例中,p
n+1
表征语音(或文本)中每8个语音帧(或字符)的特征,而p
n
表征语音(或文本)中每4个语音帧(或字符)的特征。
60.也就是说,n层第一解码器构成级联的解码结构,每层第一解码器在解码时不仅要考虑同层第一编码所提供的各组成部分的特征,还会受到上层更大粒度的组成部分的特性的约束。这使得最终得到的输出信息充分参考了输入信息的结构特征,当输出信息和输入信息为不同长度的序列时,元素之间的对齐将会更加准确,从而保证了信息转换过程的稳定性。
61.由此可见,根据本技术实施例提供的信息转换方法,首先调用第一编码模型对输入信息进行编码得到第一特征,然后调用第一解码模型对第一特征进行解码,得到与输入信息类型不同的输出信息。其中,第一特征至少包含第一编码模型输出的n层第一编码,第一解码模型至少包含与n层编码依序一一对应的n层第一解码器,每层第一解码器的输入包含其对应的第一编码,且除第1层外还包含下一层第一解码器的输出编码。每层第一解码器的输出编码用于表征输出信息在其对应粒度下的组成部分的特征,且其对应粒度小于下一层第一解码器对应的粒度。本方案中的编解码过程使得输入信息中多个粒度下组成部分的特征被充分的捕捉,同时逐层解码的过程使得这些特征从整体到细节逐步解耦到生成的输入信息中,从而使得信息转换的准确性和稳定性大幅提升。当输入信息和输出信息分别为文本和语音时,这种层次化的编解码过程能够稳定、高效的生成具有高自然度的合成语音。
62.首先对本技术实施例中信息转换方法的编码步骤进行介绍。在一些实施例中,前述第一编码模型包含特征提取模块和对齐模块。请参考图3,此时步骤s200可包括以下步骤:
63.s220、调用特征提取模块对输入信息进行编码,得到输入特征。其中,所述输入特征为具有第一长度的特征序列。
64.本步骤主要对输入信息进行特征提取,以从其中获得在具体应用场景下所关心的特征。当输入信息体现为前述输入序列时,特征提取模块对输入序列所进行的操作可包括
但不限于非线性变换或者卷积操作。其中,卷积操作的卷积核和卷积步长的大小可根据具体场景下所关心的特征决定。在一些实施例中,考虑到输入序列(比如字符序列或者语音帧序列)的时间或者空间连续性,针对输入序列中某个或某几个元素所提取的特征会受到上下文元素的影响,此时特征提取模块可包含但不限于循环神经(recurrent neural network,rnn)网络,比如长短时记忆(long short
‑
term network,lstm)或者门控循环单元(gated recurrent unit)网络。在一些实施例中,考虑到输入序列上下文环境的多样性,前述所提取的特征在不同上下文环境中所受到上下文元素的影响并相同,此时特征提取模块可应用但不限于注意力机制,从而灵活的为上下文元素所施加的影响赋予不同的权重。进一步的,还可以采用多头注意力(multi
‑
head attention)机制,同时考虑在多个特征子空间中上下文元素所具有的权重。
65.请参考图5中特征提取模块部分的结构示意图,该提取模块采用了多头注意力机制,包含多头注意力层、第一求和归一化层、前馈层和第二求和归一化层。输入信息经过多头注意力层处理后与其自身在第一求和归一化层处进行叠加以及归一化处理,所得到的第一归一化向量经过前馈层处理后再和其自身在第二求和归一化层处进行叠加以及归一化处理,所得到的第二归一化向量返回输入到多头注意力层后重复上述处理,循环计算得到再一次得到第二归一化向量。继续上述循环,直到第6次得到第二归一化向量之后将其作为特征序列输出。可以理解,上述特征提取模块的结构仅为示例,实际应用中还可以采用其他结构,比如将循环次数从调整为其他数量。
66.经过特征提取之后,所获得的特征序列具有第一长度l
o
。当输入信息体现为前述输入序列时,该第一长度通常不大于输入序列的长度。
67.s240、调用对齐模块将所述输入特征转换为所述第一特征。其中,各层第一编码为具有预设长度的序列,且对任何1≤n<n,第n层第一编码的预设长度大于第n+1层第一编码的预设长度。
68.本步骤主要对输入序列进行长度变换,以使最终得到的第一特征中各层第一编码适用于后续多层第一解码器的解码操作。如前所述,p
n+1
所表征的组成部分在结构尺度(即粒度)上大于p
n
所表征的组成部分,在输出信息中相邻组成部分之间冗余最小(即部分重叠最小)的情况下,p
n+1
中元素的数量小于p
n
中元素的数量。考虑p
n+1
和o
n
之间的对应关系,相应的第一编码o
n
中元素的数量也小于o
n
‑1中元素的数量。也就是说,对任何1≤n<n,第n层第一编码的预设长度l
n
大于第n+1层第一编码的预设长度l
n+1
。比如,以输入信息为文本的字符序列为例,如果文本包含5个段落,且每个段落分分别包含10、12、13、5、6个句子,那么当第n+1层第一编码用于表征各个段落的特征、第n层第一编码用于表征各个句子的特征时,第n+1层第一编码中含有5个元素,为预设长度l
n+1
=5的序列,第n层第一编码含有10+12+13+5+6=46个元素,为预设长度l
n
=46的序列。
69.由此可见,步骤s240所获得的第一特征中包含从第1层向第n层预设长度逐渐递减的序列。在一些实施例中,上述预设长度可以按照一定的倍数逐渐递减,此时对齐模块可以通过一系列池化操作来得到n层第一编码。
70.在一些实施例中,前述对齐模块可包含采样预测层、采样层和池化层。请参考图4。图4为本技术实施例中一种信息转换方法的局部流程图。在图3的基础上,步骤s240可包含以下步骤:
71.s242、调用前述采样预测层获取前述特征序列中各元素与对齐序列中各元素之间的对应关系。
72.s244、调用前述采样层根据前述对应关系对前述初始序列进行目标采样,得到具有目标长度的前述对齐序列。
73.步骤s242和s244主要通过采样来获得对齐序列,这里对齐序列可视为n层第一编码(即具有预设长度l1序列)的池化前状态,而特征序列中各元素与对齐序列中各元素决定了具体的采样过程。通常情况下,前述对应关系表现为特征序列中各元素所对应的对齐序列中各元素之间的数量对应关系,该关系由具体应用场景中输入信息和输出信息的形式所决定。
74.若特征序列中的每个元素对应对齐序列中的一个或多个元素,采样层执行的采样过程可包含上采样,且所述目标长度l
t
大于所述第一长度l
o
。比如,输入信息可以为文本单元构成的序列,其中每个文本单元为对应于单音素的文本看,或者,输入信息还可以为文本特征构成的序列,其中各文本特征用于表征文本中依序排列的结构切分段的特征输入信息为字符序列。以tts场景为例,对应的输出信息可以为语音帧序列,则采样预测层可对每个文本单元或者每个结构切分段(如字符)的发音时长进行预测,即根据发音预测机制来确定单个文本单元或者单个结构切分段对应的语音帧。此时,前述对应关系可根据各文本单元或结构切分段的发音时长所对应的语音帧数量来确定,采样模块对特征序列进行上采样,若文本单元或结构切分段对应x各语音帧,则该文本单元或结构切分段对应的特征序列中的特征被扩展为对齐序列中长度为x的子序列,从而使得目标长度l
t
大于第一长度l
o
。
75.类似的,在视频生成场景中,输入信息为图像序列,输出信息为视频帧序列,此时,特征序列中各图像的特征需要经过上采样“扩展”为对齐序列中与一系列视频帧对应的子序列,该子序列的长度由与该图像对应的视频帧数量确定。
76.若对齐序列中的每个元素对应特征序列中的一个或多个元素,采样层执行的采样过程可包含下采样,且所述目标长度l
t
小于所述第一长度l
o
。比如,输入信息为语音帧构成的序列,或者为语音帧的语音特征构成的序列。以asr场景为例,对应的输出信息为与音素对应的字符序列,则采样预测层可对语音帧构成的序列进行音素切分,即根据音素边界来确定对应于单个音素的语音帧。此时,前述对应关系可根据各字符(或字符串)对应的音素所包含的语音帧来确定,采样模块对特征序列进行下采样,若y个语音帧对应于单个音素,则该y个音素所对应的、特征序列中的子序列被压缩为对齐序列中的单个元素,从而使得目标长度l
t
小于第一长度l
o
。
77.类似的,在视频流标注场景中,输入信息为视频帧序列,输出信息为图像序列或者标签序列,此时,特征序列中若干视频帧的特征构成的子序列需要经过下采样“压缩”为对齐序列中的单个图像或者单个标签,该子序列的长度由于该图像或者该标签对应的视频帧数量确定。
78.可以理解,上述tts、asr、视频生成和视频流标注场景仅为示例,本技术实施例不限于此,在实际应用中还可以为具有其他形式输入信息和输出信息的场景。
79.步骤s260、调用前述池化层对前述对齐序列进行池化,得到前述n层第一编码。
80.在对齐序列的基础上,步骤s260使用池化层来获得各层第一编码,其具体实施方式与池化层的具体结构相关。在一些实施例中,可以通过逐步池化在获得各层第一编码。请
参考图5中池化层部分的结构示意图。在图5中,池化层包含n层子池化层,即第1子池化层至第n子池化层。所述n层第一编码依序一一对应的n层子池化层,即对任何1≤n≤n,第n层第一编码对应第n子池化层。此时,步骤s260可包含如下步骤:
81.s262、调用第1层第一编码对应的子池化层对前述对齐序列进行池化,得到第1层第一编码。
82.在图5中,从采样层输出的对齐序列(未示出)首先被输入第1子池化层,来获得第1层第一编码o1。
83.s264、调用第i+1层第一编码对应的子池化层对第i层第一编码进行池化,得到第i+1层第一编码,其中1≤i<n。
84.在图5中,从第1子池化层输出的第1层第一编码o1被输入第2子池化层来获得第2层第一编码o2,从第2子池化层输出的第2层第一编码o2被输入第3子池化层来获得第3层第一编码o3(图中未示出标记),以此类推,直到从第n
‑
1子池化层输出的第n
‑
1层第一编码o
n
‑1(图中未示出标记)被输入第n子池化层来获得第n层第一编码o
n
。由此,可获得所有的n层第一编码。
85.在具体应用场景中,每层子池化层的池化可以为最大值池化、最小值池化、均值池化,或者卷积池化。每层子池化层的步长可以根据实际需求来进行设定,比如,考虑各层第一编码为具有预设长度的序列的情况,若对齐序列长度为l
t
,第n子池化层的窗口大小为w
n
,步长为s
n
,填充值(padding)为p
n
,则第一编码o
n
的长度l
n
为:
[0086][0087]
以tts场景为例,可将第1子池化层的池化窗口和步长均设置为8,其余子池化层的池化窗口和步长设置为2。假设池化过程中的填充值均为0,则第1层第一编码o1的预设长度为l1为l
t
/8,第2层第一编码o2的预设长度l2为l
t
/16,第3层第一编码o3的预设长度l3为l
t
/32,以此类推。
[0088]
应当理解,以上逐步池化在获得各层第一编码仅为一种示例性的实施方式。在一些实施例中,还可以调用第i+1层(1≤i<n)第一编码对应的子池化层对第i层第一编码之前的其他第一编码、甚至直接对对齐序列进行池化来得到第i+1层第一编码。比如,在上述示例中,预设长度l3为l
t
/32第3层第一编码o3可通过第3子池化层对第1层第一编码o3进行窗口和步长为4的池化来获取,也可以通过第3子池化层对对齐序列进行窗口和步长为32的池化来获取。
[0089]
应当理解,在一些实施例中,对齐序列和第1层第一编码可以相同,此时,池化层中可以仅包含n
‑
1层子池化层,即在前述实施例中省略第1层第一编码对应的子池化层,将采样层输出的对齐序列(或第1层第一编码)直接输入第2层第一编码对应的子池化层。
[0090]
应当理解,为了简洁,图5中虽然示出了特征提取模块和对齐模块各自的结构,但并不意味二者的结构存在必然的关联。使用图5中特征提取模块结构的第一编码模型还可以使用其他具有合适结构的对齐模块,同时,使用图5中对齐模块结构的第一编码模型还可
以使用其他具有合适结构的特征提取模块。
[0091]
需要注意,获取对齐序列的目的是为了通过池化来进一步得到适用于后续各层第一解码器的第一编码,从而在后续解码过程中通过各层第一编码得到输出信息。因此,对齐序列的长度实质上与所需输出信息的结构息息相关。上述技术方案使用采样预测层根据输出信息的结构、显式的为从特征序列中每个元素赋予扩展系数或者压缩系数,这一过程不需要依赖于纯数据驱动的注意力机制,因此能够更准确的根据应用场景的需求(即所需输出信息的结构)完成信息转换,增强信息转换过程的稳定性。
[0092]
接下来对本技术实施例中信息转换方法的解码步骤进行介绍。在一些实施例中,与第一解码模型中的n层第一解码器相对应,步骤s400中的解码逐层进行。图6示出了本技术实施例中一种信息转换方法的局部流程图,在图1的基础上,步骤s400可包括以下步骤:
[0093]
s420、调用第n层第一解码器,根据第n层第一编码获得第n层第一解码器的前述输出编码。
[0094]
s440、对任何1≤n<n,调用第n层第一解码器,根据第n层第一编码和第n+1层第一解码器的前述输出编码获得第n层第一解码器的前述输出编码。
[0095]
步骤s420和s440即从第n层向第1层的解码过程,其具体的过程可参考前述对图2中右侧部分的描述,这里不再重复。需要注意,图6中仅示出了s440的一种示例性逻辑实施方式,即:令n=n
‑
1,先执行第n层第一解码器的解码过程,再判断执行后所得到的是否是最后一层(即第1层)解码器的输出编码,如果是则进入步骤s460,如果否则执行继续执行第n
‑
1层第一解码器的解码。在实际应用中,s440还可以采用其他的逻辑实施方式,比如不经过循环直接依序执行第n
‑
1层到第1层第一解码器的解码。
[0096]
通常情况下,输入信息是通过采集所获得自然信息,而输出信息是通常是模仿另一种自然信息的合成信息。这里的自然信息可以为人声、语言文字、拍摄的图像或者视频等等,其中不可避免的会受到一些噪声(或者随机扰动)的影响。输入信息中的随机扰动会随着编码侧的解码反应在n层第一编码中,而输出信息在一定程度上希望能够模仿这种随机扰动以增强其多样性。为了增强整个编解码网络在使用中对这些影响的鲁棒性并使最终的输出信息更加自然,可以在第一解码器进行解码时引入符合特定分布的随机量。在一些实施例中,步骤s400还包括以下步骤:
[0097]
s410、根据第n层第一解码器对应的预设分布进行采样,获得第n层采样编码。
[0098]
步骤s410在步骤s420之前执行。相应的,在步骤s420中,除第n层第一编码之外,第n层第一解码器还根据第n层采样编码获得第n层第一解码器的输出编码。
[0099]
和/或,步骤s400还包括以下步骤:
[0100]
s430、根据第i层第一解码器对应的预设分布进行采样,获得第i层采样编码,其中,1≤i<n。
[0101]
步骤s430在步骤s440中调用第i层第一解码器进行解码之前执行。相应的,在步骤s440中,除第i层第一编码和第i+1层第一解码器的、输出编码之外,第i层第一解码器还根据第i层采样编码获得第i层第一解码器的输出编码。
[0102]
步骤s410和s430可以使相应的第一解码器的输出编码相对输入信息中的扰动更加稳定,也可以使该输出编码自身在准确解码的基础上具有一定的多样性。在一些实施例中,相应的第一解码器可以基于流模型,如基于标准化流模型,此时前述预设分布为标准正
态分布。进一步的,在一些实施例中,该流模型可以采用生成式流模型(generative flow,glow)结构。流模型和glow模型的一般性细节可参考现有技术,本技术实施例不做赘述。
[0103]
进一步的,在一些实施例中,基于流模型的第一解码器可以包含激活标准化层、可逆卷积层和仿射耦合层。图7示出了本技术实施例中一种第一解码器的结构示意图。如图7所示,步骤s440中调用第i层第一解码器获得第i层第一解码器的所述输出编码的步骤包含m个循环。其中,m为正整数,可以根据具体的应用场景进行设定,比如设置为12。每个循环包括以下步骤:
[0104]
s442、调用前述激活标准化层根据第一输入和第二输入获得第一中间编码。
[0105]
s444、调用前述可逆卷积层根据前述第一中间编码获得第二中间编码。
[0106]
s446、调用前述激活标准化层根据前述第二中间编码获得循环输出编码。
[0107]
其中,第1个循环的第一输入为第i层采样编码,第j个循环的第一输入为第j
‑
1个循环输出编码,且第m个循环的循环输出编码为所述第i层第一解码器的输出编码p
i
,其中1<j≤m。第二输入为第i层第一编码和第i+1层第一解码器的输出编码。
[0108]
与步骤s440类似,步骤s420中调用第n层第一解码器获得第n层第一解码器的所述输出编码的步骤也可以包含m个循环。每个循环的步骤参见上述步骤s442至s446,区别仅在于此时第二输入为第n层第一编码,简洁起见,其余细节不做赘述。
[0109]
由此可见,上述技术方案中使用的第一解码模型可基于多流模型,该结构本质上是一个适用于并行处理序列的模型,因此并不需要依赖自回归结构。这种架构一方面能够从整个序列的层面上找到最优解,另一方面能够更好的防止自回归模型随序列逐渐累积的解码误差。
[0110]
在步骤s440之后,步骤s400的具体流程进入步骤s460。
[0111]
s460、根据第1层第一解码器的输出编码获得前述输出信息。
[0112]
步骤s460以最后一层解码器的输出编码作为获取输出信息的基础。在一些实施例中,可以直接将第1层解码器的输出编码作为输出信息。以tts场景为例,第1层解码器的输出编码可以为语音帧的特征信息,则此时的输出信息为语音帧的特征序列。以asr场景为例,第1层解码器的输出编码可以为文本结构切分段(如字符或者词语)的特征序列,则此时的输出信息为文本结构切分段的特征序列。在另一些实施例中,还可以对第1层解码器的输出编码进行进一步的处理以获得输出信息。以tts场景为例,第1层解码器的输出编码可以为语音帧的特征序列,则此时可将这些语音帧特征序列输入声码器,将声码器解码得到的语音波形作为输出信息。以asr场景为例,第1层解码器的输出编码可以为文本结构切分段(如字符或者词语)的特征序列,则此时可对这些特征序列进行进一步解码,将获得的文本(如字符序列或者词语序列)作为输出信息。
[0113]
在前述tts场景中,该声码器可以作为第一解码模型的一部分。在一些实施例中,前述输出信息为语音波形。请参考图8,在图2的基础上,前述第一解码模型还包含声码器。此时,步骤s460包括以下步骤:s462、调用前述声码器对第1层第一解码器的输出编码进行解码,获得前述语音波形。
[0114]
以上介绍了本技术实施例中的信息转换方法的编码部分和解码部分。在一些实施例中,前述信息转换方法可以直接调用预设的第一编码模型和第一解码模型来完成信息转换。在另一些实施例中,第一编码模型和第一解码模型需要通过训练获得。图9示出了本申
请另一种信息转换方法的流程图,在图1的基础上,该信息转换方法在步骤s200之前还包括以下步骤:
[0115]
s100、基于第一样本集对初始第一编码模型和初始第一解码模型进行训练,获得前述第一编码模型和前述第一解码模型。其中,前述第一样本集包含至少一个输入样本和至少一个输出样本,且输入样本和输出样本一一对应。可以理解,通常情况下输入样本与前述输入信息为同一类型,输出样本与前述输出信息为同一类型。这里对应的输入样本和输出样本可称为“输入
‑
输出样本对”。另外,前述初始第一编码模型与前述第一编码模型对应,且前述第一解码模型包含与前述n层第一解码器d1至d
n
依序一一对应的n层初始第一解码器d
01
至d
0n
。也就是说,对任何1≤n≤n,第n层第一解码器d
n
与第n层初始第一解码器d
0n
对应。前述初始第一编码模型和初始第一解码模型共同构成了初始编解码网络。
[0116]
以下将对第一编码模型和第一解码模型的训练进行进一步介绍。在一些实施例中,可以利用额外的编码模型对输出样本进行处理,以通过输出样本的相应特征在训练过程中各层初始第一解码器的结果进行逐层校准。请参考图10,在图9的基础上,步骤s100可包括以下步骤:
[0117]
s120、调用第二编码模型对各输出样本进行编码,得到各输出样本的目标特征。
[0118]
s140、将各输入样本输入前述初始编码模型,并将各输出样本的前述目标特征输入前述初始解码模型。
[0119]
s160、调整前述初始编码模型和前述初始解码模型的参数,直到第一损失达到第一预设条件。其中,前述初始编码模型和前述初始解码模型根据各输出样本的前述目标特征和各输入样本计算得到所述第一损失。
[0120]
步骤s110中所得到的目标特征即用于从解码侧对初始第一解码器进行校准的特征。将每个输入样本和其对应输出样本的目标特征输出初始编解码网络,初始编解码网络可以据此得到该输入
‑
输出样本对的损失值,用来表征当前初始编解码网络对应的编解码过程在该输入样本与输出样本之间产生的不匹配程度。综合所有输入
‑
输出样本对的损失值即可得到第一损失,来表征当前初始编解码网络对应的编解码过程在整个样本集上产生的不匹配程度。通常情况下,第一损失越大,意味着不匹配的程度越大,因此步骤s160的本质是通过迭代调整初始编解码网络的参数来实现最小化第一损失这一目标。
[0121]
为了在训练中更加有针对性的对各个解码器的参数进行调整,可以考虑将前述在整个样本集上产生的不匹配程度分解为在n层第一解码器处产生的不匹配程度,即将第一损失分解为n个子损失。图11示出了本技术实施例中在训练初始编解码网络时的信息流示意图。在一些实施例中,前述目标特征包含n层目标编码q
01
至q
0n
,前述第一损失包含n个第一子损失l
11
至l
1n
,且前述n层目标编码q
01
至q
0n
和前述n各第一子损失l
11
至l
1n
均与前述n层初始第一解码器d
01
至d
0n
依序一一对应。也就是说,对任何1≤n≤n,第n层目标编码q
0n
和第n个第一子损失l
0n
均与第n层初始第一解码器d
0n
对应。此时,前述n个第一子损失l
11
至l
1n
可根据以下步骤获得。
[0122]
首先,调用前述初始编码模型对各输入样本进行编码,得到样本特征,其中,前述样本特征包含n层初始第一编码o
01
至o
0n
。这里对每个输入样本进行编码得到对应样本特征的过程可参照前述步骤s200中对输入信息进行编码得到第一特征的步骤,其中n层输出第一编码o
01
至o
0n
与前述n层第一编码o1至o
n
类似,此处不再赘述。
[0123]
然后,调用前述初始第一解码模型对各输入样本的前述样本特征进行解码,得到各输入样本的预测特征。其中,前述预测特征包含n层预测编码p
01
至p
0n
,第n层初始第一解码器根据第n层初始第一编码获得第n层预测编码,且对于任何1≤n<n,第n层初始第一解码器根据第n层初始第一编码o
0n
和第n+1层目标编码q
n+1
获得第n层预测编码p
0n
。这里对样本特征进行解码得到n层预测编码的过程与步骤s400中对第一特征进行解码得到n层第一解码器d
n
的输出编码p
n
的过程类似,但二者之间具有以下区别。
[0124]
前述步骤s400为合成过程中的解码,其中n层第一解码器的数据处理是级联的,即在1≤n<n时第n层第一解码器的解码过程会使用第n+1层第一解码器的输出编码p
n+1
,因此每层第一解码器的输出编码均会受到其上层所有第一编码器的影响。相比之下,本步骤为训练过程中的解码,n层初始第一解码器的数据处理是并行的,即在1≤n<n时第n层第一解码器的解码过程并不依赖其上层第一解码器的输出编码p
0(n+1)
,而是使用第二编码器模型输出的第n+1层目标编码q
0(n+1)
。这样,第一初始解码器的输入实质上来自于输入样本(其体现为同层的初始第一编码)和对应的输出样本(其体现为上层的目标编码),因此在初始编解码网络参数的迭代调整过程中,各层第一初始解码器所输出的预测编码仅会受到其自身参数和第一编码模型参数的影响,而彼此之间产生的干扰极小。这种每层相对独立的第一初始解码器训练机制有助于第一损失在迭代调整的过程中尽快收敛。
[0125]
接下来,对任何1≤n≤n,根据各输入样本的第n层预测误差e
n
,得到第n个第一子损失l
1n
,其中,所述第n层预测误差e
n
用于表征各输入样本的第n层目标编码q
0n
和第n层预测编码p
0n
之间的差异。预测误差e
n
越大,意味着目标编码q
0n
和预测编码p
0n
之间的差异越大。从前序步骤中可以看出,第n层目标编码q
0n
反应了输出样本在第n层第一解码器d
n
对应粒度上的特征信息,而第n层预测编码p
0n
为第n层初始第一解码器d
0n
在输入样本对应该粒度的特征(即第n层初始第一编码o
0n
表征的特征)的约束下、根据输出样本在更大粒度上的特征信息(即q
0(n+1)
反应的信息)进行解码而对q
0n
进行的预测。因此,第n层预测误差e
n
能够表征当前初始编解码网络的编解码过程在对应输入
‑
输出样本对上产生的不匹配。
[0126]
本步骤中,每个输入样本的第n层预测误差e
n
可以为但不限于第n层目标编码q
0n
和第n层预测编码p
0n
之间的差值或者比值,本技术实施例对此不做限定,只要能表征二者之间的差异即可。随后可根据每个输入样本的第n层预测误差e
n
计算第一子损失l
1n
,第一子损失l
1n
可以为各输入样本的第n层预测误差e
n
的加和,也可以对各输入样本计算权重之后对所有预测误差e
n
进行加权。可以理解,以上计算方法仅为示例性实施方式,本技术实施例不限于此。
[0127]
第一损失包含n个第一子损失l
11
至l
1n
。针对n层初始第一解码器执行前述步骤之后,可根据n个第一子损失l
11
至l
1n
后进一步获得第一损失,并判断第一损失是否达到第一预设条件。在一些实施例中,前述第一预设条件包含以下条件中的至少一个。首先,所有第一子损失均小于各自对应的第一阈值。该条件意味着在每层第一解码器对应的粒度下,初始编解码网络根据各输入
‑
输出样本对所预测的特征和各输出样本的实际特征均能够很好的匹配,即对第一初始编码模型和每个初始第一解码器的训练均达到了预设的水平。其次,各第一子损失的符合预设的第一分布,比如其平均值和方差/标准差均位于预设的区间内。该条件意味着初始编解码网络在所有粒度下进行的预测在整体上能够较好的与各输入
‑
输出样本匹配,即对初始编解码网络的训练在整体上达到了预设的水平。第三,通过前述调整
计算第一损失的迭代次数超过第二阈值。该条件意味着对初始编解码网络的训练已经执行了相对充分的时间或者使用了相对充足的运算资源。在达到第一预设条件之后,可以终止训练过程,即停止对初始编解码网络参数的迭代调整,并将此时的初始第一编码模型和初始第一解码模型分别作为第一编码模型和第一解码模型应用于后续的信息转换过程。
[0128]
以上训练方法主要描述了针对第一编码模型和第二解码模型(或各层第二解码器)的联合训练,其中采用了各层第二解码器相对独立的训练模式。可以理解,在一些实施例中,还可以采用各层第二解码器逐层依赖的训练模式,该模式完全对应于信息转换过程,仅需将前述过程中根据第n层初始第一编码o
0n
和第n+1层目标编码q
n+1
获得第n层预测编码p
0n
的过程替换为根据第n层初始第一编码o
0n
和第n+1层预测编码p
n+1
即可,其余细节与前述过程一致,这里不在重复描述。
[0129]
在另一些实施例中,第一损失中还可以包含其他形式的子损失。例如,如前所述,在一些实施例中第一解码器d
i
可基于流模型,包含激活标准化层、可逆卷积层和仿射耦合层。考虑到流模型中各层的运算均是可逆的,训练过程还可以包含针对流模型的独立训练。请参考图12,与图7所示的信息转换过程类似,该训练过程包含m个循环。针对第i层初始第一解码器d
0i
,可以将各输出样本的目标编码q
0i
输入激活标准化层,然后经可逆卷积层处理后,与目标编码q
0(i+1)
和初始第一编码o
0i
(当i=n时仅有初始第一编码o
n
)共同输入仿射耦合层,并将仿射耦合层的输出重新输入激活标准化层。在完成m个循环之后,仿射耦合层的输出为各输出样本的编码z
0i
。此时,可通过比较所有输出样本对应编码z
0i
的分布与预设分布之间的差异,来获得分布子损失l
di
。相应的,此时第一预设条件还可以包含:前述分布子损失l
di
小于其对应的预设阈值。在一些实施例中,可利用如下公式构建涉及初始第一解码器d
0i
的目标函数:
[0130][0131]
其中,p(q
0i
|q
0(i+1)
,o
0i
)表示目标编码q
0i
相对目标编码q
0(i+1)
和初始第一编码o
0i
的后验分布,p
z
为前述预设分布,z
0i
=f(q
0i
,q
0(i+1)
,o
0i
),f即图12所示的初始第一解码器d
0i
所表示的函数,也可视为图7所示的第一解码器d
i
表示的函数针对z
0i
的逆函数。
[0132]
另外,如前所述,在一些实施例中,前述输出信息为语音波形,前述第一解码模型还包含声码器。此时,前述训练过程还包含对声码器的训练,第一损失中还包含涉及声码器的第二子损失l2。请参考图13,与图8涉及的实施例相对应,前述输出样本为语音波形,前述始第一解码模型还包含初始声码器。此时,前述训练过程那种调用初始第一解码模型对样本特征进行解码的步骤,还包括以下步骤:调用前述初始声码器对第1层初始解码器对应的目标编码进行解码,获得重构语音波形。其中,前述第二子损失l2可根据前述语音波形和前述重构语音波形获得。相应的,第一预设条件还可以包含:前述第二子损失l2小于其对应的预设阈值。
[0133]
以上训练方法主要利用了第二编码模型来获得目标编码,以对初始编解码网络的编解码过程在各输入
‑
输出样本对上产生的失配进行评估。因此,第二编码模型能否准确的解析输出样本以生成合适的目标编码直接影响到能否获得良好的编解码网络,从而影响信息转换的准确性和稳定性。以下将对获得第二编码模型的过程进行描述。
[0134]
请参考图14,在图10的基础上,在步骤s120之前,该信息转换方法还包括以下步骤
(未示出):s110、基于第二样本集对初始第二编码模型进行训练,获得前述第二编码模型。其中,前述第二样本集包含至少一个或者多个训练样本。可以理解,这里的训练样本与前述第一样本集中的输出样本、以及信息转换所得到的输出信息的类型相同。在图14中,步骤s110包括以下步骤:
[0135]
s112、将前述第二样本集输入前述初始第二编码模型。
[0136]
s114、对前述初始第二编码模型的参数进行调整,直到第二损失符合第二预设条件。
[0137]
与步骤s160类似,步骤s114也通常体现为对模型参数的迭代调整过程,并在每次迭代之后判断是否满足预设条件。
[0138]
在一些实施例中,第二编码模型可通过无监督环境下的训练获得,这种训练能够通常能够使用丰富的样本库来保证训练效果。当信息转换所获得的输出信息为输出序列时,训练样本与输出样本也同样为时间或者空间上的序列,此时第二编码模型的编码过程与对应的初始第二编码模型的训练过程可充分利用序列中的长下文信息。请参考图15,在一些实施例中,第二编码模型包含特征模块、上下文模块和下采样模块。此时,步骤s120可包括以下步骤:
[0139]
s122、调用前述特征模块对输出样本x={x1,x2,
…
,x
m
}进行非线性变换,获得第三中间编码z={z1,z2,
…
,z
t
}。这里将输出样本表示为长度为m的序列x,将第三中间编码表示为长度为t的特征序列z。在一些实施例中,特征模块从输出样本x中每个元素提取得到对应的特征,此时有m=t。比如,当输出样本为文本时,x1至x
m
分别表示该文本中依序排列的文本单元,如字符或者词语,此时21至2
m
可分别表示m各文本单元的特征。再比如,当输出样本为语音时,x1至x
m
分别表示该语音中依序排列的语音帧波形,此时z1至z
m
可分别表示m各语音帧的声学特征。
[0140]
s124、调用前述上下文模块对前述第三中间编码z={z1,z2,
…
,z
t
}进行上下文处理,获得第四中间编码c={c1,c2,
…
,c
t
′
}。这里将第四中间编码表示为长度为t'的特征序列c。通常情况下,上下文处理能够依序针对第三中间编码z中每个元素所处的上下文环境提取对应的特征,此时有t'≤t。在一些实施例中,上下文模块可通过rnn模型实现,例如单向或者双向的lstm模型或者gru模型。
[0141]
s126、调用前述下采样模块对前述第四中间编码c={c1,c2,
…
,c
t
′
}进行下采样,获得所述目标特征。其中,前述下采样模块对所述第四中间编码c={c1,c2,
…
,c
t
′
}进行不同频率的下采样以获得所述n层目标编码中不同层的目标编码。如图15所示,可通过对第四中间编码c={c1,c2,
…
,c
t
′
}进行频率为1/k
i
的下采样来获取第i层目标编码q
0i
,其中1≤i≤n。可以理解,经过下采样之后,目标编码q
0i
中每个元素对应第四中间编码c中的k
i
个元素。
[0142]
从步骤s122和s124可以看出,第四中间编码c每个元素反映了输出样本中对应组成部分(即序列x中对应元素)的上下文特征。在进行频率1/k
i
的下采样之后,与第四中间编码c相比,目标编码q
0i
中每个元素所对应的、输出样本的组成部分在结构尺度上扩大了k
i
倍。因此,所选用的采样频率1/k
i
取决于目标编码q
0i
中每个元素所对应的输出样本组成部分的结构尺度。进一步考虑输出样本与输出信息、第一初始解码器与第一解码器之间的对应关系,可知k
i
实质上取决于信息转换过程中(参考步骤s400)第i层第一解码器d
i
所对应的
粒度。作为示例,输出信息和输出样本均为语音帧序列,第1层至第4层第一解码器所对应的粒度分别为8、16、32、64个语音帧。此时,目标编码q
01
至q
04
中每个元素分别对应输出样本中8、16、32、64个语音帧,若第四中间编码c中每个元素为单个语音帧的上下文声学特征,则k1至k4分别为8、16、32、64。由此可见,采用上述结构的第二编码模型能够将高密度的特征序列(即第四中间编码)抽象为低密度的特征序列(即目标编码),使用不同频率的下采样来表征输出样本中不同粒度成分的特征,从而准确的适配第一初始解码模型的输入要求,完成对初始编解码网络的校准。
[0143]
接下来继续描述步骤s110中的训练过程。由于k
i
由第i层第一解码器d
i
决定,下采样模块通常不需要进行参数调整,因此在前述第二编码模型结构的基础上,训练第二编码模型的过程主要涉及对特征模块和上下文模块的参数调整。在一些实施例中,前述初始第二编码模型包含分别与前述特征模块和前述上下文模块对应的初始特征模块和初始上下文模块,前述第二损失包含分别与前述n层目标编码q
01
至q
0n
依序一一对应的n个第三子损失l
31
至l
3n
。也就是说,对任何1≤n≤n,第n层目标编码q
0n
对应第n个第三子损失l
3n
。
[0144]
此时,前述第二编码模型可基于cpc模型。请参考图1在一些实施例中,目标编码q
0i
所对应的第三子损失l
3i
根据以下步骤获得:
[0145]
首先,调用前述初始特征模块对各训练样本x0={x
01
,x
02
,
…
,x
0r
}进行非线性变换,获得该训练样本的特征序列z0={z
01
,z
02
,
…
,z
0s
}。这里将训练样本表示为长度为r的序列x0,将特征序列表示为长度为s的特征序列z0。本步骤与步骤s122类似,具体的细节可参考步骤s122,这里不在重复描述。
[0146]
随后,调用前述初始上下文模块前述特征序列z0={z
01
,z
02
,
…
,z
0s
}进行特征抽取,获得该训练样本的上下文序列c0={c
01
,c
02
,
…
,c
0s
′
},其中,所述上下文的长度s不大于特征序列的长度s。本步骤与步骤s124类似,具体的细节可参考步骤s124,这里不在重复描述。
[0147]
然后,在前述上下文序列c0={c
01
,c
02
,
…
,c
0s
′
}中选择至少一个元素c
0s
作为锚点。其中,元素c
0s
表示上下文序列c0中的第s个元素。本技术实施例对每个样本的锚点数量不做限制,可根据实际应用场景选择所需数量的锚点。可以理解,锚点最多可以选择s'个,即将上下文序列c0中每个元素均作为锚点。锚点数量越多越有助于获得准确的第二编码模型,但相应的会增加训练第二编码模型的运算量。
[0148]
接下来,对每个锚点c
0s
,根据目标范围从前述特征序列z0={z
01
,z
02
,
…
,z
0s
}中选择该锚点的正样本z
0p
和至少一个负样本{z
0n
},并根据锚点c
0s
、正样本z
0p
和负样本z
0n
确定锚点c
0s
的nce。在一些实施例中,可以使用如下公式来计算nce:
[0149][0150]
其中,e为系数,z
0nj
为负样本集合{z
0n
}中的负样本,f(c
0s
,z
0t
)=exp(c
0s
′
·
z
0t
)。前述目标范围基于k
i
的数值和该锚点在所述上下文序列中的位置确定,可设定为[s,s+k
i
],即特征序列z0中第s个元素至第s+k
i
个元素。正样本z
0p
为特征序列z0中位于目标范围中的元素,即p∈[s,s+k
i
]。每个负样本z
0n
均为所述特征序列z0中不位于所述目标范围中的元素,即如果有j个负样本z
0n1
至z
0nj
,则对任意1≤j≤j,有。
[0151]
随后,基于每个锚点c
0s
的nce,确定该训练样本x0的目标损失。通常情况下,目标损失和每个锚点c
0s
的nce正相关。在本步骤中,目标损失可以为各锚点c
0s
的nce的累加、平均值、加权或者乘积,本技术实施例对此不做限制,只要目标损失能够表征训练样本x0中所有锚点c
0s
的nce即可。
[0152]
最后,基于各训练样本的目标损失,确定该第三子损失l
3i
。在本步骤中,第三子损失l
3i
可以为各训练样本x0的目标损失的累加、平均值、加权或者乘积,本技术实施例对此不做限制。
[0153]
经过以上步骤,可以得到目标编码q
0i
所对应的第三子损失l
3i
。在得到n层目标编码q
01
至q
0n
的第三子损失l
31
至l
3n
之后,即可得到第二损失,并判断所获得的第二损失是否达到第二预设条件。与前述第一预设条件类似,在一些实施例中,前述第一预设条件包含以下条件中的至少一个。首先,所有第三子损失均小于各自对应的第三阈值。其次,各第三子损失的符合预设的第二分布,比如其平均值和方差/标准差均位于预设的区间内。第三,通过前述调整计算第一损失的迭代次数超过第四阈值。在达到第二预设条件之后,可以终止训练过程,即停止对初始第二编码模型参数的迭代调整,并将此时的初始第二编码模型作为第二编码模型后续初始编解码网络的训练过程。
[0154]
本技术实施例的第二方面提供了一种信息转换装置。图17为本技术实施例中一种信息转换装置的结构示意图。如图17所示,该信息转换装置1700可包含编码模块1702和解码模块1704。
[0155]
编码模块1702用于调用第一编码模型对输入信息进行编码,得到第一特征。其中,前述第一特征至少包含前述第一编码模型输出的n层第一编码。
[0156]
解码模块1704用于调用第一解码模型对前述第一特征进行解码,得到输出信息。其中,前述输出信息与所述输入信息为不同类型的信息。前述第一解码模型至少包含n层第一解码器,前述n层第一编码与前述n层第一解码器一一对应。
[0157]
其中,对任何1≤n≤n,第n层第一解码器对应于第n层第一编码,且第n层第一编码输入第n层第一解码器。对任何1≤n<n,第n+1层第一解码器的输出编码输入第n层第一解码器,第n+1层第一解码器的输出编码用于表征前述输出信息在第n层第一解码器对应粒度下的组成部分的特征,且第n+1层第一解码器的对应粒度大于第n层第一解码器的对应粒度。n、n均为正整数。
[0158]
在一些实施例中,前述输入信息为输入序列,且前述输出信息为输出序列。前述输入序列中的各元素依序与前述输出序列中的一个或多个元素对应,或者前述输出序列中的各元素依序与前述输入序列中的一个或多个元素对应。
[0159]
在一些实施例中,前述第一编码模型包含特征提取模块和对齐模块。编码模块1702包含特征生成子模块和特征转换子模块。
[0160]
特征生成子模块用于调用前述特征提取模块对前述输入信息进行编码,得到输入特征。其中,前述输入特征为具有第一长度的特征序列。
[0161]
特征转换子模块用于调用前述对齐模块将前述输入特征转换为前述第一特征。其中,各层第一编码为具有预设长度的序列,且对任何1≤n<n,第n层第一编码的预设长度大于第n+1层第一编码的预设长度。
[0162]
在一些实施例中,前述特征提取模块基于多头自注意力模型。
[0163]
在一些实施例中,前述对齐模块包含采样预测层、采样层和池化层。前述特征转换子模块包含对应关系获取单元、目标采样单元和编码获取单元。
[0164]
对应关系获取单元用于调用前述采样预测层获取前述特征序列中各元素与对齐序列中各元素之间的对应关系。
[0165]
目标采样单元用于调用前述采样层根据前述对应关系对前述初始序列进行目标采样,得到具有目标长度的前述对齐序列。
[0166]
编码获取单元用于调用前述池化层对前述对齐序列进行池化,得到前述n层第一编码。
[0167]
在一些实施例中,前述特征序列中的每个元素对应前述对齐序列中的一个或多个元素,前述采样包含上采样,且前述目标长度大于前述第一长度。或者,前述对齐序列中的每个元素对应前述特征序列中的一个或多个元素,前述采样包含下采样,且前述目标长度小于所述第一长度。
[0168]
在一些实施例中,前述池化层包含与前述n层第一编码依序一一对应的n层子池化层。前述编码获取单元具体用于:调用第1层第一编码对应的子池化层对前述对齐序列进行池化,得到第1层第一编码;以及,调用第i+1层第一编码对应的子池化层对第i层第一编码进行池化,得到第i+1层第一编码,其中1≤i<n。
[0169]
在一些实施例中,前述目标长度大于所述第一长度。此时,前述输入信息为文本单元构成的序列,其中,每个文本单元为对应于单音素的文本。或者,前述输入信息为文本特征构成的序列,其中,各文本特征用于表征文本中依序排列的结构切分段的特征。
[0170]
在一些实施例中,前述目标长度小于前述第一长度。此时,前述输入信息为语音帧构成的序列,或者,前述输入信息为语音帧的语音特征构成的序列。
[0171]
在一些实施例中,解码模块1704包含分层输出子模块和末端输出子模块。
[0172]
分层输出子模块用于:调用第n层第一解码器,根据第n层第一编码获得第n层第一解码器的输出编码;以及,对任何1≤n<n,调用第n层第一解码器,根据第n层第一编码和第n+1层第一解码器的输出编码获得第n层第一解码器的输出编码。
[0173]
末端输出子模块用于根据第1层第一解码器的输出编码获得前述输出信息。
[0174]
在一些实施例中,对1≤i≤n,前述分层输出子模块还用于:在调用第i层第一解码器之前,根据第i层第一解码器对应的预设分布进行采样,获得第i层采样编码。其中,第i层第一解码器还根据第i层采样编码获得第i层第一解码器的输出编码。
[0175]
在一些实施例中,第i层第一解码器基于标准化流模型,且前述预设分布为标准正态分布。
[0176]
在一些实施例中,第i层第一解码器基于glow模型。
[0177]
在一些实施例中,第i层第一解码器包含激活标准化层、可逆卷积层和仿射耦合层,i为正整数且1≤i≤n。前述分层输出子模块在调用第i层第一解码器获得第i层第一解码器的输出编码时用于执行m个循环,m为正整数。每个循环中,前述分层输出子模块具体用于:调用前述激活标准化层根据第一输入和第二输入获得第一中间编码;调用前述可逆卷积层根据前述第一中间编码获得第二中间编码;以及,调用前述激活标准化层根据前述第二中间编码获得循环输出编码。其中,第1个循环的第一输入为第i层采样编码,第j个循环的第一输入为第j
‑
1个循环的循环输出编码,且第m个循环的循环输出编码为所述第i层第
一解码器的输出编码,其中1<j≤m。其中,1≤i<n时第二输入为第i层第一编码和第i+1层第一解码器的输出编码,且i=n时第二输入为第i层第一编码。
[0178]
在一些实施例中,前述输出信息为语音波形,且前述第一解码模型还包含声码器。前述末端输出子模块用于调用前述声码器对第1层第一解码器的输出编码进行解码,获得前述语音波形。
[0179]
图18为本技术实施例中另一种信息转换装置的结构示意图。在一些实施例中,在图17的基础上,前述信息转换装置1700还包括训练模块1701。
[0180]
训练模块1701用于:基于第一样本集对初始第一编码模型和初始第一解码模型进行训练,获得前述第一编码模型和前述第一解码模型。其中,前述第一样本集包含至少一个输入样本和至少一个输出样本,且输入样本和输出样本一一对应。其中,前述初始第一编码模型与前述第一编码模型对应,且前述第一解码模型包含与前述n层第一解码器依序一一对应的n层初始第一解码器。
[0181]
在一些实施例中,训练模块1701包含目标生成子模块、输入子模块和调整子模块。
[0182]
目标生成子模块用于调用第二编码模型对各输出样本进行编码,得到各输出样本的目标特征。
[0183]
输入子模块用于将各输入样本输入前述初始第一编码模型,并将各输出样本的所述目标特征输入前述初始第一解码模型。
[0184]
调整子模块用于调整前述初始第一编码模型和前述初始第一解码模型的参数,直到第一损失达到第一预设条件。其中,前述初始第一编码模型和前述初始第一解码模型根据各输出样本的前述目标特征和各输入样本计算得到前述第一损失。
[0185]
在一些实施例中,前述目标特征包含n层目标编码,且前述n层目标编码与前述n层初始第一解码器依序一一对应。前述第一损失包含n个第一子损失,且前述n个第一子损失与前述n层初始第一解码器依序一一对应。在获得n个第一子损失的过程中个,前述调整子模块用于:调用前述初始第一编码模型对各输入样本进行编码,得到样本特征,其中,前述样本特征包含n层初始第一编码;调用前述初始第一解码模型对各输入样本的前述样本特征进行解码,得到各输入样本的预测特征,其中,前述预测特征包含n层预测编码,第n层初始第一解码器根据第n层初始第一编码获得第n层预测编码,且对于任何1≤n<n,第n层初始第一解码器根据第n层初始第一编码和第n+1层目标编码获得第n层预测编码;以及,对任何1≤n≤n,根据各输入样本的第n层预测误差,得到第n个第一子损失,其中,前述第n层预测误差用于表征各输入样本的第n层目标编码和第n层预测编码之间的差异。
[0186]
在一些实施例中,所述第一预设条件包含以下条件中至少一个:前述n个第一子损失均小于各自对应的第一阈值;前述n个第一子损失符合预定的第一分布;或者,通过前述调整计算第一损失的迭代次数超过第二阈值。
[0187]
在一些实施例中,前述输出样本为语音波形,且前述初始第一解码模型还包含初始声码器。在调用初始第一解码模型对前述样本特征进行解码时,前述调整子模块用于:调用前述初始声码器对第1层初始解码器对应的目标编码进行解码,获得重构语音波形。其中,前述第一损失还包含第二子损失,且前述调整子模块根据该语音波形和前述重构语音波形获得前述第二子损失。
[0188]
在一些实施例中,训练模块1701还包含训练子模块。
[0189]
训练子模块用于:在前述目标生成子模块调用第二编码模型对各输出样本进行编码之前,基于第二样本集对初始第二编码模型进行训练,获得前述第二编码模型。其中,前述第二样本集包含至少一个或者多个训练样本。
[0190]
在一些实施例中,训练子模块包含输入单元和调整单元。
[0191]
输入单元用于将前述第二样本集输入前述初始第二编码模型。
[0192]
调整单元用于对前述初始第二编码模型的参数进行调整,直到第二损失符合第二预设条件,其中,所述初始第二编码模型根据各训练样本、基于噪声对比估计计算所述第二损失。
[0193]
在一些实施例中,前述第二编码模型包含特征模块、上下文模块和下采样模块。前述目标子模块具体用于:调用前述特征模块对输出样本进行非线性变换,获得第三中间编码;调用前述上下文模块对前述第三中间编码进行上下文处理,获得第四中间编码;以及,调用前述下采样模块对前述第四中间编码进行下采样,获得前述目标特征。其中,前述下采样模块对前述第四中间编码进行不同频率的下采样以获得前述n层目标编码中不同层的目标编码。
[0194]
在一些实施例中,前述第二编码模型基于对比预测编码模型,且前述特征抽取层基于rnn模型。
[0195]
在一些实施例中,前述初始第二编码模型包含分别与前述特征模块和前述上下文模块对应的初始特征模块和初始上下文模块。前述第二损失包含分别与前述n层目标编码依序一一对应的n个第三子损失。调整单元调用前述下采样模块以频率1/k对前述第四中间编码进行下采样时,根据以下步骤计算所获得的目标编码对应的第三子损失:调用前述初始特征模块对各训练样本进行非线性变换,获得该训练样本的特征序列;调用前述初始上下文模块前述特征序列进行特征抽取,获得该训练样本的上下文序列,其中,前述上下文序列的长度不大于前述特征序列的长度;在前述上下文序列中选择至少一个元素作为锚点;对每个锚点,根据目标范围从前述特征序列中选择该锚点的正样本和至少一个负样本,并根据该锚点、前述正样本和前述负样本确定该锚点的噪声对比估计,其中,前述目标范围基于k的数值和该锚点在前述上下文序列中的位置确定;基于每个锚点的噪声对比估计,确定该训练样本的目标损失;以及,基于各训练样本的目标损失,确定该第三子损失。其中,对位于前述上下文序列中第s个元素的锚点,前述正样本为前述特征序列中位于前述目标范围中的元素,每个负样本均为前述特征序列中不位于前述目标范围中的元素,且前述目标范围为该训练样本的前述特征序列中第s个元素至第t+k个元素。其中,s、k均为正整数。
[0196]
在一些实施例中,所述第二预设条件包含以下条件中至少一个:前述n个第三子损失均小于各自对应的第三阈值;前述n个第三子损失符合预定的第二分布;或者,通过前述调整计算第二损失的迭代次数超过第四阈值。
[0197]
本技术实施例的第三方面提供了一种电子设备,该电子设备可用于实现前述信息转换方法。在一些实施例中,该电子设备包含处理器和存储器。其中,该存储器存储有指令,且该指令被该处理器执行时使得所述电子设备执行前述任一信息转换方法。
[0198]
本技术实施例的第四方面提供了一种计算机可读存储介质。该计算机可读存储介质存储有计算机指令,且该计算机指令被处理器执行时使得计算机执行前述任一信息转换方法。
[0199]
所述计算机可读存储介质包含程序命令、数据文件、数据结构等、或它们的组合。被记录在计算机可读存储介质中的程序可被设计或被配置以实现本技术的方法。计算机可读存储介质包括用于存储并执行程序命令的硬件系统。硬件系统的示例有磁介质(诸如硬盘、软盘、磁带)、光介质(诸如cd
‑
rom和dvd)、磁光介质(诸如软光盘、rom、ram、闪存等)。程序包括由编译器编译的汇编语言代码或机器代码和由解释器解释的更高级语言代码。硬件系统可利用至少一个软件模块来实施以符合本技术。
[0200]
本技术实施例的第五方面提供了一种计算机程序产品。该计算机程序产品包含计算机指令,且该计算机指令在计算机上运行时使得该计算机执行前述任一信息转换方法。
[0201]
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法相关部分说明即可。
[0202]
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0203]
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性的描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以针对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
[0204]
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本技术。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本技术的精神或范围的情况下,在其它实施例中实现。因此,本技术将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。