声码器训练方法、音频合成方法、介质、装置和计算设备与流程
未命名
08-06
阅读:66
评论:0

1.本公开的实施方式涉及计算机技术领域,更具体地,本公开的实施方式涉及声码器训练方法、音频合成方法、介质、装置和计算设备。
背景技术:
2.本部分旨在为本公开的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
3.音频合成,是指基于人工智能(artificial intelligence,简称ai)模型将输入文本转为对应的语音音频,实现音频的人工合成,可用于语音播报等人机交互场景。音频合成的基本框架可以包含前端模块、声学模型和声码器。其中,声码器(vocoder)是指在传输中只利用模型参数,在编译码时利用模型参数估计和语音合成技术的语音信号编译码器,一种对话音进行分析和合成的编、译码器,也称话音分析合成系统或话音频带压缩系统。
4.相关技术中,在利用声码器合成音频时,通常是通过在真实的语料库音频中提取出基频(fundamental frequency,简称f0),然后将基频引入到声码器中进行训练,训练好的声码器可以优化合成的干声音频中存在的毛刺,提升合成的干声音频的质量。
5.但通过上述技术训练得到的声码器鲁棒性较差。
技术实现要素:
6.本公开提供一种声码器训练方法、音频合成方法、介质、装置和计算设备,以提升声码器在应用时对基频预测错误的鲁棒性,从而显著提高音频合成的准确性和质量,为用户带来更好的体验。
7.在本公开实施方式的第一方面中,提供了一种声码器训练方法,包括:获取音频语料库中音频的第一基频序列;对第一基频序列进行基频扰动处理,得到第二基频序列;对第二基频序列进行映射处理,得到目标张量;对目标张量、音频对应的声学特征序列和音频进行训练,得到用于音频合成的声码器。
8.在本公开的一个实施例中,对第一基频序列进行基频扰动处理,得到第二基频序列,包括:针对第一基频序列中的每个基频进行以下基频扰动处理,得到第二基频序列:获取基频的第一对数;对第一对数进行最值截断处理,得到第二对数;对第二对数进行量化处理,得到基频对应的基频类别标签;对基频类别标签进行反量化处理。
9.在本公开的另一实施例中,对第一基频序列进行基频扰动处理,得到第二基频序列,包括:针对第一基频序列中的每个基频进行以下基频扰动处理,得到第二基频序列:在基频的预设采样范围内,对基频进行随机采样,得到基频对应的扰动参数;将扰动参数和基频进行加和处理。
10.在本公开的又一个实施例中,映射处理包含激励映射和嵌入映射,对第二基频序列进行映射处理,得到目标张量,包括:对第二基频序列进行激励映射,得到第一张量;对第二基频序列进行嵌入映射,得到第二张量;对第一张量和第二张量进行组合处理,得到目标
张量。
11.在本公开的再一个实施例中,对第二基频序列进行嵌入映射,得到第二张量,包括:响应于第二基频序列为连续域的浮点数值,采用上采样插值方法对第二基频序列进行上采样插值处理,得到第一采样基频序列;对第一采样基频序列进行嵌入映射,得到第二张量。
12.在本公开的再一个实施例中,对第二基频序列进行嵌入映射,得到第二张量,包括:响应于第二基频序列为量化处理后的基频类别标签,采用最近邻插值对第二基频序列进行上采样处理,得到第二采样基频序列;对第二采样基频序列进行嵌入映射,得到第二张量。
13.在本公开的再一个实施例中,对第一张量和第二张量进行组合处理,得到目标张量,包括:响应于第一张量和第二张量的尺寸不同,将第一张量和第二张量进行串接处理,得到目标张量;响应于第一张量和第二张量的尺寸相同,将第一张量和第二张量进行加和处理,得到目标张量。
14.在本公开实施方式的第二方面中,提供了一种音频合成方法,包括:获取目标文本;提取目标文本的声学特征序列;将声学特征序列输入至基频预测模型进行基频预测,得到声学特征序列对应的基频序列;将基频序列和声学特征序列输入至声码器进行音频合成,得到目标文本对应的音频,声码器是通过如第一方面的声码器训练方法训练得到的。
15.在本公开的一个实施例中,基频预测模型包括卷积层、非线性层、标准化层、随机失活层、线性层和分类层,将声学特征序列输入至基频预测模型进行基频预测,得到声学特征序列对应的基频序列,包括:将声学特征序列输入至卷积层进行卷积处理,得到第一特征;将第一特征输入至非线性层进行激活处理,得到第二特征;将第二特征输入至标准化层进行标准化处理,得到第三特征;将第三特征输入至随机失活层进行失活处理,得到第四特征;将第四特征输入至线性层进行线性处理,得到第五特征;将第五特征输入至分类层进行分类处理,得到基频序列。
16.在本公开的另一实施例中,将基频序列和声学特征序列输入至声码器进行音频合成,得到目标文本对应的音频,包括:对基频序列进行映射处理,得到目标张量;将目标张量和声学特征序列输入至声码器进行音频合成,得到音频。
17.在本公开的又一实施例中,映射处理包含激励映射和嵌入映射,对基频序列进行映射处理,得到目标张量,包括:对基频序列进行激励映射,得到第一张量;对基频序列进行嵌入映射,得到第二张量;对第一张量和第二张量进行组合处理,得到目标张量。
18.在本公开的再一实施例中,对基频序列进行嵌入映射,得到第二张量,包括:响应于基频序列为连续域的浮点数值,采用线性插值对基频序列进行上采样处理,得到第一采样基频序列;对第一采样基频序列进行嵌入映射,得到第二张量;响应于基频序列为量化处理后的基频类别标签,采用最近邻插值对基频序列进行上采样处理,得到第二采样基频序列;对第二采样基频序列进行嵌入映射,得到第二张量。
19.在本公开的再一实施例中,对第一张量和第二张量进行组合处理,得到目标张量,包括:响应于第一张量和第二张量的尺寸不同,将第一张量和第二张量进行串接处理,得到目标张量;响应于第一张量和第二张量的尺寸相同,将第一张量和第二张量进行加和处理,得到目标张量。
20.在本公开的再一实施例中,还包括:采用音频语料库和声学特征序列训练得到基频预测模型。
21.在本公开的再一实施例中,目标文本为歌声对应的文本,目标文本包括歌声的音素类型、音素在歌声中的边界起止位置和歌声的音高中至少一项。
22.在本公开实施方式的第三方面中,提供了一种介质,介质中存储有计算机执行指令,计算机执行指令被处理器执行时用于实现如第一方面的声码器训练方法或第二方面的音频合成方法。
23.在本公开实施方式的第四方面中,提供了一种声码器训练装置,包括:获取模块,用于获取音频语料库中音频的第一基频序列;第一处理模块,用于对第一基频序列进行基频扰动处理,得到第二基频序列;第二处理模块,用于对第二基频序列进行映射处理,得到目标张量;训练模块,用于采用目标张量和音频对应的文本的声学特征序列训练得到用于音频合成的声码器。
24.在本公开实施方式的第五方面中,提供了一种音频合成装置,包括:获取模块,用于获取目标文本;提取模块,用于提取目标文本的声学特征序列;预测模块,用于将声学特征序列输入至基频预测模型进行基频预测,得到声学特征序列对应的基频序列;合成模块,用于将基频序列和声学特征序列输入至声码器进行音频合成,得到目标文本对应的音频,声码器是通过如第一方面的声码器训练方法训练得到的。
25.在本公开实施方式的第六方面中,提供了一种计算设备,包括:处理器,以及与处理器连接的存储器;存储器存储计算机执行指令;处理器执行存储器存储的计算机执行指令,以实现如第一方面的声码器训练方法或第二方面的音频合成方法。
26.根据本公开实施方式的声码器训练方法、音频合成方法、介质、装置和计算设备,可以在训练声码器时,引入基频扰动,从而可以提升训练好的声码器在实际应用时对基频预测错误的鲁棒性,以及,可以在音频合成时,引入基频预测模型对目标文本的声学特征序列进行基频预测,再将声学特征序列和预测得到的基频序列输入至训练好的声码器中进行音频合成,从而可以显著地提高音频合成的准确性和质量,为用户带来了更好的体验。
附图说明
27.通过参考附图阅读下文的详细描述,本公开示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本公开的若干实施方式,其中:
28.图1为本公开实施方式提供的音频合成系统的应用场景示意图;
29.图2为本公开实施方式提供的声码器训练方法的流程示意图;
30.图3为本公开实施方式提供的音频合成方法的流程示意图;
31.图4为本公开实施方式提供的基频预测模型的结构示意图;
32.图5为本公开实施方式的存储介质的结构示意图;
33.图6为本公开实施方式提供的声码器训练装置的结构示意图;
34.图7为本公开实施方式的音频合成装置的结构示意图;
35.图8为本公开实施方式的计算设备的结构示意图。
36.在附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
37.下面将参考若干示例性实施方式来描述本公开的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本公开,而并非以任何方式限制本公开的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
38.本领域技术人员知道,本公开的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
39.根据本公开的实施方式,提出了一种声码器训练方法、音频合成方法、介质、装置和计算设备。在本文中,需要理解的是,所涉及的术语表示如下:
40.语音合成(text-to-speech,简称:tts):基于人工智能(artificial intelligence,简称:ai)模型将输入文本转为对应的语音音频,实现语音的人工合成,可用于语音播报等人机交互场景。
41.歌声合成(singing voice synthesis,简称:svs):和语音合成类似,也是基于ai模型将输入的文本信息转为对应的演唱干声音频。其中,输入的文本信息由歌词信息和旋律信息组成,歌词信息为普通文本,旋律信息一般用音符(note)序列表示,描述了歌词中每个字应该唱多长时间,唱什么样的音高。和语音合成类似,歌声合成的输出为演唱干声音频,可用于歌曲创作、虚拟偶像等场景。一般而言,歌声合成会采用和语音合成类似的技术框架,主要区别是在旋律音高的建模上有所定制。
42.音频合成的基本框架:主要可以由以下几个部分组成:前端模块、声学模型和声码器。其中,前端模块主要可以用于对输入的文本做预处理,将其转为音频合成模型可理解的音素序列。例如,待合成的文本为“speech”,前端模型对其进行分析处理后,转为“s p iy ch”这样的音素序列,该因素序列可以描述该词应该如何发音。在完成前端模块的处理后,待合成的音素序列可以被送入声学模型(acoustic model)中,由声学模型将待合成的音素序列映射为一帧帧特征向量组成的声学特征序列,目前主流的tts/svs通常使用梅尔谱(mel-spectrogram)作为声学特征序列。最后,声学特征序列被送入声码器(vocoder),由声码器根据声学特征序列完成时域信号的重建。声学模型的好坏会影响到最终合成音频的发音准确度和节奏韵律,而声码器更多地会影响到合成音频的音质(例如是否有电音感、底噪、信号断裂等)。
43.语料库:以句为单位的“音频-标注”pair对组成的用于合成模型训练的库。其中,音频为对确定好的目标发音人(将来合成出的音频就是该发音人的音色)的语音或演唱干声进行录制得到的音频。标注为对录制得到的音频进行标注得到的标注信息,标注信息包括但不限于音频中包含的音素类型、音素在音频中的边界起止位置、音高等等。
44.声码器(vocoder):在传输中只利用模型参数,在编译码时利用模型参数估计和语音合成技术的语音信号编译码器,一种对话音进行分析和合成的编、译码器,也称话音分析合成系统或话音频带压缩系统。通常声码器为基于神经网络的声码器,本公开中的声码器可以针对输入的声学特征序列(通常以帧为单位),施以(多次)“上采样”、神经网络映射等操作,将时间分辨率从“帧”(通常一帧对应数十毫秒)逐渐细化为“样点”(一个样点对应的时间为1/采样率,例如,16000hz的音频,意味着1秒钟有16000个样点,一个样点对应的时间
则是1/16000=0.0625毫秒),并通过神经网络映射最终重建时域音频信号。
45.基频(fundamental frequency,通常称之为f0):声音来自发声体的振动,声音信号可以分解为许多正弦波的线性叠加(傅里叶变换的本质),其中频率最低的正弦波即为基音,对应的频率即为基频(单位为hz,即一秒钟有多少次振动)。基频可以用于确定整个声音的音高特点。例如在歌唱场景中,旋律的高低即由演唱者声带振动的频率所决定。
46.音高(pitch):通常在音乐领域,会用音高的概念来描述声音的高低,但其本质上和基频是可互换的。音高pitch和基频f0之间可以根据下式相互转换:
[0047][0048]
f0=440
×2(p-69)/12
[0049]
其中,p表示音高,f0表示基频。
[0050]
嵌入(embedding):深度学习领域常用的概念,是指将输入数据通过网络映射为一个固定维度的向量进行表示。特别地,在神经网络的数据输入层,会经常使用嵌入层(embedding layer)将类别标签映射为一个固定维度的向量,送入模型使用。
[0051]
张量(tensor):深度学习领域常用的概念,本质上是一个多维数组,用于记录输入输出数据或网络参数。
[0052]
此外,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。
[0053]
另外,本公开所涉及的数据可以为经用户授权或者经过各方充分授权的数据,对数据的采集、传播、使用等,均符合国家相关法律法规要求,本公开实施方式/实施例可以互相组合。
[0054]
下面参考本公开的若干代表性实施方式,详细阐释本公开的原理和精神。
[0055]
发明概述
[0056]
本发明人发现,在歌声合成任务中,合成出的音频在音高旋律上是否自然、连续和准确,直接影响到用户的试听体验。因此,目前很多相关技术提出在声码器中对基频建模。具体地,声码器在引入帧一级梅尔谱序列作为输入之外,还引入了帧一级的基频f0序列(单位为hz)作为输入。在训练声码器时,从语料库音频中提取帧一级的基频f0序列,然后对基频f0序列进行采样处理,得到每个样点对应的基频f0,然后生成每个基频f0的正弦激励信号,并采用正弦激励信号这个二维数组构建张量,然后该张量经过声码器的网络映射,并与梅尔谱结合后,参与到神经网络声码器的训练中。
[0057]
相关技术在训练过程中,引入的基频f0序列为真实准确的基频f0,会导致训好的声码器过度依赖基频f0,在实际使用阶段,输入的基频f0序列是预测得到的,一旦发生预测错误的情况,即使是轻微的错误,也可能导致合成后得到的音频出现跑调的现象,从而使得训练得到的声码器的鲁棒性较差。
[0058]
因此,本公开对从音频语料库中的真实音频中提取的基频f0序列,施以一定程度的噪声扰动,然后再送入声码器中进行训练。因此,整个训练过程中声码器使用的是扰动后的基频f0,这将使得声码器能够容忍一定程度的基频偏差,从而可以提高训练好的声码器的鲁棒性。
[0059]
在声码器训练好之后,通过对获取的目标文本提取声学特征序列,然后引入基频
预测模型对声学特征序列进行预测处理,可以得到预测的基频序列,再将预测的基频序列和声学特征序列输入至已训练好的声码器中进行音频合成,由于声码器训练时引入了基频扰动,且对扰动后的基频序列分别进行了激励映射和嵌入映射,对得到的张量进行组合之后进行声码器的训练,因此训练好的声码器的鲁棒性较强,从而在通过声码器进行音频合成时,即使基频预测模型出现基频预测错误,也不会影响声码器合成的音频的音质和音高准确性。
[0060]
在介绍了本公开的基本原理之后,下面具体介绍本公开的各种非限制性实施方式。
[0061]
应用场景总览
[0062]
首先参考图1,图1为本公开实施方式提供的音频合成系统的应用场景示意图。该音频合成系统可以包括音频语料库,基频提取模块,基频扰动模块,基频预测模型,基频映射模块和声码器。其中,音频语料库,基频提取模块,基频扰动模块,基频映射模块和声码器用于在训练阶段进行声码器的训练;基频预测模型,基频映射模块和训练好的声码器用于在推理阶段进行音频合成的推理。在训练阶段,基频预测模型不参与;在推理阶段,基频提取模块,基频扰动模块不参与。
[0063]
在训练阶段,基频提取模块对音频语料库中的音频进行基频提取,得到基频序列f0
gt
,并将基频序列f0
gt
输出至基频扰动模块;基频扰动模块对接收到的基频序列f0
gt
进行基频扰动处理,得到扰动后的基频序列f0
gt
',并将扰动后的基频序列f0
gt
'输出至基频映射模块;基频映射模块采用激励映射和嵌入映射对接收到的扰动后的基频序列f0
gt
'进行映射处理,得到张量,并将得到的张量输出至声码器中;声码器对张量、音频语料库中的音频和音频对应的声学特征序列进行训练,得到训练好的声码器。
[0064]
在推理阶段,可以将目标文本对应的声学特征序列输入至基频预测模型中进行基频预测,得到预测的基频序列f0
pred
,并将预测的基频序列f0
pred
输出至基频映射模块;基频映射模块采用激励映射和嵌入映射对接收到的预测的基频序列f0
pred
进行映射处理,得到张量,并将得到的张量输出至训练好的声码器中;声码器对张量、目标文本对应的声学特征序列进行音频合成,得到目标文本对应的音频。
[0065]
具体地,在训练阶段引入基频扰动,从而可以提高训练好的声码器的鲁棒性,这样在推理阶段,即使基频预测模型存在一定的预测偏差,声码器仍可保证输出的合成音频的准确性和质量;并且,在基频映射时,采用激励映射和嵌入映射结合的方法,可以更好的训练声码器,从而提高训练好的声码器在音频合成时的准确性和质量。
[0066]
示例性方法
[0067]
下面结合图1的应用场景,参考图2来描述根据本公开示例性实施方式的声码器训练方法,以及参考图3来描述根据本公开示例性实施方式的音频合成方法。需要注意的是,上述应用场景仅是为了便于理解本公开的精神和原理而示出,本公开的实施方式在此方面不受任何限制。相反,本公开的实施方式可以应用于适用的任何场景。
[0068]
参考图2,图2为本公开实施方式提供的声码器训练方法的流程示意图。该声码器训练方法包括以下步骤:
[0069]
s201:获取音频语料库中音频的第一基频序列。
[0070]
具体地,当前常用的语音合成和/或歌声合成大多采用深度学习建模。具体地,可
以先构建用于声码器训练的音频语料库,然后设计合适的声码器的模型结构,将音频语料库送入深度学习常用的训练框架(例如pytorch、tensorflow等),训练出对应的声码器,以实现语音合成和/或歌声合成。
[0071]
具体地,在构建音频语料库时,可以先确定好目标发音人(后续合成出的音频就是该发音人的音色);然后在录音棚或类似环境中录制该发音人的语音或演唱干声的音频;之后再对录制的真实音频进行标注,标注信息包括但不限于音频中包含的音素类型、音素在音频中的边界起止位置、音高等等;最后,可以得到若干以句为单位的“音频-标注”pair对,通过这些pair对组成用于声码器训练的音频语料库。
[0072]
具体地,在音频语料库构建完成之后,可以进行声码器的训练,也即,可以获取音频语料库中的真实音频,然后提取出音频中的第一基频序列,该第一基频序列用于后续对声码器的训练。
[0073]
s202:对第一基频序列进行基频扰动处理,得到第二基频序列。
[0074]
具体地,第一基频序列是从音频语料库中的真实音频进行提取得到的,若采用第一基频序列训练声码器,会导致声码器过于依赖真实音频,使得训练好的声码器鲁棒性较差。因此,可以对第一基频序列进行一定程度上的基频扰动处理(扰动程度可自行控制),这样得到的第二基频序列就是进行了扰动后的基频序列,从而采用第二基频序列对声码器训练,就可以提高训练好的声码器的鲁棒性。
[0075]
s203:对第二基频序列进行映射处理,得到目标张量。
[0076]
具体地,在得到基频序列之后,可以将基频序列转换为适合训练声码器的数据,因此,可以对第二基频序列进行映射处理,得到目标张量,从而就可以采用目标张量对声码器进行训练。
[0077]
s204:对目标张量、音频对应的声学特征序列和音频进行训练,得到用于音频合成的声码器。
[0078]
具体地,在得到目标张量之后,就可以对目标张量,音频语料库中音频对应的声学特征序列,以及音频进行训练,得到声码器。
[0079]
具体地,可以将目标张量和音频对应的声学特征序列输入至预训练模型,例如,神经网络模型,再将音频和预训练模型的输出进行比较,对预训练模型进行调试优化,最终得到声码器。
[0080]
本公开的声码器训练方法,对从音频语料库中的真实音频中提取的基频f0序列,施以一定程度的噪声扰动,然后再送入声码器中进行训练。因此,整个训练过程中声码器使用的是扰动后的基频f0,这将使得声码器能够容忍一定程度的基频偏差,从而可以提高训练好的声码器的鲁棒性。
[0081]
在本公开的一个实施例中,对第一基频序列进行基频扰动处理,得到第二基频序列,包括:针对第一基频序列中的每个基频进行以下基频扰动处理,得到第二基频序列:获取基频的第一对数;对第一对数进行最值截断处理,得到第二对数;对第二对数进行量化处理,得到基频对应的基频类别标签;对基频类别标签进行反量化处理。
[0082]
具体地,在声码器的训练阶段,需要从音频语料库中的真实音频中提取真实基频序列,也即第一基频序列,以将第一基频序列引入声码器中进行训练,但直接将第一基频序列引入声码器中进行训练后,得到的声码器会过于依赖音频语料库中的真实音频,使得声
码器的鲁棒性较差。因此,在将提取出的第一基频序列引入声码器中之前,可以对第一基频序列进行基频扰动处理,以得到扰动后的基频序列,也即第二基频序列,从而可以提高声码器的鲁棒性。
[0083]
具体地,在对第一基频序列进行基频扰动处理,得到第二基频序列时,针对第一基频序列f0
gt
中的每个基频f,可以先通过下式将基频f转到对数域:
[0084]flog
=ln(f+1)
[0085]
其中,f
log
表示对数域下的基频,也即第一对数。将基频f转到对数域时,为基频f加1可以避免基频为0hz时无法取对数的问题。
[0086]
具体地,在将基频f转到对数域,得到f
log
之后,可以在对数域中,对f
log
进行最值截断处理,也即最大值最小值截断处理,得到第二对数,以便进行后续的量化操作。最值截断处理可以通过下式实现:
[0087][0088]
其中,f
log
'表示第二对数,f
log_min
表示f
log
在对数域中的最小值,f
log_max
表示f
log
在对数域中的最大值,f
log_min
和f
log_max
均为预设数值,可根据需要自行设置。
[0089]
具体地,在得到第二对数之后,可以对第二对数进行量化操作,得到多个可能的候选值,每个候选值可以作为基频的一个对应的基频类别标签,对第二对数进行量化处理可以通过下式实现:
[0090][0091]flog_q
=(label+0.5)
×
step+f
log_min
[0092]
其中,label表示基频类别标签,f
log_q
表示量化后的基频,step表示量化操作的步长,step表示如下:
[0093][0094]
其中,m表示候选值的数量,也即基频类别标签的数量。
[0095]
具体地,f
log_q
表示量化后的基频,为对数域的,因此,可以通过下式将f
log_q
反量化回hz域:
[0096]f′
=exp(f
log_q
)-1
[0097]
其中,f'表示反量化后的基频,也即第二基频序列中的基频。
[0098]
具体地,f'相比真实基频f,引入了量化误差的扰动,因此,可以提高训练好的声码器的鲁棒性。
[0099]
在本公开的另一个实施例中,对第一基频序列进行基频扰动处理,得到第二基频序列,包括:针对第一基频序列中的每个基频进行以下基频扰动处理,得到第二基频序列:在基频的预设采样范围内,对基频进行随机采样,得到基频对应的扰动参数;将扰动参数和基频进行加和处理。
[0100]
具体地,在对第一基频序列进行基频扰动处理,得到第二基频序列时,除了前述的
量化处理之外,针对第一基频序列中的每个基频,还可以直接在基频的预设采样范围内进行随机采样,在得到扰动参数之后,直接在基频上加扰动参数,得到扰动后的基频,也即第二基频序列中的基频。
[0101]
具体地,对于第一基频序列中的每个基频f,先在基频的预设采样范围内进行随机采样得到扰动参数,然后通过下式将基频f与扰动参数进行加和处理:
[0102]f′
=f+δf
[0103]
其中,f'表示扰动后的基频,也即第二基频序列中的基频;δf表示扰动参数,δf可以从高斯分布中随机采样得到,即δf~n(0,σ2),其中,σ表示标准差,用于控制扰动程度,σ为可控参数,可根据需要自行调整。
[0104]
可选地,基频的预设采样范围除高斯分布之外,还可以为其他的预设采样范围,例如,马尔科夫蒙特卡洛(markov chain monte carlo,简称:mcmc),贝叶斯网络,不均衡样本集等。
[0105]
具体地,f'相比真实基频f,引入了随机采样得到的扰动参数,因此,可以提高训练好的声码器的鲁棒性。
[0106]
在本公开的又一个实施例中,映射处理包含激励映射和嵌入映射,对第二基频序列进行映射处理,得到目标张量,包括:对第二基频序列进行激励映射,得到第一张量;对第二基频序列进行嵌入映射,得到第二张量;对第一张量和第二张量进行组合处理,得到目标张量。
[0107]
具体地,激励映射可以为source excitation的方式,嵌入映射可以为引入基频f0的embedding的方式。在对第二基频序列进行映射处理,得到目标张量时,可以先对第二基频序列进行激励映射,得到第一张量,也即,采用source excitation的方式,将第二基频序列转为正弦激励信号,并采用得到的正弦激励信号构建第一张量;然后对第二基频序列进行嵌入映射,得到第二张量,也即,采用引入基频f0的embedding的方式对第二基频序列进行映射,得到第二张量;最后将第一张量和第二张量进行组合,从而得到的目标张量在用于后续声码器的训练时,可以获得更好的训练效果,提高训练得到的声码器的音频合成效果。
[0108]
具体地,在采用source excitation的方式,将第二基频序列转为正弦激励信号,并采用得到的正弦激励信号构建第一张量时,可以按照如下方法进行:
[0109]
先使用线性插值的方式对第二基频序列进行上采处理,使第二基频序列的时间颗粒度由“帧”细化为“样点”。例如,假设第二基频序列中使用的帧移(hop_size)为256,则第二基频序列中相邻的两个f0值之间会通过线性插值的方式插值出255个f0值,得到每个样点对应的基频f0。然后按照下式生成正弦激励信号:
[0110][0111]
其中,e
ij
表示正弦激励信号;i表示第i个谐波信号(i取值范围为[1,k],共k个谐波信号,k是个可设置的整数参数);j表示第j个样点;fj表示第j个样点的基频;sr表示采样率;φ表示第i个谐波信号的初始相位,可在取值范围[-π,π]内随机生成;znoise表示高斯噪声(也即,基频为0的样点位置,其值从高斯分布中随机采样得到);t表示总样点个数。从上式可以看出,第i个谐波信号ei本质上就是正弦激励信号。
[0112]
在得到正弦激励信号e
ij
之后,可以采用e
ij
这个二维数组构建尺寸为(k,t)的第一张量,其中,k个谐波信号对应第一张量的k个通道(channel),t个样点对应第一张量的时间轴。
[0113]
在本公开的再一个实施例中,对第二基频序列进行嵌入映射,得到第二张量,包括:响应于第二基频序列为连续域的浮点数值,采用上采样插值方法对第二基频序列进行上采样插值处理,得到第一采样基频序列;对第一采样基频序列进行嵌入映射,得到第二张量。
[0114]
具体地,在对第二基频序列进行嵌入映射,得到第二张量,也即,采用引入基频f0的embedding的方式对第二基频序列进行映射,得到第二张量时,可以包括两种情况,一种为第二基频序列为连续域的浮点数值,另一种为第二基频序列为量化处理后的基频类别标签。不同类型的第二基频序列对应的嵌入映射的方式不同,从而可以保证得到的第二张量的准确性,以提高后续训练得到的声码器的质量。下面对第二基频序列为连续域的浮点数值进行介绍。
[0115]
具体地,若第二基频序列是连续域的浮点数值,例如,hz域的频率值f,或者log域的f
log
,则可以采用上采样插值方法对第二基频序列进行上采样插值,例如,采用线性插值对第二基频序列进行上采样(其他的上采样插值方法),使第二基频序列的时间颗粒度由“帧”细化为“样点”,得到维度为1的浮点数值,也即第一采样基频序列,然后,使用神经网络的线性层将第一采样基频序列嵌入映射为维度为l的向量(l为可配置参数),从而可以将第二基频序列转换为样点一级的第二张量,该第二张量的尺寸可以为(l,t),其中t可以用于表示样点数。
[0116]
在本公开的再一个实施例中,对第二基频序列进行嵌入映射,得到第二张量,包括:响应于第二基频序列为量化处理后的基频类别标签,采用最近邻插值对第二基频序列进行上采样处理,得到第二采样基频序列;对第二采样基频序列进行嵌入映射,得到第二张量。
[0117]
具体地,下面对第二基频序列为量化处理后的基频类别标签进行介绍。若第二基频序列为量化处理后的基频类别标签,则可以使用最近邻插值对第二基频序列进行上采样处理,使第二基频序列的时间颗粒度由“帧”细化为“样点”,以得到第二采样基频序列,此时第二采样基频序列中的每个f0仍然是基频类别标签,可使用神经网络的嵌入层(embedding层)将第二采样基频序列嵌入映射为维度为l的向量(l为可配置参数),从而可以将第二基频序列转换为样点一级的第二张量,该第二张量的尺寸可以为(l,t),其中t表示样点数。可以提高后续训练得到的声码器的质量。
[0118]
在本公开的再一个实施例中,对第一张量和第二张量进行组合处理,得到目标张量,包括:响应于第一张量和第二张量的尺寸不同,将第一张量和第二张量进行串接处理,得到目标张量;响应于第一张量和第二张量的尺寸相同,将第一张量和第二张量进行加和处理,得到目标张量。
[0119]
具体地,在对第二基频序列进行激励映射得到第一张量,以及对第二基频序列进行嵌入映射得到第二张量之后,为了提高对训练得到的声码器的质量,可以将第一张量和第二张量进行组合处理。
[0120]
具体地,若第一张量和第二张量的尺寸不同,其中第一张量的尺寸为(k,t),第二
张量的尺寸为(l,t),则可以将第一张量和第二张量沿着channel轴进行串接,得到尺寸为(k+l,t)的目标张量。
[0121]
具体地,也可以在将第二基频序列进行嵌入映射时,将维度由l提前设置为k,这样第一张量和第二张量的尺寸相同,均为(k,t),然后直接将尺寸相同的第一张量和第二张量相加,得到目标张量。
[0122]
参考图3,图3为本公开实施方式提供的音频合成方法的流程示意图。该音频合成方法包括以下步骤:
[0123]
s301:获取目标文本。
[0124]
具体地,目标文本可以为待合成音频对应的文本。例如,待合成音频为歌声,则目标文本可以包括歌声的歌词和旋律,其中,歌词可以为普通文本,旋律可以用音符(note)序列表示。
[0125]
s302:提取目标文本的声学特征序列。
[0126]
具体地,在获取到目标文本之后,可以对目标文本进行预处理,将目标文本转换为音素序列,音素序列可以用于描述目标文本的发音。然后对音素序列进行映射处理,得到一帧帧特征向量组成的声学特征序列。
[0127]
可选地,声学特征序列可以包括帧一级梅尔谱序列,或者其他类似的特征序列,例如,矢量量化的特征向量序列、变分自编码器(variational autoencoder)的隐变量序列(latent variable)等,或者,是这些序列的组合(例如,拼接、相加等组合方式)。
[0128]
s303:将声学特征序列输入至基频预测模型进行基频预测,得到声学特征序列对应的基频序列。
[0129]
具体地,基频预测模型可以以目标文本的声学特征序列为输入,以得到预测的基频f0序列。
[0130]
具体地,基频预测模型可以直接预测输出hz域的基频序列,也可以预测输出其他域的基频序列,例如预测输出log域上的基频浮点数值,或者量化后的基频类别标签,只要后续可转换回hz域即可。
[0131]
s304:将基频序列和声学特征序列输入至声码器进行音频合成,得到目标文本对应的音频。
[0132]
具体地,声码器是通过如前述的声码器训练方法训练得到的。
[0133]
具体地,在得到预测的基频序列之后,可以将基频序列和声学特征序列一同输入至已训练好的声码器中进行音频合成,从而得到目标文本对应的音频。
[0134]
本公开的音频合成方法,通过对获取的目标文本提取声学特征序列,然后引入基频预测模型对声学特征序列进行预测处理,可以得到预测的基频序列,再将预测的基频序列和声学特征序列输入至已训练好的声码器中进行音频合成,由于声码器训练时引入了基频扰动,且对扰动后的基频序列分别进行了激励映射和嵌入映射,对得到的张量进行组合之后进行声码器的训练,因此训练好的声码器的鲁棒性较强,从而在通过声码器进行音频合成时,即使基频预测模型出现基频预测错误,也不会影响声码器合成的音频的音质和音高准确性。
[0135]
在本公开的一个实施例中,基频预测模型包括卷积层、非线性层、标准化层、随机失活层、线性层和分类层,将声学特征序列输入至基频预测模型进行基频预测,得到声学特
征序列对应的基频序列,包括:将声学特征序列输入至卷积层进行卷积处理,得到第一特征;将第一特征输入至非线性层进行激活处理,得到第二特征;将第二特征输入至标准化层进行标准化处理,得到第三特征;将第三特征输入至随机失活层进行失活处理,得到第四特征;将第四特征输入至线性层进行线性处理,得到第五特征;将第五特征输入至分类层进行分类处理,得到基频序列。
[0136]
具体地,基频预测模型可以采用常见的神经网络进行建模。基频预测模型的结构可以如图4所示。图4为本公开实施方式提供的基频预测模型的结构示意图,该基频预测模型可以包括卷积层、非线性层、标准化层、随机失活层、线性层和分类层,其中,卷积层可以为一维卷积。声学特征序列可以先经过卷积层、非线性层、标准化层、随机失活层执行n次(n可以自行确定),然后再经过线性层和分类层,从而得到预测的基频序列,例如,基频类别标签或者基频数值。
[0137]
具体地,基频预测模型可以对目标文本的声学特征序列进行基频预测处理,得到预测的基频序列,以作为声码器的输入实现音频合成,由于训练好的声码器鲁棒性强,基频预测模型在对声学特征序列进行基频预测处理时,即使出现预测错误,对合成的音频的质量也无任何影响。
[0138]
可选地,基频预测模型的结构除了如图4所示的结构之外,还可以为其他任何一种可以实现基频预测的模型结构。
[0139]
在本公开的另一个实施例中,将基频序列和声学特征序列输入至声码器进行音频合成,得到目标文本对应的音频,包括:对基频序列进行映射处理,得到目标张量;将目标张量和声学特征序列输入至声码器进行音频合成,得到音频。
[0140]
具体地,在得到预测的基频序列之后,可以将预测的基频序列转换为适合声码器处理的数据,因此,可以对预测的基频序列进行映射处理,得到目标张量,从而就可以将目标张量和声学特征序列输入至声码器进行音频合成,得到目标文本对应的音频,可以实现合成的音频质量以及音高的准确度。
[0141]
在本公开的又一个实施例中,映射处理包含激励映射和嵌入映射,对基频序列进行映射处理,得到目标张量,包括:对基频序列进行激励映射,得到第一张量;对基频序列进行嵌入映射,得到第二张量;对第一张量和第二张量进行组合处理,得到目标张量。
[0142]
具体地,激励映射可以为source excitation的方式,嵌入映射可以为引入基频f0的embedding的方式。在对预测的基频序列进行映射处理,得到目标张量时,可以先对预测的基频序列进行激励映射,得到第一张量,也即,采用source excitation的方式,将预测的基频序列转为正弦激励信号,并采用得到的正弦激励信号构建第一张量;然后对预测的基频序列进行嵌入映射,得到第二张量,也即,采用引入基频f0的embedding的方式对预测的基频序列进行映射,得到第二张量;最后将第一张量和第二张量进行组合,从而得到的目标张量在用于后续音频合成时,可以获得更好的合成效果,提高合成的音频质量以及音高的准确度。
[0143]
具体地,在采用source excitation的方式,将预测的基频序列转为正弦激励信号,并采用得到的正弦激励信号构建第一张量时,可以按照如下方法进行:
[0144]
先使用线性插值的方式对预测的基频序列进行上采处理,使预测的基频序列的时间颗粒度由“帧”细化为“样点”。例如,假设预测的基频序列中使用的帧移(hop_size)为
256,则预测的基频序列中相邻的两个f0值之间会通过线性插值的方式插值出255个f0值,得到每个样点对应的基频f0。然后按照下式生成正弦激励信号:
[0145][0146]
其中,e
ij
表示正弦激励信号;i表示第i个谐波信号(i取值范围为[1,k],共k个谐波信号,k是个可设置的整数参数);j表示第j个样点;fj表示第j个样点的基频;sr可以用于表示采样率;φ表示第i个谐波信号的初始相位,可在取值范围[-π,π]内随机生成;znoise表示高斯噪声(也即,基频为0的样点位置,其值从高斯分布中随机采样得到);t可以用于表示总样点个数。从上式可以看出,第i个谐波信号ei本质上就是正弦激励信号。
[0147]
在得到正弦激励信号e
ij
之后,可以采用e
ij
这个二维数组构建尺寸为(k,t)的第一张量,其中,k个谐波信号对应第一张量的k个通道(channel),t个样点对应第一张量的时间轴。
[0148]
在本公开的再一个实施例中,对基频序列进行嵌入映射,得到第二张量,包括:响应于基频序列为连续域的浮点数值,采用线性插值对基频序列进行上采样处理,得到第一采样基频序列;对第一采样基频序列进行嵌入映射,得到第二张量;响应于基频序列为量化处理后的基频类别标签,采用最近邻插值对基频序列进行上采样处理,得到第二采样基频序列;对第二采样基频序列进行嵌入映射,得到第二张量。
[0149]
具体地,在对预测的基频序列进行嵌入映射,得到第二张量,也即,采用引入基频f0的embedding的方式对预测的基频序列进行映射,得到第二张量时,可以包括两种情况,一种为预测的基频序列为连续域的浮点数值,另一种为预测的基频序列为量化处理后的基频类别标签。不同类型的预测的基频序列对应的嵌入映射的方式不同,从而可以保证得到的第二张量的准确性,以实现获得更好的合成效果,提高合成的音频质量以及音高的准确度。
[0150]
具体地,若预测的基频序列是连续域的浮点数值,例如,hz域的频率值f,或者log域的f
log
,则可以采用上采样插值方法对预测的基频序列进行上采样插值,例如,采用线性插值对预测的基频序列进行上采样(其他的上采样插值方法),使预测的基频序列的时间颗粒度由“帧”细化为“样点”,得到维度为1的浮点数值,也即第一采样基频序列,然后,使用神经网络的线性层将第一采样基频序列嵌入映射为维度为l的向量(l为可配置参数),从而可以将预测的基频序列转换为样点一级的第二张量,该第二张量的尺寸可以为(l,t),其中t可以用于表示样点数。
[0151]
具体地,若预测的基频序列为量化处理后的基频类别标签,则可以使用最近邻插值对预测的基频序列进行上采样处理,使预测的基频序列的时间颗粒度由“帧”细化为“样点”,以得到第二采样基频序列,此时第二采样基频序列中的每个f0仍然是基频类别标签,可使用神经网络的嵌入层(embedding层)将第二采样基频序列嵌入映射为维度为l的向量(l为可配置参数),从而可以将预测的基频序列转换为样点一级的第二张量,该第二张量的尺寸可以为(l,t),其中t可以用于表示样点数。
[0152]
在本公开的再一个实施例中,对第一张量和第二张量进行组合处理,得到目标张量,包括:响应于第一张量和第二张量的尺寸不同,将第一张量和第二张量进行串接处理,
得到目标张量;响应于第一张量和第二张量的尺寸相同,将第一张量和第二张量进行加和处理,得到目标张量。
[0153]
具体地,在对预测的基频序列进行激励映射得到第一张量,以及对预测的基频序列进行嵌入映射得到第二张量之后,为了提高合成的音频质量以及音高的准确度,可以将第一张量和第二张量进行组合处理。
[0154]
具体地,若第一张量和第二张量的尺寸不同,其中第一张量的尺寸为(k,t),第二张量的尺寸为(l,t),则可以将第一张量和第二张量沿着channel轴进行串接,得到尺寸为(k+l,t)的目标张量。
[0155]
具体地,也可以在将第二基频序列进行嵌入映射时,将维度由l提前设置为k,这样第一张量和第二张量的尺寸相同,均为(k,t),然后直接将尺寸相同的第一张量和第二张量相加,得到目标张量。
[0156]
在本公开的再一个实施例中,还包括:采用音频语料库和声学特征序列训练得到基频预测模型。
[0157]
具体地,训练基频预测模型时,可以对从音频语料库的音频中提取的真实基频f0先进行量化,将其量化为目标基频,然后将量化后的目标基频作为基频预测模型的目标输出,采用交叉熵损失函数(cross entropy loss)训练即可。在推理阶段,在通过基频预测模型预测得到目标基频后,对目标基频进行反量化,转换回hz域的基频。
[0158]
例如,在训练基频预测模型时,目标基频可以是log域的浮点数值,可以采用最小均方误差作为损失函数训练基频预测模型,则基频预测模型预测的就是log域的基频,通过执行exp操作可将log域的基频转换回hz域的基频。再例如,在训练基频预测模型时,对目标基频进行量化(例如直接对hz域的基频执行均匀量化,或者取对数后均匀量化),量化为m个可能的基频类别标签,采用交叉熵损失函数训练,在推理阶段,基频预测模型预测的基频类别标签,可以通过执行反量化操作转换回hz域的基频。
[0159]
可选地,前述在训练声码器时,对第一基频序列进行基频扰动处理,得到基频类别标签label作为第二基频序列时,由于得到的label为量化后的基频类别标签,该label也可以在训练基频预测模型时,作为目标输出使用,一举两得。基频预测模型得到预测的基频序列,可以作为声码器的输入实现音频合成,由于训练好的声码器鲁棒性强,基频预测模型在对声学特征序列进行基频预测处理时,即使出现预测错误,对合成的音频的质量也无任何影响。
[0160]
在本公开的再一个实施例中,目标文本为歌声对应的文本,目标文本包括歌声的音素类型、音素在歌声中的边界起止位置和歌声的音高中至少一项。
[0161]
具体地,目标文本可以为歌声对应的文本,也可以为其他音频对应的文本,例如,语音,演唱干声等。若目标文本为歌声对应的文本,则目标文本可以包括歌声对应歌词、歌声的旋律信息(用音符note表示)、歌声的标注信息等,其中,标注信息可以包括但不限于歌声中包含的音素类型、音素在歌声中的边界起止位置、歌声的音高等等中的至少一项。通过获取目标文本,可以提取出目标文本中的声学特征序列,从而将该声学特征序列输入至基频预测模型中进行基频预测处理,得到的预测的基频序列就可以作为训练好的声码器的输入,从而实现声码器的音频合成,提高声码器合成的音频质量以及音高的准确度。
[0162]
示例性介质
[0163]
在介绍了本公开示例性实施方式的方法之后,接下来,参考图5对本公开示例性实施方式的存储介质进行说明。
[0164]
参考图5所示,存储介质50中存储着根据本公开的实施方式的用于实现上述方法的程序产品,其可以采用便携式紧凑盘只读存储器(cd-rom)并包括计算机执行指令,该计算机执行指令用于使计算设备执行本公开所提供的声码器训练方法或音频合成方法。然而,本公开的程序产品不限于此。
[0165]
该程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。
[0166]
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机执行指令。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质。
[0167]
可以以一种或多种程序设计语言的任意组合来编写用于执行本公开公开操作的计算机执行指令,该程序设计语言包括面向对象的程序设计语言—诸如java、c++等,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。计算机执行指令可以完全地在用户计算设备上执行、部分地在用户设备上执行、部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(lan)或广域网(wan),连接到用户计算设备。
[0168]
示例性装置
[0169]
在介绍了本公开示例性实施方式的介质之后,接下来,参考图6对本公开示例性实施方式的声码器训练装置进行说明,用于实现上述任一方法实施例中的声码器训练方法,以及参考图7对本公开示例性实施方式的音频合成装置进行说明,用于实现上述任一方法实施例中的音频合成方法,其实现原理和技术效果类似,在此不再赘述。
[0170]
图6为本公开实施方式提供的声码器训练装置的结构示意图,该声码器训练装置600包括:
[0171]
获取模块601,用于获取音频语料库中音频的第一基频序列;
[0172]
第一处理模块602,用于对第一基频序列进行基频扰动处理,得到第二基频序列;
[0173]
第二处理模块603,用于对第二基频序列进行映射处理,得到目标张量;
[0174]
训练模块604,用于采用目标张量和音频对应的文本的声学特征序列训练得到用于音频合成的声码器。
[0175]
可选地,第一处理模块602通过以下步骤实现对第一基频序列进行基频扰动处理,得到第二基频序列:针对第一基频序列中的每个基频进行以下基频扰动处理,得到第二基频序列:获取基频的第一对数;对第一对数进行最值截断处理,得到第二对数;对第二对数进行量化处理,得到基频对应的基频类别标签;对基频类别标签进行反量化处理。
[0176]
可选地,第一处理模块602通过以下步骤实现对第一基频序列进行基频扰动处理,得到第二基频序列:针对第一基频序列中的每个基频进行以下基频扰动处理,得到第二基
频序列:在基频的预设采样范围内,对基频进行随机采样,得到基频对应的扰动参数;将扰动参数和基频进行加和处理。
[0177]
可选地,映射处理包含激励映射和嵌入映射,第二处理模块603通过以下步骤实现对第二基频序列进行映射处理,得到目标张量:对第二基频序列进行激励映射,得到第一张量;对第二基频序列进行嵌入映射,得到第二张量;对第一张量和第二张量进行组合处理,得到目标张量。
[0178]
可选地,第二处理模块603通过以下步骤实现对第二基频序列进行嵌入映射,得到第二张量:响应于第二基频序列为连续域的浮点数值,采用上采样插值方法对第二基频序列进行上采样插值处理,得到第一采样基频序列;对第一采样基频序列进行嵌入映射,得到第二张量。
[0179]
可选地,第二处理模块603通过以下步骤实现对第二基频序列进行嵌入映射,得到第二张量:响应于第二基频序列为量化处理后的基频类别标签,采用最近邻插值对第二基频序列进行上采样处理,得到第二采样基频序列;对第二采样基频序列进行嵌入映射,得到第二张量。
[0180]
可选地,第二处理模块603通过以下步骤实现对第一张量和第二张量进行组合处理,得到目标张量:响应于第一张量和第二张量的尺寸不同,将第一张量和第二张量进行串接处理,得到目标张量;响应于第一张量和第二张量的尺寸相同,将第一张量和第二张量进行加和处理,得到目标张量。
[0181]
图7为本公开实施方式的音频合成装置的结构示意图,该音频合成装置700包括:
[0182]
获取模块701,用于获取目标文本;
[0183]
提取模块702,用于提取目标文本的声学特征序列;
[0184]
预测模块703,用于将声学特征序列输入至基频预测模型进行基频预测,得到声学特征序列对应的基频序列;
[0185]
合成模块704,用于将基频序列和声学特征序列输入至声码器进行音频合成,得到目标文本对应的音频,声码器是通过如前述的声码器训练方法训练得到的。
[0186]
可选地,基频预测模型包括卷积层、非线性层、标准化层、随机失活层、线性层和分类层,预测模块703通过以下步骤实现将声学特征序列输入至基频预测模型进行基频预测,得到声学特征序列对应的基频序列:将声学特征序列输入至卷积层进行卷积处理,得到第一特征;将第一特征输入至非线性层进行激活处理,得到第二特征;将第二特征输入至标准化层进行标准化处理,得到第三特征;将第三特征输入至随机失活层进行失活处理,得到第四特征;将第四特征输入至线性层进行线性处理,得到第五特征;将第五特征输入至分类层进行分类处理,得到基频序列。
[0187]
可选地,合成模块704通过以下步骤实现将基频序列和声学特征序列输入至声码器进行音频合成,得到目标文本对应的音频:对基频序列进行映射处理,得到目标张量;将目标张量和声学特征序列输入至声码器进行音频合成,得到音频。
[0188]
可选地,映射处理包含激励映射和嵌入映射,合成模块704通过以下步骤实现对基频序列进行映射处理,得到目标张量:对基频序列进行激励映射,得到第一张量;对基频序列进行嵌入映射,得到第二张量;对第一张量和第二张量进行组合处理,得到目标张量。
[0189]
可选地,合成模块704通过以下步骤实现对基频序列进行嵌入映射,得到第二张
量:响应于基频序列为连续域的浮点数值,采用线性插值对基频序列进行上采样处理,得到第一采样基频序列;对第一采样基频序列进行嵌入映射,得到第二张量;响应于基频序列为量化处理后的基频类别标签,采用最近邻插值对基频序列进行上采样处理,得到第二采样基频序列;对第二采样基频序列进行嵌入映射,得到第二张量。
[0190]
可选地,合成模块704通过以下步骤实现对第一张量和第二张量进行组合处理,得到目标张量:响应于第一张量和第二张量的尺寸不同,将第一张量和第二张量进行串接处理,得到目标张量;响应于第一张量和第二张量的尺寸相同,将第一张量和第二张量进行加和处理,得到目标张量。
[0191]
可选地,还包括:处理模块,用于采用音频语料库和声学特征序列训练得到基频预测模型。
[0192]
可选地,目标文本为歌声对应的文本,目标文本包括歌声的音素类型、音素在歌声中的边界起止位置和歌声的音高中至少一项。
[0193]
示例性计算设备
[0194]
在介绍了本公开示例性实施方式的方法、介质和装置之后,接下来,参考图8对本公开示例性实施方式的计算设备进行说明。
[0195]
图8显示的计算设备80仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
[0196]
如图8所示,计算设备80以通用计算设备的形式表现。计算设备80的组件可以包括但不限于:至少一个处理单元801、至少一个存储单元802,连接不同系统组件(包括处理单元801和存储单元802)的总线803。其中,至少一个存储单元802中存储有计算机执行指令;至少一个处理单元801包括处理器,处理器执行该计算机执行指令,以实现上文描述的方法。
[0197]
总线803包括数据总线、控制总线和地址总线。
[0198]
存储单元802可以包括易失性存储器形式的可读介质,例如随机存取存储器(ram)8021和/或高速缓存存储器8022,可以进一步包括非易失性存储器形式的可读介质,例如只读存储器(rom)8023。
[0199]
存储单元802还可以包括具有一组(至少一个)程序模块8024的程序/实用工具8025,这样的程序模块8024包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
[0200]
计算设备80也可以与一个或多个外部设备804(例如键盘、指向设备等)通信。这种通信可以通过输入/输出(i/o)接口805进行。并且,计算设备80还可以通过网络适配器806与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图8所示,网络适配器806通过总线803与计算设备80的其它模块通信。应当理解,尽管图中未示出,可以结合计算设备80使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。
[0201]
应当注意,尽管在上文详细描述中提及了声码器训练装置和音频合成装置的若干单元/模块或子单元/模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具
体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。
[0202]
此外,尽管在附图中以特定顺序描述了本公开方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
[0203]
虽然已经参考若干具体实施方式描述了本公开的精神和原理,但是应该理解,本公开并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本公开旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。
技术特征:
1.一种声码器训练方法,包括:获取音频语料库中音频的第一基频序列;对所述第一基频序列进行基频扰动处理,得到第二基频序列;对所述第二基频序列进行映射处理,得到目标张量;对所述目标张量、所述音频对应的声学特征序列和所述音频进行训练,得到用于音频合成的声码器。2.根据权利要求1所述的声码器训练方法,所述对所述第一基频序列进行基频扰动处理,得到第二基频序列,包括:针对所述第一基频序列中的每个基频进行以下基频扰动处理,得到所述第二基频序列:获取所述基频的第一对数;对所述第一对数进行最值截断处理,得到第二对数;对所述第二对数进行量化处理,得到所述基频对应的基频类别标签;对所述基频类别标签进行反量化处理。3.根据权利要求1所述的声码器训练方法,所述对所述第一基频序列进行基频扰动处理,得到第二基频序列,包括:针对所述第一基频序列中的每个基频进行以下基频扰动处理,得到所述第二基频序列:在所述基频的预设采样范围内,对所述基频进行随机采样,得到所述基频对应的扰动参数;将所述扰动参数和所述基频进行加和处理。4.根据权利要求1至3任一项所述的声码器训练方法,所述映射处理包含激励映射和嵌入映射,所述对所述第二基频序列进行映射处理,得到目标张量,包括:对所述第二基频序列进行激励映射,得到第一张量;对所述第二基频序列进行嵌入映射,得到第二张量;对所述第一张量和所述第二张量进行组合处理,得到所述目标张量。5.一种音频合成方法,包括:获取目标文本;提取所述目标文本的声学特征序列;将所述声学特征序列输入至基频预测模型进行基频预测,得到所述声学特征序列对应的基频序列;将所述基频序列和所述声学特征序列输入至声码器进行音频合成,得到所述目标文本对应的音频,所述声码器是通过如权利要求1至4中任一项所述的声码器训练方法训练得到的。6.根据权利要求5所述的音频合成方法,所述基频预测模型包括卷积层、非线性层、标准化层、随机失活层、线性层和分类层,所述将所述声学特征序列输入至基频预测模型进行基频预测,得到所述声学特征序列对应的基频序列,包括:将所述声学特征序列输入至所述卷积层进行卷积处理,得到第一特征;将所述第一特征输入至所述非线性层进行激活处理,得到第二特征;
将所述第二特征输入至所述标准化层进行标准化处理,得到第三特征;将所述第三特征输入至所述随机失活层进行失活处理,得到第四特征;将所述第四特征输入至所述线性层进行线性处理,得到第五特征;将所述第五特征输入至所述分类层进行分类处理,得到所述基频序列。7.一种介质,所述介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1至4任一项所述的声码器训练方法或权利要求5或6所述的音频合成方法。8.一种声码器训练装置,包括:获取模块,用于获取音频语料库中音频的第一基频序列;第一处理模块,用于对所述第一基频序列进行基频扰动处理,得到第二基频序列;第二处理模块,用于对所述第二基频序列进行映射处理,得到目标张量;训练模块,用于采用所述目标张量和所述音频对应的文本的声学特征序列训练得到用于音频合成的声码器。9.一种音频合成装置,包括:获取模块,用于获取目标文本;提取模块,用于提取所述目标文本的声学特征序列;预测模块,用于将所述声学特征序列输入至基频预测模型进行基频预测,得到所述声学特征序列对应的基频序列;合成模块,用于将所述基频序列和所述声学特征序列输入至声码器进行音频合成,得到所述目标文本对应的音频,所述声码器是通过如权利要求1至4中任一项所述的声码器训练方法训练得到的。10.一种计算设备,包括:处理器,以及与所述处理器连接的存储器;所述存储器存储计算机执行指令;所述处理器执行所述存储器存储的计算机执行指令,以实现如权利要求1至4任一项所述的声码器训练方法或权利要求5或6所述的音频合成方法。
技术总结
本公开的实施方式提供了一种声码器训练方法。该声码器训练方法包括:获取音频语料库中音频的第一基频序列;对第一基频序列进行基频扰动处理,得到第二基频序列;对第二基频序列进行映射处理,得到目标张量;对目标张量、音频对应的声学特征序列和音频进行训练,得到用于音频合成的声码器。本公开的方法通过引入基频扰动,提升了声码器在实际应用时对基频预测错误的鲁棒性,从而显著地提高了音频合成的准确性和质量,为用户带来了更好的体验。此外,本公开的实施方式提供了一种音频合成方法、介质、装置和计算设备。装置和计算设备。装置和计算设备。
技术研发人员:李鹏 刘华平 潘颂声
受保护的技术使用者:杭州网易云音乐科技有限公司
技术研发日:2023.04.17
技术公布日:2023/8/5
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/