一种文本转语音的方法、装置及计算机设备与流程
本发明涉及自然语言处理技术领域,更具体的说,是涉及一种文本转语音的方法、装置及计算机设备。
背景技术:
人工智能是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。人工智能领域的研究包括机器人、语音识别、语音合成、图像识别、自然语言处理和专家系统等。其中,语音合成技术是计算机科学领域与人工智能领域中的一个重要方向。在语音合成领域中,最关键的是文本转换成语音的过程,而为了满足语音合成领域更高的需求,目前对文本转换成的语音的准确度提出了更高的要求。
技术实现要素:
有鉴于此,本发明提供了一种文本转语音的方法、装置及计算机设备,以提高文本转换成的语音的准确度。
为实现上述目的,本发明提供如下技术方案:
一种文本转语音的方法,所述方法包括:
按照预先设置的至少一个字符分组规则,对待转换文本语句中的字符进行分组,得到相应字符分组规则对应的字符分组结果,不同字符分组规则对应不同韵律级别,每一字符分组结果中包含至少一个字符分组单元,每一字符分组单元中包含至少一个字符;
确定各个字符在其所属至少一个字符分组结果中的合成韵律矢量,所述合成韵律矢量为所述字符在其所属字符分组结果中正向顺序矢量以及逆向顺序矢量的加权和,所述正向顺序矢量的权重依据所述字符在其所属的字符分组单元中的正向相对位置信息确定,所述逆向顺序矢量的权重依据所述字符在其所属的字符分组单元中的逆向相对位置信息确定;
将每个字符对应的至少一个合成韵律矢量进行拼接,得到每个字符对应的目标韵律矢量;
对目标韵律矢量进行分析,得到待转换文本语句对应的语音信息。
优选的,所述确定各个字符在其所属至少一个字符分组结果中的合成韵律矢量包括:
确定各个字符在其所属至少一个字符分组结果中的字符顺序矢量,所述字符顺序矢量包括:正向顺序矢量以及逆向顺序矢量;
确定各个字符在其所属至少一个字符分组结果中的相对位置信息,所述相对位置信息包括所述字符在其所属的字符分组单元中的正向相对位置信息以及逆向相对位置信息;
将各个字符在其所属至少一个字符分组结果中对应的正向顺序矢量以及逆向顺序矢量的加权和,作为各个字符在其所属至少一个字符分组结果中的合成韵律矢量,所述正向顺序矢量的权重为所述字符在其所属的字符分组单元中的正向相对位置信息,所述逆向顺序矢量的权重为所述字符在其所属的字符分组单元中的逆向相对位置信息。
优选的,所述确定各个字符在在其所属至少一个字符分组结果中的字符顺序矢量包括:
利用预先训练的字符顺序识别模型,得到各个字符分组规则各自对应的字符排列矢量,并将各个字符分组规则各自对应的字符排列矢量作为各个字符在其所属至少一个字符分组结果中的字符顺序矢量。
优选的,所述确定各个字符在其所属至少一个字符分组结果中的相对位置信息包括:
确定各个字符在其所属字符分组单元中的位置序号,所述位置序号是按照字符分组单元中字符的正向排列顺序确定的;
确定各个字符所属的字符分组单元的长度;
利用各个字符在其所属字符分组单元中的位置序号,以及各个字符所属的字符分组单元的长度,得到各个字符在其所属至少一个字符分组结果中的相对位置信息。
优选的,所述利用各个字符在其所属字符分组单元中的位置序号,以及各个字符所属的字符分组单元的长度,得到各个字符在其所属至少一个字符分组结果中的相对位置信息包括:
将各个字符在其所属字符分组单元中的位置序号,与相应该字符所属的字符分组单元的长度的比值,作为各个字符的正向相对位置信息;
将预设字符分别与各个字符的正向相对位置信息的差值,作为各个字符的逆向相对位置信息。
优选的,在将每个字符对应的至少一个合成韵律矢量进行拼接,得到每个字符对应的目标韵律矢量之后,还包括:
将每个字符对应的目标韵律矢量进行归一化处理,得到每个字符对应的归一化的目标韵律矢量。
优选的,所述对目标韵律矢量进行分析,得到待转换文本语句对应的语音信息包括:
对归一化的目标韵律矢量进行分析,得到待转换文本语句对应的语音信息。
一种文本转语音的装置,所述装置包括:
字符分组单元,用于按照预先设置的至少一个字符分组规则,对待转换文本语句中的字符进行分组,得到相应字符分组规则对应的字符分组结果,不同字符分组规则对应不同韵律级别,每一字符分组结果中包含至少一个字符分组单元,每一字符分组单元中包含至少一个字符;
合成韵律矢量确定单元,用于确定各个字符在其所属至少一个字符分组结果中的合成韵律矢量,所述合成韵律矢量为所述字符在其所属字符分组结果中正向顺序矢量以及逆向顺序矢量的加权和,所述正向顺序矢量的权重依据所述字符在其所属的字符分组单元中的正向相对位置信息确定,所述逆向顺序矢量的权重依据所述字符在其所属的字符分组单元中的逆向相对位置信息确定;
矢量拼接单元,用于将每个字符对应的至少一个合成韵律矢量进行拼接,得到每个字符对应的目标韵律矢量;
分析单元,用于对目标韵律矢量进行分析,得到待转换文本语句对应的语音信息。
优选的,所述合成韵律矢量确定单元包括:
字符顺序矢量确定单元,用于确定各个字符在其所属至少一个字符分组结果中的字符顺序矢量,所述字符顺序矢量包括:正向顺序矢量以及逆向顺序矢量;
相对位置信息确定单元,用于确定各个字符在其所属至少一个字符分组结果中的相对位置信息,所述相对位置信息包括所述字符在其所属的字符分组单元中的正向相对位置信息以及逆向相对位置信息;
合成韵律矢量确定子单元,用于将各个字符在其所属至少一个字符分组结果中对应的正向顺序矢量以及逆向顺序矢量的加权和,作为各个字符在其所属至少一个字符分组结果中的合成韵律矢量,所述正向顺序矢量的权重为所述字符在其所属的字符分组单元中的正向相对位置信息,所述逆向顺序矢量的权重为所述字符在其所属的字符分组单元中的逆向相对位置信息。
一种计算机设备,所述计算机设备至少包括:处理器和存储器;
其中,所述处理器用于调用并执行所述存储器中存储的程序;
所述存储器用于存储所述程序,所述程序至少用于执行如上所述的文本转语音的方法。
经由上述的技术方案可知,与现有技术相比,本发明提供了一种文本转语音的方法、装置及计算机设备,首先按照预先设置的至少一个字符分组规则,对待转换文本语句中的字符进行分组,得到相应字符分组规则对应的字符分组结果,不同字符分组规则对应不同韵律级别,每一字符分组结果中包含至少一个字符分组单元,每一字符分组单元中包含至少一个字符,然后确定各个字符在其所属至少一个字符分组结果中的合成韵律矢量,将每个字符对应的至少一个合成韵律矢量进行拼接,得到每个字符对应的目标韵律矢量;对目标韵律矢量进行分析,得到待转换文本语句对应的语音信息。由于合成韵律矢量为字符在其所属字符分组结果中正向顺序矢量以及逆向顺序矢量的加权和,正向顺序矢量的权重依据字符在其所属的字符分组单元中的正向相对位置信息确定,逆向顺序矢量的权重依据所述字符在其所属的字符分组单元中的逆向相对位置信息确定,可见,本发明实施例中考虑了字符在其所属的字符分组单元中的相对位置信息对顺序矢量的影响,从而利用字符在其所属字符分组结果中正向顺序矢量以及逆向顺序矢量的加权和能够更准确体现字符在文本中的位置关系,得到的字符的合成韵律矢量能够更客观的体现字符的韵律特征,增强所转化成的语音的韵律感,提高文本转换成的语音的准确度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的文本转语音的方法的流程图;
图2为本发明实施例提供的另一种文本转语音的方法的流程图;
图3为本申请实施例提供的文本转语音的装置的结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在将文本通过机器转化成语音的过程中,为了提高所转化成的语音的准确度,需要考虑所转化成的语音音频的自然度,而语音音频的自然度除了包括语音音频的清晰程度之外,还包括语音音频的韵律感,即语音音频的发声节奏。因为语音音频的韵律感能够传递语音的情感语境信息,而语音的情感语境信息也是影响语音内容正确性的重要指标,因此,在将文本通过机器转化成语音的过程中,转化成的语音音频的韵律感,直接影响着转化成的语音的准确度,基于此,如何增强所转化成的语音的韵律感,提高文本转换成的语音的准确度成为目前需要解决的技术问题。
为了解决上述技术问题,发明人通过研究,提出了以下一种解决方式:
就是按照预先设置的至少一个字符分组规则,对待转换文本语句中的字符进行分组之后,然后确定各个字符在其所属至少一个字符分组单元中的位置矢量,对位置矢量进行分析,得到待转换文本语句对应的语音信息。该方法中不同的字符分组单元中相同位置的字符采用相同的位置矢量来表示,举例来说,对于一种待转换文本语句对应的分组结果:这是#1一个例子#1对吗,其中,字符“这”对应的位置矢量为第一矢量,字符“是”对应的位置矢量为第二矢量,字符“一”对应的位置矢量为第一矢量,字符“个”对应的位置矢量为第二矢量,字符“例”对应的位置矢量为第三矢量,字符“子”对应的位置矢量为第四矢量,字符“对”对应的位置矢量为第一矢量,字符“吗”对应的位置矢量为第二矢量。
这种方法中,对字符分组单元中字符的个数具有限定,一个字符分组单元中字符的个数越多,则需要采用更多的位置矢量来表示字符的位置关系,而预先训练的韵律识别模型针对的字符分组单元都具有固定的字符个数,如果待转换文本语句对应的字符分组单元中字符个数超出预先训练的韵律识别模型能够识别的字符个数的情况下,利用该模型则无法得到准确的韵律识别结果,因此,这种方法对待转换文本语句对应的字符分组单元中字符个数具有限定。
为了进一步解决上述技术问题,本发明实施例提供了一种文本转语音的方法、装置、系统及服务器,首先按照预先设置的至少一个字符分组规则,对待转换文本语句中的字符进行分组,得到相应字符分组规则对应的字符分组结果,不同字符分组规则对应不同韵律级别,每一字符分组结果中包含至少一个字符分组单元,每一字符分组单元中包含至少一个字符,然后确定各个字符在其所属至少一个字符分组结果中的合成韵律矢量,将每个字符对应的至少一个合成韵律矢量进行拼接,得到每个字符对应的目标韵律矢量;对目标韵律矢量进行分析,得到待转换文本语句对应的语音信息。由于合成韵律矢量为字符在其所属字符分组结果中正向顺序矢量以及逆向顺序矢量的加权和,正向顺序矢量的权重依据字符在其所属的字符分组单元中的正向相对位置信息确定,逆向顺序矢量的权重依据所述字符在其所属的字符分组单元中的逆向相对位置信息确定,可见,本发明实施例中考虑了字符在其所属的字符分组单元中的相对位置信息对顺序矢量的影响,从而利用字符在其所属字符分组结果中正向顺序矢量以及逆向顺序矢量的加权和能够更准确体现字符在文本中的位置关系,得到的字符的合成韵律矢量能够更客观的体现字符的韵律特征,增强所转化成的语音的韵律感,提高文本转换成的语音的准确度。
由于本发明实施例中针对每个字符的每一个字符分组结果都对应两个矢量(正向顺序矢量以及逆向顺序矢量),也就是说,无论待转换文本语句对应的字符分组结果中具有多少个字符,最多只需要(字符分组结果的个数*2)个矢量就可以将待转换文本语句中所有的字符的韵律关系表示清楚,因此,本发明上述方式在更准确体现字符在文本中的位置关系的基础上,还能够克服对待转换文本语句对应的字符分组单元中字符个数限定的问题,进一步增强所转化成的语音的韵律感,提高文本转换成的语音的准确度。
图1为本发明实施例提供的文本转语音的方法的流程图,该方法可应用于服务器,参照图1,所述方法可以包括:
步骤s100、按照预先设置的至少一个字符分组规则,对待转换文本语句中的字符进行分组,得到相应字符分组规则对应的字符分组结果;
需要说明的是,不同字符分组规则对应不同韵律级别,每一字符分组结果中包含至少一个字符分组单元,每一字符分组单元中包含至少一个字符。
本发明实施例具体是按照句子成分划分不同的韵律级别,并且本发明实施例中的韵律级别至少包括:韵律词级别、韵律短语级别、语调短语级别以及句末级别。
韵律词级别指的是按照词语划分的级别,韵律短语级别指的是按照短语划分的级别,语调短语级别指的是按照语调短语划分的级别,每个语调短语之间会具有较长的沉默段(例如沉默段的持续时长>150ms),句末指的是句子的结尾。
需要说明的是,韵律词指的是在实际语句中联系密切、经常联在一起发音的音节。韵律短语是介于韵律词和语调短语之间的中等节奏组合,语调短语是将几个韵律短语按照一定的句调模式连接起来的,韵律短语包含韵律词,一般由韵律词和语气词组成,语调短语包含韵律短语,一般指一个大停顿。
本发明实施例针对待转换文本语句,按照不同的韵律级别进行划分的话,会得到不同的字符分组结果。
需要说明的是,针对语调短语级别以及句末级别,本发明实施例分别为语调短语级别以及句末级别各自设置一个唯一性标识,语调短语级别对应语调短语标识,句末级别对应句末标识。
步骤s110、确定各个字符在其所属至少一个字符分组结果中的合成韵律矢量,所述合成韵律矢量为所述字符在其所属字符分组结果中正向顺序矢量以及逆向顺序矢量的加权和,所述正向顺序矢量的权重依据所述字符在其所属的字符分组单元中的正向相对位置信息确定,所述逆向顺序矢量的权重依据所述字符在其所属的字符分组单元中的逆向相对位置信息确定;
需要说明的是,本发明实施例中采用合成韵律矢量的方式来表示各个字符在语句中的韵律。正向顺序矢量表示的是从待转换文本语句的正向方向上,一个字符在其所属字符分组结果中的位置顺序矢量,逆向顺序矢量表示的是从待转换文本语句的逆向方向上,一个字符在其所属字符分组结果中的位置顺序矢量。
步骤s120、将每个字符对应的至少一个合成韵律矢量进行拼接,得到每个字符对应的目标韵律矢量;
针对一个字符,按照不同的韵律级别进行划分的话,会得到不同的字符分组结果,一个字符在每种字符分组结果下都对应一个合成韵律矢量,因此,针对一个字符来说,具有几种字符分组结果就会对应有几个合成韵律矢量,通过将每个字符对应的至少一个合成韵律矢量进行拼接,能够得到每个字符对应的目标韵律矢量。
将每个字符对应的至少一个合成韵律矢量进行拼接的过程可以是将每个字符对应的至少一个合成韵律矢量进行横向拼接,也可以是将每个字符对应的至少一个合成韵律矢量进行纵向拼接,本发明实施例不做具体限定。
步骤s130、对目标韵律矢量进行分析,得到待转换文本语句对应的语音信息。
本发明实施例通过利用声学识别模型对目标韵律矢量进行分析,识别出声学特征,进而将声学特征经过音频合成器进行合成,将待转换文本语句转化成音频并输出。
本发明实施例首先按照预先设置的至少一个字符分组规则,对待转换文本语句中的字符进行分组,得到相应字符分组规则对应的字符分组结果,不同字符分组规则对应不同韵律级别,每一字符分组结果中包含至少一个字符分组单元,每一字符分组单元中包含至少一个字符,然后确定各个字符在其所属至少一个字符分组结果中的合成韵律矢量,将每个字符对应的至少一个合成韵律矢量进行拼接,得到每个字符对应的目标韵律矢量;对目标韵律矢量进行分析,得到待转换文本语句对应的语音信息。由于合成韵律矢量为字符在其所属字符分组结果中正向顺序矢量以及逆向顺序矢量的加权和,正向顺序矢量的权重依据字符在其所属的字符分组单元中的正向相对位置信息确定,逆向顺序矢量的权重依据所述字符在其所属的字符分组单元中的逆向相对位置信息确定,可见,本发明实施例中考虑了字符在其所属的字符分组单元中的相对位置信息对顺序矢量的影响,从而利用字符在其所属字符分组结果中正向顺序矢量以及逆向顺序矢量的加权和能够更准确体现字符在文本中的位置关系,得到的字符的合成韵律矢量能够更客观的体现字符的韵律特征,增强所转化成的语音的韵律感,提高文本转换成的语音的准确度。
由于本发明实施例中针对每个字符的每一个字符分组结果都对应两个矢量(正向顺序矢量以及逆向顺序矢量),也就是说,无论待转换文本语句对应的字符分组结果中具有多少个字符,最多只需要(字符分组结果的个数*2)个矢量就可以将待转换文本语句中所有的字符的韵律关系表示清楚,因此,本发明上述方式在更准确体现字符在文本中的位置关系的基础上,还能够克服对待转换文本语句对应的字符分组单元中字符个数限定的问题,进一步增强所转化成的语音的韵律感,提高文本转换成的语音的准确度。
下面,给出一种本发明实施例公开的文本转语音的方法具体实现过程,图2为本发明实施例提供的另一种文本转语音的方法的流程图,该方法可应用于服务器,参照图2,所述方法可以包括:
步骤s200、按照预先设置的至少一个字符分组规则,对待转换文本语句中的字符进行分组,得到相应字符分组规则对应的字符分组结果;
需要说明的是,不同字符分组规则对应不同韵律级别,每一字符分组结果中包含至少一个字符分组单元,每一字符分组单元中包含至少一个字符。
步骤s210、确定各个字符在其所属至少一个字符分组结果中的字符顺序矢量;
需要说明的是,所述字符顺序矢量包括:正向顺序矢量以及逆向顺序矢量。
本发明实施例中的正向顺序矢量以及逆向顺序矢量可以通过模型预测得到,本发明实施例不做具体限定。
本发明实施例公开的确定各个字符在在其所属至少一个字符分组结果中的字符顺序矢量包括:
利用预先训练的字符顺序识别模型,得到各个字符分组规则各自对应的字符排列矢量,并将各个字符分组规则各自对应的字符排列矢量作为各个字符在其所属至少一个字符分组结果中的字符顺序矢量。
字符顺序识别模型会对按照不同字符分组规则进行分组的文本语句进行训练,从而得到不同字符分组规则各自对应的字符排列矢量(包括正向字符排列矢量以及逆向字符排列矢量),并将各个字符分组规则各自对应的字符排列矢量作为各个字符在其所属至少一个字符分组结果中的字符顺序矢量,即将各个字符分组规则各自对应的正向字符排列矢量作为各个字符在其所属至少一个字符分组结果中的正向字符顺序矢量;将各个字符分组规则各自对应的逆向字符排列矢量作为各个字符在其所属至少一个字符分组结果中的逆向字符顺序矢量。
步骤s220、确定各个字符在其所属至少一个字符分组结果中的相对位置信息;
所述相对位置信息包括所述字符在其所属的字符分组单元中的正向相对位置信息以及逆向相对位置信息。
正向相对位置信息指的是从待转换文本语句的正向方向上,一个字符在其所属字符分组单元中的位置信息;逆向相对位置信息指的是从待转换文本语句的逆向方向上,一个字符在其所属字符分组单元中的位置信息,
确定各个字符在其所属至少一个字符分组结果中的相对位置信息包括:
确定各个字符在其所属字符分组单元中的位置序号,所述位置序号是按照字符分组单元中字符的正向排列顺序确定的;确定各个字符所属的字符分组单元的长度;利用各个字符在其所属字符分组单元中的位置序号,以及各个字符所属的字符分组单元的长度,得到各个字符在其所属至少一个字符分组结果中的相对位置信息。
需要说明的是,位置序号从0开始排列,排列在字符分组单元第一位的字符的位置序号为0,排列在字符分组单元第二位的字符的位置序号为1,排列在字符分组单元第三位的字符的位置序号为2...依次类推,得到各个字符在其所属字符分组单元中的位置序号。
本发明实施例中将字符分组单元中字符的个数确定为字符分组单元的长度。
具体的,利用各个字符在其所属字符分组单元中的位置序号,以及各个字符所属的字符分组单元的长度,得到各个字符在其所属至少一个字符分组结果中的相对位置信息包括:
将各个字符在其所属字符分组单元中的位置序号,与相应该字符所属的字符分组单元的长度的比值,作为各个字符的正向相对位置信息;将预设字符分别与各个字符的正向相对位置信息的差值,作为各个字符的逆向相对位置信息。
具体的,本发明实施例中的预设字符为1,本发明实施例并不做具体限定。
步骤s230、将各个字符在其所属至少一个字符分组结果中对应的正向顺序矢量以及逆向顺序矢量的加权和,作为各个字符在其所属至少一个字符分组结果中的合成韵律矢量;
需要说明的是,所述正向顺序矢量的权重为所述字符在其所属的字符分组单元中的正向相对位置信息,所述逆向顺序矢量的权重为所述字符在其所属的字符分组单元中的逆向相对位置信息。
步骤s240、将每个字符对应的至少一个合成韵律矢量进行拼接,得到每个字符对应的目标韵律矢量;
步骤s250、将每个字符对应的目标韵律矢量进行归一化处理,得到每个字符对应的归一化的目标韵律矢量;
需要说明的是,为了防止每个字符对应的目标韵律矢量的数值过大,影响拼音、音调等主要信息的训练过程,本发明实施例将每个字符对应的目标韵律矢量进行归一化处理,得到每个字符对应的归一化的目标韵律矢量。
假设任一个字符对应的目标韵律矢量为v,归一化的目标韵律矢量为v′,那么归一化公式为:
步骤s260、对归一化的目标韵律矢量进行分析,得到待转换文本语句对应的语音信息。
下面,以一个具体的例子详细说明本发明实施例公开的上述文本转语音的方法的具体过程:
假设待转换文本语句为:“这是一个例子,对吗”。
1、按照预先设置的至少一个字符分组规则,对待转换文本语句中的字符进行分组:
按照韵律词进行分组,得到的第一字符分组结果为:这是#1一个#1例子#1对吗;
按照韵律短语进行分组,得到的第二字符分组结果为:这是一个#2例子#2对吗;
按照语调短语进行分组,得到的第三字符分组结果为:这是一个例子#3(语调短语标识sp1)#3对吗
按照句末进行分组,得到的第四字符分组结果为:这是一个例子对吗#4(句末标识sp2)。
2、确定各个字符在其所属至少一个字符分组结果中的字符顺序矢量:
确定各个字符在第一字符分组结果中的正向顺序矢量(矢量一)以及逆向顺序矢量(矢量二);
确定各个字符在第二字符分组结果中的正向顺序矢量(矢量三)以及逆向顺序矢量(矢量四);
确定各个字符在第三字符分组结果中的正向顺序矢量(矢量五)以及逆向顺序矢量(矢量六);
确定各个字符在第四字符分组结果中的正向顺序矢量(矢量七)以及逆向顺序矢量(矢量八)。
3、确定各个字符在其所属至少一个字符分组结果中的相对位置信息:
(1)针对第一字符分组结果:这是#1一个#1例子#1对吗
字符“这”在“这是”这个字符分组单元中的位置序号为:0,字符“是”在“这是”这个字符分组单元中的位置序号为:1;“这是”这个字符分组单元的长度为2;字符“这”在“这是”这个字符分组单元的正向相对位置信息为:0/2,字符“这”在“这是”这个字符分组单元的逆向相对位置信息为:(1-0/2);字符“是”在“这是”这个字符分组单元的正向相对位置信息为:1/2,字符“是”在“这是”这个字符分组单元的逆向相对位置信息为:(1-1/2);
字符“一”在“一个”这个字符分组单元中的位置序号为:0,字符“个”在“一个”这个字符分组单元中的位置序号为:1;“一个”这个字符分组单元的长度为2;字符“一”在“一个”这个字符分组单元的正向相对位置信息为:0/2,字符“一”在“一个”这个字符分组单元的逆向相对位置信息为:(1-0/2);字符“个”在“一个”这个字符分组单元的正向相对位置信息为:1/2,字符“个”在“一个”这个字符分组单元的逆向相对位置信息为:(1-1/2);
字符“例”在“例子”这个字符分组单元中的位置序号为:0,字符“子”在“例子”这个字符分组单元中的位置序号为:1;“例子”这个字符分组单元的长度为2;字符“例”在“例子”这个字符分组单元的正向相对位置信息为:0/2,字符“例”在“例子”这个字符分组单元的逆向相对位置信息为:(1-0/2);字符“子”在“例子”这个字符分组单元的正向相对位置信息为:1/2,字符“子”在“例子”这个字符分组单元的逆向相对位置信息为:(1-1/2);
字符“对”在“对吗”这个字符分组单元中的位置序号为:0,字符“吗”在“对吗”这个字符分组单元中的位置序号为:1;“对吗”这个字符分组单元的长度为2;字符“对”在“对吗”这个字符分组单元的正向相对位置信息为:0/2,字符“对”在“对吗”这个字符分组单元的逆向相对位置信息为:(1-0/2);字符“吗”在“对吗”这个字符分组单元的正向相对位置信息为:1/2,字符“吗”在“对吗”这个字符分组单元的逆向相对位置信息为:(1-1/2);
(2)针对第二字符分组结果为:这是一个#2例子#2对吗;
字符“这”在“这是一个”这个字符分组单元中的位置序号为:0,字符“是”在“这是一个”这个字符分组单元中的位置序号为:1;字符“一”在“这是一个”这个字符分组单元中的位置序号为:2;字符“个”在“这是一个”这个字符分组单元中的位置序号为:3;“这是一个”这个字符分组单元的长度为4;字符“这”在“这是一个”这个字符分组单元的正向相对位置信息为:0/4,字符“这”在“这是一个”这个字符分组单元的逆向相对位置信息为:(1-0/4);“是”在“这是一个”这个字符分组单元的正向相对位置信息为:1/4,字符“是”在“这是一个”这个字符分组单元的逆向相对位置信息为:(1-1/4);“一”在“这是一个”这个字符分组单元的正向相对位置信息为:2/4,字符“一”在“这是一个”这个字符分组单元的逆向相对位置信息为:(1-2/4);“个”在“这是一个”这个字符分组单元的正向相对位置信息为:3/4,字符“个”在“这是一个”这个字符分组单元的逆向相对位置信息为:(1-3/4);
字符“例”在“例子”这个字符分组单元中的位置序号为:0,字符“子”在“例子”这个字符分组单元中的位置序号为:1;“例子”这个字符分组单元的长度为2;字符“例”在“例子”这个字符分组单元的正向相对位置信息为:0/2,字符“例”在“例子”这个字符分组单元的逆向相对位置信息为:(1-0/2);字符“子”在“例子”这个字符分组单元的正向相对位置信息为:1/2,字符“子”在“例子”这个字符分组单元的逆向相对位置信息为:(1-1/2);
字符“对”在“对吗”这个字符分组单元中的位置序号为:0,字符“吗”在“对吗”这个字符分组单元中的位置序号为:1;“对吗”这个字符分组单元的长度为2;字符“对”在“对吗”这个字符分组单元的正向相对位置信息为:0/2,字符“对”在“对吗”这个字符分组单元的逆向相对位置信息为:(1-0/2);字符“吗”在“对吗”这个字符分组单元的正向相对位置信息为:1/2,字符“吗”在“对吗”这个字符分组单元的逆向相对位置信息为:(1-1/2);
(3)针对第三字符分组结果为:这是一个例子#3(sp1)#3对吗
字符“这”在“这是一个例子”这个字符分组单元中的位置序号为:0,字符“是”在“这是一个例子”这个字符分组单元中的位置序号为:1;字符“一”在“这是一个例子”这个字符分组单元中的位置序号为:2;字符“个”在“这是一个例子”这个字符分组单元中的位置序号为:3;字符“例”在“这是一个例子”这个字符分组单元中的位置序号为:4;字符“子”在“这是一个例子”这个字符分组单元中的位置序号为:5;
“这是一个例子”这个字符分组单元的长度为6;
字符“这”在“这是一个例子”这个字符分组单元的正向相对位置信息为:0/6;字符“是”在“这是一个例子”这个字符分组单元的正向相对位置信息为:1/6;字符“一”在“这是一个例子”这个字符分组单元的正向相对位置信息为:2/6;字符“个”在“这是一个例子”这个字符分组单元的正向相对位置信息为:3/6;字符“例”在“这是一个例子”这个字符分组单元的正向相对位置信息为:4/6;字符“子”在“这是一个例子”这个字符分组单元的正向相对位置信息为:5/6;
字符“这”在“这是一个例子”这个字符分组单元的逆向相对位置信息为:(1-0/6);字符“是”在“这是一个例子”这个字符分组单元的逆向相对位置信息为:(1-1/6);字符“一”在“这是一个例子”这个字符分组单元的逆向相对位置信息为:(1-2/6);字符“个”在“这是一个例子”这个字符分组单元的逆向相对位置信息为:(1-3/6);字符“例”在“这是一个例子”这个字符分组单元的逆向相对位置信息为:(1-4/6);字符“子”在“这是一个例子”这个字符分组单元的逆向相对位置信息为:(1-5/6);
语调短语标识sp1在“sp1”这个字符分组单元中的位置序号为:0,“sp1”这个字符分组单元的长度为1;语调短语标识sp1在“sp1”这个字符分组单元中的正向相对位置信息为:0/1;语调短语标识sp1在“sp1”这个字符分组单元中的正向相对位置信息为:(1-0/1);
字符“对”在“对吗”这个字符分组单元中的位置序号为:0,字符“吗”在“对吗”这个字符分组单元中的位置序号为:1;“对吗”这个字符分组单元的长度为2;字符“对”在“对吗”这个字符分组单元的正向相对位置信息为:0/2,字符“对”在“对吗”这个字符分组单元的逆向相对位置信息为:(1-0/2);字符“吗”在“对吗”这个字符分组单元的正向相对位置信息为:1/2,字符“吗”在“对吗”这个字符分组单元的逆向相对位置信息为:(1-1/2);
(4)针对第四字符分组结果为:这是一个例子对吗#4(sp2)。
字符“这”在“这是一个例子对吗”这个字符分组单元中的位置序号为:0,字符“是”在“这是一个例子对吗”这个字符分组单元中的位置序号为:1;字符“一”在“这是一个例子对吗”这个字符分组单元中的位置序号为:2;字符“个”在“这是一个例子对吗”这个字符分组单元中的位置序号为:3;字符“例”在“这是一个例子对吗”这个字符分组单元中的位置序号为:4;字符“子”在“这是一个例子对吗”这个字符分组单元中的位置序号为:5;字符“对”在“这是一个例子对吗”这个字符分组单元中的位置序号为:6;字符“吗”在“这是一个例子对吗”这个字符分组单元中的位置序号为:7;
“这是一个例子对吗”这个字符分组单元的长度为8;
字符“这”在“这是一个例子对吗”这个字符分组单元的正向相对位置信息为:0/8;字符“是”在“这是一个例子对吗”这个字符分组单元的正向相对位置信息为:1/8;字符“一”在“这是一个例子对吗”这个字符分组单元的正向相对位置信息为:2/8;字符“个”在“这是一个例子对吗”这个字符分组单元的正向相对位置信息为:3/8;字符“例”在“这是一个例子对吗”这个字符分组单元的正向相对位置信息为:4/8;字符“子”在“这是一个例子对吗”这个字符分组单元的正向相对位置信息为:5/8;字符“对”在“这是一个例子对吗”这个字符分组单元的正向相对位置信息为:6/8;字符“吗”在“这是一个例子对吗”这个字符分组单元的正向相对位置信息为:7/8;
字符“这”在“这是一个例子对吗”这个字符分组单元的逆向相对位置信息为:(1-0/8);字符“是”在“这是一个例子对吗”这个字符分组单元的逆向相对位置信息为:(1-1/8);字符“一”在“这是一个例子对吗”这个字符分组单元的逆向相对位置信息为:(1-2/8);字符“个”在“这是一个例子对吗”这个字符分组单元的逆向相对位置信息为:(1-3/8);字符“例”在“这是一个例子对吗”这个字符分组单元的逆向相对位置信息为:(1-4/8);字符“子”在“这是一个例子对吗”这个字符分组单元的逆向相对位置信息为:(1-5/8);字符“对”在“这是一个例子对吗”这个字符分组单元的逆向相对位置信息为:(1-6/8);字符“吗”在“这是一个例子对吗”这个字符分组单元的逆向相对位置信息为:(1-7/8);
sp2在“sp2”这个字符分组单元中的位置序号为:0,“sp2”这个字符分组单元的长度为1;sp2在“sp2”这个字符分组单元中的正向相对位置信息为:0/1;sp2在“sp2”这个字符分组单元中的正向相对位置信息为:(1-0/1);
4、将各个字符在其所属至少一个字符分组结果中对应的正向顺序矢量以及逆向顺序矢量的加权和,作为各个字符在其所属至少一个字符分组结果中的合成韵律矢量;
(1)针对第一字符分组结果:这是#1一个#1例子#1对吗
字符“这”在“这是”这个字符分组单元中的合成韵律矢量为:0/2*矢量一+(1-0/2)*矢量二;字符“是”在“这是”这个字符分组单元中的合成韵律矢量为:1/2*矢量一+(1-1/2)*矢量二;
字符“一”在“一个”这个字符分组单元中的合成韵律矢量为:0/2*矢量一+(1-0/2)*矢量二;字符“个”在“一个”这个字符分组单元的合成韵律矢量为:1/2*矢量一+(1-1/2)*矢量二;
字符“例”在“例子”这个字符分组单元中的合成韵律矢量为:0/2*矢量一+(1-0/2)*矢量二;字符“子”在“例子”这个字符分组单元的合成韵律矢量为:1/2*矢量一+(1-1/2)*矢量二;
字符“对”在“对吗”这个字符分组单元中的合成韵律矢量为:0/2*矢量一+(1-0/2)*矢量二;字符“吗”在“对吗”这个字符分组单元的合成韵律矢量为:1/2*矢量一+(1-1/2)*矢量二;
(2)针对第二字符分组结果为:这是一个#2例子#2对吗;
字符“这”在“这是一个”这个字符分组单元中的合成韵律矢量为:0/4*矢量三+(1-0/4)*矢量四;字符“是”在“这是一个”这个字符分组单元中的合成韵律矢量为:1/4*矢量三+(1-1/4)*矢量四;字符“一”在“这是一个”这个字符分组单元的合成韵律矢量为:2/4*矢量三+(1-2/4)*矢量四;字符“个”在“这是一个”这个字符分组单元的合成韵律矢量为:3/4*矢量三+(1-3/4)*矢量四;
字符“例”在“例子”这个字符分组单元中的合成韵律矢量为:0/2*矢量三+(1-0/2)*矢量四;字符“子”在“例子”这个字符分组单元的合成韵律矢量为:1/2*矢量三+(1-1/2)*矢量四;
字符“对”在“对吗”这个字符分组单元中的合成韵律矢量为:0/2*矢量三+(1-0/2)*矢量四;字符“吗”在“对吗”这个字符分组单元的合成韵律矢量为:1/2*矢量三+(1-1/2)*矢量四;
(3)针对第三字符分组结果为:这是一个例子#3(语调短语标识sp1)#3对吗
字符“这”在“这是一个例子”这个字符分组单元中的合成韵律矢量为:0/6*矢量五+(1-0/6)*矢量六;字符“是”在“这是一个例子”这个字符分组单元中的合成韵律矢量为:1/6*矢量五+(1-1/6)*矢量六;字符“一”在“这是一个例子”这个字符分组单元的合成韵律矢量为:2/6*矢量五+(1-2/6)*矢量六;字符“个”在“这是一个例子”这个字符分组单元的合成韵律矢量为:3/6*矢量五+(1-3/6)*矢量六;字符“例”在“这是一个例子”这个字符分组单元的合成韵律矢量为:4/6*矢量五+(1-4/6)*矢量六;字符“子”在“这是一个例子”这个字符分组单元的合成韵律矢量为:5/6*矢量五+(1-5/6)*矢量六;
语调短语标识sp1在“sp1”这个字符分组单元中的合成韵律矢量为:0/1*矢量五+(1-0/1)*矢量六;
字符“对”在“对吗”这个字符分组单元中的合成韵律矢量为:0/2*矢量五+(1-0/2)*矢量六;字符“吗”在“对吗”这个字符分组单元的合成韵律矢量为:1/2*矢量五+(1-1/2)*矢量六;
(4)针对第四字符分组结果为:这是一个例子对吗#4(句末标识sp2)。
字符“这”在“这是一个例子对吗”这个字符分组单元中的合成韵律矢量为:0/8*矢量七+(1-0/8)*矢量八;字符“是”在“这是一个例子对吗”这个字符分组单元中的合成韵律矢量为:1/8*矢量七+(1-1/8)*矢量八;字符“一”在“这是一个例子对吗”这个字符分组单元的合成韵律矢量为:2/8*矢量七+(1-2/8)*矢量八;字符“个”在“这是一个例子对吗”这个字符分组单元的合成韵律矢量为:3/8*矢量七+(1-3/8)*矢量八;字符“例”在“这是一个例子对吗”这个字符分组单元的合成韵律矢量为:4/8*矢量七+(1-4/8)*矢量八;字符“子”在“这是一个例子对吗”这个字符分组单元的合成韵律矢量为:5/8*矢量七+(1-5/8)*矢量八;字符“对”在“这是一个例子对吗”这个字符分组单元的合成韵律矢量为:6/8*矢量七+(1-6/8)*矢量八;字符“吗”在“这是一个例子对吗”这个字符分组单元的合成韵律矢量为:7/8*矢量七+(1-7/8)*矢量八;
语调短语标识sp2在“sp2”这个字符分组单元中的合成韵律矢量为:0/1*矢量七+(1-0/1)*矢量八;
5、将每个字符对应的至少一个合成韵律矢量进行拼接,得到每个字符对应的目标韵律矢量;
6、将每个字符对应的目标韵律矢量进行归一化处理,得到每个字符对应的归一化的目标韵律矢量;
7、对归一化的目标韵律矢量进行分析,得到待转换文本语句对应的语音信息。
下面,给出另外一种本发明实施例公开的文本转语音的方法具体实现过程,所述方法可以包括:
步骤一:按照预先设置的至少一个字符分组规则,对待转换文本语句中的字符进行分组,得到相应字符分组规则对应的字符分组结果,不同字符分组规则对应不同韵律级别,每一字符分组结果中包含至少一个字符分组单元,每一字符分组单元中包含至少一个字符;
步骤二:确定每一个分组结果中所包含的每一个字符对应的字符顺序矢量,所述字符顺序矢量包括:正向顺序矢量以及逆向顺序矢量;
步骤三:确定每一个字符分组结果中各个字符的相对位置信息,所述相对位置信息包括所述字符在其所在的字符分组单元中的正向相对位置信息以及逆向相对位置信息;
具体的,确定每一个字符分组结果中各个字符的相对位置信息包括:确定每一个字符分组结果中各个字符在其所在的字符分组单元中的位置序号,所述位置序号从0开始,并且所述位置序号是按照字符分组单元中字符的正向排列顺序确定的;确定每一个字符分组结果中各个字符所在的字符分组单元的长度;利用每一个字符分组结果中各个字符的位置序号,以及每一个字符分组结果中各个字符所在的字符分组单元的长度,得到每一个字符分组结果中各个字符的相对位置信息。
所述利用每一个字符分组结果中各个字符的位置序号,以及每一个字符分组结果中各个字符所在的字符分组单元的字符长度,得到每一个字符分组结果中各个字符的相对位置信息包括:将每一个字符分组结果中各个字符的位置序号,与该字符所在的字符分组单元的字符长度的比值,作为该字符的正向相对位置信息;将预设字符与正向相对位置信息的差值,作为该字符的逆向相对位置信息。
步骤四:将每一个字符分组结果中每一个字符对应的正向顺序矢量以及逆向顺序矢量分别与各自对应的权重值进行组合,得到每一个字符分组结果中每一个字符对应的合成韵律矢量,一个字符分组结果中一个字符的正向相对位置信息为该字符对应的正向顺序矢量的权重值,一个字符分组结果中一个字符的逆向相对位置信息为该字符对应的逆向顺序矢量的权重值;
所述将每一个字符分组结果中每一个字符对应的正向顺序矢量以及逆向顺序矢量分别与各自对应的权重值进行组合,得到每一个字符分组结果中每一个字符对应的合成韵律矢量包括:将每一个字符分组结果中每一个字符对应的正向顺序矢量以及逆向顺序矢量分别与各自对应的权重值执行加权求和操作,将加权求和操作的结果作为每一个字符分组结果中每一个字符对应的合成韵律矢量。
步骤五:将每个字符对应的至少一个合成韵律矢量进行拼接,得到每个字符对应的目标韵律矢量;
步骤六:将每个字符对应的目标韵律矢量进行归一化处理,得到每个字符对应的归一化的目标韵律矢量;
步骤七:对归一化的目标韵律矢量进行分析,得到待转换文本语句对应的语音信息。
下面对本申请实施例提供的文本转语音的装置进行介绍,下文描述的文本转语音的装置可与上文文本转语音的方法相互对应参照。
图3为本申请实施例提供的文本转语音的装置的结构框图,参照图3,所述文本转语音的装置包括:
字符分组单元300,用于按照预先设置的至少一个字符分组规则,对待转换文本语句中的字符进行分组,得到相应字符分组规则对应的字符分组结果,不同字符分组规则对应不同韵律级别,每一字符分组结果中包含至少一个字符分组单元,每一字符分组单元中包含至少一个字符;
合成韵律矢量确定单元310,用于确定各个字符在其所属至少一个字符分组结果中的合成韵律矢量,所述合成韵律矢量为所述字符在其所属字符分组结果中正向顺序矢量以及逆向顺序矢量的加权和,所述正向顺序矢量的权重依据所述字符在其所属的字符分组单元中的正向相对位置信息确定,所述逆向顺序矢量的权重依据所述字符在其所属的字符分组单元中的逆向相对位置信息确定;
矢量拼接单元320,用于将每个字符对应的至少一个合成韵律矢量进行拼接,得到每个字符对应的目标韵律矢量;
分析单元330,用于对目标韵律矢量进行分析,得到待转换文本语句对应的语音信息。
所述合成韵律矢量确定单元包括:
字符顺序矢量确定单元,用于确定各个字符在其所属至少一个字符分组结果中的字符顺序矢量,所述字符顺序矢量包括:正向顺序矢量以及逆向顺序矢量;
相对位置信息确定单元,用于确定各个字符在其所属至少一个字符分组结果中的相对位置信息,所述相对位置信息包括所述字符在其所属的字符分组单元中的正向相对位置信息以及逆向相对位置信息;
合成韵律矢量确定子单元,用于将各个字符在其所属至少一个字符分组结果中对应的正向顺序矢量以及逆向顺序矢量的加权和,作为各个字符在其所属至少一个字符分组结果中的合成韵律矢量,所述正向顺序矢量的权重为所述字符在其所属的字符分组单元中的正向相对位置信息,所述逆向顺序矢量的权重为所述字符在其所属的字符分组单元中的逆向相对位置信息。
所述字符顺序矢量确定单元至少用于:
利用预先训练的字符顺序识别模型,确定待转换文本语句中所有字符对应的排列顺序,所述排列顺序包括:正向排列顺序以及逆向排列顺序;
确定所述排列顺序对应的基准排列顺序矢量,所述基准排列顺序矢量包括:正向基准排列顺序矢量以及逆向基准排列顺序矢量;
利用所述基准排列顺序矢量,得到各个字符分组规则各自对应的排列顺序矢量,并将各个字符分组规则各自对应的排列顺序矢量作为各个字符在其所属至少一个字符分组结果。
所述相对位置信息确定单元包括:
序号确定单元,用于确定各个字符在其所属字符分组单元中的位置序号,所述位置序号是按照字符分组单元中字符的正向排列顺序确定的;
长度确定单元,用于确定各个字符所属的字符分组单元的长度;
相对位置信息确定子单元,用于利用各个字符在其所属字符分组单元中的位置序号,以及各个字符所属的字符分组单元的长度,得到各个字符在其所属至少一个字符分组结果中的相对位置信息。
所述相对位置信息确定子单元具体用于:
将各个字符在其所属字符分组单元中的位置序号,与相应该字符所属的字符分组单元的长度的比值,作为各个字符的正向相对位置信息;
将预设字符分别与各个字符的正向相对位置信息的差值,作为各个字符的逆向相对位置信息。
所述装置还包括:
归一化单元,用于将每个字符对应的目标韵律矢量进行归一化处理,得到每个字符对应的归一化的目标韵律矢量。
所述分析单元具体用于:对归一化的目标韵律矢量进行分析,得到待转换文本语句对应的语音信息。
可选的,本发明实施例还公开一种计算机设备,所述计算机设备至少包括:处理器和存储器;
其中,所述处理器用于调用并执行所述存储器中存储的程序;
所述存储器用于存储所述程序,所述程序至少用于如上所述的文本转语音的方法。
本说明书中各个实施例中记载的技术特征可以相互替换或组合,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
起点商标作为专业知识产权交易平台,可以帮助大家解决很多问题,如果大家想要了解更多知产交易信息请点击 【在线咨询】或添加微信 【19522093243】与客服一对一沟通,为大家解决相关问题。
此文章来源于网络,如有侵权,请联系删除