首页 > 乐器声学 专利正文
将文本数据转换为音素序列的方法及设备与流程

时间:2022-02-17 阅读: 作者:专利查询

将文本数据转换为音素序列的方法及设备与流程

1.本公开涉及人工智能服务领域,更具体地涉及一种将文本数据转换为音素序列的方法、装置、设备和计算机可读存储介质。


背景技术:

2.目前已经提出了文本到语音(text

to

speech,tts)技术,来将文本数据转换为语音。tts技术已经广泛地应用到了语音助手、智能导航、电子书等产品中。tts技术同时运用语言学和心理学,通过神经网络的设计,把文字智能地转化为自然的语音流。然而当前的tts技术对于基于表意文字的语言(比如说汉语)仍不够友好。
3.目前,在生成语音之前,需要将输入的字符序列转换为对应的发音音素序列。这一转换过程又被称为tts技术中的前端处理。而表意文字的语言通常具有变调,例如,中文的二声、三声以及轻声变调。这些变调导致了转换而成的发音音素序列不准确。目前,表意文字的语言转换为发音音素序列几乎都是基于语言学家预设的转换规则的。例如,对于中文而言,通常是先由语言学家总结一系列的中文字符转化为发音标注的规则,然后再把这些规则写成计算机能理解的形式。然而,建立预设的转换规则工作量巨大而且很难涵盖所有的情况。另外,当这样的规则越来越复杂时,同一个中文字符的转换可能被多种规则所匹配,产生规则冲突。随着数据的增多,越来越多的研究人员尝试使用基于统计的方法进行前端处理。但是,以上方法都高度依赖于特征工程和建模人员的经验。
4.目前也有研究人员考虑使用神经网络来解决上述问题。然而目前的神经网络方案仍存在语音标注难、预测不准等等问题,这些问题使得语音合成质量不高。因此,需要对现有的tts技术中的前端处理方案进行进一步的改进,以合成对于表意文字的语言更友好的语音。


技术实现要素:

5.本公开的实施例提供了一种将文本数据转换为音素序列的方法及设备、一种将复杂文本处理模型简化为轻量文本处理模型的方法及设备、和计算机可读存储介质。
6.本公开的实施例提供了一种将文本数据转换为音素序列的方法,包括:基于所述文本数据中的句子,提取所述句子对应的句义特征和所述句子中的一个或多个连续字符对应的字符语义特征,基于所述句子对应的句义特征,确定所述句子对应的语法特征,基于所述字符语义特征和所述句子对应的语法特征,确定多音字特征,所述多音字特征指示字符的多音字发音信息,以及基于所述语法特征和所述多音字特征,确定所述句子对应的音素序列。
7.本公开的实施例提供了一种将文本数据转换为音素序列的装置,包括:提取单元,被配置为基于所述文本数据中的句子,提取所述句子对应的句义特征和所述句子中的一个或多个连续字符对应的字符语义特征,第一确定单元,被配置为基于所述句子对应的句义特征,确定所述句子对应的语法特征,第二确定单元,被配置为基于所述字符语义特征和所
述句子对应的语法特征,确定多音字特征,所述多音字特征指示字符的多音字发音信息,以及第三确定单元,被配置为基于所述语法特征和所述多音字特征,确定所述句子对应的音素序列。
8.本公开的实施例提供了一种将文本数据转换为音素序列的设备,包括:处理器;以及存储器,其中,所述存储器中存储有计算机可执行程序,当由所述处理器执行所述计算机可执行程序时,执行上述的方法。
9.本公开的实施例提供了一种将复杂文本处理模型简化为轻量文本处理模型的设备,包括:处理器;存储器,存储器存储有计算机指令,该计算机指令被处理器执行时实现上述方法。
10.本公开的实施例提供了一种计算机可读存储介质,其上存储有计算机指令,该计算机指令被处理器执行时实现上述方法。
11.根据本公开的另一方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各个方面或者上述各个方面的各种可选实现方式中提供的方法。
12.本公开的实施例提供了一种所提出的将文本数据转换为音素序列的方法利用神经网络提取了文本数据中的语法特征和多音字特征并将上述的特征以级联的方式进行了融合,并可选地引入了文本数据中的变调信息,相比于之前的方法,本公开的实施例有以下四点优势。
13.①
本公开的实施例以级联形式,将文本数据中的多个特征进行了融合,从而得到了融合有多个特征间的相互影响信息的特征。
14.②
本公开的实施例还在前端处理过程中引入了多音字特征来消除语音合成过程的分歧,从而为待合成字符序列提供了更正确的字典发音。
15.③
本公开的实施例在前端处理过程中引入了语法特征来辅助韵律控制,从而使得合成语音的韵律更加准确。
16.④
本公开的实施例还在前端处理过程中引入了变调信息,从而使得合成的语音更加自然。
附图说明
17.为了更清楚地说明本公开实施例的技术方案,下面将对实施例的描述中所需要使用的附图作简单的介绍。下面描述中的附图仅仅是本公开的示例性实施例。
18.图1a是示出根据本公开实施例的应用场景的示例示意图。
19.图1b是示出一种将文本数据转换为音素序列的模型的示例示意图。
20.图2a是示出根据本公开实施例的将文本数据转换为音素序列的方法的流程图。
21.图2b是示出根据本公开实施例的将文本数据转换为音素序列的方法200的示意图。
22.图3是示出根据本公开实施例的将文本数据转换为音素序列的方法200的又一示意图。
23.图4a是根据本公开实施例的成分跨度分数集合的示例示意图。
24.图4b是根据本公开实施例的语法树的示意图。
25.图5是根据本公开实施例的多音字分析模块的又一示意图。
26.图6是根据本公开实施例的将文本数据转换为音素序列的装置的示意图。
27.图7是示出根据本公开实施例的将文本数据转换为音素序列的设备的结构图。
具体实施方式
28.为了使得本公开的目的、技术方案和优点更为明显,下面将参照附图详细描述根据本公开的示例实施例。显然,所描述的实施例仅仅是本公开的一部分实施例,而不是本公开的全部实施例,应理解,本公开不受这里描述的示例实施例的限制。
29.在本说明书和附图中,具有基本上相同或相似步骤和元素用相同或相似的附图标记来表示,且对这些步骤和元素的重复描述将被省略。同时,在本公开的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性或排序。
30.为便于描述本公开,以下介绍与本公开有关的概念。
31.本公开可利用声学模型来实现所述将文本数据转换为音素序列的方法。下文中提及的第一编码器、第二编码器、成分分析模块、拼音预测层、变调分析模块、解码器、和语音生成模块等等均为所述声学模型的组成模块。
32.本公开的声学模型可以是基于人工智能(artificial intelligence,ai)的。人工智能是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。例如,对于本公开的声学模型而言,其能够以类似于人类阅读并理解多种不同语种的语言的方式,对该语种的语言进行翻译。人工智能通过研究各种智能机器的设计原理与实现方法,使本公开的声学模型具有理解多种不同语种的语言并将其翻译成另一种语种的语言的功能。
33.人工智能技术涉及领域广泛,既有硬件层面的技术也有软件层面的技术。其中,人工智能软件技术主要包括计算机视觉技术、自然语言处理和机器学习/深度学习等方向。
34.可选地,本公开中的声学模型采用了自然语言处理(nature language processing,nlp)技术。自然语言处理技术是计算机科学领域与人工智能领域中的一个重要方向,其能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。自然语言处理是一门融语言学、计算机科学、数学于一体的科学。由此,基于自然语言处理技术,本公开的声学模型可以分析输入的文本数据并提取文本数据中的特征,然后生成能够以人类朗读文本的方式的音频数据。
35.可选地,本公开的实施例采用的自然语言处理技术还可以是基于机器学习(machine learning,ml)和深度学习的。机器学习是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。自然语言处理技术利用机器学习研究计算机怎样模拟或实现人类的学习语言的行为,通过分析已有的、已分类的文本数据来获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习和深度学习通常包括人工神经网络、置信网络、强化学习、迁移学习、归纳学习等技术。
36.可选地,下文中的可用于本公开的实施例的声学模型都可以是人工智能模型,尤
其是基于人工智能的神经网络模型。通常,基于人工智能的神经网络模型被实现为无环图,其中神经元布置在不同的层中。通常,神经网络模型包括输入层和输出层,输入层和输出层通过至少一个隐藏层分开。隐藏层将由输入层接收到的输入变换为对在输出层中生成输出有用的表示。网络节点经由边全连接至相邻层中的节点,并且每个层内的节点之间不存在边。在神经网络的输入层的节点处接收的数据经由隐藏层、激活层、池化层、卷积层等中的任意一项被传播至输出层的节点。神经网络模型的输入输出可以采用各种形式,本公开对此不作限制。
37.本公开的实施例提供的方案涉及人工智能、自然语言处理和机器学习等技术,具体通过如下实施例进行说明。
38.本公开的实施例的声学模型具体可以集成在电子设备中,该电子设备可以是终端或服务器等设备。比如,该声学模型可以集成在终端中。终端可以是手机、平板电脑、笔记本电脑、台式计算机、个人计算机(pc,personal computer)、智能音箱或智能手表等,但并不局限于此。又比如,该声学模型可以集成在服务器。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(cdn,content delivery network)、以及大数据和人工智能平台等基础云计算服务的云服务器。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本公开在此不做限制。
39.可以理解的是,应用本公开的实施例的声学模型来进行推理的装置既可以是终端,也可以是服务器,还可以是由终端和服务器组成的系统。
40.可以理解的是,本公开的实施例的声学模型的将文本数据转换为声学特征的方法可以是在终端上执行的,也可以是在服务器上执行的,还可以是由终端和服务器共同执行的。
41.本公开实施例提供的声学模型还可以涉及云技术领域中的人工智能云服务。其中,云技术(cloud technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。云技术是基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。
42.其中,人工智能云服务,一般也被称作是aiaas(ai as a service,中文为“ai即服务”)。这是目前主流的一种人工智能平台的服务方式,具体来说aiaas平台会把几类常见的ai服务进行拆分,并在云端提供独立或者打包的服务。这种服务模式类似于开了一个ai主题商城:所有的开发者都可以通过应用程序接口(api,application programming interface)的方式来接入使用平台提供的一种或者是多种人工智能服务,部分资深的开发者还可以使用平台提供的ai框架和ai基础设施来部署和运维自已专属的云人工智能服务。
43.图1a是示出根据本公开实施例的声学模型进行推理的场景100的示例示意图。图
1b是示出一种将文本数据转换为音素序列的模型的示例示意图。
44.目前,已经存在多种朗读应用。用户可以在其用户终端上安装的朗读应用,并向该朗读应用指示需要转换为音频数据的文本数据。接着用户终端可以通过网络向该应用的服务器传输文本数据转换请求,然后接收转换后的、与该文本数据对应的音频数据,然后将该音频数据播放出来。
45.服务器接收到待转换的文本数据后,利用声学模型对该文本数据进行转换以获得音频数据,然后向用户反馈音频数据(例如,图1a中的与文本数据相对应的音频数据)。
46.用户可以对该音频数据进行打分。例如,如果用户认为该音频数据与文本数据的对应性较好,在具有多音字的情况下仍能准确发音,与真人朗读的效果接近,则用户可以对该音频数据给出较高的评分,而服务器可以将该文本数据

音频数据对作为用于实时训练声学模型的正样本。如果用户对该音频数据给出较低的评分,则服务器可以将该文本数据

音频数据对作为用于实时训练声学模型的负样本。多个这样的文本数据

音频数据对组成的集合又被称为文本到语音数据集。
47.当然,服务器还可以使用其它的方式来获取用于训练该声学模型的样本。例如,服务器可以抓取当前互联网环境中已经存在的真人朗读文本的音频和对应的文本,然后,使用这样的真人朗读文本来对声学模型进行训练。例如,参照图1a,服务器可以从数据库中获取文本,然后用于声学模型的训练。
48.目前用于将文本数据转换为音素序列的声学模型可能是复杂的、或难以进行语音标注的、或者导致不准确的预测结果的。以下参见图1b简述几种可用的声学模型。
49.shan、dai、zhang、zou等人提出了如图1b所示的字符到音素转换(g2p)网络或辅助g2p网络来缓解由于复杂发音标注规则带来的合成语音不准确的问题。在该g2p网络中,添加有多音字消歧模型来使得多音字和音素之间转换更准确。具体地,该多音字消歧模型以上下文信息作为输入,并通过单独的数据集独立训练,以期待识别多音字中的歧义信息。虽然在该方法中使用了多音字消歧模型提供了多音字与音素之间的转换,但是该方案需要通过独立的模块提取上下文信息,不仅过程繁琐,消歧效果也不佳。
50.最近,dai等人也尝试过通过预训练的bert模型中提取嵌入信息来辅助识别多音字中的歧义信息。pan等人则尝试了使用利用音系变化规律来修正发音错误。然而这些方法中,各个子模块都利用了异构的数据集独立训练,导致各个子模块学习到的知识彼此隔离,从而性能和鲁棒性都不佳。
51.本公开基于此,提供了一种将文本数据转换为音素序列的方法,包括:基于所述文本数据中的句子,提取所述句子对应的句义特征和所述句子中的一个或多个连续字符对应的字符语义特征,基于所述句子对应的句义特征,确定所述句子对应的语法特征,基于所述字符语义特征和所述句子对应的语法特征,确定多音字特征,所述多音字特征指示字符的多音字发音信息,以及基于所述语法特征和所述多音字特征,确定所述句子对应的音素序列。
52.由此,本公开的声学模型由多个级联的子模块组成。例如这些子模块可以分别涉及分词和词性标注的选区分析、基于语法树的语言特征学习、基于注意力机制的多音字消歧学习、语音变化预测和语音生成等等。通过将这些子模块级联的方式,使得各个子模块学习到的信息彼此融合共享,从而提高了性能和鲁棒性。此外,本公开的声学模型还可以以成
分分析为基础,提高了合成语音的自然度。例如,本公开通过从成分分析树中提取出与韵律的高度相关语法特征,并将该语法特征作为tts的附加输入,从而避免了训练单独的韵律结构预测模块,提高了性能和鲁棒性。
53.以下结合图2a至图5对根据本公开实施例进行更详细介绍。
54.图2a是示出根据本公开实施例的将文本数据转换为音素序列的方法200的流程图。图2b是示出根据本公开实施例的将文本数据转换为音素序列的方法200的示意图。
55.根据本公开的实施例的将文本数据转换为音素序列的方法200可以应用于任何的电子设备中。可以理解,电子设备可以是不同种类的硬件设备,例如个人数字助理(pda)、音频/视频设备、移动电话、mp3播放器、个人计算机、膝上型计算机、服务器等等。例如,该电子设备可以是图1a中的服务器和用户终端等等。以下,本公开以服务器为例进行说明,本领域技术人员应当理解本公开并不以此为限。
56.例如,根据本公开实施例的方法200包括以下步骤s201至步骤s204。首先,在步骤s201中,基于所述文本数据中的句子,提取所述句子对应的句义特征和所述句子中的一个或多个连续字符对应的字符语义特征。接着,在步骤s202中,基于所述句子对应的句义特征,确定所述句子对应的语法特征。接着,在步骤s203中,基于所述字符语义特征和所述句子对应的语法特征,确定多音字特征,所述多音字特征指示字符的多音字发音信息。在步骤s204中,基于所述语法特征和所述多音字特征,确定所述句子对应的音素序列。
57.例如,本公开中所述的文本数据可以是组成图1a中的待朗读文本的任意元素,例如,单词、句子、短语、段落、章节等等。本公开不对文本数据的长度和语言类型进行任何限制,例如,文本数据中可以包括英语、中文、俄罗斯语、日语、韩语等的文本信息,如中文的“小孩儿好可爱啊”等。以下以中文为示例进行说明,本领域技术人员应当理解本公开并不以此为限。
58.例如,参见图2b,可以使用句义分析模块来执行步骤s201。可选地,句义分析模块可以是一种神经网络模型。该神经网络模型例如被实现为无环图,其中神经元布置在不同的层中。该神经网络模型包括输入层和输出层,输入层和输出层通过至少一个隐藏层分开。隐藏层将由输入层接收到的输入变换为对在输出层中生成输出有用的表示。网络节点经由边全连接至相邻层中的节点,并且每个层内的节点之间不存在边。在神经网络的输入层的节点处接收的数据经由多个隐藏层、多个激活层、多个池化层、多个卷积层等中的任意一项被传播至输出层的节点。神经网络模型的输入输出可以采用各种形式,本公开对此不作限制。可选地,该句义分析模块还可以是针对中文字符设计的bert(bidirectional encoder representations from transformer)网络。bert网络可以利用大规模无标注语料进行训练,以获取文本数据中的语义信息,以便于后续处理。
59.例如,句义分析模块提取的句义特征的可以对应于整个句子的语义,字符语义特征则可以对应于该句子中全部/部分连续字符的组合的语义。例如,假如文本数据中的句子为“小孩儿好可爱啊”,该句子对应的句义特征对应于该句子的语义,而字符语义特征则可以分别对应于“小孩儿”、“好”、“可爱”、“啊”等等字符或连续字符对应的语义。在本公开的实施例中,句义特征和字符语义特征也可以是完全相同的特征,以便于后续运算。字符语义特征也可以是由句义特征中一部分元素组成的,本公开对此不进行限制。
60.接着继续参考图2b,可以使用语法分析模块和语法特征学习模块来执行步骤
s202。可选地,该语法分析模块和语法特征学习模块中可以包括一个或多个神经网络模型。可选地,语法分析模块中的神经网络模型以语法树数据集作为样本来进行训练。之后将参考图3至图5进一步说明语法分析模块和语法特征学习模块中的神经网络模型的结构和训练方式,在此就不再赘述。
61.例如,语法分析模块可以基于所述句子的句义特征确定该句子对应的语法特征。可选地,上述的语法特征融合有该句子的句法结构信息、该句子中各个分词对应的词性信息、分词边界信息和分词位置信息等等。例如,语法分析模块中的神经网络模型中的神经元在训练之后可以基于某个句子的句义特征来预测该句子对应的词性信息、分词边界信息和分词位置信息。此外,语法分析模块中的神经网络模型中的神经元在训练之后还可以基于某个句子的句义特征来预测短语级别的信息(例如,短语的组合方式信息、短语的成分信息、短语的边界信息、短语的位置信息等等)和句子级别的信息(例如,句子的语法结构信息、句子的边界信息、句子的注意力信息等等),本公开并不以此为限。
62.接着该神经网络可以用这些信息确定所述句子对应的语法编码特征。然后,语法分析模块再利用所述句子对应的语法编码特征,确定所述句子对应的语法特征。
63.例如,语法特征学习模块的神经网络则可以根据由语法分析模块确定的语法特征,进一步地确定针对多音字发音的语法特征和针对韵律的语法特征。可选地,由于判断某个字符的多音字信息往往仅需要该字符前后几个字符的信息,而不需要整个句子的信息,因此针对多音字的语法特征的长度(跨度)可以小于针对韵律的语法特征。
64.接着,可以使用多音字分析模块来执行步骤s203。可选地,多音字分析模块中的神经网络可以将语法特征和字符语义特征进行融合,从而提取出字符的多音字发音信息。例如,所述多音字分析模块可以将所述语法特征和所述字符语义特征拼接成初始多音字特征,然后再基于所述初始多音字特征以及所述字符组合中的各个字符对应的字典读音信息,确定所述多音字特征。可选地,多音字分析模块中的神经网络模型在经训练之后,其的神经元参数中可以融合有字典读音信息。该字典读音信息涉及字典中某个字符的多音字发音信息。例如,多音字分析模块中的神经网络模型可以基于初始多音字特征预测某个字符在字典中指示的发音方式(例如,得到某个多音字的拼音信息)。之后将参考图3至图5进一步说明语多音字分析模块中的神经网络模型的结构和训练方式,以及如何通过训练提取字典读音信息,在此就不再赘述。
65.例如,如上所述,语法特征学习模块的神经网络可以基于所述句子对应的语法特征,确定针对多音字发音的语法特征。由此,多音字分析模块也可以基于所述针对多音字发音的语法特征和所述字符语义特征,来确定多音字特征。可选地,所述针对多音字发音的语法特征可以是由语法特征学习模块所确定的。也即,所述多音字分析模块可以与语法特征学习模块级联,从而直接获取针对多音字发音的语法特征。然后,所述多音字分析模块可以将所述针对多音字发音的语法特征和所述字符语义特征拼接成初始多音字特征,然后再基于所述初始多音字特征以及所述字符组合中的各个字符对应的字典读音信息,确定所述多音字特征。虽然在图2b中示出多音字分析模块与语法特征学习模块级联,以获针对多音字的语法信息,本领域技术人员也能理解,多音字分析模块亦可以与语法分析模块级联,以直接获取由语法分析模块确定的语法特征。
66.此外,所述多音字分析模块还可以与变调分析模块级联,以将多音字特征输入至
变调分析模块。可选地,变调分析模块中的神经网络中的各个神经元中可以融合有变调信息,因此变调分析模块可以利用其内置的神经网络将多音字特征和变调信息进行融合,以确定融合有变调信息的多音字特征。
67.作为一个示例,上述的多音字特征和融合有变调信息的多音字特征都可以是用于生成语音的拼音序列,或者融合有该句子中每个字符的拼音信息的多维数值向量,本公开并不以此为限。
68.接着,可以使用语音生成模块来执行步骤s204。例如,如上所述,语法特征学习模块的神经网络可以基于所述句子对应的语法特征,来确定针对韵律的语法特征。接着语音生成模块可以基于所述针对韵律的语法特征和所述多音字特征,确定所述句子对应的音素序列。也即,所述语音生成模块可以与语法特征学习模块级联,从而直接获取针对韵律的语法特征。虽然在图2b中示出语音生成模块与语法特征学习模块级联,以获取针对韵律的语法信息,本领域技术人员也能理解,语音生成模块亦可以与语法分析模块级联,以直接获取由语法分析模块确定的语法特征。句子的句法结构信息与该句子的韵律信息通常存在高度相似性,因此使用针对韵律的语法特征可以辅助语音的韵律控制,而不需要为韵律控制单独设计匹配规则或者单独训练韵律结构预测模块,降低了韵律控制的难度,从而使得合成的语音更加自然。
69.作为一个示例,语音生成模块还可以直接与变调分析模块级联,以直接获取融合有变调信息的多音字特征。并且,进一步地,语音生成模块还可以基于所述融合有变调信息的多音字特征和所述针对韵律的语法特征,确定所述句子对应的音素序列。虽然在图2b中示出语音生成模块与变调分析模块级联级联,以获取融合有变调信息的多音字特征,本领域技术人员也能理解,语音生成模块亦可以与多音字分析模块级联,以直接获取由多音字分析模块确定的多音字特征。
70.例如,在上述的多音字特征和融合有变调信息的多音字特征为用于生成语音的拼音序列(或者融合有该句子中每个字符的拼音信息的多维数值向量)的情况下,所述语音生成模块还可以包括拼音到音素的转换模块,以将多音字特征(或融合有变调信息的多音字特征)转换为初始音素序列。接着,语音生成模块中的其他模型(可以是线性模型或神经网络模型)再结合该初始音素序列和语法特征(或针对韵律的语法特征)确定所述句子对应的音素序列。
71.此外,语音生成模块还可以包括将音素序列转换为音频数据的神经网络和声码器。例如,将音素序列转换为音频数据的神经网络可以是基于注意力机制的自回归神经网络模型(例如,tacotron)或基于持续时间预测器的非自回归的前馈神经网络模型(例如,fast

speech)等等,本公开并不以此为限。本公开所述的音频数据可以是梅尔普音频特征数据,当然音频数据也可以是任意格式的可被声码器解码的音频数据,本公开并不以此为限。
72.由此,本公开的实施例提供了一种所提出的将文本数据转换为音素序列的方法利用神经网络提取了文本数据中的语法特征和多音字特征并将上述的特征以级联的方式进行了融合,并可选地引入了文本数据中的变调信息,相比于之前的方法,本公开的实施例有以下四点优势。
73.①
本公开的实施例以级联形式,将文本数据中的多个特征进行了融合,从而得到
了融合有多个特征间的相互影响信息的特征。
74.②
本公开的实施例还在前端处理过程中引入了多音字特征来消除语音合成过程的分歧,从而为待合成字符序列提供了更正确的字典发音。
75.③
本公开的实施例在前端处理过程中引入了语法特征来辅助韵律控制,从而使得合成语音的韵律更加准确。
76.④
本公开的实施例还在前端处理过程中引入了变调信息,从而使得合成的语音更加自然。
77.以下结合图3至图5对上述的各个模块进行更详细地介绍。
78.图3是示出根据本公开实施例的将文本数据转换为音素序列的方法200的又一示意图。图4a是根据本公开实施例的成分跨度分数集合的示例示意图。图4b是根据本公开实施例的语法树的示意图。图5是根据本公开实施例的多音字分析模块的又一示意图。
79.参见图3,句义分析模块基于所述文本数据中的句子,提取所述句子对应的句义特征和所述句子中的一个或多个连续字符对应的字符语义特征。句义分析模块将句义特征和字符语义特征分别输入至语法分析模块和多音字分析模块。作为一个示例,句义分析模块为针对中文字符的bert模型,其输出为中文字符bert嵌入序列。例如,中文字符bert嵌入序列可以是[c0,c1,c2,...,c
k
,...,c
l
,c
l+1
]为输入,其中l是输入句子的长度(字符数),c0、c
l+1
是特殊的开始和结束标记,用于辅助后续的成分分析模块和动态编程解码器计算。
[0080]
语法分析模块可以包括第一编码器、成分分析模块和动态编程解码器。其中,动态编程解码器仅用于训练过程,第一编码器和成分分析模块均既用于训练过程也用于推理过程。作为一个示例,由第一编码器基于句义特征确定所述句子对应的语法编码特征,由成分分析模块基于语法编码特征确定所述句子对应的语法特征,所述第一编码器和成分分析模块均是由语法树数据集训练的。
[0081]
例如,所述第一编码器的训练可以包括以下步骤。首先,基于所述语法树数据集中的语法样本句子,利用所述第一编码器确定所述样本句子对应的语法编码特征。然后,利用所述成分分析模块,确定所述语法样本句子对应的语法特征并提取所述语法样本句子对应的语法编码特征中的成分跨度分数。接着,基于所述成分跨度分数,确定所述语法样本句子中各个分词对应的预测词性标注、预测分词边界标注和预测分词位置标注。接着,基于所述语法样本句子中各个分词对应的预测词性标注、预测分词边界标注和预测分词位置标注以及所述语法样本句子中各个分词对应的实际词性标注、实际分词边界标注和实际分词位置标注,计算第一损失函数对应的值。接着,基于所述第一损失函数对应的值,调整所述第一编码器和成分分析模块中神经元的参数,以使得第一损失函数收敛。
[0082]
可选地,第一编码器是由8个相同的转换器(transformer)堆叠而成的神经网络模型。其中,每个转换器包括级联的多头注意力层、第一正则层、前馈层和第二正则层,并且第一正则层的输出也将输入至第二正则层。句义特征不仅可以输入至第一个转换器的多头注意力层也可以输入至第一正则层,本公开并不以此为限。
[0083]
如图3所示,第一编码器可以以句义特征为输入,以语法编码特征为输出,并将该语法编码特征输入至成分分析模块。也即第一编码器用于实现基于句义特征确定所述句子对应的语法编码特征。继续上述示例,假设第一编码器以上述中文字符bert嵌入序列[c0,c1,c2,...,c
k
,...,c
l
,c
l+1
]为输入,以语法编码特征[y0,y1,y2,...,y
k
,...,y
l
,y
l+1
]为输出,
该语法编码特征具有与上述中文字符bert嵌入序列相同的长度。
[0084]
可选地,成分分析模块可以以语法编码特征为输入,以语法特征为输出。例如,成分分析模块可以为语法编码特征确定成分跨度分数集合。作为一个示例,在使用语法树数据集训练第一编码器的过程中,成分分析模块可以用于确定所述语法样本句子对应的语法特征并提取所述语法样本句子对应的语法编码特征中的成分跨度分数。继续上述示例,成分分析分析模块将语法编码特征[y0,y1,y2,...,y
k
,...,y
l
,y
l+1
]进行组合,并为其预测成分跨度分数集合s(i,j,
·
)。例如,成分跨度分数集合s(i,j,
·
)可以以公式(1)和(2)来计算。
[0085]
s(i,j,
·
)=w2rclu(layernorm(w1v+b1))+b2,
ꢀꢀꢀꢀꢀ
(1)
[0086][0087]
其中,0≤i≤j≤l,而v将i和j指示的位置处的语法编码特征中的元素进行结合。和捕获位置k处的字符的双向上下文信息,该双向上下文信息由语法编码特征中元素y
k
推导得出。例如,表示来自偶数位置处的元素对于y
k
的上下文信息,表示来自奇数位置处的元素对于y
k
的上下文信息。w2、w1、b1、b2为成分分析模块中待训练的神经元参数。
[0088]
例如,成分分析模块可以进一步地基于成分跨度分数集合进一步构建图3中由灰色的上三角矩阵组成的成分分析树t来表征成分在各个跨度上的分数。例如,成分分析树t可以用公式(3)来表示。
[0089]
t:={(i
t
,j
t
;l
t
):f=l,...,|t|}.
ꢀꢀꢀ
(3)
[0090]
由此,最优的成分分析树t
best
可以公式(4)来表示。
[0091][0092]
也即,可以通过求解上述公式(4)来找到对于跨度(i,j)的最优标签l和将跨度(i,i)切分成两个子跨度(i,m)和(m,j)。子跨度(i,m)和(m,j)对应于该成分分析树t在跨度(i,j)下的两个子成分。例如,这两个子成分可以被进一步地用公式(5)来表示。本文中的标签可以是词性标注、分词边界标注、分词位置标注等等,本公开并不以此为限。
[0093][0094]
对于句子中的第i个字符,并不需要在跨度(i

1,j)上对其进行进一步细分,而是直接用公式(6)确定其的最优标签。
[0095][0096]
由于对于图3中由灰色的上三角矩阵组成的成分分析树t并非对于所有的跨度(i,j)都有有效的成分,因此在此引入了辅助空标记用于表征此处的跨度分数为0。也即,可以用以下公式(7)来表示成分跨度分数集合中跨度分数为0的成分。
[0097][0098]
图4a作为一个示例,示出了对于句子“小孩儿好可爱啊”的跨度分数表示,其可以作为图3中由灰色的上三角矩阵的进一步示例。进一步地,成分跨度分数集合s(i,j,
·
)中的一些成分对应的跨度分数可以被进一步地复制至下一层,以便于后续的动态编程解码器解算。上述跨度分数可以分别对应于词性标注以及分词边界标注。
[0099]
由此,可以根据图4a中的示例,利用动态编程解码器可以进一步得到图4b所示的扩展语法树。该扩展语法树中,ip标识整个句子的语法特征。np标识名词相关的语法特征,vp标识动词相关的语法特征,advp标识副词相关的语法特征,sp标识句尾小品词相关的语法特征。该扩展语法树是基于所述成分跨度分数而确定所述语法样本句子中各个分词对应的预测词性标注、预测分词边界标注和预测分词位置标注的一个示例。
[0100]
在如图4b所示的扩展语法树中,nn为成分分析模块对于“小孩儿”预测的词性,也即预测该词为名词。ad为成分分析模块对于“好”预测的词性,也即预测该词为副词。va为成分分析模块对于“可爱”预测的词性,也即预测该词为表语形容词。ij为成分分析模块对于“啊”预测的词性,也即预测该词为感叹词。b为成分分析模块对于“小”和“可”预测的分词边界和分词位置,也即预测“小”和“可”为某个词的开始。m为成分分析模块对于“孩”预测的分词边界和分词位置,也即预测“孩”为某词的中间字符。e为成分分析模块对于“儿”和“爱”预测的分词边界和分词位置,也即预测“儿”和“爱”为某个词的结束。e为成分分析模块对于“啊”预测的分词边界和分词位置,也即预测“啊”为单字词以及/或者位于句子末尾。由此,动态编程解码器实现了基于所述成分跨度分数,确定所述语法样本句子中各个分词对应的预测词性标注、预测分词边界标注和预测分词位置标注。
[0101]
如上所述,在训练语法分析模块中第一编码器的过程中,动态编程解码器可以输出语法树数据集中某个样本句子对应的预测分词标注和预测词性标注。接着,可以通过计算样本句子中各个分词对应的预测词性标注、预测分词边界标注和预测分词位置标注以及所述语法样本句子中各个分词对应的实际词性标注、实际分词边界标注和实际分词位置标注,计算第一损失函数对应的值。由此,可以基于所述第一损失函数对应的值,调整所述第一编码器和成分分析模块中神经元的参数,以使得第一损失函数收敛。
[0102]
也即在第一损失函数收敛时,第一编码器训练完成。通过上述训练过程,第一编码器学习了语法树数据集中样本句子中各个分词对应的词性信息、分词边界信息和分词位置信息。在面对如图1a所示的场景时,第一编码器既可以基于其在样本句子所学习的词性信息、分词边界信息和分词位置信息等,预测待朗读的句子的词性信息、分词边界信息和分词位置信息。第一编码器还可以基于其在样本句子所学习的在样本句子中所学习的短语级别的信息(例如,短语的组合方式信息、短语的成分信息、短语的边界信息、短语的位置信息等等)和句子级别的信息(例如,句子的语法结构信息、句子的边界信息、句子的注意力信息等等),预测待朗读的句子的短语级别的信息和句子级别的信息。之后,将利用成分分析模块进一步地确定该句子对应的语法编码特征。然后成分分析模块对该语法编码特征进行进一步组合以输出语法特征。
[0103]
继续参考图3,成分分析模块输出的语法特征被输入至语法特征学习摸块。语法特征学习模块包括一个共享隐藏层、第一卷积神经网络层(被示出为第一cnn)、和第二卷积神经网络(被示出为第二cnn)。共享隐藏层接收语法特征,对该语法特征进行进一步融合,然后将融合后的语法特征分别输入第一卷积神经网络层和第二卷积神经网络。可选地,第一卷积神经网络层和第二卷积神经网络为独立的1维结构,其分别输出与句子字符长度相同的特征表示。
[0104]
如图3所示,第一cnn将针对韵律的语法特征输入至语音生成模块中,第二cnn将针对多音字的语法特征输入至多音字分析模块。如上所述,由于判断某个字符的多音字信息
往往仅需要该字符前后几个字符的信息,而不需要整个句子的信息,因此针对多音字的语法特征的长度(跨度)可以小于针对韵律的语法特征。由此,作为一个示例,生成针对韵律的语法特征的第一cnn可以使用跨度为[3,5,7]的卷积核,生成针对多音字的语法特征的第二cnn可以使用跨度为[1,3,5]的卷积核。本领域技术人员应当理解本公开并不以此为限。
[0105]
继续参考图3和图5来进一步地描述多音字分析模块。所述多音字分析模块包括拼接器、第二编码器和拼音预测层。其中,拼接器将字符语义特征和针对多音字的语法特征进行拼接成初始多音字特征。第二编码器基于所述初始多音字特征以及所述字符组合中的各个字符对应的字典读音信息,确定所述多音字特征。
[0106]
可选地,第二编码器是由2个相同的转换器(transformer)堆叠而成的神经网络模型。其中,每个转换器包括级联的多头注意力层、第一正则层、前馈层和第二正则层,并且第一正则层的输出也将输入至第二正则层。句义特征不仅可以输入至第一个转换器的多头注意力层也可以输入至第一正则层,本公开并不以此为限。
[0107]
可选地,所述第二编码器是由多音字数据集训练的,所述第二编码器的训练包括以下步骤。首先,基于所述多音字数据集中的多音字样本句子,确定所述多音字样本句子对应的初始多音字特征。接着,基于所述多音字样本句子对应的初始多音字特征,利用所述第二编码器确定所述多音字样本句子对应的多音字特征。然后,基于所述多音字样本句子对应的多音字特征,利用拼音预测层确定所述多音字样本句子中各个字符对应的预测拼音标注。接着,基于所述多音字样本句子中各个字符对应的预测拼音标注以及所述多音字样本句子中各个字符对应的实际拼音标注,计算第二损失函数的值。之后,基于所述第二损失函数对应的值,调整所述第二编码器和拼音预测层中的神经元的参数,以使得第二损失函数收敛。
[0108]
继续上述示例,在语法分析模块训练完成之后,可以利用训练完成后的语义分析模块、语法特征学习模块和拼接器将所述多音字数据集中的多音字样本句子转换为初始多音字特征。接着,第二编码器基于初始多音字特征预测所述多音字样本句子对应的多音字特征,并将该多音字特征输入至拼音预测层。参考图5,第二编码器将在按照时间步的顺序依次输出每个字符对应的多音字特征。拼音预测层据此确定各个字符对应的预测拼音标注。例如对于“小”,拼音字预测层将该多音字特征解码为“xiao3”,也即第三声的“xiao”。类似地,也根据时间步顺序进一步解码“孩儿好可爱啊”中各个字符的拼音。
[0109]
接着,在多音字分析模块的训练过程中,可以基于所述多音字样本句子中各个字符对应的预测拼音标注以及所述多音字样本句子中各个字符对应的实际拼音标注,计算第二损失函数的值。如图3所示,实际拼音标注可以是字典中的每个字符对应的拼音信息。例如,如果字典中“小”的拼音标注也为第三声的“xiao”,则说明预测结果和实际结果相同。如果针对多音字数据集中的各个样本,第二损失函数的值趋向于收敛,那么多音字分析模块的训练完成。
[0110]
通过上述训练过程,第二编码器学习了多音字数据集中样本句子中各个字符对应的字典读音信息。在面对如图1a所示的场景时,第二编码器既可以基于其在样本句子所学习的字典读音信息等,预测待朗读的句子的各个字符的字典读音信息,并进一步地确定该句子对应的多音字特征。
[0111]
继续参考图3,多音字分析模块将多音字特征输入至变调分析模块。变调分析模块
包括级联的第三卷积神经网络、非共享输出层和一个softmax层。softmax层输出融合有变调信息的多音字特征。
[0112]
其中,由变调分析模块确定融合有变调信息的多音字特征,所述变调分析模块是由文本到语音数据集训练的。所述变调分析模块的训练包括以下步骤。首先,基于所述文本到语音数据集中的语音样本句子,利用所述变调分析模块确定所述语音样本句子对应的预测多音字特征。然后,基于所述语音样本句子对应的预测多音字特征和所述语音样本句子对应的实际多音字特征,计算第三损失函数的值。最后,基于所述第三损失函数的值,调整所述变调分析模块中的神经元参数,以使得第三损失函数收敛。
[0113]
通过上述训练过程,变调分析模块学习了文本到语音数据集中样本句子中在实际朗读时的变调信息。在面对如图1a所示的场景时,变调分析模块便可以基于其在样本句子所学习的变调信息等,预测待朗读的句子的各个字符的变调信息,并进一步地确定该句子对应的融合有变调信息的多音字特征。
[0114]
变调分析模块通过其第三卷积神经网络、非共享输出层和一个softmax层对多音字特征进行进一步的融合和调整得到融合有变调信息的多音字特征,并且基于实际的文本到语音数据对融合有变调信息的多音字特征进行打分,从而,使得得到的拼音序列更为准确。
[0115]
继续参考图3,变调分析模块将融合有变调信息的多音字特征输入至语音生成模块。语音生成模块包括拼音转换为音素模块、音素拼接模块、音频转换模块和声码器。具体地,拼音转换为音素模块可以以融合有变调信息的多音字特征为输入或者直接以多音字分析模块确定的多音字特征为输入,并将其转换为初始音素序列。
[0116]
接着,音素拼接模块可以将针对韵律的语法特征和上述的初始音素序列进行拼接,得到句子对应的音素序列。由于,所述音素序列并不仅仅包括该句子的音素信息还包括该句子的韵律信息,因此需要训练一个单独的音频转换模块来将音素序列解码为音频数据。可选地,频转换模块可以包括第三编码器、注意力层和解码器。
[0117]
可选地,所述语音生成模块是由所述文本到语音数据集训练的,所述语音生成模块的训练包括以下步骤。首先,基于所述文本到语音数据集中的语音样本句子,利用所述语音生成模块所述语音样本句子对应的预测音频。然后,基于所述语音样本句子对应的预测音频和所述语音样本句子对应的实际音频,计算第四损失函数的值。最后,基于所述第四损失函数的值,调整所述语音生成模块中的神经元参数(例如音频转换模块中的神经元参数),以使得第四损失函数收敛。
[0118]
通过上述训练过程,语音生成模块学习了文本到语音数据集中样本句子中在实际朗读时的语音信息。在面对如图1a所示的场景时,语音生成模块便可以基于其在样本句子所学习的语音信息等,预测待朗读的句子的各个字符的语音信息,并进一步地确定该句子对应的语音。
[0119]
如上所述,在上述的训练过程中,每个模块可以独立地训练,由此梯度不会回传(也即梯度锁死),以避免各个模块之间的干扰。
[0120]
正如图3至图5所示,本公开的声学模型由多个级联的子模块组成。例如这些子模块可以分别涉及分词和词性标注的选区分析、基于语法树的语言特征学习、基于注意力机制的多音字消歧学习、语音变化预测和语音生成等等。通过将这些子模块级联的方式,使得
各个子模块学习到的信息彼此融合共享,从而提高了性能和鲁棒性。此外,本公开的声学模型还可以以成分分析为基础,提高了合成语音的自然度。例如,本公开通过从成分分析树中提取出与韵律的高度相关语法特征,并将该语法特征作为tts的附加输入,从而避免了训练单独的韵律结构预测模块,提高了性能和鲁棒性。
[0121]
此外,本公开还提供了一种将文本数据转换为音素序列的装置。图6是示出根据本公开实施例的将文本数据转换为音素序列的装置600的结构图。装置600包括提取单元、第一确定单元、第二确定单元和第三确定单元。提取单元,被配置为基于所述文本数据中的句子,提取所述句子对应的句义特征和所述句子中的一个或多个连续字符对应的字符语义特征。第一确定单元,被配置为基于所述句子对应的句义特征,确定所述句子对应的语法特征。第二确定单元,被配置为基于所述字符语义特征和所述句子对应的语法特征,确定多音字特征,所述多音字特征指示字符的多音字发音信息。第三确定单元,被配置为基于所述语法特征和所述多音字特征,确定所述句子对应的音素序列。
[0122]
此外,第二确定模块还被配置为:基于所述句子对应的语法特征,确定针对多音字发音的语法特征,以及基于所述针对多音字发音的语法特征和所述字符语义特征,确定多音字特征。
[0123]
第三确定模块还被配置为:基于所述句子对应的语法特征,确定针对韵律的语法特征,基于所述针对韵律的语法特征和所述多音字特征,确定所述句子对应的音素序列。
[0124]
上述提取单元可以类似于上述的句义分析模块,第一确定单元可以类似于上述的语法分析单元(或语法分析单元和语法特征学习单元的组合),第二确定单元可以类似于上述的多音字分析模块(或多音字分析单元和变调分析模块的组合),第三确定单元可以类似于上述的语音生成模块。为简洁起见,本公开在此就不再赘述。
[0125]
图7是示出根据本公开实施例的将文本数据转换为音素序列的设备700的结构图。
[0126]
参见图7,设备700可以包括处理器701和存储器702。处理器701和存储器702可以通过总线703相连。
[0127]
处理器701可以根据存储在存储器702中的程序执行各种动作和处理。具体地,处理器701可以是一种集成电路芯片,具有信号的处理能力。上述处理器可以是通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现成可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本技术实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,可以是x87架构或arm架构的。
[0128]
存储器702上存储有计算机指令,该计算机指令被微处理器执行时实现方法200。存储器702可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(rom)、可编程只读存储器(prom)、可擦除可编程只读存储器(eprom)、电可擦除可编程只读存储器(eeprom)或闪存。易失性存储器可以是随机存取存储器(ram),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的ram可用,例如静态随机存取存储器(sram)、动态随机存取存储器(dram)、同步动态随机存取存储器(sdram)、双倍数据速率同步动态随机存取存储器ddrsdram)、增强型同步动态随机存取存储器(esdram)、同步连接动态随机存取存储器(sldram)和直接内存总线随机存取存储器(dr ram)。应注意,本公开描述的方法的存储器旨在包括但不限于这些和任意其它适合类
型的存储器。
[0129]
本公开的实施例提供了一种计算机可读存储介质,其上存储有计算机指令,该计算机指令被处理器执行时实现上述方法。
[0130]
根据本公开的另一方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各个方面或者上述各个方面的各种可选实现方式中提供的方法。
[0131]
需要说明的是,附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,所述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0132]
一般而言,本公开的各种示例实施例可以在硬件或专用电路、软件、固件、逻辑,或其任何组合中实施。某些方面可以在硬件中实施,而其他方面可以在可以由控制器、微处理器或其他计算设备执行的固件或软件中实施。当本公开的实施例的各方面被图示或描述为框图、流程图或使用某些其他图形表示时,将理解此处描述的方框、装置、系统、技术或方法可以作为非限制性的示例在硬件、软件、固件、专用电路或逻辑、通用硬件或控制器或其他计算设备,或其某些组合中实施。
[0133]
在上面详细描述的本发明的示例实施例仅仅是说明性的,而不是限制性的。本领域技术人员应该理解,在不脱离本发明的原理和精神的情况下,可对这些实施例或其特征进行各种修改和组合,这样的修改应落入本发明的范围内。