一种基于数字人的多情感语音合成方法
技术领域
本发明涉及虚拟数字人技术领域,更具体的说是涉及一种基于数字人的多情感语音合成方法。
背景技术
目前,传统的语音合成声音虽然可以消除机械音,让人很难分辨是真人发声还是合成的声音,但是同样的文本只有单一的情绪。针对不同情绪的语音合成,往往是通过不同的模型,来用不同的音频语料来分别训练获得对应情感的音频。这样不仅需要大量的音频语料,而且不同情感之间的切换也会表现出机械感,在数字人这种高度拟人化的语音交互中,难以令人满意。在多情感语音合成方面,虽然没有误码率这样硬性的指标,但是也和语音识别等语音任务一样面临相似的问题。语音合成虽然可以将需要合成语音的文本合成对应的音频,但是其情感丰富度还是达不到想人类那样的水平。而这一点在数字人语音交互中显得格外重要。
普通的深度学习模型,例如tacotron,是基于统计模型来实现语音合成,往往一个模型只能训练出一种情绪的语音合成***,要实现多情感表达需要在不同情感模型之间来回切换。这样不仅需要用大量语料来训练,而且在不同的语音模型之间来回切换会造成严重的机械感。不仅如此,通过不同情感语音模型合成的声音无法对情感进行连续建模,即所表达的情感非此即彼,没有一种中间的柔和的情感表达方式。直接把不同的情感音频语料加上情感标签丢进一个模型中训练,则会造成合成的语音不符合人们正常表达情感的韵律特征,即抓不住应该重音表达的词,从而听起来非常奇怪。
在训练语料中加入韵律标签可以缓解上述问题,但是为语料打标签是一个繁琐的过程,需要大量人工审核才能有一个较好的结果。不仅如此,在实际的语音交互中,也需要对要合成的文本进行韵律标注,***变得复杂,而且标注不对很可能影响最终的合成效果。
因此,如何提供一种基于数字人的多情感语音合成方法是本领域技术人员亟需解决的问题。
发明内容
有鉴于此,本发明提供了一种基于数字人的多情感语音合成方法,能够避免韵律标签的人工加入,提高模型训练效率;通过对音频时域和频域特征的学习,实现更逼真的音频合成效果。
为了实现上述目的,本发明采用如下技术方案:
一种基于数字人的多情感语音合成方法,包括以下步骤:
获取多种情感下的音频语料;
提取所述音频语料中的文本信息和音素时间戳标签,构建训练数据集;
通过所述训练数据集对预先构建的时间戳预测模型进行有监督训练;
通过训练好的所述时间戳预测模型和预设的情感向量,对待合成文本信息进行预测,得到音素时间戳;
将所述音素时间戳输入至训练好的声学模型,得到合成音频。
进一步的,所述多种情感下的音频语料中,所述情感包括中立、高兴、悲伤、生气、惊讶和恐惧中的一种或多种。
进一步的,提取所述音频语料中的文本信息和音素时间戳标签,构建第一训练数据集步骤包括:
将所述音频语料剪辑成多个音频,
通过ASR语音识别模型对所述音频进行语音识别,得到文本信息;将所述文本信息中转换成文本拼音,并根据音素词典分解成多个音素,形成音素序列;
对所述音素序列进行音素对齐,得到每个音频的音素时间戳标签;
在所述音素序列中***停顿帧长并拼接所述音频对应的音素时间戳标签,生成所述训练数据集。
进一步的,所述音素时间戳预测模型为Bilstm模型,所述Bilstm模型的损失函数采用均方差损失函数。
进一步的,所述声学模型包括合成器和声码器;
根据所述音素时间戳生成模型嵌入向量;
通过所述合成器对所述模型嵌入向量进行拟合,得到mel频谱特征;
将所述mel频谱特征输入值所述声码器得到合成音频。
进一步的,根据所述音素时间戳生成模型嵌入向量,步骤为:
根据所述音素时间戳,分别计算每个音素与其相邻前后拼音之间的发音帧长差,并将所述发音帧长差拼接到所述音素时间戳标签中,生成模型嵌入向量。
进一步的,所述声码器为预训练的hifi-gan模型。
进一步的,所述mel频谱特征的通道为80,Hop_size为256,win_size为1024。
进一步的,在提取所述音频信息的文本信息后通过正则化处理,将需要转换成中文的特殊字符转换为中文得到正则化规范文本本发明的有益效果:
经由上述的技术方案可知,与现有技术相比,本发明公开提供了一种基于数字人的多情感语音合成方法,采用情感向量结合时间戳信息,利用深度学习技术学习语音情感特征,减少了韵律标签这一步可能引发的误差,可以使模型发音更自然,情感更逼真,同时省去了韵律预测的步骤,加快速度,提高实时性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1附图为本发明提供的一种基于数字人的多情感语音合成方法示意图;
图2附图为本发明中提取音素时间戳标签方法示意图;
图3附图为本发明中训练数据集的构建方法示意图;
图4附图为本发明中声学模型训练方法示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1,本发明实施例公开了一种基于数字人的多情感语音合成方法,包括以下步骤:
S1:获取多种情感下的音频语料;
在一种实施例中,多种情感下的音频语料中,情感可包括中立、高兴、悲伤、生气、惊讶和恐惧中的一种或多种。并且,所述音频语料音量一致,语气一致。
具体步骤为:
由专业的播音员在专业的录音棚录制多情感音频语料;播音员需要录制六种情感的音频语料,包括:中立,高兴,悲伤,生气,惊讶,恐惧六种情感,每种情绪大约录制一万条音频。播音员分别录制各种情感音频,应尽量保持同一种音量,同一情感的说话语速和音调尽量保持一致。
为了保证录制效率,一次录制音频中间不暂停录音,播音员录音过程中停顿或者非台词发出的声音后续需要剪辑掉。不同批次录制的音频通过剪辑后,需要对各个音频音量做归一化,从而保证训练音频质量。
S2:提取音频语料中的文本信息和音素时间戳,构建训练数据集;
在一种实施例中,将文本信息中转换成文本拼音,并根据音素词典分解成多个音素,形成音素序列;
对音素序列进行音素对齐,得到每个音频的音素时间戳标签;
在音素序列中***停顿帧长并拼接音频对应的音素时间戳标签,生成训练数据集。其中,停顿帧帧长可以由通过因素时间戳标签得到,音素时间戳包含音素和对应的时长,一个是音素,一个是时间,这里的拼接指将音素复制成其时间帧长的倍数。例如音素abc,三个音素的时间帧长分别为123,那么音素复制帧长后为abbccc。
具体步骤为:
如图2,播音员录制好音频,并对音频剪辑处理好后,得到一条一条的训练音频语料。为了防止播音员在音频录制的时候出现错词漏词多词等失误,首先对各条音频语料进行语音识别处理,得到每个音频的文本内容。再通过人工校验后,得到正确的音频及相对应的文本信息。得到正确的文本信息后,把文本内容转换为拼音,并整理获得拼音和拼音音素词典。整理音频文件和对应的拼音文件,通过音素词典利用声学模型进行音素对齐,例如:MFA工具。通过音素对齐后,可以获得每个音频的音素时间戳信息。整理好每条音频语料的文本,音素时间戳,音频文件等信息,作为训练数据文本以备下一步训练模型。
S3:通过所述第一训练数据集对预先构建的音素时间戳预测模型进行有监督训练;
如图3,根据第一训练数据集中的文本信息和音素时间戳信息,对训练音素时间戳预测模型。
预测时间戳信息,是为了在合成语音时,输入文本后,模型可以预测出音频声音对应的音素时间戳信息,从而在进行音频合成时,知道在某个时刻里应该发什么哪个音素的声音。时间戳的单位用帧来表示,一个音素发声的时间可以占用几帧的时间。音素时间戳预测模型输入的是仅仅包含文本信息,但是在实际的音频发音中会有间断的停顿,为了能够在输出的预测结构中表示这种间断停顿,在每个文字拼音后添加一个sp符号,表示停顿帧长,如该处sp没有停顿帧长,则对应标签为0。预测模型结构采用Bilstm模型,损失函数采用均方差损失函数。输入文本拼音后,通过查询拼音的音素词典转换为包含sp的音素序列,音素序列通过embedding后拼接上对应的情感标签向量,再输入到Bilstm网络中,对应的标签为每个音素发音的帧长。通过训练,直到模型收敛。
S4:通过训练好的所述时间戳预测模型和预设的情感向量,对待合成文本信息进行预测,得到音素时间戳;
S5:将所述音素时间戳输入至训练好的声学模型,得到合成音频。
在一种实施例中,通过训练音素时间戳预测模型后,可以通过输入文本获得对饮发音音频的各个帧长内的发音内容。
接下来要通过声学模型去生成音频内容。
输入为音素序列,每个音素单元由其对应的帧长个音素组成,音素序列经过embedding后先拼接上情感向量。
为了抓住多情感音频情感的声学特征,需要让声学模型找到重音所在音素。
不同音频情感特征体现在时域和频域上,在此我们已经获得音素时间戳信息,因此可以利用音素的帧长信息来让模型学习重音所在音素的时域信息。
把每个文字当前帧长和相对前一个文字的帧长差和后一个文字的帧长差一起拼接到之前音素序列的embedding向量中,再输入到声学模型中,即可以学习到不同情感的发音音频。
如图4,声学模型主要包含两部分,合成器和声码器。这里采用由音频预料提取的mel频谱特征作为合成器的输出标签,根据合成器输出的mel频谱和输出标签计算loss损失函数,进行模型训练判断合成器收敛;mel通道为80,Hop_size为256,win_size为1024。
声码器采用hifi-gan模型,声码器采用预训练模型,即提前在大规模数据上进行过预训练。
训练合成器模型,通过输入音素序列的embedding向量,来拟合相应的音频mel频谱特征,最后把生成的mel频谱特征输入到之前预训练好的hifi-gan模型来生成音频,从而测试模型效果。
在本实施例中,训练好的模型,在实际应用时,只需要获取文本和要表达的情感即可,不用再为文本输入韵律标签。
输入文本和情感标签后,首先通过正则,把需要转换成中文的特殊字符转换为中文,比如***数字,电话号码,单位名称以及运算符号等等。
把处理好的句子,从过音素字典的方式,把文本转换成对应的音素标签,并在音素序列种***sp符号,再拼接上情感向量,先输入到时间戳预测模型。得到各个音素的时间戳后,通过计算时间戳信息再结合之前输入的情感音素向量,得到带有音素时间戳信息的膨胀后的情感音素向量,输入到合成器模型中,得到输出的mel频谱特征。再输入到hifi-gan模型中,从而生成文本对应的音频文件,完成多情感语音合成。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。