一种声学模型训练方法、装置、终端设备及存储介质与流程

文档序号:26490004发布日期:2021-08-31 17:44阅读:136来源:国知局
一种声学模型训练方法、装置、终端设备及存储介质与流程

本申请属于信号处理技术领域,尤其涉及一种声学模型训练方法、装置、终端设备及存储介质。



背景技术:

语音合成可以将文本转化为对应的语音,目前已经在智能移动终端、智能家居、智能机器人领域和车载设备等领域得到广泛应用。一个语音合成系统通常包括声学模型和语言模型,声学模型用于提取语音的声学信息形成声谱图,语言模型用于根据声谱图形成对应的文本。随着语音合成满足了声音清晰的基本要求后,开发重点转移到了提高语音合成的自然度以及和说话者声音的相似度,这对声学模型的性能提出了进一步要求。

为了提升声学模型性能,需要获取包含大量高质量语音的数据集,数据集中需要包含多个说话者,从而获取每个说话者的高质量语音,并且要考虑语音在不同的韵律、情感、口音和录制环境等因素下的差异,导致数据集的获取工作繁重,容易由于数据集质量不佳影响声学模型的识别准确度和声音质量。



技术实现要素:

有鉴于此,本申请实施例提供了一种声学模型训练方法、装置、终端设备及存储介质,以解决现有的声学模型由于数据集质量不佳影响声学模型的识别准确度和声音质量的问题。

本申请实施例的第一方面提供了一种声学模型训练方法,包括:

将训练语音分别输入语句编码模块和音素编码模块;

通过所述语句编码模块提取所述训练语音的n个语句向量,获取所述训练语音的语句特征;其中,一个语句向量包括多个单词向量,n为大于或等于1的整数;

通过所述音素编码模块提取所述训练语音的n段音素向量,获取所述训练语音的音素特征,所述n段音素向量与所述n个语句向量一一对应;

将所述n个语句向量和所述n段音素向量输入声学建模模块,获取所述训练语音的声学信息,所述声学信息包括将所述n个语句特征和所述n段音素特征进行相加的声学特征;

将所述训练语音的声学信息输入解码模块,获取所述训练语音的声谱图;

根据所述训练语音和所述训练语音的声谱图,更新所述解码模块的参数。

本申请实施例的第二方面提供了一种声学模型训练装置,包括:

输入模块,用于将训练语音分别输入语句编码模块和音素编码模块;

第一提取模块,用于通过所述语句编码模块提取所述训练语音的n个语句向量,获取所述训练语音的语句特征;其中,一个语句向量包括多个单词向量,n为大于或等于1的整数;

第二提取模块,用于通过所述音素编码模块提取所述训练语音的n段音素向量,获取所述训练语音的音素特征,所述n段音素向量与所述n个语句向量一一对应;

建模模块,将所述n个语句向量和所述n段音素向量输入声学建模模块,获取所述训练语音的声学信息,所述声学信息包括将所述n个语句特征和所述n段音素特征进行相加的声学特征;

解码模块,用于将所述训练语音的声学信息输入解码模块,获取所述训练语音的声谱图;

训练模块,用于根据所述训练语音和所述训练语音的声谱图,更新所述解码模块的参数。

本申请实施例的第三方面提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现本申请实施例的第一方面提供的声学模型训练方法的步骤。

本申请实施例的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现本申请实施例第一方面提供的声学模型训练方法的步骤。

本申请实施例的第一方面提供一种声学模型训练方法,通过将训练语音分别输入语句编码模块和音素编码模块;通过语句编码模块提取所述训练语音的n个语句向量,以获取训练语音的语句特征;通过音素编码模块提取训练语音的n段音素向量,以获取训练语音的音素特征;将n个语句向量和n段音素向量输入声学建模模块,以获取训练语音的声学信息;将训练语音的声学信息输入解码模块,以获取训练语音的声谱图,声学信息包括语句特征和音素特征;根据训练语音和训练语音的声谱图,更新解码模块的参数,可以从训练语音中捕捉丰富的细颗粒度声学信息,减少训练语音的需求量,从而降低数据集的获取难度并提升数据集的质量,进而提高语音合成的自然度以及和说话者声音的相似度。

可以理解的是,上述第二方面至第四方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。

附图说明

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

图1是本申请实施例提供的声学模型训练方法的第一种流程示意图;

图2是本申请实施例提供的声学模型训练方法的第二种流程示意图;

图3是本申请实施例提供的声学模型训练方法的第三种流程示意图;

图4是本申请实施例提供的声学模型训练方法的第四种流程示意图;

图5是本申请实施例提供的声学模型训练方法的第五种流程示意图;

图6是本申请实施例提供的声学模型训练装置的结构示意图;

图7是本申请实施例提供的终端设备的结构示意图。

具体实施方式

以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。

应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。

还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。

如在本申请说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。

另外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

在本申请说明书中描述的参考“一个实施例”意味着在本申请的一个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”等不是必然都参考相同的实施例,而是意味着“一个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。

在应用中,现有的声学模型在训练时需要获取大量高质量、不同声学因素和不同录制环境的语音以形成数据集,当数据集包含的语音质量差或语音数量不足时,容易导致数据集质量差,由于声学模型是通过数据集进行训练并建模得到的,数据集质量差会影响声学模型对输入语音的识别准确度以及语音合成的声音质量。

针对上述技术问题,本申请实施例提供一种语音合成方法,通过语句编码模块和音素编码模块从训练语音中提取丰富的声学信息,可以降低数据集的获取难度并提升数据集质量,从而提升声学模型的识别准确度和声音质量。

在应用中,本申请实施例提供的语音合成方法可以应用于具有数据处理功能或控制功能的任意终端设备,具体的,终端设备可以是手机、平板电脑、可穿戴设备、车载设备、增强现实(augmentedreality,ar)/虚拟现实(virtualreality,vr)设备、笔记本电脑、超级移动个人计算机(ultra-mobilepersonalcomputer,umpc)、上网本、个人数字助理(personaldigitalassistant,pda)等,本申请实施例对终端设备的具体类型不作任何限制。

如图1所示,本申请实施例提供的声学模型训练方法,包括如下步骤s101至s106:

步骤s101、将训练语音分别输入语句编码模块和音素编码模块。

在应用中,训练语音可以是说话者(speaker)说的一个单词(word),也可以是由多个单词组成的一个语句或一句话(sentence),还可以是由多个语句组成的一段语音(paragraph);训练语音可以通过终端设备的收音设备获取,例如麦克风。

在应用中,音素是根据语音的自然属性划分出来的最小语音单位,依据音节里的发音动作来分析,一个动作构成一个音素,音素分为元音与辅音两大类,例如,汉语音节啊(ā)只有一个音素,爱(ài)有两个音素,代(dài)有三个音素;在英语国际英标(internationalphoneticalphabetforenglish)中,包括48个音素,其中元音音素20个,辅音音素28个,音素也可以看作是音标的最小单位。

在应用中,语句编码模块可以以单词为单位对训练语音进行编码,音素编码模块可以以音素为单元对训练语音进行编码,其中,终端设备获取的训练语音需要精确到以音素为单位,即音素序列。

步骤s102、通过语句编码模块提取训练语音的n个语句向量,获取训练语音的语句特征;其中,一个语句向量包括多个单词向量,n为大于或等于1的整数。

在应用中,语句编码模块对训练语音进行编码,从而提取语句向量,以获取训练语音的语句特征,n个语句向量可以表示一个数据集中的n段语音的语句向量并与上述n段语音一一对应,也可以表示1段语音中的n句话的语句向量并与上述n句话一一对应,语句向量对应的数据类型可以根据实际需要进行设置。例如,假设n个语句向量表示1段语音中的n句话,则语句编码模块首先将所有单词转化为单词向量,并对所有单词向量进行编码,以生成和上述n句话一一对应的n个语句向量,具体的,语句编码模块可以首先将训练语音的第1个语句的多个单词转化为多个单词向量;之后语句编码模块可以根据第1个单词向量和第1个语句中的其他单词向量的相关性,对第1个单词向量进行编码,以获取第1个单词在第1个语句中的语义,并以此类推完成第1个语句的其他单词向量的编码,将第1个语句的所有单词向量相加可以得到第1个语句向量,以获取第1个语句向量的语义,第2个语句向量至第n个语句向量的提取方法和第1个语句向量一致,在此不再赘述。通过语句编码模块提取的n个语句向量,可以尽可能地还原训练语音的语义信息,实现对训练语音的准确翻译,从而获取训练语音的语句特征。

步骤s103、通过音素编码模块提取训练语音的n段音素向量,获取训练语音的音素特征,n段音素向量与n个语句向量一一对应。

在应用中,音素编码模块可以对精确到以音素为单位的训练语音进行编码,从而提取n段音素向量,并获取训练语音的音素特征,需要说明的是,当n个语句向量表示一个数据集中的n段语音的的语句向量并与上述n段语音一一对应时,则n段音素向量表示一个数据集中的n段语音的音素向量并与上述n段语音的音素一一对应;当n个语句向量表示1段语音中的n句话的语句向量并与上述n句话一一对应时,则n段音素向量表示1段语音中的n句话的音素向量并与上述n句话一一对应;其中,一段音素向量包括多个子音素向量,一个子音素向量包括一个音素的音素特征,音素特征可以包括音素的韵律、情感和口音等信息,以从训练语音中捕捉丰富的细颗粒度信息,实现对训练语音的深层挖掘,充分利用数据集中的训练语音。

在应用中,可以先执行步骤s102,再执行步骤s103;也可以先执行步骤s103,再执行步骤s102;还可以同时执行步骤s102和步骤s103,本申请实施例对步骤s102和步骤s103的实行顺序不作任何限制。

步骤s104、将n个语句向量和n段音素向量输入声学建模模块,获取训练语音的声学信息,声学信息包括将n个语句特征和n段音素特征进行相加的声学特征。

在应用中,声学建模模块可以将n段音素向量与一一对应的n个语句向量相加,具体可以是将n段音素向量嵌入一一对应的n个语句向量,例如,假设第1个语句向量包括2个单词,分别是第1个单词向量我(wǒ),和第2个单词向量渴(kě),则第1段音素向量包括4个子音素向量,分别是具有焦急情感信息的第1个子因素向量w、第2个子因素向量ǒ、第3个子因素向量k和第4个子因素向量ě,可以将第一个子因素向量的w,和第二个子因素向量的ǒ的焦急情感信息分别嵌入第1个语句向量的第1个单词向量(我,wǒ)中,以及将第三个子因素向量的k,和第四个子因素向量的ě的焦急情感信息分别嵌入第1个语句向量的第2个单词向量(渴,kě)中,通过将音素向量和对应的语句向量相加,相对现有的语音合成方法,可以从训练语音中提取更多的声学信息,充分利用数据集中的所有训练语音,减少训练语音的需求量,从而降低数据集的获取难度并提升数据集的质量。

步骤s105、将训练语音的声学信息输入解码模块,获取训练语音的声谱图。

在应用中,声谱图(spectrogram)可以是对声学信息进行短时傅里叶变换(stft,short-timefouriertransform,或short-termfouriertransform)展开得到的二维信号图,也可以是将上述二位信号图输入至梅尔滤波器得到的梅尔谱图(melspectrogram),还可以是将上述梅尔谱取对数并做离散余弦变换(discretecosinetransform,dct)得到的梅尔倒频谱图(mel-frequencyspectrum,mfc),本申请实施例对声谱图的具体类型不做任何限制。终端设备可以根据训练语音的声谱图输出对应的语音,使合成的语音包含韵律、情感、口音以及语义信息,从而产生自然度高以及和说话者声音相似度高的合成语音。

步骤s106、根据训练语音和训练语音的声谱图,更新解码模块的参数。

在应用中,可以将训练语音的声谱图和训练语音进行比对,并获取训练语音的声谱图相对训练语音的误差,通过上述误差对解码模块进行优化,以更新解码模块的参数。具体的,当上述误差大于预设阈值时,说明解码模块的参数不够准确,通过更新解码模块的参数,可以提升解码模块的性能;当上述误差小于预设阈值时,说明解码模块的性能已经达到预期,可以不更新解码模块的参数,并结束训练。其中,预设阈值可以根据实际的解码模块性能要求进行设置。

在应用中,通过语音编码模块和语义编码模块的组合提取训练语音的特征,可以从训练语音中提取更多的声学信息,减少训练语音的需求量,从而降低数据集的获取难度并提升数据集的质量,结合解码模块的参数更新功能,可以提升声学模型的识别准确度和声音质量,进而产生自然度高以及和说话者声音相似度高的合成语音。

如图2所示,在一个实施例中,基于图1所对应的实施例,包括步骤s201至步骤s206:

步骤s201、将训练语音分别输入语句编码模块和音素编码模块;

步骤s202、通过语句编码模块以语句为单位获取训练语音的局部时频特征以及局部时频特征的隐性时序特征,n个语句向量包括局部时频特征以及局部时频特征的隐性时序特征;

步骤s203、通过音素编码模块提取训练语音的n段音素向量,获取训练语音的音素特征,n段音素向量与n个语句向量一一对应;

步骤s204、将n个语句向量和n段音素向量输入声学建模模块,获取训练语音的声学信息,声学信息包括将n个语句特征和n段音素特征进行相加的声学特征;

步骤s205、将训练语音的声学信息输入解码模块,获取训练语音的声谱图;

步骤s206、根据训练语音和训练语音的声谱图,更新解码模块的参数。

在应用中,步骤s201以及步骤s203至步骤s206和上述步骤s101以及步骤s103至步骤s106的声学模型训练方法一致,在此不再赘述。区别在于,步骤s102包括步骤s202,下面对步骤s202进行详细介绍。

在应用中,n个语句向量可以表示训练语音的语句特征,而语句特征包括局部时频特征以及局部时频特征的隐性时序特征,其中,局部时频特征表示训练语音的完整信号中的部分信号的时序特征和频率特征,由于训练语音采集的是说话者的声音,因此可以仅针对说话者发出声音时的部分信号进行时序特征和频率特征的提取,从而相比于传统的获取完整信号的时序特征和频率特征,可以使语句编码模块专注于获取上述部分信号的时序特征和频率特征,从而提高时序特征和频率特征的获取效率和获取准确性,充分利用数据集中的训练语音。

在应用中,训练语音的信号可以是以帧为单位采集的,局部时序特征表示每一帧信号的输入时间,局部频率特征表示每一帧信号的声音频率,局部时频特征的隐性时序特征表示上一帧信号和下一帧信号之间的输入时间差,并可以反映上一帧信号和下一帧信号之间的声音频率的变化关系,因此获取局部时频特征的隐性时序特征可以以语句为单位捕捉到训练语音更丰富的时序特征和频率特征,通过提高训练语音的语句特征的获取效率和获取深度,进一步充分利用数据集中的训练语音,降低数据集获取难度并提升声学模型的声音质量。

在一个实施例中,步骤s202包括:

通过第一卷积神经网络单元以语句为单位获取训练语音的局部时频特征,并通过第一门控循环单元以语句为单位获取局部时频特征的隐性时序特征。

在应用中,语句编码模块可以由cnn(convolutionalneuralnetworks,卷积神经网络)组成,也可以由rnn(recurrentneuralnetwork,循环神经网络)组成,还可以由cnn和rnn组合的网络结构组成,其中,rnn具体可以是lstm(longshort-termmemory,长短期记忆人工神经网络)或gru(gatedrecurrentunit,门控循环单元),以下介绍一种由cnn和gru组成的语句编码模块,该语句编码模块包括第一卷积神经网络单元和第一门控循环单元。

在应用中,第一卷积神经网络单元基于cnn搭建,具体可以包括六层一维卷积,每一层卷积的卷积核参数可以设置为尺寸5*5,步长3,具体的,输入的训练语音经过第一层一维卷积的卷积计算后,将第一层一维卷积的卷积计算结果依次输入relu(rectifiedlinearunit,线性整流单元)激活函数、ln(layernormalization,层标准化)层并进行dropout(丢弃法)计算,以得到第一层一维卷积的输出结果,并将上述第一层一维卷积的输出结果作为第二层一维卷积的输入,依次类推,完成六层一维卷积的运算。其中,第一卷积神经网络的一维卷积层数、卷积核的尺寸和步长可以根据实际需要处理的训练语音的数据密度和时间长度确定,relu激活函数用于为第一卷积神经网络单元引入非线性因素,提升第一卷积神经网络单元的学习能力,从而提升解析训练语音的能力;ln层用于获取relu激活函数输出的计算结果并计算均值和方差,实现第一卷积神经网络单元的标准化,提高第一卷积神经网络单元的训练速度和计算速度;dropout计算用于选择性的忽略每一层卷积的隐藏层(hiddenlayer)的神经元的同时,保持计算性能符合预期,例如,可选择性的忽略每一层卷积的一半的隐藏层的神经元,从而避免第一卷积神经网络单元过拟合,且可以提升第一卷积神经网络单元的鲁棒性。

在应用中,第一卷积神经网络单元的卷积计算的公式可以是:

其中,h表示以语句为单位提取的训练语音的局部时频特征,f表示第一卷积神经网络单元的卷积核参数,表示卷积计算,m表示梅尔谱。

在应用中,第一门控循环单元基于gru搭建,具体可以包括一层gru,一层gru用于以语句为单位提取局部时频特征的隐性时序特征,一层gru在计算过程中,会将局部时频特征的隐性时序特征加入局部时频特征中,并取gru最后一个维度的输出结果作为包括局部时频特征以及局部时频特征的隐性时序特征的一个语句向量,需要说明的是,当n个语句向量表示一个数据集中的n段语音的语句向量并与上述n段语音一一对应,则输出的一个语句向量表示1段语音的语句向量;当n个语句向量表示1段语音中的n句话的语句向量并与上述n句话一一对应时,则输出的一个语句向量表示1句话的语句向量,通过第一门控循环单元,可以将局部时频特征的隐性时序特征与局部时频特征快速整合并输出语句向量,提高声学模型的训练速度和计算速度。

在应用中,第一门控循环单元的计算公式可以是:

gru(h)=[o1,o2…,ot];

其中,gru(h)表示将以语句为单位提取局部时频特征的隐性时序特征代入一层gru中,ot表示包括局部时频特征以及局部时频特征的隐性时序特征的一个语句向量,t大于或等于1且为整数。

如图3所示,在一个实施例中,基于图2所对应的实施例,包括步骤s301至步骤s306:

步骤s301、将训练语音分别输入语句编码模块和音素编码模块;

步骤s302、通过语句编码模块以语句为单位获取训练语音的局部时频特征以及局部时频特征的隐性时序特征,n个语句向量包括局部时频特征以及局部时频特征的隐性时序特征;

步骤s303、通过音素编码模块以音素为单位获取训练语音的局部时频特征以及局部时频特征的隐性时序特征,n个音素向量包括局部时频特征以及局部时频特征的隐性时序特征;

步骤s304、将n个语句向量和n段音素向量输入声学建模模块,获取训练语音的声学信息,声学信息包括将n个语句特征和n段音素特征进行相加的声学特征;

步骤s305、将训练语音的声学信息输入解码模块,获取训练语音的声谱图;

步骤s306、根据训练语音和训练语音的声谱图,更新解码模块的参数。

在应用中,步骤s301和步骤s302与上述步骤s201和步骤s202的声学模型训练方法一致;步骤s304至步骤s306与上述步骤s204至步骤s206的声学模型训练方法一致,在此不再赘述。区别在于,步骤s203包括步骤s303,下面对步骤s303进行详细介绍。

在应用中,n段音素向量可以表示训练语音的音素特征,而音素特征包括局部时频特征以及局部时频特征的隐性时序特征,其中,音素特征包括的局部时频特征的定义、采集方法及技术效果与上述语句特征包括的局部时频特征一致,在此不再赘述,区别在于,音素编码模块以音素为单位提取训练语音的局部时频特征。

在应用中,音素特征包括的局部时频特征的隐性时序特征的定义、采集方法及技术效果与上述语句特征包括的局部时频特征的隐性时序特征一致,在此不再赘述,区别在于,音素编码模块以音素为单位提取训练语音的局部时频特征的隐性时序特征。

在一个实施例中,步骤s303包括:

通过第二卷积神经网络单元以音素为单位获取训练语音的局部时频特征,并通过第二门控循环单元以音素为单位获取局部时频特征的隐性时序特征。

在应用中,音素编码模块的网络结构选型和上述语句编码模块的网络结构选型一致,在此不再赘述。

在应用中,第二卷积神经网络单元的架构和上述第一卷积神经网络单元的架构一致,在此不再赘述。区别在于,第二卷积神经网络的卷积计算的公式可以是:

其中,h′表示以音素为单位提取的训练语音的局部时频特征,f′表示第二卷积神经网络的卷积层的卷积核参数,表示卷积计算,m表示梅尔谱。

在应用中,第二门控循环单元的架构和上述第二门控循环单元的架构一致,在此不再赘述。区别在于,第二门控循环单元取一层gru所有维度的输出结果作为包括局部时频特征以及局部时频特征的隐性时序特征的一个音素向量,需要说明的是,当n段音素向量表示一个数据集中的n段语音的音素向量并与上述n段语音的音素一一对应时,则一个音素向量表示上述1段语音的音素向量;当n段音素向量表示一个1段语音中的n句话的音素向量并与上述n句话一一对应时,则一个音素向量表示上述1段语音中的1句话的音素向量。

在应用中,第二门控循环单元的计算公式可以是:

gru(h′)=[o1,o2…,oq];

其中,gru(h′)表示将以音素为单位提取局部时频特征的隐性时序特征代入一层gru中,o1,o2…,oq表示包括局部时频特征以及局部时频特征的隐性时序特征的一个音素向量,q大于或等于1且为整数。

如图4所示,在一个实施例中,基于图3所对应的实施例,包括步骤s401至步骤s408:

步骤s401、将训练语音分别输入语句编码模块和音素编码模块;

步骤s402、通过语句编码模块以语句为单位获取训练语音的局部时频特征以及局部时频特征的隐性时序特征,n个语句向量包括局部时频特征以及局部时频特征的隐性时序特征;

步骤s403、通过音素编码模块以音素为单位获取训练语音的局部时频特征以及局部时频特征的隐性时序特征,n个音素向量包括局部时频特征以及局部时频特征的隐性时序特征;

步骤s404、通过位置编码模块提取所述训练语音的序列位置信息,获取n个语音向量的序列位置信息和n段音素向量的序列位置信息;

步骤s405、将所述n个语句向量和所述n段音素向量输入声学建模模块,获取所述训练语音的声学信息,所述声学信息包括将所述n个语句特征和所述n段音素特征进行相加的声学特征;

步骤s406、通过差异适配模块获取所述训练语音的音高特征和时长特征并更新所述训练语音的声学信息;

步骤s407、将训练语音的声学信息输入解码模块,获取训练语音的声谱图;

步骤s408、根据训练语音和训练语音的声谱图,更新解码模块的参数。

在应用中,步骤s401至步骤s403和上述步骤s301至步骤s303的声学模型训练方法一致;步骤s405和上述步骤s304的声学模型训练方法一致;步骤s407和步骤s408与上述步骤s305和步骤s306的声学模型训练方法一致,在此不再赘述。区别在于,步骤s304之前包括步骤s404,步骤s304之后包括步骤s406,下面对步骤s404和步骤s406进行详细介绍。

在应用中,位置编码器用于提取训练语音的序列位置信息,可以提取语句特征和音素特征的序列位置信号;具体的,可以提取语句特征包括的局部时频特征以及局部时频特征的隐性时序特征的序列位置信号,以及提取音素特征包括的局部时频特征以及局部时频特征的隐性时序特征的序列位置信号,从而获取n个语音向量的序列位置信息和n段音素向量的序列位置信息;其中,不同特征可以设置有对应的维度,例如,假设语句特征和音素特征可以位于相同维度,则语句特征包括的局部时频特征所在维度和语句特征包括的隐性时序特征所在维度相同,并与语句特征所在维度不同,且音素特征包括的局部时频特征所在维度和语句特征包括的隐性时序特征所在维度相同,并与语句特征包括的局部时频特征所在维度相同。本申请实施例对特征所在维度不作任何限制。

在应用中,根据n个语音向量的序列位置信息和n段音素向量的序列位置信息,可以将n个语音向量和n段音素向量进行相加,具体的,由于序列位置信息是基于相同的时间序列生成的,因此,可以建立一个空白序列位置信息,并根据n个语音向量的序列位置信息,将n个语音向量的语句特征嵌入上述空白序列位置信息,以及根据n段音素向量的序列位置信息,将n个语音向量的语句特征嵌入上述空白序列位置信息,从而实现n个语音向量和n段音素向量的相加;也可以根据n段音素向量的序列位置信息和n个语音向量的序列位置信息,将n段音素向量的音素特征嵌入n个语音向量的语句特征,或者,将n个语音向量的语句特征嵌入n段音素向量的音素特征,从而实现n个语音向量和n段音素向量的相加,以将分别提取的语句特征和音素特征相结合,可以尽可能地还原训练语音的韵律、情感和口音,通过细颗粒度的特征提取极大的提升了数据集的质量,从而提高声学模型的识别准确度和声音质量。

在应用中,通过位置编码模块提取所述训练语音的序列位置信息的计算公式可以是:

其中,pe表示位置编码函数,pos表示序列位置,i表示特征维度序号,d表示特征维度。

在应用中,通过差异适配模块,可以提取训练语音的音高特征和时长特征等差异化信息,可以用于预测n段音素向量中的所有子音素向量的时长、音高或平均基频;需要说明的是,n段音素向量的音素特征包括的局部时序特征也可以反映训练语音的时长特征,以及局部频率特征也可以反映训练语音的音高特征,不过,音素编码模块提取的局部时序特征和局部频率特征容易存在误差,因此,通过差异适配模块提取音高特征和时长特征等深层特征,可以降低上述误差,并进一步提升声学信息的识别准确度和声音质量。

在一个实施例中,步骤s406包括:

通过位置编码模块提取所述训练语音的序列位置信息,获取训练语音的音高特征的序列位置信息和训练语音的时长特征的序列位置信息。

在应用中,位置编码器用于提取训练语音的序列位置信息,可以提取训练语音的音高特征的序列位置信息和训练语音的时长特征的序列位置信息,提取方法、技术效果和计算公式与上述步骤s404的提取方法、技术效果和计算公式一致,在此不再赘述。

如图5所示,在一个实施例中,基于图4所对应的实施例,包括步骤s501至步骤s508:

步骤s501、将训练语音分别输入语句编码模块和音素编码模块;

步骤s502、通过语句编码模块以语句为单位获取训练语音的局部时频特征以及局部时频特征的隐性时序特征,n个语句向量包括局部时频特征以及局部时频特征的隐性时序特征;

步骤s503、通过音素编码模块以音素为单位获取训练语音的局部时频特征以及局部时频特征的隐性时序特征,n个音素向量包括局部时频特征以及局部时频特征的隐性时序特征;

步骤s504、通过位置编码模块提取所述训练语音的序列位置信息,获取n个语音向量的序列位置信息和n段音素向量的序列位置信息;

步骤s505、将n个语句向量和n段音素向量输入声学建模模块,获取训练语音的声学信息,声学信息包括将n个语句特征和n段音素特征进行相加的声学特征;

步骤s506、通过差异适配模块获取训练语音的音高特征和时长特征并更新训练语音的声学信息;

步骤s507、通过梅尔谱解码单元对训练语音的声学信息进行解码,并将解码后的声学信息输入线性层,以生成梅尔谱图;

步骤s508、通过损失函数计算梅尔谱图和训练语音的误差,并根据误差更新梅尔谱解码单元和线性层的参数。

在应用中,步骤s501至步骤s506的声学模型训练方法和上述步骤s401至步骤s406的声学模型训练方法一致,在此不再赘述。区别在于,步骤s407包括步骤s507,步骤s408包括步骤s508,下面对步骤s507和步骤s508进行详细介绍。

在应用中,解码模块可以包括短时傅里叶变换单元,此时解码模块用于生成声谱图;解码模块也可以包括梅尔谱解码单元,此时解码模块用于生成梅尔谱图;解码模块还可以包括梅尔谱解码单元和离散余弦变换单元,此时解码模块用于生成梅尔倒频谱图;此外,解码模块还可以搭配线性层,以对声谱图、梅尔谱图或梅尔倒频谱图进行预测从而拟合上述三种频谱图的曲线并稳定收敛;其中,梅尔谱解码单元可以包括短时傅里叶变换单元和梅尔谱滤波器。

在应用中,当解码模块包括梅尔谱解码单元和线性层时,梅尔谱解码单元用于对包括语句特征、音素特征、音高特征和时长特征的声学信息进行解码,解码得到的原始梅尔谱图的数据存在离散化的问题,需要将原始梅尔谱图输入线性层对原始梅尔谱图的数据进行预测,以拟合曲线从而解决离散化问题,经过线性层处理的梅尔谱具有完整平滑的曲线且稳定收敛,使梅尔谱通过终端设备输出的语音自然流畅,提高了语音合成的自然度。

在应用中,通过损失函数计算训练语音和梅尔谱图的误差,可以将训练语音转化为真实梅尔谱图并与线性层生成的梅尔谱图进行比较,用于计算误差的损失函数可以选用均方误差函数(meansquareerror,mse)、均方根误差函数(rootmeansquarederror,rmse)、平均绝对误差函数(meanabsolutedeviation,mad)或标准差(standarddeviation,sd)等损失函数,具体可以选用最小均方误差函数(minimummean-squareerror,mmse)。通过损失函数计算误差后,判断误差是否超过预设阈值,如果超过预设阈值,则对梅尔谱解码单元和线性层的参数进行更新,参数更新可以通过梯度下降法(gradientdescent)、最小二乘法(ordinaryleastsquares)或反向传播算法(backpropagationalgorithm)实现;如果未超过预设阈值,说明梅尔谱解码单元的性能达到预期,不对梅尔谱解码单元和线性层的参数进行更新。通过对梅尔谱解码单元和线性层的参数进行更新,可以使输出的梅尔谱图接近真实梅尔谱图,从而提升声学模型的识别准确度和声音质量,提高语音合成与说话者声音的相似度。

本申请实施例的提供的声学模型训练方法,通过将训练语音分别输入语句编码模块和音素编码模块;通过语句编码模块提取所述训练语音的n个语句向量,以获取训练语音的语句特征;通过音素编码模块提取训练语音的n段音素向量,以获取训练语音的音素特征;将n个语句向量和n段音素向量输入声学建模模块,以获取训练语音的声学信息;将训练语音的声学信息输入解码模块,以获取训练语音的声谱图,声学信息包括语句特征和音素特征;根据训练语音和训练语音的声谱图,更新解码模块的参数,可以从训练语音中捕捉丰富的细颗粒度声学信息,减少训练语音的需求量,从而降低数据集的获取难度并提升数据集的质量,进而提高语音合成的自然度以及和说话者声音的相似度。

应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。

如图6所示,本申请实施例还提供一种声学模型训练装置,用于执行上述声学模型训练方法实施例中的步骤。声学模型训练装置可以是终端设备中的虚拟装置(virtualappliance),由终端设备的处理器运行,也可以是终端设备本身。本申请实施例提供的声学模型训练装置6,包括:

输入模块61,用于将训练语音分别输入语句编码模块和音素编码模块;

第一提取模块62,用于通过语句编码模块提取训练语音的n个语句向量,获取训练语音的语句特征;其中,一个语句向量包括多个单词向量,n为大于或等于1的整数;

第二提取模块63,用于通过音素编码模块提取训练语音的n段音素向量,获取训练语音的音素特征,n段音素向量与n个语句向量一一对应;

建模模块64,将n个语句向量和n段音素向量输入声学建模模块,获取训练语音的声学信息,声学信息包括将n个语句特征和n段音素特征进行相加的声学特征;

解码模块65,用于将训练语音的声学信息输入解码模块,获取训练语音的声谱图;

训练模块66,用于根据训练语音和训练语音的声谱图,更新解码模块的参数。

在一个实施例中,所述第一提取模块,包括:

第一子提取模块,用于通过语句编码模块以语句为单位获取训练语音的局部时频特征以及局部时频特征的隐性时序特征,n个语句向量包括局部时频特征以及局部时频特征的隐性时序特征。

在一个实施例中,所述第二提取模块,包括:

第二子提取模块,用于通过音素编码模块以音素为单位获取训练语音的局部时频特征以及局部时频特征的隐性时序特征,n个音素向量包括局部时频特征以及局部时频特征的隐性时序特征。

在一个实施例中,所述建模模块,包括:

第三提取模块,用于通过位置编码模块提取训练语音的序列位置信息,获取n个语音向量的序列位置信息和n段音素向量的序列位置信息。

差异适配模块,用于通过差异适配模块获取训练语音的音高特征和时长特征并更新训练语音的声学信息。

在一个实施例中,所述解码模块,包括:

梅尔谱解码模块,用于通过梅尔谱解码单元对训练语音的声学信息进行解码,并将解码后的声学信息输入线性层,以生成梅尔谱图;

在一个实施例中,训练模块,包括:

梅尔谱训练模块,用于通过损失函数计算梅尔谱图和训练语音的误差,并根据误差更新梅尔谱解码单元和线性层的参数。

在应用中,声学模型训练装置中的各模块可以为软件程序模块,也可以通过处理器中集成的不同逻辑电路实现,还可以通过多个分布式处理器实现。

如图7所示,本申请实施例还提供一种终端设备7包括存储器71、处理器72以及存储在所述存储器71中并可在所述处理器72上运行的计算机程序73,处理器72执行计算机程序73时实现上述各个声学模型训练方法实施例中的步骤。

在应用中,处理器可以是中央处理单元(centralprocessingunit,cpu),该处理器还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

在应用中,存储器在一些实施例中可以是终端设备的内部存储单元,例如终端设备的硬盘或内存。存储器在另一些实施例中也可以是终端设备的外部存储设备,例如终端设备上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,存储器还可以既包括终端设备的内部存储单元也包括外部存储设备。存储器用于存储操作系统、应用程序、引导装载程序(bootloader)、数据以及其他程序等,例如计算机程序的程序代码等。存储器还可以用于暂时地存储已经输出或者将要输出的数据。

前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1