本发明属于人工智能与深度学习,具体涉及一种基于引入深度特征损失与图卷积的子词级的多语种tts系统。
背景技术:
1、近年来,随着人工智能应用于人民生活的各个方面,文本转语音技术(tts)的使用场景也呈现出爆炸式增长的趋势,在听书说书、个性化语音、语音修复方面都有着广泛应用。但随着文本转语音渗透到科技生活的方方面面,对于声称语音的精确性,以及进行个性化时的相似程度以及学习成本都有了更高的要求;同时,由于文本转语音的普及化,对于该技术在不同语种上的通用性也给出了更高的要求:广泛使用的语言中,如英文与中文,均已发展出了统一的g2p(grapheme-to-phoneme)模块,使得将该语种的文本处理为与发音相关的音素有了直接的对应关系,但对于小语种,没有现成的g2p模块供以使用,若对每一个小语种构造一个g2p模块,需要较高的语言掌握程度,并且会消耗大量时间与人力,因此,该方案无法满足多语种tts的模型构建;另一方面,通过调研发现,已知的多语种tts实现方案中,最优方案是直接使用语言字母表并在字符前增加language id的方式代替g2p前端,但该方案仍有一定缺陷:由于不同语言中,同一个字母在不同单词中,可能出现发音不同的情况,从而导致发音不准确的情况,并使用asr模型对词表法进行tts做了验证发现,该方法相较于g2p,cer(字符错误率)有一定增加;同时,当前的tts模型所生成的人声仍较为生硬,需要经过工程师细致地微调才能获得更加逼真的个性化结果,从而会消耗大量人力与资源。
2、因此需要一个优化的模型来进一步降低多语种tts的字符错误率,并获得更自然、逼真的合成人声。
技术实现思路
1、本发明的主要目的在于提供基于引入深度特征损失与图卷积的子词级的多语种tts系统,对现有的sota的tts模型进行进一步结构改进,提供一个改进的词表构建方案以及模型结构与损失函数的优化,以提升生成语音的精确度与自然度。
2、为达到以上目的,本发明提供一种基于引入深度特征损失与图卷积的子词级的多语种tts系统,包括子词词表、文本编码器和深度特征损失函数,其中:
3、所述子词词表通过bpe算法(byte-pair encoding)优化并且对不同语种增加language id,从而实现多语种文本的高效精确转换;
4、所述文本编码器包含图卷积层,用于增强文本的语义理解能力并且用于提升语音生成过程中的自然度和真实性;
5、所述深度特征损失函数,通过利用asr模型对tts模型输出层之前的语音特征进行解耦,获得生成的语音能够对应到文本表示的特征表示,从而提升输出语音的发音准确度。
6、作为上述技术方案的进一步优选的技术方案,对于子词词表的优化具体实施为:
7、步骤s1:设定最大的子词的个数v;
8、步骤s2:将所有单词拆分为单个字符,并在最后添加一个停止符</w>,同时标记出该单词出现的次数(例如,"lov"这个单词出现了5次,那么它将会被处理为{'lov</w>':5});
9、步骤s3:统计每一个连续字节对的出现频率,选择最高频者合并成新的子词;
10、步骤s4:重复步骤s3直到达到步骤s1设定的子词词表大小或下一个最高频的字节对出现频率为1。
11、作为上述技术方案的进一步优选的技术方案,对于子词词表,将子词与其词频进行收集后,以词频为对象将词表进行降序排列(使词频越高的单词排在词表的越前面,以便后续对子词建模时,为高频的子词提供尽量短的编码,从而减小对文本处理时的总计算量),从而根据构建出的词表,获得用于构成单词整体的子词,并对每一个子词进行编码,获得一个唯一的嵌入(embedding),子词建模具体实施为:
12、步骤t1:使用bpe构造子词词表,其中:
13、步骤t1.1:训练数据进行预处理,将文本拆分为字符;
14、步骤t1.2:使用bpe算法迭代,其中:
15、步骤t1.2.1:在语料库中找出最常见的相邻符号对;
16、步骤t1.2.2:将该符号对合并为一个新的子词,并更新词表;
17、步骤t1.2.3:复以上步骤,直到达到预设的子词数量或迭代次数(优选地,英文subword(子词)数量预设为3000);
18、(使用以上的过程建立出最终的subword词表,并保存用于模型训练与推理过程使用)
19、步骤t2:构建子词嵌入,其中:
20、步骤t2.1:初始化嵌入:为词表中的每个子词随机初始化一个嵌入,将每个此表映射到一个高维空间;
21、步骤t2.2:嵌入训练调整:根据训练文本的上下文来调整子词的嵌入;
22、步骤t3:分配language id,其中:
23、步骤t3.1:定义language id:根据训练的语种数量设定language id,用于模型的训练和推理;
24、步骤t3.2:在训练过程中,将language id与子词的嵌入进行拼接,从而获得带有语种信息的编码。
25、作为上述技术方案的进一步优选的技术方案,对于深度特征损失函数:
26、在语音增强中,通过说话人识别网络对增强后的音频与基准真实值(groundtruth)分别进行解耦后,获得两个语音的解耦后的特征表示(该特征被认为能够更好地获取到音频的升学结构),并通过求取两个音频解耦后的特征表示之间的l1距离,从而获得对语音增强更有指导意义的深度特征损失函数。
27、作为上述技术方案的进一步优选的技术方案,预处理后的音频信息,经过两个一维卷积与一个gelu模块(高斯误差线性单元)后,在初步处理后的信息上加入位置编码,以确定文本信息在句子中的位置;加入位置信息的音频信号则会进一步进入之后由自注意力机制模块与mlp模块构成的基本编码器层(即为编码器的一个layer,在微调过程中使用的是表1中的large-v2的版本,因此一共有32个layer组成编码器使用新的数据库进行微调)。
28、作为上述技术方案的进一步优选的技术方案,带有t个特征的输入向量,定义为x1:t={x1,…,xt},对于完整的语音识别模型whisper结构,最终输出的是表示文本的特征向量y1:n={y1,…,yn},一共有n个单词(token),在模型结构中,需要先将输入的音频转化为中间的隐变量h1:m={h1,…,hm},该过程由文本编码器实现,即该文本编码器训练出由x1:t序列到隐状态量h1:m的映射关系:
29、
30、通过文本编码器中的图卷积层对输入信号进行下采样,隐状态量h1:m的维度m为原始输入变量x1:t的一半,在完整的语音识别模型whisper结构中,由自注意力机制(self-attention)与交叉注意力机制(cross-attention)组成的解码器对进行自回归计算,预测下一个文本对应的单词(token)yi,并且该单词是用前面的(i-1)个单词(token)和h1:m预测得到的:
31、p(yi|y<i,h1:m);
32、(在本具体实例中的large-v2版whisper中,)使用交叉熵损失对模型进行训练,(为训练本具体实施例中的模型)假设一个数据集,其中的每个示例为(x1:t,h1:m),即一对音频与文本隐变量,交叉熵损失的计算方法如下,其中模型通过最大化目标类标签的估计概率来预测实例类:
33、
34、深度特征损失使用模型的文本编码器获得的文本特征向量,用于计算模型输出的损失函数(并且,为了减少由于后端模型的加入所带来的计算量增加),对模型的文本编码器进行知识蒸馏,使用上述方式训练出来的large-v2模型后,使用该32层的网络作为教师模型,使用32层的教师模型初始化一个2层的学生模型,将large-v2模型中的第1层和第32层复制到学生模型中,并应用伪标签设置的方案,使用教师模型的输出h1:m,指导学生模型的中间隐变量的生成,该过程使用的损失函数如下:
35、
36、其中的h′表示使用教师模型计算出的隐变量,hi则为学生模型的隐变量(该方法可以被视为序列级的知识蒸馏方案);
37、在kl散度设置中,学生模型pi的全概率分布通过最小化位置i下一个可能单词(token)的整个集合上的kl散度来训练,以匹配教师模型qi的全概率分布:
38、
39、(以上方案可以被视为“词级别”的知识蒸馏,知识能通过可能的token的逻辑中从教师模型转移到学生模型)
40、将知识蒸馏后的学生模型作为深度特征损失函数所使用的模型,即一个将输入音频x1:t转化为隐变量表示的h1:m的深度特征损失模型,将生成音频与对应的验证集中的gt音频分别输入到深度特征损失网络中,分别获得两者的向量表示,假设目标语音信号为x,预测的语音信号为经过large-v2(学生)模型后的隐变量表示分别对应为:h和其中的每一维度的向量值表示为hi和则具体深度特征损失函数可以用公式表示如下:
41、
42、作为上述技术方案的进一步优选的技术方案,在文本编码器结构中的transformer结构之前,增加一层图卷积网络,通过图卷积网络对输入的文本嵌入(embedding)进行初步处理,够获得节点之间的复杂依赖关系,从而在为模型提供合成音频的语义理解,包括获得轻读、重读信息,帮助模型获得更连贯而流畅的语音。
43、为达到以上目的,本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现所述基于引入深度特征损失与图卷积的子词级的多语种tts系统的步骤。
44、为达到以上目的,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现所述基于引入深度特征损失与图卷积的子词级的多语种tts系统的步骤。
45、本发明的有益效果在于:
46、1、通过引入带有language id的词表代替传统g2p方案,从而高效地实现多语种tts,极大减少了资源消耗,并通过bpe方式对词表进行改进,从而获得与精确音素转换相当的发音精确度;
47、2、通过改进损失函数,使用性能较好的asr模型结构,对输出音频与原始音频进行特征提取,并将求取两者的欧氏距离,对基础模型的损失函数进行修改,从而降低模型输出语音的错误率,提升生成语音的精度;
48、3、通过在模型的文本编码器中增加图卷积层,使文本编码中增加了语义信息,从而提升生成音频的语义理解,从而提升声音的真实性。
1.一种基于引入深度特征损失与图卷积的子词级的多语种tts系统,其特征在于,包括子词词表、文本编码器和深度特征损失函数,其中:
2.根据权利要求1所述的一种基于引入深度特征损失与图卷积的子词级的多语种tts系统,其特征在于,对于子词词表的优化具体实施为:
3.根据权利要求2所述的一种基于引入深度特征损失与图卷积的子词级的多语种tts系统,其特征在于,对于子词词表,将子词与其词频进行收集后,以词频为对象将词表进行降序排列,从而根据构建出的词表,获得用于构成单词整体的子词,并对每一个子词进行编码,获得一个唯一的嵌入,子词建模具体实施为:
4.根据权利要求1所述的一种基于引入深度特征损失与图卷积的子词级的多语种tts系统,其特征在于,对于深度特征损失函数:
5.根据权利要求4所述的一种基于引入深度特征损失与图卷积的子词级的多语种tts系统,其特征在于,预处理后的音频信息,经过两个一维卷积与一个gelu模块后,在初步处理后的信息上加入位置编码,以确定文本信息在句子中的位置;加入位置信息的音频信号则会进一步进入之后由自注意力机制模块与mlp模块构成的基本编码器层。
6.根据权利要求5所述的一种基于引入深度特征损失与图卷积的子词级的多语种tts系统,其特征在于,带有t个特征的输入向量,定义为x1:t={x1,…,xt},对于完整的语音识别模型whisper结构,最终输出的是表示文本的特征向量y1:n={y1,…,yn},一共有n个单词,在模型结构中,需要先将输入的音频转化为中间的隐变量h1:m={h1,…,hm},该过程由文本编码器实现,即该文本编码器训练出由x1:t序列到隐状态量h1:m的映射关系:
7.根据权利要求6所述的一种基于引入深度特征损失与图卷积的子词级的多语种tts系统,其特征在于,在文本编码器结构中的transformer结构之前,增加一层图卷积网络,通过图卷积网络对输入的文本嵌入进行初步处理,够获得节点之间的复杂依赖关系,从而在为模型提供合成音频的语义理解,包括获得轻读、重读信息,帮助模型获得更连贯而流畅的语音。
8.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至7任一项所述基于引入深度特征损失与图卷积的子词级的多语种tts系统的步骤。
9.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至7任一项所述基于引入深度特征损失与图卷积的子词级的多语种tts系统的步骤。
