语音转换方法、装置、设备及存储介质与流程

专利2022-06-29  74


本申请涉及信号处理领域,尤其涉及一种语音转换方法、装置、设备及储存介质。



背景技术:

随着技术的发展,语音转换技术愈发成熟,通过语音转换模型可以实现音色转换的功能,具有广阔的应用场景。

技术问题

但现有的语音转换模型只支持单一说话人的转换。

技术解决方案

基于此,有必要针对上述问题,提供一种语音转换方法、装置、设备及存储介质。

第一方面,本申请实施例提供一种语音转换方法,该方法包括:

获取源音频数据;

接收选择的目标说话人编号和源音频数据对应的说话人编号;

对源音频数据进行预处理,得到与源音频数据对应的频谱;

将目标说话人编号、源音频数据对应的说话人编号和源音频数据对应的频谱作为语音转换模型的输入,获取语音转换模型输出的目标说话人的频谱;

通过声码器将目标说话人的频谱转换为目标说话人的语音。

在一个实施例中,语音转换模型包括:

仿射矩阵、编码器和解码器,仿射矩阵用于将输入的目标说话人编号和源音频数据对应的说话人编号编码为说话人向量,编码器用于根据说话人向量和源音频数据对应的频谱得到特征向量,解码器用于根据特征向量和说话人向量得到目标说话人的频谱。

在一个实施例中,语音转换模型的训练步骤如下:

获取训练样本集,训练样本集中包括多个训练样本,每个训练样本包括:训练目标说话人编号、训练音频数据对应的说话人编号、训练音频数据对应的频谱和训练目标说话人的频谱;

将训练说话人编号、训练音频数据对应的说话人编号和训练音频数据对应的频谱作为语音转换模型的输入,将训练目标说话人的频谱作为期望的输出;

根据语音转换模型的实际输出和期望输出的比对结果更新语音转换模型的权重参数,得到训练好的语音转换模型。

在一个实施例中,根据语音转换模型的实际输出和期望输出的比对结果更新语音转换模型的权重参数,得到训练好的语音转换模型,包括:

根据语音转换模型的实际输出和期望输出的比对差值计算得到损失值;

当损失值没有达到预设的收敛条件时,根据损失值更新语音转换模型的权重参数;

获取下一个训练样本,重新进入将训练说话人编号、训练音频数据对应的说话人编号和训练音频数据对应的频谱作为语音转换模型的输入,将训练目标说话人的频谱作为期望的输出的步骤,直至计算得到的损失值满足预设的收敛条件时,停止训练,得到训练好的语音转换模型。

在一个实施例中,根据语音转换模型的实际输出和期望输出的比对差值计算得到损失值,包括:

计算语音转换模型实际输出的频谱与训练目标说话人的频谱的第一差值;

将语音转换模型实际输出的频谱输入音素识别器,得到预测的音素信息,并与源音频数据对应的音素信息对比,计算得到第二差值;

根据第一差值与第二差值,得到损失值。

在一个实施例中,解码器的训练过程,包括:

获取预设的训练目标频谱帧和预设的训练目标说话人的平均频谱帧;

获取预设概率,根据预设概率确定每个频谱帧对应的参考帧;

当解码器输出频谱帧对应的参考帧为训练目标频谱帧时,根据训练目标频谱帧输出对应的频谱帧;

当解码器输出频谱帧对应的参考帧为平均频谱帧时,根据平均频谱帧输出对应的频谱帧。

在一个实施例中,对源音频数据进行预处理,得到与源音频数据对应的频谱,包括:

对源音频数据的首尾去掉空白部分、预加重、短时傅里叶变换,得到第一频谱;

将第一频谱通过梅尔滤波器组,得到梅尔频谱。

第二方面,本申请实施例提供一种语音转换装置,该装置包括:

获取模块,用于获取源音频数据;

接收模块,用于接收选择的目标说话人编号和源音频数据对应的说话人编号;

处理模块,用于对源音频数据进行预处理,得到与源音频数据对应的频谱;

频谱转换模块,用于将目标说话人编号、源音频数据对应的说话人编号和源音频数据对应的频谱作为语音转换模型的输入,获取语音转换模型输出的目标说话人的频谱;

语音生成模块,用于通过声码器将目标说话人的频谱转换为目标说话人的语音。

第三方面,本申请实施例提供一种语音转换设备,包括存储器和处理器,存储器中储存有计算机程序,计算机程序被处理器执行时,使得处理器执行如下步骤:

获取源音频数据;

接收选择的目标说话人编号和源音频数据对应的说话人编号;

对源音频数据进行预处理,得到与源音频数据对应的频谱;

将目标说话人编号、源音频数据对应的说话人编号和源音频数据对应的频谱作为语音转换模型的输入,获取语音转换模型输出的目标说话人的频谱;

通过声码器将目标说话人的频谱转换为目标说话人的语音。

第四方面,本申请实施例提供一种存储介质,储存有计算机程序,计算机程序被处理器执行时,使得处理器执行如下步骤:

获取源音频数据;

接收选择的目标说话人编号和源音频数据对应的说话人编号;

对源音频数据进行预处理,得到与源音频数据对应的频谱;

将目标说话人编号、源音频数据对应的说话人编号和源音频数据对应的频谱作为语音转换模型的输入,获取语音转换模型输出的目标说话人的频谱;

通过声码器将目标说话人的频谱转换为目标说话人的语音。

有益效果

实施本申请实施例,将具有如下有益效果:

通过上述语音转换方法、装置、设备及存储介质,对说话人进行编号,在实际转换过程中,通过编号来控制需要转换的目标说话人的频谱,实现了多说话人对多说话人语音转换的目的,提高了适用性。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

其中:

图1为本申请一个实施例中语音转换方法的流程图;

图2为本申请一个实施例中语音转换模型的训练流程图;

图3为本申请一个实施例中得到损失值的流程图;

图4为本申请一个实施例中根解码器参考目标频谱帧的具体流程图;

图5为本申请一个实施例中得到源音频数据对应的频谱的流程图;

图6为本申请一个实施例中语音转换的生成阶段的具体示意图;

图7为本申请一个实施例中语音转换的训练阶段的具体示意图;

图8为本申请一个实施例中语音转换装置的结构示意图;

图9为本申请一个实施例中语音转换设备的内部结构示意图。

本发明的实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

如图1所示,在一个实施例中,提出一种语音转换方法,该方法包括:

步骤102,获取源音频数据。

其中,源音频数据是指需要进行语音转换的音频,例如,当前需将一段‘a’说话人说出的‘a’话语转换为‘b’说话人说出的‘a’话语,该话语是指说话内容,也即音频中的文本信息,其中“‘a’说话人说出的‘a’话语”所属的音频数据即为源音频数据。

步骤104,接收选择的目标说话人编号和源音频数据对应的说话人编号。

其中,编号是指针对于不同说话人的代号,表示着说话人的音色,不同编号表示不同的音色。目标说话人编号即为需要转换为某个音色对应说话人的编号,如上述的‘b’;源音频数据对应的说话人编号是指源音频数据中包含的音色对应说话人的编号,也即待转换的音色对应说话人的编号,如上述的‘a’。

步骤106,对源音频数据进行预处理,得到与源音频数据对应的频谱。

其中,源音频数据是一段时域信号,是声音的幅度随着时间变化而变化的波形图,但时域信号中不能提取和分析语音特征,因此通过预处理将时域信号转换为频域信号得到与源音频数据对应的频谱。

步骤108,将目标说话人编号、源音频数据对应的说话人编号和源音频数据对应的频谱作为语音转换模型的输入,获取语音转换模型输出的目标说话人的频谱。

其中,语音转换模型是指能够将输入的频谱转换为目标频谱的虚拟程序模型。因此转换时通过将源音频数据对应的频谱输入,目标说话人编号以及源音频数据对应的说话人编号,得到目标说话人的频谱。输入转换前后说话人编号是为了将说话人作为一种可变特征,从而在需要指定说话人时基于该编号进行输出。

步骤110,通过声码器将目标说话人的频谱转换为目标说话人的语音。

其中,声码器是指语音信号某种模型的语音分析合成系统。在传输中只利用模型参数,在编译码时利用模型参数估计和语音合成技术的语音信号编译码器,一种对话音进行分析和合成的编、译码器,也称话音分析合成系统或话音频带压缩系统。它是压缩通信频带和进行保密通信的有力工具。在得到目标说话人的频谱后通过声码器即可将频谱转换为对应的语音。声码器可以采用world、griff-lim或wavenet等。

通过对说话人进行编号,在实际转换过程中,通过编号来控制需要转换的目标说话人的频谱,实现了多说话人对多说话人语音转换的目的,提高了适用性。

在一个实施例中,语音转换模型包括:

仿射矩阵、编码器和解码器,仿射矩阵用于将输入的目标说话人编号和源音频数据对应的说话人编号编码为说话人向量,编码器(encoder)用于根据说话人向量和源音频数据对应的频谱得到特征向量,解码器(decoder)用于根据特征向量和说话人向量得到目标说话人的频谱。

其中,仿射矩阵是指speakerembedding(说话人嵌入),在speakerembedding中存有每个说话人和频谱间的对应关系;编码器具体的架构为cnn bi-lstm linearprojection;解码器具体的架构为pre-net attention lstm post-net。

其中,在语音转换模型内部具体的执行流程包括:

将目标说话人的编号和源音频数据对应的说话人编号输入到speakerembedding中,得到对应的说话人向量。将频谱输入到编码器中,经过cnn(convolutionalneuralnetworks卷积神经网络),并在bi-lstm(bi-directionallongshort-termmemory,一种用于文本上下文建模的模型,包括前向和后向)中输入说话人向量,通过linear线性化得到语音特征向量。将得到特征向量输入到解码器中,经过prenet,并在attention(注意力模型)中输入说话人向量,以及在lstm(longshort-termmemory,一种用于文本上下文建模的模型,单向)中输入说话人向量。最后通过cnn(convolutionalneuralnetworks卷积神经网络)输出与说话人向量对应的目标说话人的频谱。

采用将说话人向量输入到编解码器的中间值,使得编解码过程中携带了编号变量,从而最终根据编号变量输出对应的频谱。

如图2所示,在一个实施例中,语音转换模型的训练步骤如下:

步骤202,获取训练样本集,训练样本集中包括多个训练样本,每个训练样本包括:训练目标说话人编号、训练音频数据对应的说话人编号、训练音频数据对应的频谱和训练目标说话人的频谱。

其中,训练样本集中包含不同说话人的编号、频谱。例如,现需要将‘a’说话人说出的‘a’话语转换为‘b’说话人说出的‘a’话语,此时“‘a’说话人说出的‘a’话语”对应的频谱即为训练音频数据对应的频谱,“‘b’说话人说出的‘a’话语”对应的频谱即为训练目标说话人的频谱,‘a,b’即分别为训练音频数据对应的说话人编号和训练目标说话人编号。

样本训练是为了依据大数据,使得语音转换模型拟合出该样本群范围内转换语音特征的参数,使得后续实际生产过程中能依据训练拟合的参数,来进行语音特征的转换,训练样本越多,样本群范围越大,越有可能包含实际生产过程中输入的新语音。

步骤204,将训练说话人编号、训练音频数据对应的说话人编号和训练音频数据对应的频谱作为语音转换模型的输入,将训练目标说话人的频谱作为期望的输出。

其中,如上述举例中,将“‘a’说话人说出的‘a’话语”对应的频谱和编号‘a,b’作为输入,将“‘b’说话人说出的‘a’话语”对应的频谱作为期望输出,语音转换模型输出对应频谱时参考期望输出。

步骤206,根据语音转换模型的实际输出和期望输出的比对结果更新语音转换模型的权重参数,得到训练好的语音转换模型。

其中,在训练得到的实际输出后,根据与期望输出的比对结果进行分析,更新语音转换模型的权重参数,优化语音转换模型。

通过预设的输入和期望输出,对语音转换模型进行训练,得到训练好的语音转换模型,基于训练好的语音转换模型进行输出,使得语音转换的精度更高、效果更好。

在一个实施例中,根据语音转换模型的实际输出和期望输出的比对结果更新语音转换模型的权重参数,得到训练好的语音转换模型,包括:

根据语音转换模型的实际输出和期望输出的比对差值计算得到损失值。

当损失值没有达到预设的收敛条件时,根据损失值更新语音转换模型的权重参数。

获取下一个训练样本,重新进入将训练说话人编号、训练音频数据对应的说话人编号和训练音频数据对应的频谱作为语音转换模型的输入,将训练目标说话人的频谱作为期望的输出的步骤,直至计算得到的损失值满足预设的收敛条件时,停止训练,得到训练好的语音转换模型。

其中,损失值是指实际输出相比期望输出的失真的多少,具体的损失值可以指实际输出的频谱和期望输出的频谱的比对差值,也可以包括其他差值。训练时,不断循环训练训练样本集中的所有训练样本,并计算每次训练的损失值,检测损失值是否满足预设的收敛条件,当检测到损失值满足预设的收敛条件时,完成训练,得到训练好的语音转换模型。

通过不断的多次训练,并每次训练都根据损失值进行权重参数的调整,直至得到的损失值收敛,判定此时训练完成,得到训练好的语音转换模型,基于训练好的语音转换模型进行输出,使得语音转换的精度更高、效果更好。

如图3所示,在一个实施例中,根据语音转换模型的实际输出和期望输出的比对差值计算得到损失值,包括:

步骤302,计算语音转换模型实际输出的频谱与目标说话人的频谱的第一差值。

其中,损失值具体包含两部分,一部分即为实际输出的频谱与目标频谱之间的第一差值,另一部分为预测到的音素信息与源音素信息之间的第二差值。

步骤304,将语音转换模型实际输出的频谱输入音素识别器,得到预测的音素信息,并与源音频数据对应的音素信息对比,计算得到第二差值。

其中,音素识别器是指能够将频谱作为输入,输出频谱中的音素信息的虚拟程序模块,具体的音素识别器采用ctc算法(connectionisttemporalclassification),其内部架构为linearprojection ctcloss。源音素信息则是基于源音频数据提取获得的,具体的音素信息是指由音素编码形成的音素向量。ctc用于训练阶段。

步骤306,根据第一差值与第二差值,得到损失值。

其中,损失值具体为第一差值和第二差值的相加得到。

通过引入ctc算法,计算音素信息的比对差值,帮助训练过程中使语音转换模型加速对齐和收敛,提高了训练速度。

如图4所示,在一个实施例中,解码器的训练过程,包括:

步骤402,获取预设的训练目标频谱帧和预设的训练目标说话人的平均频谱帧。

其中,其中在现有的解码器在训练阶段输出频谱时,是参考给定的预设目标频谱进行输出,输出的每一帧都参考对应目标频谱的每一帧。但在实际生成过程中,并没有目标频谱可参考,因此训练阶段得到的结果与生成阶段得到的结果是存在偏差的。若完全参考目标频谱帧,则生成阶段无法得到如训练阶段一样的好结果,若完全不参考目标频谱帧,模型又难以收敛,所以通过解码器内部控制,设置参考概率,使得目标频谱帧随机分布在参考帧中,通过不完全参考目标频谱帧来使得生成阶段得到的结果接近真实情况。

上述中的训练目标频谱帧是指目标说话人的频谱中每一帧,而训练目标说话人的平均频谱帧则是指目标说话人对应的所有频谱中频谱帧的平均值。

步骤404,获取预设概率,根据预设概率确定每个频谱帧对应的参考帧。

其中,预设概率是预先设置,通过解码器中的teacherforcingrate和speakerglobalmeanframe进行控制,在解码器输出频谱时,根据预设概率参考对应的频谱帧。在一个实施例中,预设概率为0.5;毫无疑问的,预设概率也可以为其他数值。

步骤406,当解码器输出频谱帧对应的参考帧为训练目标频谱帧时,根据训练目标频谱帧输出对应的频谱帧。

其中,具体的,根据预设概率,当确定的当前输出的频谱帧对应的参考帧为训练目标频谱帧时,就根据训练目标频谱帧进行输出。

步骤408,当解码器输出频谱帧对应的参考帧为平均频谱帧时,根据平均频谱帧输出对应的频谱帧。

其中,当确定的当前输出的频谱帧对应的参考帧为平均频谱帧时,就根据平均频谱帧进行输出。

通过引入teacherforcingrate和speakerglobalmeanframe来控制参考目标频谱帧的概率,使得不完全参考目标频谱帧,接近实际生成的效果,改善了训练和生成过程不一样导致结果出现偏差的现象。

如图5所示,在一个实施例中,对源音频数据进行预处理,得到与源音频数据对应的频谱,包括:

步骤502,对源音频数据的首尾去掉空白部分、预加重、短时傅里叶变换,得到第一频谱。

其中,对源音频数据减去音频空白部分是为了让attention模块更好地学习对齐;预加重给音频增添了高频信息,过滤了一部分噪音;stft(短时傅里叶变换)将波形从时域转换到频域,得到第一频谱,方便提取语音特征

步骤504,将第一频谱通过梅尔滤波器组,得到梅尔频谱。

其中,得到的第一频谱的频率刻度是不符合人耳的听觉线性习惯的,因此将第一频谱通过梅尔滤波器组,得到梅尔频谱,梅尔频谱的频率刻度是符合人耳听觉习惯的。梅尔滤波器组则是分布在低频出的滤波器更密集,门限值大,反之分布在高频出滤波器更稀疏,门限值小。

通过预处理,将源音频数据进行了过滤、降噪、转换频域,使得进入语音转换模型的频谱是清晰、精准的,提高了语音转换的精度。

如图6所示,在一个实施例中,语音转换的生成阶段具体包括:通过对源音频数据进行预处理得到源说话人的梅尔频谱,将源说话人的梅尔频谱、目标说话人编号和源音频数据对应的说话人编号输入到语音转换模型中,得到目标说话人的梅尔频谱,具体的,将目标说话人的编号和源音频数据对应的说话人编号输入到speakerembedding中,得到对应的说话人向量。将频谱输入到编码器中,经过cnn(convolutionalneuralnetworks卷积神经网络),并在bi-lstm(bi-directionallongshort-termmemory,一种用于文本上下文建模的模型,包括前向和后向)中输入说话人向量,通过linear线性化得到语音特征向量。将得到特征向量输入到解码器中,经过prenet,并在attention(注意力模型)中输入编码向量,以及在lstm(directionallongshort-termmemory,一种用于文本上下文建模的模型,单向)中输入说话人向量,最后通过cnn(convolutionalneuralnetworks卷积神经网络)输出与说话人向量对应的目标说话人的频谱。将得到的目标说话人的梅尔频谱通过声码器转换为目标说话人的语音。

如图7所示,在一个实施例中,语音转换的训练阶段具体包括:通过对训练音频数据进行预处理得到训练说话人的梅尔频谱,将训练说话人的梅尔频谱、训练目标说话人编号和训练音频数据对应的说话人编号输入到语音转换模型中,得到训练目标说话人的梅尔频谱。具体的,将训练目标说话人的编号和训练音频数据对应的说话人编号输入到speakerembedding中,得到对应的训练说话人向量。将频谱输入到编码器中,经过cnn(convolutionalneuralnetworks卷积神经网络),并在bi-lstm(bi-directionallongshort-termmemory,一种用于文本上下文建模的模型,包括前向和后向)中输入训练说话人向量,通过linear线性化得到语音特征向量。将得到特征向量输入到解码器中,经过prenet,并在attention(注意力模型)中输入训练说话人向量,以及在lstm(directionallongshort-termmemory,一种用于文本上下文建模的模型,单向)中输入训练说话人向量。最后通过cnn(convolutionalneuralnetworks卷积神经网络)输出与训练说话人向量对应的训练目标说话人的频谱。将得到的训练目标说话人的梅尔频谱输入到ctc中,得到预测的音素信息,将预测的音素信息与源音素信息进行比对,得到音素信息的对比误差,结合频谱的比对误差,反向传播更新语音转换模型的权重参数。此外将得到的训练目标说话人的梅尔频谱通过声码器转换为训练目标说话人的语音。

如图8所示,本申请提供一种语音转换装置,该装置包括:

获取模块802,用于获取源音频数据;

接收模块804,用于接收选择的目标说话人编号和源音频数据对应的说话人编号;

处理模块806,用于对源音频数据进行预处理,得到与源音频数据对应的频谱;

频谱转换模块808,用于将目标说话人编号、源音频数据对应的说话人编号和源音频数据对应的频谱作为语音转换模型的输入,获取语音转换模型输出的目标说话人的频谱;

语音生成模块810,用于通过声码器将目标说话人的频谱转换为目标说话人的语音。

在一个实施例中,语音转换模型包括:仿射矩阵、编码器和解码器,仿射矩阵用于将输入的目标说话人编号和源音频数据对应的说话人编号编码为说话人向量,编码器用于根据说话人向量和源音频数据对应的频谱得到特征向量,解码器用于根据特征向量和说话人向量得到目标说话人的频谱。

在一个实施例中,频谱转换模块还用于获取训练样本集,训练样本集中包括多个训练样本,每个训练样本包括:训练目标说话人编号、训练音频数据对应的说话人编号、训练音频数据对应的频谱和训练目标说话人的频谱;将训练说话人编号、训练音频数据对应的说话人编号和训练音频数据对应的频谱作为语音转换模型的输入,将训练目标说话人的频谱作为期望的输出;根据语音转换模型的实际输出和期望输出的比对结果更新语音转换模型的权重参数,得到训练好的语音转换模型。

在一个实施例中,频谱转换模块还用于根据语音转换模型的实际输出和期望输出的比对差值计算得到损失值;当损失值没有达到预设的收敛条件时,根据损失值更新语音转换模型的权重参数;获取下一个训练样本,重新进入将训练说话人编号、训练音频数据对应的说话人编号和训练音频数据对应的频谱作为语音转换模型的输入,将训练目标说话人的频谱作为期望的输出的步骤,直至计算得到的损失值满足预设的收敛条件时,停止训练,得到训练好的语音转换模型。

在一个实施例中,频谱转换模块还用于计算语音转换模型实际输出的频谱与训练目标说话人的频谱的第一差值;将语音转换模型实际输出的频谱输入音素识别器,得到预测的音素信息,并与源音频数据对应的音素信息对比,计算得到第二差值;根据第一差值与第二差值,得到损失值。

在一个实施例中,频谱转换模块还用于获取预设的训练目标频谱帧和预设的训练目标说话人的平均频谱帧;获取预设概率,根据预设概率确定每个频谱帧对应的参考帧;当解码器输出频谱帧对应的参考帧为训练目标频谱帧时,根据训练目标频谱帧输出对应的频谱帧;当解码器输出频谱帧对应的参考帧为平均频谱帧时,根据平均频谱帧输出对应的频谱帧。

在一个实施例中,处理模块还用于对源音频数据的首尾去掉空白部分、预加重、短时傅里叶变换,得到第一频谱;将第一频谱通过梅尔滤波器组,得到梅尔频谱。

在一个实施例中,本申请提供一种语音转换设备,该语音转换设备的内部结构图如图9所示。该语音转换设备包括通过系统总线连接的处理器、存储器和网络接口。其中,存储器包括非易失性存储介质和内存储器。该语音转换设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现语音转换方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行语音转换方法。本领域技术人员可以理解,图9中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的语音转换设备的限定,具体的语音转换设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,提供的一种语音转换方法可以实现为一种计算机程序的形式,计算机程序可在如图9所示的语音转换设备上运行。语音转换设备的存储器中可存储组成一种语音转换装置的各个程序模块。比如,获取模块802、接收模块804、处理模块806、频谱转换模块808、语音生成模块810。

一种语音转换设备,包括处理器和存储器,存储器中储存有计算机程序,计算机程序被处理器执行时,使得处理器执行如下步骤:获取源音频数据;接收选择的目标说话人编号和源音频数据对应的说话人编号;对源音频数据进行预处理,得到与源音频数据对应的频谱;将目标说话人编号、源音频数据对应的说话人编号和源音频数据对应的频谱作为语音转换模型的输入,获取语音转换模型输出的目标说话人的频谱;通过声码器将目标说话人的频谱转换为目标说话人的语音。

在一个实施例中,语音转换模型包括:仿射矩阵、编码器和解码器,仿射矩阵用于将输入的目标说话人编号和源音频数据对应的说话人编号编码为说话人向量,编码器用于根据说话人向量和源音频数据对应的频谱得到特征向量,解码器用于根据特征向量和说话人向量得到目标说话人的频谱。

在一个实施例中,语音转换模型的训练步骤如下:获取训练样本集,训练样本集中包括多个训练样本,每个训练样本包括:训练目标说话人编号、训练音频数据对应的说话人编号、训练音频数据对应的频谱和训练目标说话人的频谱;将训练说话人编号、训练音频数据对应的说话人编号和训练音频数据对应的频谱作为语音转换模型的输入,将训练目标说话人的频谱作为期望的输出;根据语音转换模型的实际输出和期望输出的比对结果更新语音转换模型的权重参数,得到训练好的语音转换模型。

在一个实施例中,根据语音转换模型的实际输出和期望输出的比对结果更新语音转换模型的权重参数,得到训练好的语音转换模型,包括:根据语音转换模型的实际输出和期望输出的比对差值计算得到损失值;当损失值没有达到预设的收敛条件时,根据损失值更新语音转换模型的权重参数;获取下一个训练样本,重新进入将训练说话人编号、训练音频数据对应的说话人编号和训练音频数据对应的频谱作为语音转换模型的输入,将训练目标说话人的频谱作为期望的输出的步骤,直至计算得到的损失值满足预设的收敛条件时,停止训练,得到训练好的语音转换模型。

在一个实施例中,根据语音转换模型的实际输出和期望输出的比对差值计算得到损失值,包括:计算语音转换模型实际输出的频谱与训练目标说话人的频谱的第一差值;将语音转换模型实际输出的频谱输入音素识别器,得到预测的音素信息,并与源音频数据对应的音素信息对比,计算得到第二差值;根据第一差值与第二差值,得到损失值。

在一个实施例中,上述语音转换模型的训练过程,包括:获取预设的训练目标频谱帧和预设的训练目标说话人的平均频谱帧;获取预设概率,根据预设概率确定每个频谱帧对应的参考帧;当解码器输出频谱帧对应的参考帧为训练目标频谱帧时,根据训练目标频谱帧输出对应的频谱帧;当解码器输出频谱帧对应的参考帧为平均频谱帧时,根据平均频谱帧输出对应的频谱帧。

在一个实施例中,对源音频数据进行预处理,得到与源音频数据对应的频谱,包括:对源音频数据的首尾去掉空白部分、预加重、短时傅里叶变换,得到第一频谱;将第一频谱通过梅尔滤波器组,得到梅尔频谱。

在一个实施例中,本发提供一种存储介质,储存有计算机程序,计算机程序被处理器执行时,使得处理器执行如下步骤:获取源音频数据;接收选择的目标说话人编号和源音频数据对应的说话人编号;对源音频数据进行预处理,得到与源音频数据对应的频谱;将目标说话人编号、源音频数据对应的说话人编号和源音频数据对应的频谱作为语音转换模型的输入,获取语音转换模型输出的目标说话人的频谱;通过声码器将目标说话人的频谱转换为目标说话人的语音。

在一个实施例中,语音转换模型包括:仿射矩阵、编码器和解码器,仿射矩阵用于将输入的目标说话人编号和源音频数据对应的说话人编号编码为说话人向量,编码器用于根据说话人向量和源音频数据对应的频谱得到特征向量,解码器用于根据特征向量和说话人向量得到目标说话人的频谱。

在一个实施例中,语音转换模型的训练步骤如下:获取训练样本集,训练样本集中包括多个训练样本,每个训练样本包括:训练目标说话人编号、训练音频数据对应的说话人编号、训练音频数据对应的频谱和训练目标说话人的频谱;将训练说话人编号、训练音频数据对应的说话人编号和训练音频数据对应的频谱作为语音转换模型的输入,将训练目标说话人的频谱作为期望的输出;根据语音转换模型的实际输出和期望输出的比对结果更新语音转换模型的权重参数,得到训练好的语音转换模型。

在一个实施例中,根据语音转换模型的实际输出和期望输出的比对结果更新语音转换模型的权重参数,得到训练好的语音转换模型,包括:根据语音转换模型的实际输出和期望输出的比对差值计算得到损失值;当损失值没有达到预设的收敛条件时,根据损失值更新语音转换模型的权重参数;获取下一个训练样本,重新进入将训练说话人编号、训练音频数据对应的说话人编号和训练音频数据对应的频谱作为语音转换模型的输入,将训练目标说话人的频谱作为期望的输出的步骤,直至计算得到的损失值满足预设的收敛条件时,停止训练,得到训练好的语音转换模型。

在一个实施例中,根据语音转换模型的实际输出和期望输出的比对差值计算得到损失值,包括:计算语音转换模型实际输出的频谱与训练目标说话人的频谱的第一差值;将语音转换模型实际输出的频谱输入音素识别器,得到预测的音素信息,并与源音频数据对应的音素信息对比,计算得到第二差值;根据第一差值与第二差值,得到损失值。

在一个实施例中,语音转换模型的训练过程,包括:获取预设的训练目标频谱帧和预设的训练目标说话人的平均频谱帧;获取预设概率,根据预设概率确定每个频谱帧对应的参考帧;当解码器输出频谱帧对应的参考帧为训练目标频谱帧时,根据训练目标频谱帧输出对应的频谱帧;当解码器输出频谱帧对应的参考帧为平均频谱帧时,根据平均频谱帧输出对应的频谱帧。

在一个实施例中,对源音频数据进行预处理,得到与源音频数据对应的频谱,包括:对源音频数据的首尾去掉空白部分、预加重、短时傅里叶变换,得到第一频谱;将第一频谱通过梅尔滤波器组,得到梅尔频谱。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(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(rdram)等。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。请输入具体实施内容部分。


技术特征:

1.一种语音转换方法,其特征在于,所述方法包括:

获取源音频数据;

接收选择的目标说话人编号和源音频数据对应的说话人编号;

对所述源音频数据进行预处理,得到与所述源音频数据对应的频谱;

将所述目标说话人编号、所述源音频数据对应的说话人编号和所述源音频数据对应的频谱作为语音转换模型的输入,获取所述语音转换模型输出的目标说话人的频谱;

通过声码器将所述目标说话人的频谱转换为所述目标说话人的语音。

2.根据权利要求1所述的方法,其特征在于,所述语音转换模型包括:

仿射矩阵、编码器和解码器,所述仿射矩阵用于将输入的所述目标说话人编号和所述源音频数据对应的说话人编号编码为说话人向量,所述编码器用于根据所述说话人向量和所述源音频数据对应的频谱得到特征向量,所述解码器用于根据所述特征向量和所述说话人向量得到所述目标说话人的频谱。

3.根据权利要求2所述的方法,其特征在于,所述语音转换模型的训练步骤如下:

获取训练样本集,所述训练样本集中包括多个训练样本,每个训练样本包括:训练目标说话人编号、训练音频数据对应的说话人编号、训练音频数据对应的频谱和训练目标说话人的频谱;

将所述训练说话人编号、所述训练音频数据对应的说话人编号和所述训练音频数据对应的频谱作为所述语音转换模型的输入,将所述训练目标说话人的频谱作为期望的输出;

根据所述语音转换模型的实际输出和期望输出的比对结果更新所述语音转换模型的权重参数,得到训练好的所述语音转换模型。

4.根据权利要求3所述的方法,其特征在于,所述根据所述语音转换模型的实际输出和期望输出的比对结果更新所述语音转换模型的权重参数,得到训练好的所述语音转换模型,包括:

根据所述语音转换模型的所述实际输出和期望输出的比对差值计算得到损失值;

当所述损失值没有达到预设的收敛条件时,根据所述损失值更新所述语音转换模型的权重参数;

获取下一个训练样本,重新进入所述将所述训练说话人编号、所述训练音频数据对应的说话人编号和所述训练音频数据对应的频谱作为所述语音转换模型的输入,将所述训练目标说话人的频谱作为期望的输出的步骤,直至计算得到的所述损失值满足所述预设的收敛条件时,停止训练,得到训练好的所述语音转换模型。

5.根据权利要求4所述的方法,其特征在于,所述根据所述语音转换模型的所述实际输出和期望输出的比对差值计算得到损失值,包括:

计算所述语音转换模型实际输出的频谱与所述目标说话人的频谱的第一差值;

将所述语音转换模型实际输出的频谱输入音素识别器,得到预测的音素信息,并与所述源音频数据对应的音素信息对比,计算得到第二差值;

根据所述第一差值与所述第二差值,得到所述损失值。

6.根据权利要求2所述的方法,其特征在于,所述解码器的训练过程,包括:

获取预设的训练目标频谱帧和预设的训练目标说话人的平均频谱帧;

获取预设概率,根据所述预设概率确定每个频谱帧对应的参考帧;

当所述解码器输出频谱帧对应的参考帧为所述训练目标频谱帧时,根据所述训练目标频谱帧输出对应的频谱帧;

当所述解码器输出频谱帧对应的参考帧为所述平均频谱帧时,根据所述平均频谱帧输出对应的频谱帧。

7.根据权利要求1所述的方法,其特征在于,所述对所述源音频数据进行预处理,得到与所述源音频数据对应的频谱,包括:

对所述源音频数据的首尾去掉空白部分、预加重、短时傅里叶变换,得到第一频谱;

将所述第一频谱通过梅尔滤波器组,得到梅尔频谱。

8.一种语音转换装置,其特征在于,所述装置包括:

获取模块,用于获取源音频数据;

接收模块,用于接收选择的目标说话人编号和源音频数据对应的说话人编号;

处理模块,用于对所述源音频数据进行预处理,得到与所述源音频数据对应的频谱;

频谱转换模块,用于将所述目标说话人编号、所述源音频数据对应的说话人编号和所述源音频数据对应的频谱作为语音转换模型的输入,获取所述语音转换模型输出的目标说话人的频谱;

语音生成模块,用于通过声码器将所述目标说话人的频谱转换为所述目标说话人的语音。

9.一种语音转换设备,包括存储器和处理器,所述存储器中储存有计算机程序,其特征在于,所述计算机程序被所述处理器执行时,使得所述处理器执行如权利要求1-7所述任一种方法的步骤。

10.一种存储介质,储存有计算机程序,其特征在于,所述计算机程序被处理器执行时,使得所述处理器执行如权利要求1-7所述任一种方法的步骤。

技术总结
本申请公开一种语音转换方法,该方法包括:获取源音频数据;接收选择的目标说话人编号和源音频数据对应的说话人编号;对源音频数据进行预处理,得到与源音频数据对应的频谱;将目标说话人编号、源音频数据对应的说话人编号和源音频数据对应的频谱作为语音转换模型的输入,获取语音转换模型输出的目标说话人的频谱;通过声码器将目标说话人的频谱转换为目标说话人的语音。对目标说话人进行编号,在实际转换过程中,通过编号来控制需要转换的目标说话人的频谱,实现了多说话人对多说话人语音转换的目的,提高了适用性。此外,本申请还公开一种语音转换装置、设备及存储介质。

技术研发人员:赵之源;黄东延;熊友军
受保护的技术使用者:深圳市优必选科技股份有限公司
技术研发日:2019.12.27
技术公布日:2020.06.05

转载请注明原文地址: https://bbs.8miu.com/read-47439.html

最新回复(0)