一种语音合成方法及系统与流程

文档序号:29411981发布日期:2022-03-26 12:02阅读:129来源:国知局
一种语音合成方法及系统与流程

1.本说明书涉及数据处理领域,特别涉及一种语音合成方法及系统。


背景技术:

2.随着人工智能技术的发展,语音合成技术越来越受到人们的重视,语音合成技术可以将文本转化成语音输出。现有的语音合成技术合成的语音较为生硬,用户体验较差。
3.因此,需要提供一种语音合成方法和系统,用于提高合成的语音的质量。


技术实现要素:

4.本说明书实施例之一提供一种语音合成方法,所述方法包括:获取待处理文本;基于所述待处理文本,确定多个任务的预测结果,所述多个任务包括所述待处理文本中字符的韵律、所述待处理文本中字符的发音、所述待处理文本中字符串的类型及所述待处理文本中字符串的情感中的至少两个;基于所述多个任务的预测结果,确定所述待处理文本对应的语音。
5.本说明书实施例之一提供一种语音合成系统,所述系统包括:文本获取模块,用于获取待处理文本;任务预测模块,用于基于所述待处理文本,确定多个任务的预测结果,所述多个任务包括所述待处理文本中字符的韵律、所述待处理文本中字符的发音、所述待处理文本中字符串的类型及所述待处理文本中字符串的情感中的至少两个;结果生成模块,用于基于所述多个任务的预测结果,确定所述待处理文本对应的语音。
6.本说明书实施例之一提供一种语音合成装置,包括处理器,所述处理器用于执行语音合成方法。
7.本说明书实施例之一提供一种计算机可读存储介质,所述存储介质存储计算机指令,当计算机读取存储介质中的计算机指令后,计算机执行语音合成方法。
附图说明
8.本说明书将以示例性实施例的方式进一步说明,这些示例性实施例将通过附图进行详细描述。这些实施例并非限制性的,在这些实施例中,相同的编号表示相同的结构,其中:
9.图1是根据本说明书一些实施例所示的语音合成系统的应用场景示意图;
10.图2是根据本说明书一些实施例所示的处理设备的示例性框图;
11.图3是根据本说明书一些实施例所示的语音合成方法的示例性流程图;
12.图4是根据本说明书一些实施例所示的预测模型的结构示意图;
13.图5是根据本说明书一些实施例所示的预测模型的又一示意图;
14.图6是根据本说明书一些实施例所示的预测模型的又一示意图;
15.图7是根据本说明书一些实施例所示的训练预测模型的示意图。
具体实施方式
16.为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本说明书的一些示例或实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图将本说明书应用于其它类似情景。除非从语言环境中显而易见或另做说明,图中相同标号代表相同结构或操作。
17.应当理解,本文使用的“系统”、“装置”、“单元”和/或“模块”是用于区分不同级别的不同组件、元件、部件、部分或装配的一种方法。然而,如果其他词语可实现相同的目的,则可通过其他表达来替换所述词语。
18.如本说明书和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其它的步骤或元素。
19.本说明书中使用了流程图用来说明根据本说明书的实施例的系统所执行的操作。应当理解的是,前面或后面操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各个步骤。同时,也可以将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。
20.图1是根据本说明书一些实施例所示的语音合成系统100的应用场景示意图。
21.在一些实施例中,语音合成系统100可以通过实施本说明书中披露的方法和/或过程确定待处理文本150对应的语音160。
22.如图1所示,本说明书实施例所涉及的语音合成系统100可以包括处理设备110、网络120、终端130及存储设备140。
23.处理设备110可以用于处理来自语音合成系统100的至少一个组件或外部数据源(例如,云数据中心)的数据和/或信息。处理设备110可以通过网络120从终端130和/或存储设备140访问数据和/或信息。处理设备110可以直接连接终端130和/或存储设备140以访问信息和/或数据。例如,处理设备110可以从终端130和/或存储设备140获取待处理文本150。处理设备110可以对获取的数据和/或信息进行处理。例如,处理设备110可以基于预测模型对待处理文本150进行处理,确定多个任务的预测结果,并基于多个任务的预测结果确定待处理文本150对应的语音160。在一些实施例中,处理设备110可以是单个服务器或服务器组。处理设备110可以是本地的、远程的。处理设备110可以在云平台上实现。关于处理设备110的更多描述可以参见图2及其相关描述,此处不再赘述。
24.网络120可以包括提供能够促进语音合成系统100的信息和/或数据交换的任何合适的网络。在一些实施例中,语音合成系统100的一个或多个组件(例如,处理设备110、终端130以及存储设备140)之间可以通过网络120交换信息和/或数据。网络120可以包括局域网(lan)、广域网(wan)、有线网络、无线网络等或其任意组合。
25.终端130指用户所使用的一个或多个终端设备或软件。在一些实施例中,终端130可以是移动设备、平板计算机等或其任意组合。在一些实施例中,终端130可以通过网络120与语音合成系统100中的其他组件交互。例如,终端130可以向处理设备110发送一个或多个控制指令以控制处理设备110对待处理文本150进行处理,从而确定待处理文本150对应的
语音160。在一些实施例中,终端130可以是处理设备110的一部分。在一些实施例中,终端130可以与处理设备110整合为一体,作为待处理文本150的输入端。
26.存储设备140可以用于存储数据、指令和/或任何其他信息。在一些实施例中,存储设备140可以存储从例如处理设备110、终端130等获得的数据和/或信息。例如,存储设备140可以存储预先确定好的待处理文本150。又例如,存储设备140可以存储训练好的预测模型。在一些实施例中,存储设备140可包括大容量存储器、可移除存储器等或其任意组合。
27.图2是根据本说明书一些实施例所示的处理设备110的示例性框图。
28.在一些实施例中,处理设备110可以包括文本获取模块210、任务预测模块220和结果生成模块230。
29.文本获取模块210可以用于获取待处理文本。关于待处理文本的更多描述可以参见图3及其相关描述。
30.任务预测模块220可以用于基于待处理文本,确定多个任务的预测结果。关于预测结果的更多描述可以参见图3及其相关描述。在一些实施例中,任务预测模块220可以获取多个任务中预设任务的参考结果;基于待处理文本,确定多个任务的初始预测结果;基于预设任务的参考结果替换预设任务的初始预测结果,确定多个任务的预测结果。关于参考结果、初始预测结果的更多描述可以参见图3及其相关描述。
31.在一些实施例中,任务预测模块220可以通过预测模型对待处理文本进行处理,确定多个任务的预测结果。关于预测模型的更多描述可以参见图3及其相关描述。在一些实施例中,任务预测模块220可以获取多个任务中预设任务的参考结果;通过预测模型对待处理文本和预设任务的参考结果进行处理,确定多个任务的预测结果。关于预设任务的更多描述可以参见图3及其相关描述。
32.在一些实施例中,任务预测模块220可以基于第一训练集训练得到基础模型,第一训练集包括多个训练样本及其对应的标签;基于基础模型,确定预测模型的参数。关于第一训练集、基础模型的更多描述可以参见图3及其相关描述。
33.结果生成模块230可以用于基于多个任务的预测结果,确定待处理文本对应的语音。关于确定待处理文本对应的语音的更多描述可以参见图3及其相关描述。
34.需要注意的是,以上对于处理设备110及其模块的描述,仅为描述方便,并不能把本说明书限制在所举实施例范围之内。可以理解,对于本领域的技术人员来说,在了解该处理设备110的原理后,可能在不背离这一原理的情况下,对各个模块进行任意组合,或者构成子系统与其他模块连接。在一些实施例中,图2中披露的文本获取模块210、任务预测模块220和结果生成模块230可以是一个处理设备110中的不同模块,也可以是一个模块实现上述的两个或两个以上模块的功能。例如,各个模块可以共用一个存储模块,各个模块也可以分别具有各自的存储模块。诸如此类的变形,均在本说明书的保护范围之内。
35.图3是根据本说明书一些实施例所示的语音合成方法300的示例性流程图。如图3所示,流程300包括下述步骤。在一些实施例中,流程300可以由语音合成系统100执行。
36.步骤310,获取待处理文本。在一些实施例中,步骤310可以由文本获取模块210执行。
37.待处理文本可以是用于合成语音的文本。在一些实施例中,待处理文本可以由至少一个字符组成,其中,字符可以包括字母、文字、数字、运算符号、标点符号和其他符号,以
及一些功能性符号。
38.多个字符可以组成一个字符串。例如,字符串可以为一个句子,特定的标点符号(例如,“。”、“!”、“?”、
“……”
等)可以将待处理文本分为至少一个字符串。例如,待处理文本可以为“真的吗?我不信!”,可以通过标点符号“?”“!”将待处理文本分为两个字符串。在一些实施例中,字符串还可以是具备多种含义的词组,例如,对于字符串“14:15”,其含义可以是时间为下午两点十五分,也可以是比分为14比15。
39.在一些实施例中,文本获取模块210可以从终端130、存储设备140或外部数据源获取待处理文本。
40.步骤320,基于待处理文本,确定多个任务的预测结果。在一些实施例中,步骤320可以由任务预测模块220执行。
41.任务可以是待处理文本转化为语音所需要确定的信息。在一些实施例中,任务可以为确定待处理文本中字符的韵律、待处理文本中字符的发音、待处理文本中字符串的类型及待处理文本中字符串的情感中的一种或多种,例如,多种包括两种、三种等。
42.在一些实施例中,任务预测模块220可以从终端130、存储设备140或外部数据源获取信息确定多个任务。例如,任务预测模块220可以从终端130、存储设备140或外部数据源获取任务表,任务表可以记载有任务的数量及类型。示例地,字符韵律确定任务、字符发音确定任务、字符串情感确定任务和字符串类型确定任务的编号依次为1、2、3、4,任务表为[1,3],则任务预测模块220需要对待处理文本进行2个任务:字符韵律确定任务和字符串情感确定任务。
[0043]
确定待处理文本中字符的韵律可以是确定念完字符后的停顿长度。在一些实施例中,韵律可以分为多级韵律,例如,韵律可以用#1、#2、#3、*和[pad]进行表示,其中,#1、#2、#3停顿逐渐增长,*代表不停顿,[pad]代表跳过该字符。
[0044]
确定待处理文本中字符的发音可以是确定字符的发音。例如,“你”的发音为“ni3”,其中,“3”表示声调为三声。
[0045]
确定待处理文本中字符串的类型可以是确定具备多种含义的词组的在待处理文本中的真实含义。例如,对于字符串“14:15”,任务预测模块220需要确定在待处理文本中该字符串的含义表征时间还是比分。在一些实施例中,任务预测模块220可以先对字符串进行识别,确定该字符串是否为预设类型,预设类型的字符串可能具备多种含义,若是,再对字符串的类型进行识别。
[0046]
确定待处理文本中字符串的情感可以是确定句子的情感。例如,句子的情感可以是正面情感、负面情感及空白情感,其中,正面情感可以是喜悦、兴奋等,负面情感可以是不安、伤心、愤怒、绝望等,空白情感可以是指不存在任何情绪。
[0047]
在一些实施例中,任务预测模块220可以基于预设规则确定多个任务的预测结果。在一些实施例中,对应于多种任务,预设规则可以不同。例如,针对确定待处理文本中字符的韵律这一任务,设定的预设韵律规则可以包括:标点符号前一位汉字的韵律为#3、表示句子结束的标点符号的韵律为*、其他汉字的韵律为#1、一些特殊标点符号(例如,《》(书名号)等)的韵律为[pad]、一些特殊标点符号(例如,
“”
(引号)、:(冒号)等)的韵律为#2等。例如,对于待处理文本“真的吗?”,任务预测模块220可以确定其韵律为[真#1的#1吗#3?*],表示“真”、“的”的韵律为#1,“吗”的韵律为#3,“?”的韵律为*。
[0048]
在一些实施例中,任务预测模块220可以预测模型对待处理文本进行处理,确定多个任务的预测结果。预测模型为机器学习模型,例如,预测模型的类型可以包括但不限于深度神经网络模型、循环神经网络模型、自定义的模型等。在一些实施例中,预测模型可以包括多个任务层,多个任务层与多个任务一一对应,关于预测模型的更多描述可以参见图4及其相关描述。
[0049]
在一些实施例中,任务预测模块220可以获取多个任务中预设任务的参考结果。任务预测模块220可以基于所述待处理文本,确定所述多个任务的初始预测结果。进一步的,任务预测模块220可以基于所述预设任务的参考结果替换所述预设任务的初始预测结果的至少一部分,确定所述多个任务的预测结果。
[0050]
参考结果可以是预先设定的预设任务的结果,其中,预设任务可以是多个任务中的至少一个。在一些实施例中,预设任务可以为确定待处理文本中字符的韵律,参考结果可以为待处理文本中至少一个字符(即目标字符)的韵律。在一些实施例中,预设任务可以为确定待处理文本中字符的发音,参考结果可以为待处理文本中至少一个字符(即目标字符)的发音。在一些实施例中,预设任务可以为确定待处理文本中字符串的类型,参考结果可以为待处理文本中多个字符串(即目标字符串)的类型。在一些实施例中,预设任务可以为确定待处理文本中字符串的情感,参考结果可以为待处理文本中至少一个字符串(即目标字符串)的情感。
[0051]
在一些实施例中,任务预测模块220可以从终端130、存储设备140或外部数据源获取参考结果。例如,任务预测模块220可以从终端130、存储设备140或外部数据源获取预设任务表及与预设任务对应的参考结果表。预设任务表用于记载预设任务,一个参考结果表用于记载对应一个预设任务的参考结果。示例地,预设任务表为[2,3],则预设任务包括字符发音确定任务和字符串情感确定任务,其中,字符发音确定任务对应的参考结果表为[[2,5][di1,di4]],则字符发音确定任务对应的参考结果为第二个字符的发音为“di1”,第五个字符的发音为“di4”。
[0052]
在一些实施例中,初始预测结果为直接基于待处理文本确定的多个任务的结果。例如,通过预设规则、机器学习模型等直接基于待处理文本确定的多个任务的结果。
[0053]
在一些实施例中,任务预测模块220可以基于预设任务的参考结果替换预设任务的初始预测结果的至少一部分,确定多个任务的预测结果。例如,对于字符发音确定任务,任务预测模块220可以将目标字符的参考结果替换目标字符的初始预测结果,确定预测结果。示例地,对于待处理文本“打车去目的地”,对应字符发音确定任务,其初始预测结果为[da3,che1,qu4,mu4,di1,di4,*],参考结果为[[2,5][che1,di4]],经替换后,任务预测模块220确定的字符发音确定任务的预测结果为[da3,che1,qu4,mu4,di4,di4,*]。
[0054]
任务预测模块220可以通过多种方式结合预测模型和预设任务的参考结果,确定多个任务的预测结果。例如,预测模型(如,图5所示的预测模型)可以直接待处理文本及基于预设任务的参考结果直接生成多个任务的预测结果。例如,预测模型(如,图6所示的预测模型)可以先基于待处理文本生成多个任务的初始预测结果,再将预设任务的参考结果替换预设任务的初始预测结果的至少一部分生成预测结果。
[0055]
在一些实施例中,通过预设任务的参考结果,可以使得生成的多个任务的预设结果更加可靠。
[0056]
步骤330,基于多个任务的预测结果,确定待处理文本对应的语音。在一些实施例中,步骤330可以由结果生成模块230执行。
[0057]
待处理文本对应的语音可以是根据待处理文本及多个任务的预测结果合成的语音。
[0058]
在一些实施例中,确定多个任务的预测结果后,结果生成模块230可以基于多个任务的预测结果通过模型确定待处理文本对应的语音。例如,将每个字符对应于多个任务的预测结果输入声学模型(例如,deepvoice 3、transformer tts或fastspeech)确定每个字符的声学特征,基于声码器(例如,waveflow)将声学特征反解码为语音。
[0059]
在一些实施例中,语音合成方法300可以基于所述待处理文本,确定待处理文本中字符的韵律、所述待处理文本中字符的发音、所述待处理文本中字符串的类型及所述待处理文本中字符串的情感中的至少两个任务的预测结果,再根据待处理文本及多个任务的预测结果合成的语音,使得合成的语音更贴近人类实际的发音,提高了用户体验。
[0060]
应当注意的是,上述有关流程300的描述仅仅是为了示例和说明,而不限定本说明书的适用范围。对于本领域技术人员来说,在本说明书的指导下可以对流程300进行各种修正和改变。然而,这些修正和改变仍在本说明书的范围之内。
[0061]
图4是根据本说明书一些实施例所示的预测模型400的结构示意图。如图4所示,预测模型400可以包括嵌入层410、特征层420及多个任务层430。
[0062]
在一些实施例中,嵌入层410可以对待处理文本中字符进行编码,得到待处理文本中字符的编码。
[0063]
编码可以为待处理文本中的字符转化的数字。例如,将待处理文本中的“字”这一字符转化为“100”这一数字即为编码。
[0064]
在一些实施例中,嵌入层410的输入可以为待处理文本,嵌入层410的输出可以为文本编码向量,其中,文本编码向量可以由待处理文本中每个字符的编码组成,例如,文本编码向量可以由待处理文本的字符的编码按照字符顺序组合而成。在一些实施例中,文本编码向量的维度可以基于待处理文本的字符数量确定,例如,当待处理文本的字符数量为3个,则嵌入层410的输出维度为3的文本编码向量。示例地,嵌入层410输入的待处理文本为“打车。”,嵌入层410输出的文本编码向量为[502,203,101],其中,“502”为“打”的编码,“203”为“车”的编码,“101”为“。”的编码。
[0065]
在一些实施例中,嵌入层410可以通过编码模型对待处理文本中的字符进行编码,生成文本编码向量。在一些实施例中,编码模型可以为tokenizer模型、bert(bidirectional encoder representations from transformers)模型中的至少一个或任意组合。在一些实施例中,编码模型还可以为其他模型,例如,词袋模型、cbow(continuous bag of words model)模型,skip-gram(continuous skip-gram model)模型中的至少一个或任意组合。
[0066]
在一些实施例中,嵌入层410还可以通过其他方式对待处理文本中的字符进行编码,生成文本编码向量。例如,嵌入层410可以先通过字典获取待处理文本中字符的编码,再将待处理文本中字符的编码按照字符顺序进行组合生成文本编码向量,其中,字典中可以预存有多个字符分别对应的编码。
[0067]
在一些实施例中,特征层420可以基于待处理文本中字符的编码,提取待处理文本
中字符的特征向量。
[0068]
特征向量可以用于表征与字符相关的信息。与字符相关的信息包括字符本身的信息,以及字符与待处理文本和/或待处理文本中其他字符之间的关系信息等。例如,特征向量可以表征字符的含义、上下文语义信息、字符在待处理文本中的位置信息等。在一些实施例中,对于每个字符,特征层420可以提取对应的特征向量。
[0069]
在一些实施例中,特征层的层数可以大于1。
[0070]
在一些实施例中,特征层420的输入可以为嵌入层410输出的文本编码向量,特征层420的输出可以为特征矩阵,其中,特征矩阵可以由待处理文本的字符的特征向量组成。在一些实施例中,特征矩阵的大小可以为n*m,其中,n可以表征待处理文本的字符的数量,m可以表征字符的特征向量的维度。例如,待处理文本为“打车去目的地。”,特征层420的输入可以为[502,203,105,980,654,789,101],特征层520的输出可以为一个7*512的特征矩阵,其中,7表征待处理文本的字符的数量为7,512表征字符的特征向量的维度为512,矩阵的第一行至第七行分别为待处理文件的第一个字符至第七个字符的特征向量。
[0071]
在一些实施例中,嵌入层410和特征层420可以共用一个bert(bidirectional encoder representations from transformers)模型,该bert模型可以先用于对待处理文本中字符进行编码,生成文本编码向量,再基于生成的文本编码向量提取待处理文本中字符的特征向量,输出特征矩阵。
[0072]
在一些实施例中,特征层420可以单独使用一个bert模型基于生成的文本编码向量提取待处理文本中字符的特征向量,输出特征矩阵。在一些实施例中,特征层420还可以通过其他模型(例如,transformer模型等)提取待处理文本中字符的特征向量,输出特征矩阵。
[0073]
在一些实施例中,任务层430可以基于待处理文本中字符的特征向量,确定任务的预测结果。在一些实施例中,预测模型400可以包括多个任务层430,其中,预测模型400包括的任务层430的数量可以大于或等于需要对待处理文本执行的任务的数量。如图4所示,任务层430包括处理任务1的任务层430-1,处理任务2的任务层430-2,处理任务n的任务层430-n。每个任务层可以用于得到对应的任务的预测结果。在一些实施例中,任务层340可以是线性层。
[0074]
在一些实施例中,一种任务层430可以用于基于待处理文本中每个字符的特征向量,确定每个字符的发音的预测结果,关于发音的更多描述可以参见图3及其相关描述,此处不再赘述。在一些实施例中,该任务层430的输入为字符的特征向量,该任务层430可以确定每个字符为每个发音的概率,该任务层430的输出可以为n维的向量,其中,该向量中的一个数值表示一个字符对应的最大概率的发音,n与待处理文本中字符的数量对应。例如,待处理文本为“打车去目的地。”,该任务层430的输出可以为[da3,che1,qu4,mu4,di4,di4,*]。
[0075]
在一些实施例中,一种任务层430可以用于基于待处理文本中每个字符的特征向量,确定每个字符的韵律的预测结果,关于韵律的更多描述可以参见图3及其相关描述,此处不再赘述。在一些实施例中,该任务层430的输入为每个字符的特征向量,该任务层430可以计算字符的韵律分别为每种预设韵律的概率,该任务层430的输出可以为n维向量,其中,该向量的一个数值可以为一个字符对应的最大概率的韵律。
[0076]
在一些实施例中,一种任务层430可以用于基于待处理文本中字符串包括的字符的特征向量,确定字符串的类型的预测结果,关于字符串及字符串的类型的更多描述可以参见图3及其相关描述,此处不再赘述。例如,该任务层430的输入为字符串包括的字符的特征向量,该任务层430的输出可以为x维的向量,其中,该向量的一个数值可以为一个字符串对应的最大概率的类型,x与待处理文本中的需要预测类型的字符串的数量对应,需要预测类型的字符串的数量可以是待处理文本中的全部字符串,也可以是部分字符串。例如,需要预测类型的字符串可以是特定类型的字符串。
[0077]
在一些实施例中,一种任务层430可以用于基于待处理文本中字符串包括的字符的特征向量,确定字符串的情感的预测结果,关于字符串的情感的更多描述可以参见图3及其相关描述,此处不再赘述。在一些实施例中,该任务层430的输入为字符串包括的字符的特征向量,该任务层430的输出可以为x维的向量,其中,该向量的一个数值可以为一个字符串对应的最大概率的情感,x与待处理文本中的字符串的数量对应。与预测字符串类型类似的,此时的字符串可以是待处理文本中的全部字符串,也可以是部分字符串。
[0078]
在一些实施例中,通过预测模型获取多个任务的参考结果,可以提高语音合成的效率及准确率。
[0079]
在一些实施例中,预测模型400可以获取多个任务中预设任务的参考结果,并对所述待处理文本和所述预设任务的参考结果进行处理,确定所述多个任务的预测结果。关于预设任务、参考结果的更多描述可以参见图3及其相关描述,此处不再赘述。
[0080]
关于预测模型基于参考结果确定预测结果的更多描述参见图5和图6及其相关描述。关于预测模型的训练的更多描述参见图7及其相关描述。
[0081]
图5是根据本说明书一些实施例所示的预测模型500的又一示意图。
[0082]
如图5所示,预测模型500可以包括嵌入层410、特征层420及多个任务层430。
[0083]
在一些实施例中,预测模型500可以根据任务列表中任务标号确定与参考结果对应的任务层(例如,任务层430-2),并将参考结果输入至该任务层430,相应的,任务层430输出可以直接输出包含参考结果的预测结果。
[0084]
在一些实施例中,嵌入层410可以包括字典510,字典510用于获取参考结果中字符的编码,并将编码后的参考结果输入至对应的任务层(例如,任务层430-2)。
[0085]
在一些实施例中,预设任务对应的任务层可以先对目标字符或目标字符串以外的其他字符或其他字符串进行处理,得到其他字符或其他字符串的预测结果,预设任务对应的任务层再结合目标字符或目标字符串的参考结果,确定待处理文本对于预设任务的预测结果。在一些实施例中,预设任务对应的任务层可以对待处理文本中所有字符或所有字符串进行处理,得到所有字符或所有字符串的初始预测结果,预设任务对应的任务层再用目标字符或目标字符串的参考结果替换目标字符或目标字符串的初始预测结果,得到待处理文本对于预设任务的预测结果。
[0086]
示例地,对于待处理文本“打车去目的地。”中字符的发音这一任务(该任务为任务2),存在参考结果[[2,5][che1,di4]](即第二个字符的发音为“che1”,第五个字符的发音为“di4”),预测模型500可以先通过字典对参考结果中目标字符(即第二个字符和第五个字符)的发音进行编码,并将编码后的参考结果输入至任务2对应的任务层430-2,该任务层430-2可以只预测其他字符(即待处理文本中第二个字符、第五个字符以外的字符)的发音,
并在输出时将预测的其他字符的发音:[da3,,qu4,mu4,,di4,*],再与参考结果进行组合,生成输出预测结果[da3,che1,qu4,mu4,di4,di4,*]。
[0087]
图6是根据本说明书一些实施例所示的预测模型600的又一示意图。
[0088]
如图6所示,预测模型600可以包括嵌入层410、特征层420、多个任务层430及融合层610。
[0089]
在一些实施例中,任务层430不输入参考结果,直接基于输入的特征向量确定多个任务的初始预测结果。融合层610可以用于基于多个任务层430输出的多个任务的初始预测结果和预设任务的参考结果,确定多个任务的预测结果。其中,多个任务的预测结果中,预设任务中目标字符或目标字符串的预测结果为参考结果,其他字符或字符字符串的预测结果为初始预测结果。
[0090]
在一些实施例中,融合层610可以是一个,所有预设任务的参考结果都通过该层进行融合,使该预设任务的预测结果为参考结果。融合层610可以是多个,多个融合层和多个任务层一一对应。每个任务层输出的初始预测结果输入对应的融合层。预设任务的参考结果输入与预设任务对应的融合层。如图6所示,融合层包括用于融合任务1参考结果和初始预测结果的融合层610-1、用于融合任务2的参考结果和和初始预测结果的融合层610-2及用于融合任务n的参考结果和初始预测结果的融合层610-n。在一些实施例中,融合层可以是神经网络(nn)等模型。
[0091]
在一些实施例中,对于某一任务,当任务层430对目标字符的初始预测结果与目标字符的参考结果一致时,融合层440可以直接输出初始预测结果;当任务层430对目标字符的初始预测结果与目标字符的参考结果不一致时,任务层430可以使用目标字符的参考结果替换目标字符的初始预测结果生成预测结果。
[0092]
例如,对于确定待处理文本“打车去目的地。”字符的发音这一任务(对应任务2),该任务对应的任务层430-2对于其字符发音的预测结果为[da3,che1,qu4,mu4,di1,di4,*],存在参考结果[[2,5][che1,di4]](即第二个字符的发音为“che1”,第五个字符的发音为“di4”),待处理文本的第五个字符“的”的初始预测结果与其参考结果不一致,与该任务对应的融合层620-2可以用该字符的参考结果“di4”替换该字符的初始预测结果“di1”,生成对应该任务的预测结果[da3,che1,qu4,mu4,di4,di4,*]。
[0093]
图7是根据本说明书一些实施例所示的训练预测模型的示意图。
[0094]
在一些实施例中,可以通过训练得到基础模型,再基于基础模型得到预测模型,即确定预测模型的参数。
[0095]
基础模型是用于指导预测模型进行训练的模型。基础模型的层数较大或中间层的维数较大。基础模型与预测模型的结构组成相同,基础模型包括嵌入层、特征层、多任务层。若预测模型包括融合层,基础模型也包含融合层。
[0096]
在一些实施例中,预测模型中特征层的层数小于可以基础模型中特征层的层数。
[0097]
任务预测模块220通过基础模型指导预测模型进行训练,可以使任务预测模型220具有与基础模型相当的性能,同时使得预测模型的参数大幅降低,拥有良好的性能和泛化能力。
[0098]
在一些实施例中,可以基于第一训练集训练得到基础模型。
[0099]
第一训练集可以是用于对基础模型进行训练的文本的集合。在一些实施例中,第
一训练集可以包括多个训练样本及其对应的标签,其中,标签可以包括与多个任务对应的标签,例如,训练样本中字符的发音、训练样本中字符的韵律、训练样本中字符串的类型及训练样本中字符串的情感等。在一些实施例中,第一训练集中训练样本的标签可以为人为进行标注的真实标签。在一些实施例中,任务预测模块220可以从终端130、存储设备140或外部数据源获取第一训练集。
[0100]
在一些实施例中,任务预测模块220可以将第一训练集输入初始基础模型,通过训练更新初始基础模型的参数,直到更新后的初始基础模型满足预设条件。更新后的初始基础模型可以被指定为基础模型,其中,预设条件可以是更新后的初始基础模型的损失函数小于阈值、收敛,或训练迭代次数达到阈值。
[0101]
在一些实施例中,第一训练集可以包括原始有标签数据集和原始无标签数据集。在一些实施例中,任务预测模块220可以基于原始有标签数据集及原始无标签数据集通过对至少一个初始模型进行至少一轮训练得到基础模型。
[0102]
在一些实施例中,原始有标签数据集可以为用于训练第1个初始模型的训练样本的集合,其中,原始有标签数据集中的训练样本对应有真实标签。在一些实施例中,原始无标签数据集可以为无标签的训练样本的集合。在一些实施例中,原始无标签数据集可以由至少一个原始无标签数据子集构成,例如,原始无标签数据集可以包括第1个原始无标签数据子集、第2个原始无标签数据子集
……

[0103]
在一些实施例中,初始模型可以是预先建立的大模型(例如,层数较大或中间层的维数较大的模型)。在一些实施例中,任务预测模块220可以从终端130、存储设备140或外部数据源获取至少一个初始模型。
[0104]
在一些实施例中,任务预测模块220可以基于原始有标签数据集及至少一个原始无标签数据子集通过多轮训练得到基础模型具体如下:
[0105]
第1轮训练过程可以包括:基于原始有标签数据集对第1个初始模型进行训练,获取训练后的第1个初始模型;通过训练后的第1个初始模型获取第1个原始无标签数据子集中的训练样本的标签(即伪标签);基于第1训练集对第2个初始模型进行训练,获取训练后的第2个初始模型,其中,第1训练集由原始有标签数据集和第1个原始无标签数据子集及其对应的伪标签构成;判断训练后的第2个初始模型是否满足预设条件,若满足,则将训练后的第2个初始模型作为基础模型,若不满足,则进行第2轮训练,其中,预设条件可以为损失函数小于阈值、收敛,或训练轮数达到阈值等。
[0106]
如图7所示,第i(i》1)轮训练过程可以包括:通过训练后的第i个初始模型710获取第i个原始无标签数据子集720中的训练样本的伪标签;基于第i训练集760对第(i+1)个初始模型750进行训练,获取训练后的第(i+1)个初始模型770,其中,第i训练集760由第(i-1)训练集730和第i个原始无标签数据子集及其对应的伪标签740构成;判断训练后的第(i+1)个初始模型770是否满足预设条件,若满足,则将训练后的第(i+1)个初始模型770作为基础模型,若不满足,则进行第(i+1)轮训练。
[0107]
例如,第2轮训练过程可以包括:通过训练后的第2个初始模型获取第2个原始无标签数据子集中的训练样本的伪标签;基于第2训练集对第3个初始模型进行训练,获取训练后的第3个初始模型,其中,第2训练集由第1训练集和第2个原始无标签数据子集及其对应的伪标签构成;判断训练后的第3个初始模型是否满足预设条件,若满足,则将训练后的第3
个初始模型作为基础模型,若不满足,则进行第3轮训练。
[0108]
在一些实施例中,第i个初始模型中特征层的层数大于或者等于第i-1个初始模型中特征层的层数。
[0109]
在一些实施例中,任务预测模块220可以对第i个原始无标签数据子集中训练样本对应的伪标签进行评估,对第i个原始无标签数据子集的训练样本进行筛选,基于筛选后的第i个原始无标签数据子集确定第i训练集。在一些实施例中,任务预测模块220可以基于伪标签的真实性对第i个原始无标签数据子集的训练样本进行评估筛选,筛选具备真实性的训练样本确定第i训练集,其中,真实性可以用于表征伪标签是否为训练样本实际对应标签。在一些实施例中,任务预测模块220可以基于机器学习模型确定伪标签的真实性。在一些实施例中,任务预测模块220还可以其他方式(例如,人工确定)确定伪标签的真实性。
[0110]
在一些实施例中,任务预测模块220可以计算信息熵,并基于信息熵对第i个原始无标签数据子集的训练样本对应的伪标签进行评估筛选。信息熵可以表征第i个初始模型对于伪标签的不确认程度。
[0111]
以下以训练后的第i个初始模型预测第i个原始无标签数据子集对应的伪标签为例进行说明。对于每个任务,训练后的第i个初始模型可以得到训练样本对应各个候选伪标签的概率,并将概率最大的候选伪标签作为该训练样本的伪标签进行输出。例如,伪标签代表训练样本中某个样本字符的韵律时,第i个初始模型可以输出该样本字符的韵律分别为#1、#2、#3、*四个类型的概率值,且#2概率值最大,则将#2作为该样本字符的伪标签。在一些实施例中,当不同候选伪标签概率值越接近时,信息熵越大。
[0112]
示例的,任务预测模块220可以基于以下公式计算第i个原始无标签数据子集中某个训练样本的伪标签的信息熵:其中,m为该任务的候选伪标签的总数,j为第j个候选伪标签,pj为训练和的第i个初始模型确定的第j个候选伪标签的概率。
[0113]
在一些实施例中,任务预测模块220可以基于第i个原始无标签数据子集的训练样本的字符或字符串的信息熵小于预设阈值的训练样本确定第i训练集。
[0114]
在一些情况下,通过原始有标签数据集及原始无标签数据集训练基础模型,实现通过半监督的方式训练基础模型,可以减少训练样本的获取成本。通过对伪标签进行评估,使得训练模型的训练样本更可靠,提高训练基础模型的效率和准确性。
[0115]
在一些实施例中,任务预测模块220可以获取第三训练集,基于基础模型确定第三训练集的多个训练样本对应的伪标签,并基于第三训练集的多个训练样本对应的伪标签和真实标签,确定预测模型的参数。
[0116]
在一些实施例中,第三训练集可以包括多个训练样本及其对应的真实标签。在一些实施例中,任务预测模块可以从终端130、存储设备140或外部数据源获取第三训练集。在一些实施例中,任务预测模块220可以从第一训练集获取第三训练集。例如,任务预测模块220可以从原始有标签数据集中获取多个训练样本及其对应的真实标签作为第三训练集。还例如,任务预测模块220可以从筛选后的原始无标签数据集中获取多个训练样本及其对应的伪标签作为第三训练集。在一些实施例中,第三训练集还可以独立于第一训练集。
[0117]
在一些实施例中,任务预测模块220可以将第三训练集输入至初始预测模型,初始预测模型可以输出第三训练集的多个训练样本的预测结果,并基于多个训练样本的预测结果、伪标签及真实标签更新初始预测模型的参数,得到预测模型。
[0118]
在一些实施例中,任务预测模块220可以基于第三训练集的多个训练样本的预测结果及伪标签构建第一损失项,其中,第一损失项可以用于表征多个训练样本的预测结果及伪标签之间的差异。
[0119]
在一些实施例中,任务预测模块220可以基于第三训练集的多个训练样本的预测结果及真实标签构建第二损失项,其中,第一损失项可以用于表征多个训练样本的预测结果及真实标签之间的差异。
[0120]
在一些实施例中,任务预测模块220可以通过focal loss函数构建第一损失项或/和第二损失项,以解决第三训练集中样本类别不平均的问题。
[0121]
在一些实施例中,任务预测模块220可以融合基于第一损失项和第二损失项的构建预测模型的损失函数,并基于损失函数更新预测模型的参数。融合方式可以包括求和、加权求和等,在一些实施例中,任务预测模块220可以将raadam优化器与amsgrad优化器进行结合对预测模型的损失函数进行优化。
[0122]
在一些实施例中,通过raadam优化器与amsgrad优化器,对预测模型的损失函数进行优化,可以提高训练初始预测模型的效率。
[0123]
在一些实施例中,当参数更新后的初始预测模型满足预设条件时,则该初始预测模型可以作为用于对待处理文本进行处理的预测模型,其中,预设条件可以是参数更新后的初始预测模型的损失函数小于阈值、收敛,或训练迭代次数达到阈值等;当参数更新后的初始预测模型未满足预设条件时,需要对初始预测模型进行下一轮训练。
[0124]
上文已对基本概念做了描述,显然,对于本领域技术人员来说,上述详细披露仅仅作为示例,而并不构成对本说明书的限定。虽然此处并没有明确说明,本领域技术人员可能会对本说明书进行各种修改、改进和修正。该类修改、改进和修正在本说明书中被建议,所以该类修改、改进、修正仍属于本说明书示范实施例的精神和范围。
[0125]
同时,本说明书使用了特定词语来描述本说明书的实施例。如“一个实施例”、“一实施例”、和/或“一些实施例”意指与本说明书至少一个实施例相关的某一特征、结构或特点。因此,应强调并注意的是,本说明书中在不同位置两次或多次提及的“一实施例”或“一个实施例”或“一个替代性实施例”并不一定是指同一实施例。此外,本说明书的一个或多个实施例中的某些特征、结构或特点可以进行适当的组合。
[0126]
此外,除非权利要求中明确说明,本说明书所述处理元素和序列的顺序、数字字母的使用、或其他名称的使用,并非用于限定本说明书流程和方法的顺序。尽管上述披露中通过各种示例讨论了一些目前认为有用的发明实施例,但应当理解的是,该类细节仅起到说明的目的,附加的权利要求并不仅限于披露的实施例,相反,权利要求旨在覆盖所有符合本说明书实施例实质和范围的修正和等价组合。例如,虽然以上所描述的系统组件可以通过硬件设备实现,但是也可以只通过软件的解决方案得以实现,如在现有的服务器或移动设备上安装所描述的系统。
[0127]
同理,应当注意的是,为了简化本说明书披露的表述,从而帮助对一个或多个发明实施例的理解,前文对本说明书实施例的描述中,有时会将多种特征归并至一个实施例、附
图或对其的描述中。但是,这种披露方法并不意味着本说明书对象所需要的特征比权利要求中提及的特征多。实际上,实施例的特征要少于上述披露的单个实施例的全部特征。
[0128]
一些实施例中使用了描述成分、属性数量的数字,应当理解的是,此类用于实施例描述的数字,在一些示例中使用了修饰词“大约”、“近似”或“大体上”来修饰。除非另外说明,“大约”、“近似”或“大体上”表明所述数字允许有
±
20%的变化。相应地,在一些实施例中,说明书和权利要求中使用的数值参数均为近似值,该近似值根据个别实施例所需特点可以发生改变。在一些实施例中,数值参数应考虑规定的有效数位并采用一般位数保留的方法。尽管本说明书一些实施例中用于确认其范围广度的数值域和参数为近似值,在具体实施例中,此类数值的设定在可行范围内尽可能精确。
[0129]
针对本说明书引用的每个专利、专利申请、专利申请公开物和其他材料,如文章、书籍、说明书、出版物、文档等,特此将其全部内容并入本说明书作为参考。与本说明书内容不一致或产生冲突的申请历史文件除外,对本说明书权利要求最广范围有限制的文件(当前或之后附加于本说明书中的)也除外。需要说明的是,如果本说明书附属材料中的描述、定义、和/或术语的使用与本说明书所述内容有不一致或冲突的地方,以本说明书的描述、定义和/或术语的使用为准。
[0130]
最后,应当理解的是,本说明书中所述实施例仅用以说明本说明书实施例的原则。其他的变形也可能属于本说明书的范围。因此,作为示例而非限制,本说明书实施例的替代配置可视为与本说明书的教导一致。相应地,本说明书的实施例不仅限于本说明书明确介绍和描述的实施例。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1