HI,欢迎来到起点商标网!
24小时服务QQ:2880605093

语音切割方法、语音转换网络模型的训练方法及相关设备与流程

2021-01-28 15:01:44|392|起点商标网
语音切割方法、语音转换网络模型的训练方法及相关设备与流程

本发明涉及语音处理技术领域,尤其涉及一种语音切割方法、语音转换网络模型的训练方法及相关设备。



背景技术:

目前,语音拼接合成技术主要的工作方式为:获取包含大量词组的样本语音,基于样本语音中的文本字符对样本语音进行切割,得到多个文本字符的语音,组成语音库。当需要合成某段话时,从语音库中找到对应文本字符的语音,并按照一定的顺序将多个文本字符的语音拼接起来,实现语音的合成。

然而,在对样本语音进行切割的过程中,需要人工判断文本字符的语音在样本语音中的位置,这往往容易出现误差,难以精准的对样本语音进行切割。因此,现有技术中存在语音切割的准确度较差,导致合成的语音清晰度较差的问题。



技术实现要素:

本发明实施例提供一种语音切割方法、语音转换网络模型的训练方法及相关设备,以解决现有技术中存在对语音切割的准确度较差,导致合成的语音清晰度较差的问题。

第一方面,本发明实施例提供了一种语音切割方法,包括:

将目标文本输入至预先训练的语音转换网络模型中,得到与所述目标文本对应的目标语音;

将所述目标文本和所述目标语音输入至编解码网络模型中得到时长数组,所述时长数组包括目标文本中各文本字符在所述目标语音占据的时长;

根据所述时长数组对所述目标语音进行切割,得到所述目标文本中每一文本字符对应的语音。

第二方面,本发明实施例提供了一种语音切割装置,包括:

第一输入模块,用于将目标文本输入至预先训练的语音转换网络模型中,得到与所述目标文本对应的目标语音;

第二输入模块,用于将所述目标文本和所述目标语音输入至编解码网络模型中得到时长数组,所述时长数组包括目标文本中各文本字符在所述目标语音占据的时长;

切割模块,用于根据所述时长数组对所述目标语音进行切割,得到所述目标文本中每一文本字符对应的语音。

第三方面,本发明实施例提供了一种语音转换网络模型的训练方法,包括:

将文本样本和与所述文本样本对应的语音样本输入至待训练语音转换网络模型中,进行迭代训练;

所述待训练语音转换网络模型进行第l次迭代时,根据特征声谱矩阵和目标声谱矩阵的差值调整第l+1次迭代的目标参数,所述目标参数与所述特征声谱矩阵相关联,其中所述特征声谱矩阵为所述文本样本的梅尔频谱矩阵,所述目标声谱矩阵为所述语音样本的梅尔频谱矩阵,l为正整数;

若所述目标参数在预设迭代次数内均相同,则将当前训练的待训练语音转换网络模型确定为所述语音转换网络模型。

第四方面,本发明实施例提供了一种服务器,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现上述语音切割方法的步骤。

第五方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述语音切割方法的步骤。

本实施例通过将目标文本输入至预先训练的语音转换网络模型中,得到与目标文本对应的目标语音;将目标文本和目标语音输入至编解码网络模型中得到时长数组,时长数组包括目标文本中各文本字符在目标语音占据的时长;根据时长数组对目标语音进行切割,得到目标文本中每一文本字符对应的语音。这样,由于可以确定每一文本字符在目标语音中占据的时长,因此可以根据目标文本中每个文本字符占据的时长对目标语音进行切割,实现对目标语音的准确切割,进而保证合成语音的清晰度。

附图说明

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

图1是本发明实施例提供的语音切割方法的流程图;

图2是本发明实施例提供的语音转换网络模型的训练方法的流程图;

图3是本发明实施例中编解码网络模型的部分示意图;

图4是本发明实施例提供的语音切割装置的结构图;

图5是本发明实施例提供的服务器的结构图。

具体实施方式

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

参见图1,图1是本发明实施例提供的一种语音切割方法的流程图,如图1所示,包括以下步骤:

101,将目标文本输入至预先训练的语音转换网络模型中,得到与所述目标文本对应的目标语音;

102,将所述目标文本和所述目标语音输入至编解码网络模型中得到时长数组,所述时长数组包括目标文本中各文本字符在所述目标语音占据的时长;

103,根据所述时长数组对所述目标语音进行切割,得到所述目标文本中每一文本字符对应的语音。

本实施例提供的语音切割方法可以应用于语音库的制作,即根据一段文本生成与文本中各文本字符对应的语音,在需要对某段话进行语音合成的情况下,可以从语音库中取出相应的文本字符的语音,并按照一定的顺序拼接文本字符的语音,实现语音的合成。

本实施例中先要获取目标文本,该目标文本中包括有多个文本字符,该目标文本可以为用户输入的文本,也可以为语音库的制作方预先设置的文本。以下以该目标文本为“我爱北京”为例进行详尽阐述。

本实施例中,可以首先将目标文本“我爱北京”输入至预先训练的语音转换网络模型中,输出与目标文本“我爱北京”对应的目标语音即“我爱北京”的语音。可选的,该语音转换网络模型可以是端到端的文本转语音(text-to-speech,tts)深度学习模型,其中,端到端的tts模型可以理解为一个完整的端到端文本到语音合成模型(afullyend-to-endtext-to-speechsynthesismodel),例如,可以为tacontron模型。然后将目标文本和目标语音输入至编解码网络模型中得到时长数组,可选的,该编解码网络模型可以是在传统的编码-解码模型中引入了注意力机制的注意力模型。

其中,得到的时长数组包括“我爱北京”中“我”这一文本字符在语音中所占时长、“爱”这一文本字符在语音中所占时长、“北”这一文本字符在语音中所占时长和“京”这一文本字符在语音中所占时长。进而根据每一文本字符在目标语音中所占时长对目标语音进行切割。例如“我爱北京”这一语音的总时长为2.7秒,其中文本字符“我”占0.5秒,文本字符“爱”占1秒,文本字符“北”占0.5秒,文本字符“京”占0.7秒,则对目标语音的0秒至0.5秒这一时间段的语音进行切割得到文本字符“我”的语音,对目标语音的0.5秒至1秒这一时间段的语音进行切割得到文本字符“爱”的语音,对目标语音的1秒至1.5秒这一时间段的语音进行切割得到文本字符“北”的语音,对目标语音的1.5秒至2.7秒这一时间段的语音进行切割得到文本字符“京”的语音。这样一来,就实现了对目标语音的准确切割,得到了多个文本字符的语音。

进一步地,请参阅图2,图2是本发明实施例提供的语音转换网络模型的训练方法的流程图。如图2所示,包括以下步骤:

210,将文本样本和与所述文本样本对应的语音样本输入至待训练语音转换网络模型中,进行迭代训练;

220,所述待训练语音转换网络模型进行第l次迭代时,根据特征声谱矩阵和目标声谱矩阵的差值调整第l+1次迭代的目标参数,所述目标参数与所述特征声谱矩阵相关联,其中所述特征声谱矩阵为所述文本样本的梅尔频谱矩阵,所述目标声谱矩阵为所述语音样本的梅尔频谱矩阵,l为正整数;

230,若所述目标参数在预设迭代次数内均相同,则将当前训练的待训练语音转换网络模型确定为所述语音转换网络模型。

出于更详尽的阐述本实施例的需要,以下对语音转换网络模型的训练过程进行说明:

使用文本样本和与所述文本样本对应的语音样本作为待训练语音转换网络模型的训练数据,输入至待训练语音转换网络模型中进行迭代训练。其中,语音样本可以由一段或多段录音构成,语音样本尽量覆盖所有的中文词组,且语音样本中录音的音量应当清晰,语速应当平稳,普通用户在收听语音样本时,可以清楚的从语音样本中区分每个的语音;文本样本是由语音样本中语音对应的文本字符组成的文本。例如,语音样本为“我爱北京”这段录音,则文本样本为“我”“爱”“北”“京”这四个文本字符。

容易理解的是,语音样本为一段或多段录音,因此语音样本是一种声音信号,将语音样本中的声音信号进行短时傅里叶变换得到语音样本的声谱图,将该声谱图通过梅尔标度滤波器组得到语音样本的梅尔频谱矩阵。同样的,对文本样本进行相同的处理,得到文本样本的梅尔频谱矩阵。

容易理解的是,文本样本并非声音信号,因此文本样本的梅尔频谱矩阵与语音样本的梅尔频谱矩阵不同,将语音样本的梅尔频谱矩阵作为目标声谱矩阵,文本样本的梅尔频谱矩阵作为特征声谱矩阵,迭代计算目标声谱矩阵与特征声谱矩阵的差值,并且在待训练语音转换网络模型第l次迭代的过程中,基于特征声谱矩阵和目标声谱矩阵的差值调整第l+1次迭代的目标参数,通过调整目标参数,使特征声谱矩阵趋向与目标声谱矩阵一致,每次迭代过程中,特征声谱矩阵随目标参数的调整而更新,直至待训练语音转换网络模型经过第i次迭代得到的目标参数在预设迭代次数内均相同,则确定当前训练的待训练语音转换模型训练完成,其中l和i为正整数。

以预设迭代次数为3进行详尽说明,例如,在待训练语音转换网络模型的第一次迭代训练中,得到的目标声谱矩阵与特征声谱矩阵的差值为3,则对目标参数进行调整,特征声谱矩阵也随目标参数的调整更新;重复上述步骤,直至第l-2次迭代训练中,得到的目标声谱矩阵与特征声谱矩阵的差值为0.2,第l-1次迭代训练中,得到的目标声谱矩阵与特征声谱矩阵的差值为0.2,第l次迭代训练中,得到的目标声谱矩阵与特征声谱矩阵的差值也为0.2,则确定经过l次迭代计算后,当特征声谱矩阵与目标声谱矩阵的差异在合理范围内时,可以表明语音转换网络模型已训练完成。

本实施例通过将目标文本输入至预先训练的语音转换网络模型中,得到与目标文本对应的目标语音;将目标文本和目标语音输入至编解码网络模型中得到时长数组,时长数组包括目标文本中各文本字符在目标语音占据的时长;根据时长数组对目标语音进行切割,得到目标文本中每一文本字符对应的语音。这样,由于可以确定每一文本字符在目标语音中占据的时长,因此可以根据目标文本中每个文本字符占据的时长对目标语音进行切割,实现对目标语音的准确切割,进而保证合成语音的清晰度。

进一步地,所述将目标文本和所述目标语音输入至编解码网络模型中得到时长数组的步骤包括:

按照目标文本中每一文本字符的位置顺序,将所述目标文本转换为拼音字符串,所述拼音字符串包括空格和拼音字符,所述拼音字符包括每一所述文本字符的拼音和音调,且同一所述文本字符的拼音和音调相邻设置,拼音位于音调之前,且各个拼音字符之间设置有空格;

根据预设的索引列表,确定所述拼音字符串中各个拼音、音调和空格在所述索引列表中的位置,得到索引值数组;

将所述索引值数组和所述目标语音输入至所述编解码网络模型中,生成n行m列的二维数组,其中n为索引值数组的索引值个数,m根据目标语音的时长确定,n和m均为正整数;

根据所述二维数组和所述目标语音的时长,确定所述索引值数组中每个索引值对应的时长,得到所述时长数组。

出于详尽阐述本实施例的需要,以目标文本为“我爱北京”为例进行阐述。

将目标文本“我爱北京”输入至预先训练的语音转换网络模型中,由于训练完成的语音转换网络模型存储有大量目标文本与目标语音的映射,因此可以在语音转换网络模型存储的大量目标语音中查找到与目标文本“我爱北京”对应的目标语音“我爱北京”,并读取目标语音“我爱北京”的语音时长。

使用拼音转换工具根据“我爱北京”中每一文本字符的拼音和声调,按照文本字符的位置顺序将“我爱北京”转化成拼音字符串,其中拼音字符串包括拼音字符和空格,拼音字符包括每个文本字符的拼音和音调,同一拼音字符的拼音和音调相邻设置,并在相邻拼音字符之间插入空格,进行文本字符之间的区分。即将目标文本“我爱北京”转换为拼音字符串‘wo3ai4bei3jing1’,该拼音字符串一共18个拼音字符,其中‘wo3’为文本字符‘我’对应的拼音字符,该拼音字符包括‘w’和‘o’这两个拼音,以及‘3’这一个音调;在拼音字符‘wo3’和拼音字符‘ai4’之间插入了空格,以区分文本字符‘我’和文本字符‘爱’。

本实施例中还预设有索引列表,该索引列表包括索引值,可选的,该索引列表可以为[1,2,3,4,5,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,‘空格’],确定拼音字符串中各个拼音、音调和空格在索引列表中的位置,得到索引值数组。例如拼音‘w’在索引列表中是第28位,则将拼音‘w’在索引值数组中用28表示;拼音‘o’在索引列表中是第20位,将拼音‘o’在索引值数组中用20表示。索引列表中的[1,2,3,4,5]这5个索引值分别表示不同的音调,可选的,索引值[1]表示第一声,索引值[2]表示第二声,索引值[3]表示第三声,索引值[4]表示第四声,索引值[5]表示轻声;例如,音调‘3’在索引列表中是第3位,则将音调‘3’在索引值数组中用3表示,其中,空格位于索引列表的第32位,则将拼音‘w’在索引值数组中用32表示。查询预设的索引列表,根据拼音字符串中各个拼音、音调和空格在索引列表中的位置,将拼音字符串‘wo3ai4bei3jing1’转换为索引值数组[28,20,3,32,6,14,4,32,7,10,14,3,32,15,14,19,12,1]。

本实施例中,将上述目标文本输入至编解码网络模型可以理解为:对目标文本进行预处理后,将预处理的结果输入至编解码网络模型。该预处理的过程可以理解为将目标文本转换成拼音字符串,再根据拼音字符串通过查询预设索引值列表得到索引值数组的过程。当然在其他实施例中,编解码网络模型也可以执行该预处理的过程,即,在将目标文本输入至编解码网络模型中,首先由编解码网络模型进行预处理,然后基于预处理得到的索引值数组和目标语音生成n行m列的二维数组。

请参阅图3,图3是本发明实施例中编解码网络模型的部分示意图,在编解码网络模型为在传统的编码-解码模型中引入了注意力机制的注意力模型。

以目标文本为“我爱北京”为例进行说明,在将目标文本输入至语音转换网络模型之后,生成与目标文本对应的目标语音“我爱北京”,其中,目标语音“我爱北京”的语音时长为2.7秒,使用包括18个索引值的索引值数组表示目标文本“我爱北京”,为了实现目标语音和目标文本的数据对齐,提高数据处理速度,将包括18个索引值的索引值数组和目标语音输入至编解码网络模型中。可选的,对索引值数组进行切割,得到索引值子数组,将索引值子数组分别作为编解码网络模型中编码器的输入,例如可以将索引值数组[28,20,3,32,6,14,4,32,7,10,14,3,32,15,14,19,12,1],切割为[28,20,3,32,6]、[14,4,32,7,10,14]、[3,32,15,14]和[19,12,1]这4个子数组,将子数组作为图3中的x1,x2,x3和x4。容易理解的是,在一般的编解码网络模型中,将编码器的输出整合为一个中间向量,再将中间向量输入至解码器中,然而,在将编码器的输出整合为一个中间向量的过程中,容易产生数据丢失现象,因此,可以将解码器的输出整合为多个中间向量,如图3所示,将解码器的输出整合为c1、c2和c3这3个中间向量,防止数据编解码过程中发生丢失现象。

在本实施例中,编码器和解码器都可以采用循环神经网络(recurrentneuralnetwork,rnn),同时在解码器中使用softmax函数获得每一索引值表示的拼音字符与目标语音中每一帧的对齐概率,对输入的索引值数组重新进行编解码,并生成相应的二维数组,二维数组为n行m列的二维数组,n的数值为索引值数组中索引值的个数,m的数值根据目标语音的时长确定,二维数组中的每个概率值表示,该概率值所在的行对应的拼音字符与目标语音中的每一帧对齐的概率。

例如,目标文本为“我爱北京”,则目标文本对应的索引值数组中包括18个索引值,由于在索引值列表中,索引值与拼音字符串中的拼音、音调和空格存在映射关系,进一步可以确定,目标文本“我爱北京”对应的拼音字符串中包括的拼音、音调和空格的数目也为18个,可以将二维数组的行数设置为18行,又目标语音得时长为2.7秒,则可将该目标语音分为27帧,每帧长100毫秒,将二维数组的列数设置为27列,假设二维数组中第一行包括的概率值为[0.2,0.5,0.2,0.3,0.4,0.4,0.3,0.1,0.4,0.3],该行中的第一个概率值表示拼音‘w’与目标语音中第一帧对齐的概率是0.2,该行中的第二个概率值表示拼音‘w’与目标语音中第二帧对齐的概率是0.5,该行中的第三个概率值表示拼音‘w’与目标语音中第二帧对齐的概率是0.2,并进一步可知,拼音‘w’与目标语音中第2帧对齐的概率最大。

二维数组的行数与目标文本的拼音字符串对应,例如目标文本为“我爱北京”,第一行对应拼音字符串中的拼音‘w’,第二行对应拼音字符串中的拼音‘o’,第三行对应拼音字符串中的音调‘3’,第四行对应拼音字符串中的空格,第五行对应拼音字符串中的拼音‘a’,由于目标文本“我爱北京”的拼音字符串一共包括18个拼音字符和空格,则该目标文本的二维数组的行数为18。由于目标语音的时长为2.7秒,为了实现数据对齐,将二维数组的列数设置为27列,可以理解为将2.7秒长的语音分为了27帧,每帧长0.1秒,其中二维数组中的每个数值均为小于1的概率值,表示该行代表的拼音字符或空格与该列代表的帧数实现数据对齐的概率。

例如,第二行第一列的概率值为0.1,表示第二行代表的拼音o与第一帧对齐的概率为0.1,若第二行中的最大概率值为出现在第3列0.5,表示第二行与第三帧对齐的概率最大,进而可以根据第二行中最大概率值0.5在该行的排序,得到第二行的最大值的位置编号3,并将位置编码3作为位置数组中的第二个位置参数。

进一步地,所述根据所述二维数组和所述目标语音的时长,确定所述索引值数组中每个索引值对应的时长,得到所述时长数组的步骤包括:

确定所述二维数组各行概率值中的最大值;

根据各所述最大值在所述二维数组各行概率值中的位置,得到与各所述最大值对应的位置参数;

将各所述位置参数按照所述二维数组的行数进行排序,得到位置数组;

将所述位置数组中的各所述位置参数乘以语音帧长,得到所述时长数组;

其中,根据所述目标语音的时长和所述二维数组的列数m确定所述语音帧长。进一步地,所述根据各所述最大值在所述二维数组各行概率值中的位置,得到与各所述最大值对应的位置参数的步骤包括:

根据所述二维数组每一行概率值的排列顺序,确定每一行概率值中的最大值的位置编号;

将各所述最大值的位置编号作为与各所述最大值对应的位置参数。

例如,二维数组中第一行包括的概率值为[0.2,0.5,0.2,0.3,0.4,0.4,0.3,0.1,0.4,0.3],则第一行中概率值的最大值为0.5,又0.5位于该二维数组的第2列,得到位置数组中的第一个位置参数2。

二维数组中第二行包括的概率值为[0.3,0.5,0.2,0.6,0.8,0.4,0.3,0.7,0.1,0.4],则第二行中数值的最大值为0.8,又二维数组第二行中的概率值0.8位于该二维数组的第5列,得到位置数组中的第二个位置参数5。通过确定二维数组中每行的最大概率值的列数,将列数作为位置参数,并将各个位置参数按照对应的行数排序,可以确定位置数组。

将所述目标语音的时长除以所述二维数组的列数m,得到所述索引值数组中每一索引值的语音帧长。例如:“我爱北京”目标语音的时长为2.7秒。又根据目标文本“我爱北京”生成的二维数组为27列,则将2.7除以27得到语音帧长0.1秒,即100毫秒。

将位置数组中的每一个位置参数乘以语音帧长,得到时长数组。例如:“我爱北京”这一目标文本的位置数组为:

[1,3,5,6,9,11,15,16,18,19,20,22,21,22,22,25,26,28]。

则将位置数组乘以100毫秒得到的时长数组为:

[0.1,0.3,0.5,0.6,0.9,1.1,1.5,1.6,1.8,1.9,2,2.2,2.1,2.2,2.2,2.5,2.6,2.8]。

进一步地,所述根据所述时长数组对所述目标语音进行切割,得到所述目标文本中每一文本字符对应的语音的步骤包括:

根据目标文本中每一文本字符在所述索引值数组中对应的索引值,确定每一文本字符在所述时长数组中的k个时长参数,其中k与每一文本字符的索引值数量对应,k为正整数;

根据每一文本字符对应的k个时长参数在所述时长数组中的排列顺序,确定每一文本字符在所述目标语音中的终止时间;

根据每一文本字符的终止时间,确定目标文本中各文本字符的时长;

根据所述目标文本中各文本字符的时长对所述目标语音进行切割,得到所述目标文本中每一文本字符对应的语音。

可选的,在一实施例中,所述根据每一文本字符对应的k个时长参数在所述时长数组中的排列顺序,确定每一文本字符在所述目标语音中的终止时间的步骤包括:

将所述时长数组中所述k个时长参数中排序最末的时长参数,确定为所述k个时长参数中的终止时长参数;

将所述终止时长参数的数值,确定为与所述k个时长参数对应的文本字符在所述目标语音中的终止时间。

可选的,在一实施例中,所述根据每一文本字符的终止时间,确定目标文本中各文本字符的时长的步骤,包括:

将文本字符对应的终止时长参数的数值与相邻的上一个文本字符对应的终止时长参数的数值的差值,确定为目标文本中各文本字符的时长。

以目标文本为“我爱北京”对该实施例进行阐述,通过上述实施例可知,“我爱北京”的位置数组为[1,3,5,6,9,11,15,16,18,19,20,22,21,22,22,25,26,28],时长数组为[0.1,0.3,0.5,0.6,0.9,1.1,1.5,1.6,1.8,1.9,2,2.2,2.1,2.2,2.2,2.5,2.6,2.8]。

目标文本“我爱北京”的索引值数组为[28,20,3,32,6,14,4,32,7,10,14,3,32,15,14,19,12,1],其中前4个索引值[28,20,3,32]对应文本字符“我”,第5位至第8位索引值[6,14,4,32]对应文本字符“爱”,第9位至第13位索引值[7,10,14,3,32]对应文本字符“北”,最后4位索引值对应文本字符“京”。目标文本“我爱北京”的索引值数组包括18个索引值,目标文本“我爱北京”的位置数组和时长数组也包括18个参数,且位置数组和时长数组中各个参数的排序与索引值数组中各个索引值的排序对应。即目标文本“我爱北京”中的文本字符“我”对应时长数组中的前4个时长参数[0.1,0.3,0.5,0.6];文本字符“爱”对应时长数组中的第5位至第8位时长参数[0.9,1.1,1.5,1.6];文本字符“北”对应时长数组中的第9位至第13位时长参数[1.8,1.9,2,2.2,2.1];文本字符“京”对应时长数组中的最后4位时长参数[2.2,2.5,2.6,2.8]。

文本字符“我”对应有4个时长参数[0.1,0.3,0.5,0.6],又这4个时长参数中排序最未的时长参数的数值为0.6,确定文本字符“我”的终止时间为0.6秒,又文本字符“我”为第一个文本字符,则文本字符“我”在目标语音中的时长为终止时间0.6减去0为0.6秒。文本字符“爱”对应有4个时长参数[0.9,1.1,1.5,1.6],又这4个时长参数中排序最未的时长参数的数值为1.6,文本字符“我”的终止时间为1.6秒,则文本字符“爱”在目标语音中的时长为终止时间1.6减去上一个文本字符“我”对应的终止时间0.6为1秒。同样的,目标文本中文本字符“北”的时长为文本字符“北”的终止时间2.1减去文本字符“爱”的终止时间1.6为0.5秒,目标文本中文本字符“京”的时长为文本字符“京”的终止时间2.8减文本字符“北”的终止时间2.1为0.7秒。

在确定每一文本字符在目标语音中的时长的情况下,可以根据每一文本字符的时长对所述目标语音进行切割,实现对于目标语音的精准切割,进而提高合成语音的清晰度。

此外,可以将目标语音输入至变声模型,得到不同音色的目标语音,以增加语音库的数据量。可选的,变声模型采用stargan结构,将包含n种音色的语音作为训练数据输入至采用stargan结构的变声模型中对变声模型进行训练,在变声模型训练完成后,将目标语音输入至训练完成的变声模型,得到n种音色的目标语音或指定音色的目标语音。由于该变声模型为现有技术,在此不再过多阐述。

进一步地,所述根据所述时长数组对所述目标语音进行切割,得到所述目标文本中每一文本字符对应的语音的步骤之后,包括:

针对每一文本字符对应的语音的首端和末端,设置能量衰减周期。

在对每一文本字符对应的语音进行拼接合成语音的过程中,可以在每一文本字符对应的语音即待拼接语音的首端和末端加入淡入淡出机制,即在待拼接语音的首端和末端设置预设长度的语音能量衰减周期,保证录音拼接过程中不会产生噪声,从而提升合成录音的自然度。例如可以将语音能力衰减周期设置为3毫秒,将每一个待拼接语音开始前第一毫秒的能量衰减为零,每一个待拼接语音开始前第二毫秒的能量衰减50%,每一个待拼接语音开始前第三毫秒的能量衰减20%。同样的,可以将每一个待拼接语音最后一毫秒的能量衰减为零,每一个待拼接语音最后第二毫秒的能量衰减50%,每一个待拼接语音最后第三毫秒的能量衰减20%。

参见图4,图4是本发明实施例提供的语音切割装置的结构图,如图4所示,语音切割装置300包括:

第一输入模块310,用于将目标文本输入至预先训练的语音转换网络模型中,得到与所述目标文本对应的目标语音;

第二输入模块320,用于将所述目标文本和所述目标语音输入至编解码网络模型中得到时长数组,所述时长数组包括目标文本中各文本字符在所述目标语音占据的时长;

切割模块330,用于根据所述时长数组对所述目标语音进行切割,得到所述目标文本中每一文本字符对应的语音。

可选的,所述第二输入模块320包括:

转换单元,用于按照目标文本中每一文本字符的位置顺序,将所述目标文本转换为拼音字符串,所述拼音字符串包括空格和拼音字符,所述拼音字符包括每一所述文本字符的拼音和音调,且同一所述文本字符的拼音和音调相邻设置,拼音位于音调之前;

第一确定单元,用于根据预设的索引列表,确定所述拼音字符串中各个拼音字符在所述索引列表中的位置,得到索引值数组;

处理单元,用于将所述索引值数组和所述目标语音输入至所述编解码网络模型中,生成n行m列的二维数组,其中n为索引值数组的索引值个数,m根据目标语音的时长确定,n和m均为正整数;

第二确定单元,用于根据所述二维数组和所述目标语音的时长,确定所述索引值数组中每个索引值对应的时长,得到所述时长数组。

可选的,所述第二确定单元具体用于:

确定所述二维数组各行概率值中的最大值;

根据各所述最大值在所述二维数组各行概率值中的位置,得到与各所述最大值对应的位置参数;

将各所述位置参数按照所述二维数组的行数排序进行排列,得到位置数组;

将所述位置数组中的各所述位置参数乘以语音帧长,得到所述时长数组;

其中,根据所述目标语音的时长和所述二维数组的列数m确定所述语音帧长。

可选的,所述第二确定单元还具体用于:

根据所述二维数组每一行概率值的排列顺序,确定每一行概率值中的最大值的位置编号;

将各所述最大值的位置编号作为与各所述最大值对应的位置参数。

可选的,所述切割模块320还包括:

第三确定单元,用于根据所述目标文本中每一文本字符在所述索引值数组中对应的索引值,确定每一文本字符在所述时长数组中的k个时长参数,其中k与每一文本字符的索引值数量对应,k为正整数;

第四确定单元,用于根据每一文本字符对应的k个时长参数在所述时长数组中的排列顺序,确定每一文本字符在所述目标语音中的终止时间;

第五确定单元,用于根据每一文本字符的终止时间,确定目标文本中各文本字符的时长;

切割单元,用于根据所述目标文本中各文本字符的时长对所述目标语音进行切割,得到所述目标文本中每一文本字符对应的语音。

可选的,所述第四确定单元,具体用于:

将所述时长数组中所述k个时长参数中排序最末的时长参数,确定为所述k个时长参数中的终止时长参数;

将所述终止时长参数的数值,确定为与所述k个时长参数对应的文本字符在所述目标语音中的终止时间。

可选的,所述第五确定单元,具体用于:

将文本字符对应的终止时长参数的数值与相邻的上一个文本字符对应的终止时长参数的数值的差值,确定为目标文本中各文本字符的时长。

可选的,所述语音切割装置300,还包括:

衰减模块,用于针对每一文本字符对应的语音的首端和末端,设置能量衰减周期。

本发明实施例提供的语音切割装置能够实现如上方法实施例中语音切割方法的各个过程,为避免重复,这里不再赘述。

参见图5,图5是本发明实施例提供的服务器的结构图,如图5所示,该服务器400包括:处理器401、收发机402、存储器403和总线接口,其中:

处理器401,用于执行以下操作:

将目标文本输入至预先训练的语音转换网络模型中,得到与所述目标文本对应的目标语音;

将所述目标文本和所述目标语音输入至编解码网络模型中得到时长数组,所述时长数组包括所述目标文本中各文本字符在所述目标语音占据的时长;

根据所述时长数组对所述目标语音进行切割,得到所述目标文本中每一文本字符对应的语音。

应理解,本实施例中,上述处理器401和收发机402能够实现图1的方法实施例中服务器实现的各个过程,为避免重复,这里不再赘述。

在图5中,总线架构可以包括任意数量的互联的总线和桥,具体由处理器401代表的一个或多个处理器和存储器403代表的存储器的各种电路链接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口提供接口。收发机402可以是多个元件,即包括发送机和接收机,提供用于在传输介质上与各种其他装置通信的单元。针对不同的用户设备,用户接口404还可以是能够外接内接需要设备的接口,连接的设备包括但不限于小键盘、显示器、扬声器、麦克风、操纵杆等。

处理器41负责管理总线架构和通常的处理,存储器403可以存储处理器401在执行操作时所使用的数据。

本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述语音切割方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(read-onlymemory,简称rom)、随机存取存储器(randomaccessmemory,简称ram)、磁碟或者光盘等。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。

上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本发明的保护之内。

起点商标作为专业知识产权交易平台,可以帮助大家解决很多问题,如果大家想要了解更多知产交易信息请点击 【在线咨询】或添加微信 【19522093243】与客服一对一沟通,为大家解决相关问题。

此文章来源于网络,如有侵权,请联系删除

tips