具体实施方式
下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
图1示出了本发明实施例提供的带语气的语音合成方法的流程示意图,如图1所示,带语气的语音合成方法包括:
步骤S11:根据分句标志对原始文本进行分句。
在本发明实施例中,按照标点符号等分句标志,对原始文本进行分句。
步骤S12:应用已训练的语气分类模型对原始文本进行分类,获取语气分类信息。
在本发明实施例中,在步骤S12之前,对所述语气分类模型进行训练,得到已训练的所述语气分类模型。在完成对语气分类模型的训练之后,还对所述语音合成模型进行训练,得到已训练的所述语音合成模型。
语气分类模型的原理如图2所示,首先应用结巴(jieba)分词对输入的文本进行分词,然后应用词向量工具(word2vec)将文本转化为词向量序列,将词向量序列输入文本分类模型Text-CNN进行语气分类,输出语气分类信息。
在对所述语气分类模型进行训练时,如图3所示,包括:
步骤121:制作语气分类语料库,并将所述语气分类语料库分为测试集和验证集。
具体地,收集包括预设数量的日常用语的第一文本;获取人工对所述第一文本中预设数量的所述日常用语标注的语气类型;合并所述第一文本以及标注的所述语气类型,形成所述语气分类语料库。例如,收集10万条日常用语的第一文本,获取人工对该10万条语句标注的语气类型,形成语气分类语料库。将上述10万条语料分为两个数据集:训练集和验证集,其中训练集包含9万条语料,余下的1万条语料作为验证集。
步骤122:对所述语气分类语料库进行预处理。
具体地,剔除所述第一文本中无意义的符号信息和冗余信息;使用结巴(jieba)分词对所述第一文本中的语料进行分词;使用词向量工具(word2vec)将分词后的所述第一文本转化为词向量序列。
步骤123:将所述测试集输入文本分类模型进行分类,形成语气分类标签,直至训练的语气分类标签结果满足第一验证条件,获取对应的语气分类模型的参数。
文本分类模型应用Text-CNN,Text-CNN的结构如图4所示,包括:输入层、卷积层、池化层以及全连接层。例如,通过word2vec转化的词向量序列的维度为k,长度为n,从输入层输入Text-CNN,通过卷积层进行卷积操作,每一次卷积操作相当于一次特征向量的提取,通过定义不同的窗口,就可以提取出不同的特征向量,构成卷积层的输出。再经过池化层进行池化操作,本发明实施例应用最大池化,从每个滑动窗口产生的特征向量中筛选出一个最大的特征,再经过全连接层将这些特征拼接起来构成向量表示,进行分类输出,形成分类标签。语气分类模型的主要参数包括:卷积核的个数、卷积核的窗口值、正则化项(L2)和学习率。使用准确率、F1值和召回率作为第一验证条件,调整语气分类模型的参数使获取的分类标签的准确率、F1值和召回率满足要求,获取此时的语气分类模型的参数。
步骤124:根据所述验证集对所述参数对应的所述语气分类模型进行验证,得到已训练的所述语气分类模型。
应用验证集对获取的参数对应的语气分类模型进行验证,得到的语气分类结果的准确率、F1值和召回率满足要求,则此时的语气分类模型的参数即为已训练的语气分类模型的参数。
在本发明实施例中,对所述语音合成模型进行训练时,如图5所示,包括:
步骤S125:制作语音生成语料库,并将所述语音生成语料库分为测试集和验证集。
具体地,收集包括预设数量的日常用语的第二文本;应用已训练的所述语气分类模型对所述第二文本进行语气分类,获取语气分类结果;根据所述语气分类结果对所述第二文本增加对应的语气标签,形成带有语气标签的语音生成语料库。在本发明实施例中,第二文本可以与语气分类模型训练时应用的第一文本相同,根据第一文本生成语音生成语料库,仍取其中的9万条语料作为训练集,余下的1万条语料作为验证集。
步骤S126:根据所述测试集对所述语音合成模型进行训练,直至训练的音频数据满足第二验证条件,获取对应的所述语音合成模型的参数。
语音合成模型的结构如图6所示,由编码器encoder、连接器connect、解码器decoder和声码器构成。第二文本经过编码器encoder编码处理,连接器connect将编码处理后的第二文本与对应语气分类信息进行连接,通过解码器decoder进行解码处理,然后进行梅尔倒(Mel)频谱处理后经声码器输出语音数据。
语音合成模型优化的主要参数有:embedding的维度、训练积集的批量大小(batchsize)和学习率,使用准确率、平均意见值(Mean Opinion Score,MOS)作为第二验证条件,调整语音合成模型的参数使语音数据的准确率和MOS值满足要求,获取此时的语音合成模型的参数。
步骤S127:根据所述验证集对所述参数对应的所述语音合成模型进行验证,得到已训练的所述语音合成模型。
应用验证集对获取的参数对应的语音合成模型进行验证,检查音频数据的效果,使用MOS进行评分,得到的语音数据的准确率和MOS值满足要求,则此时的语音合成模型的参数即为已训练的语音合成模型的参数。
在步骤S12中,如图7所示,将已分句的原始文本输入已训练好的语气分类模型,通过语气分类模型对该原始文本进行分类,获取对应的语气分类信息。
步骤S13:根据所述语气分类信息和已分句的所述原始文本应用已训练的语音合成模型生成带有语气的语音数据。
具体地,继续参见图7,将已分句的原始文本和通过语气分类模型获取的对应的语气分类信息输入已训练好的语音合成模型,通过语音合成模型生成带有语气的语音数据。
本发明实施例的带语气的语音合成方法包括:根据分句标志对原始文本进行分句;应用已训练的语气分类模型对原始文本进行分类,获取语气分类信息;根据所述语气分类信息和已分句的所述原始文本应用已训练的语音合成模型生成带有语气的语音数据,能够生成与文本内容相对应的带有语气的语音数据,提升了用户体验。
图8示出了本发明实施例的带语气的语音合成装置的结构示意图,如图5所示,该带语气的语音合成装置包括:文本分句单元801、语气分类单元802、语音生成单元803以及模型训练单元804。
文本分句单元801用于根据分句标志对原始文本进行分句;语气分类单元802用于应用已训练的语气分类模型对原始文本进行分类,获取语气分类信息;语音生成单元803用于根据所述语气分类信息和已分句的所述原始文本应用已训练的语音合成模型生成带有语气的语音数据。
在一种可选的方式中,模型训练单元804用于:对所述语气分类模型进行训练,得到已训练的所述语气分类模型;对所述语音合成模型进行训练,得到已训练的所述语音合成模型。
在一种可选的方式中,模型训练单元804用于:制作语气分类语料库,并将所述语气分类语料库分为测试集和验证集;对所述语气分类语料库进行预处理;将所述测试集输入文本分类模型进行分类,形成语气分类标签,直至训练的语气分类标签结果满足第一验证条件,获取对应的所述语气分类模型的参数;根据所述验证集对所述参数对应的所述语气分类模型进行验证,得到已训练的所述语气分类模型。
在一种可选的方式中,模型训练单元804用于:收集包括预设数量的日常用语的第一文本;获取人工对所述第一文本中预设数量的所述日常用语标注的语气类型;合并所述第一文本以及标注的所述语气类型,形成所述语气分类语料库。
在一种可选的方式中,模型训练单元804用于:剔除所述第一文本中无意义的符号信息和冗余信息;使用结巴分词对所述第一文本中的语料进行分词;使用词向量工具将分词后的所述第一文本转化为词向量序列。
在一种可选的方式中,模型训练单元804用于:制作语音生成语料库,并将所述语音生成语料库分为测试集和验证集;根据所述测试集对所述语音合成模型进行训练,直至训练的音频数据满足第二验证条件,获取对应的所述语音合成模型的参数;根据所述验证集对所述参数对应的所述语音合成模型进行验证,得到已训练的所述语音合成模型。
在一种可选的方式中,模型训练单元804用于:收集包括预设数量的日常用语的第二文本;应用已训练的所述语气分类模型对所述第二文本进行语气分类,获取语气分类结果;根据所述语气分类结果对所述第二文本增加对应的语气标签,形成带有语气标签的语音生成语料库。
本发明实施例的带语气的语音合成方法包括:根据分句标志对原始文本进行分句;应用已训练的语气分类模型对原始文本进行分类,获取语气分类信息;根据所述语气分类信息和已分句的所述原始文本应用已训练的语音合成模型生成带有语气的语音数据,能够生成与文本内容相对应的带有语气的语音数据,提升了用户体验。
本发明实施例提供了一种非易失性计算机存储介质,所述计算机存储介质存储有至少一可执行指令,该计算机可执行指令可执行上述任意方法实施例中的带语气的语音合成方法。
可执行指令具体可以用于使得处理器执行以下操作:
根据分句标志对原始文本进行分句;
应用已训练的语气分类模型对原始文本进行分类,获取语气分类信息;
根据所述语气分类信息和已分句的所述原始文本应用已训练的语音合成模型生成带有语气的语音数据。
在一种可选的方式中,所述可执行指令使所述处理器执行以下操作:
对所述语气分类模型进行训练,得到已训练的所述语气分类模型;
对所述语音合成模型进行训练,得到已训练的所述语音合成模型。
在一种可选的方式中,所述可执行指令使所述处理器执行以下操作:
制作语气分类语料库,并将所述语气分类语料库分为测试集和验证集;
对所述语气分类语料库进行预处理;
将所述测试集输入文本分类模型进行分类,形成语气分类标签,直至训练的语气分类标签结果满足第一验证条件,获取对应的所述语气分类模型的参数;
根据所述验证集对所述参数对应的所述语气分类模型进行验证,得到已训练的所述语气分类模型。
在一种可选的方式中,所述可执行指令使所述处理器执行以下操作:
收集包括预设数量的日常用语的第一文本;
获取人工对所述第一文本中预设数量的所述日常用语标注的语气类型;
合并所述第一文本以及标注的所述语气类型,形成所述语气分类语料库。
在一种可选的方式中,所述可执行指令使所述处理器执行以下操作:
剔除所述第一文本中无意义的符号信息和冗余信息;
使用结巴分词对所述第一文本中的语料进行分词;
使用词向量工具将分词后的所述第一文本转化为词向量序列。
在一种可选的方式中,所述可执行指令使所述处理器执行以下操作:
制作语音生成语料库,并将所述语音生成语料库分为测试集和验证集;
根据所述测试集对所述语音合成模型进行训练,直至训练的音频数据满足第二验证条件,获取对应的所述语音合成模型的参数;
根据所述验证集对所述参数对应的所述语音合成模型进行验证,得到已训练的所述语音合成模型。
在一种可选的方式中,所述可执行指令使所述处理器执行以下操作:
收集包括预设数量的日常用语的第二文本;
应用已训练的所述语气分类模型对所述第二文本进行语气分类,获取语气分类结果;
根据所述语气分类结果对所述第二文本增加对应的语气标签,形成带有语气标签的语音生成语料库。
本发明实施例的带语气的语音合成方法包括:根据分句标志对原始文本进行分句;应用已训练的语气分类模型对原始文本进行分类,获取语气分类信息;根据所述语气分类信息和已分句的所述原始文本应用已训练的语音合成模型生成带有语气的语音数据,能够生成与文本内容相对应的带有语气的语音数据,提升了用户体验。
图9示出了本发明设备实施例的结构示意图,本发明具体实施例并不对设备的具体实现做限定。
如图9所示,该设备可以包括:处理器(processor)902、通信接口(CommunicationsInterface)904、存储器(memory)906、以及通信总线908。
其中:处理器902、通信接口904、以及存储器906通过通信总线908完成相互间的通信。通信接口904,用于与其它设备比如客户端或其它服务器等的网元通信。处理器902,用于执行程序910,具体可以执行上述带语气的语音合成方法实施例中的相关步骤。
具体地,程序910可以包括程序代码,该程序代码包括计算机操作指令。
处理器902可能是中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。
存储器906,用于存放程序910。存储器906可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
程序910具体可以用于使得处理器902执行以下操作:
根据分句标志对原始文本进行分句;
应用已训练的语气分类模型对原始文本进行分类,获取语气分类信息;
根据所述语气分类信息和已分句的所述原始文本应用已训练的语音合成模型生成带有语气的语音数据。
在一种可选的方式中,所述程序910使所述处理器执行以下操作:
对所述语气分类模型进行训练,得到已训练的所述语气分类模型;
对所述语音合成模型进行训练,得到已训练的所述语音合成模型。
在一种可选的方式中,所述程序910使所述处理器执行以下操作:
制作语气分类语料库,并将所述语气分类语料库分为测试集和验证集;
对所述语气分类语料库进行预处理;
将所述测试集输入文本分类模型进行分类,形成语气分类标签,直至训练的语气分类标签结果满足第一验证条件,获取对应的所述语气分类模型的参数;
根据所述验证集对所述参数对应的所述语气分类模型进行验证,得到已训练的所述语气分类模型。
在一种可选的方式中,所述程序910使所述处理器执行以下操作:
收集包括预设数量的日常用语的第一文本;
获取人工对所述第一文本中预设数量的所述日常用语标注的语气类型;
合并所述第一文本以及标注的所述语气类型,形成所述语气分类语料库。
在一种可选的方式中,所述程序910使所述处理器执行以下操作:
剔除所述第一文本中无意义的符号信息和冗余信息;
使用结巴分词对所述第一文本中的语料进行分词;
使用词向量工具将分词后的所述第一文本转化为词向量序列。
在一种可选的方式中,所述程序910使所述处理器执行以下操作:
制作语音生成语料库,并将所述语音生成语料库分为测试集和验证集;
根据所述测试集对所述语音合成模型进行训练,直至训练的音频数据满足第二验证条件,获取对应的所述语音合成模型的参数;
根据所述验证集对所述参数对应的所述语音合成模型进行验证,得到已训练的所述语音合成模型。
在一种可选的方式中,所述程序910使所述处理器执行以下操作:
收集包括预设数量的日常用语的第二文本;
应用已训练的所述语气分类模型对所述第二文本进行语气分类,获取语气分类结果;
根据所述语气分类结果对所述第二文本增加对应的语气标签,形成带有语气标签的语音生成语料库。
本发明实施例的带语气的语音合成方法包括:根据分句标志对原始文本进行分句;应用已训练的语气分类模型对原始文本进行分类,获取语气分类信息;根据所述语气分类信息和已分句的所述原始文本应用已训练的语音合成模型生成带有语气的语音数据,能够生成与文本内容相对应的带有语气的语音数据,提升了用户体验。
在此提供的算法或显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明实施例也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本发明并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明实施例的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
此外,本领域的技术人员能够理解,尽管在此的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。上述实施例中的步骤,除有特殊说明外,不应理解为对执行顺序的限定。