CN113539235B - 文本分析与语音合成方法、装置、***及存储介质 - Google Patents
文本分析与语音合成方法、装置、***及存储介质 Download PDFInfo
- Publication number
- CN113539235B CN113539235B CN202110787732.XA CN202110787732A CN113539235B CN 113539235 B CN113539235 B CN 113539235B CN 202110787732 A CN202110787732 A CN 202110787732A CN 113539235 B CN113539235 B CN 113539235B
- Authority
- CN
- China
- Prior art keywords
- character
- information
- text
- role
- age
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000004458 analytical method Methods 0.000 title claims abstract description 503
- 238000001308 synthesis method Methods 0.000 title claims abstract description 43
- 238000000034 method Methods 0.000 claims abstract description 75
- 230000015572 biosynthetic process Effects 0.000 claims description 134
- 238000003786 synthesis reaction Methods 0.000 claims description 134
- 238000012986 modification Methods 0.000 claims description 64
- 230000004048 modification Effects 0.000 claims description 64
- 238000013145 classification model Methods 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 14
- 239000012634 fragment Substances 0.000 claims description 11
- 238000000605 extraction Methods 0.000 claims description 4
- 239000000284 extract Substances 0.000 claims 1
- 230000008451 emotion Effects 0.000 description 36
- 230000006978 adaptation Effects 0.000 description 26
- 230000006870 function Effects 0.000 description 20
- 238000005457 optimization Methods 0.000 description 12
- 238000012545 processing Methods 0.000 description 12
- 238000012549 training Methods 0.000 description 12
- 230000000694 effects Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 8
- 238000013527 convolutional neural network Methods 0.000 description 6
- 230000008909 emotion recognition Effects 0.000 description 6
- 230000000981 bystander Effects 0.000 description 5
- 238000004422 calculation algorithm Methods 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 5
- 238000003062 neural network model Methods 0.000 description 5
- 230000009286 beneficial effect Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000012937 correction Methods 0.000 description 3
- 238000002372 labelling Methods 0.000 description 3
- 238000012935 Averaging Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 239000008267 milk Substances 0.000 description 2
- 210000004080 milk Anatomy 0.000 description 2
- 235000013336 milk Nutrition 0.000 description 2
- 230000036651 mood Effects 0.000 description 2
- 230000000306 recurrent effect Effects 0.000 description 2
- 239000013589 supplement Substances 0.000 description 2
- 230000002194 synthesizing effect Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 206010022000 influenza Diseases 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L13/00—Speech synthesis; Text to speech systems
- G10L13/08—Text analysis or generation of parameters for speech synthesis out of text, e.g. grapheme to phoneme translation, prosody generation or stress or intonation determination
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L13/00—Speech synthesis; Text to speech systems
- G10L13/02—Methods for producing synthetic speech; Speech synthesisers
- G10L13/033—Voice editing, e.g. manipulating the voice of the synthesiser
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L13/00—Speech synthesis; Text to speech systems
- G10L13/02—Methods for producing synthetic speech; Speech synthesisers
- G10L13/04—Details of speech synthesis systems, e.g. synthesiser structure or memory management
- G10L13/047—Architecture of speech synthesisers
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L25/00—Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
- G10L25/27—Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the analysis technique
- G10L25/30—Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the analysis technique using neural networks
Landscapes
- Engineering & Computer Science (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Signal Processing (AREA)
- Machine Translation (AREA)
Abstract
本发明提供一种文本分析与语音合成方法、装置、***及存储介质。方法包括:获取待处理文本;对待处理文本进行人名识别,以确定待处理文本中出现的所有人名;将所有人名中属于同一角色的人名聚类在一起,以获得与至少一个角色一一对应的至少一个人名集合;至少基于至少一个人名集合确定全局角色信息,全局角色信息包括与至少一个角色一一对应的至少一组角色信息,每组角色信息包括对应角色的代表性角色名称和别名集合;结合全局角色信息对待处理文本中的任一目标语句进行文本分析,文本分析包括对至少一个预设项目的分析,至少一个预设项目包括以下一项或多项:文本类型、角色名称和角色属性。利用全局角色信息辅助识别局部的角色信息。
Description
技术领域
本发明涉及语音处理技术领域,具体地,涉及一种文本分析方法、装置、***及存储介质与一种语音合成方法、装置、***及存储介质。
背景技术
语音合成技术是一种将文字信息转化为声音信息的技术。语音合成技术可以为广大用户及目标应用提供语音合成服务。语音合成***在如今有着较为广泛的应用。随着用户对有声读物类资源的需求日益增长,依靠人工录制有声读物语料的做法已难以满足需求,因而开发多角色多情绪的(半)自动语音合成技术/工具/***显得尤为重要。
多角色多情绪的语音合成***中,首先需要对待合成的文本进行文本分析,获得该文本中各对白(及独白)语句所对应的角色名称、角色属性、情绪类别等信息。随后,通过分析出的角色各种信息找出与该角色匹配的语音合成模型,以进一步通过该模型进行语音合成。
在现有技术中,上文所述的文本分析通常是基于目标语句及其上下文进行的局部分析,这种局部分析仅能获得局部的角色信息。然而,角色名称、性别、年龄等信息通常在大范围(或全局范围)内都处于稳定状态,上述局部分析的方法难以将大范围的角色信息关联起来,不利于对同一角色的识别和关联。此外,局部信息包含的信息内容不够丰富,很多时候仅通过局部信息很难识别角色的一些属性信息,例如性别等。
发明内容
为了至少部分地解决现有技术中存在的问题,提供一种文本分析方法、装置、***及存储介质与一种语音合成方法、装置、***及存储介质。
根据本发明一个方面,提供一种文本分析方法,包括:获取待处理文本;对所述待处理文本进行人名识别,以确定所述待处理文本中出现的所有人名;将所述所有人名中属于同一角色的人名聚类在一起,以获得与至少一个角色一一对应的至少一个人名集合;至少基于所述至少一个人名集合确定全局角色信息,其中,所述全局角色信息包括与所述至少一个角色一一对应的至少一组角色信息,每组角色信息包括对应角色的代表性角色名称和别名集合,所述别名集合包括对应角色的人名集合中除代表性角色名称以外的人名;结合所述全局角色信息对所述待处理文本中的任一目标语句进行文本分析,以获得所述目标语句所对应的文本分析结果,所述文本分析包括对至少一个预设项目的分析,所述至少一个预设项目包括以下一项或多项:文本类型、角色名称和角色属性,其中,对所述文本类型的分析是指判断所述目标语句是否属于多角色类型,所述多角色类型包括对白,所述角色属性包括角色性别和/或角色年龄。
根据本发明另一方面,还提供一种文本分析***,包括处理器和存储器,其中,所述存储器中存储有计算机程序指令,所述计算机程序指令被所述处理器运行时用于执行上述文本分析方法。
根据本发明另一方面,还提供一种存储介质,在所述存储介质上存储了程序指令,所述程序指令在运行时用于执行上述文本分析方法。
根据本发明另一方面,还提供一种语音合成方法,包括上述文本分析方法,其中,语音合成方法还包括:至少基于文本分析结果对目标语句进行语音合成,以获得与目标语句相对应的合成语音。
根据本发明另一方面,还提供一种语音合成***,包括处理器和存储器,其中,所述存储器中存储有计算机程序指令,所述计算机程序指令被所述处理器运行时用于执行上述语音合成方法。
根据本发明另一方面,还提供一种存储介质,在所述存储介质上存储了程序指令,所述程序指令在运行时用于执行上述语音合成方法。
根据本发明另一方面,还提供一种语音合成方法,包括上述文本分析方法,其中,语音合成方法还包括:输出文本结果信息,文本结果信息包括通过结合全局角色信息对待处理文本中的任一目标语句进行文本分析的步骤获得的初始文本分析结果;接收用户输入的文本反馈信息;在文本反馈信息包括与初始文本分析结果相关的第一修改信息的情况下,基于第一修改信息对初始文本分析结果进行修改,以获得新文本分析结果;以及至少基于最终文本分析结果对目标语句进行语音合成,以获得与目标语句相对应的最终合成语音,其中,在未对初始文本分析结果进行修改的情况下,最终文本分析结果为初始文本分析结果,并且在对初始文本分析结果进行修改的情况下,最终文本分析结果为新文本分析结果。
根据本发明另一方面,还提供一种语音合成***,包括处理器和存储器,其中,所述存储器中存储有计算机程序指令,所述计算机程序指令被所述处理器运行时用于执行上述语音合成方法。
根据本发明另一方面,还提供一种存储介质,在所述存储介质上存储了程序指令,所述程序指令在运行时用于执行上述语音合成方法。
根据本发明另一方面,还提供一种文本分析装置,包括:获取模块,用于获取待处理文本;人名识别模块,用于对待处理文本进行人名识别,以确定待处理文本中出现的所有人名;聚类模块,用于将所有人名中属于同一角色的人名聚类在一起,以获得与至少一个角色一一对应的至少一个人名集合;全局确定模块,用于至少基于至少一个人名集合确定全局角色信息,其中,全局角色信息包括与至少一个角色一一对应的至少一组角色信息,每组角色信息包括对应角色的代表性角色名称和别名集合,别名集合包括对应角色的人名集合中除代表性角色名称以外的人名;文本分析模块,用于结合全局角色信息对待处理文本中的任一目标语句进行文本分析,以获得目标语句所对应的文本分析结果,文本分析包括对至少一个预设项目的分析,至少一个预设项目包括以下一项或多项:文本类型、角色名称和角色属性,其中,对文本类型的分析是指判断目标语句是否属于多角色类型,多角色类型包括对白,角色属性包括角色性别和/或角色年龄。
根据本发明另一方面,还提供一种语音合成装置,包括上述文本分析装置,其中,语音合成装置还包括:语音合成模块,用于至少基于文本分析结果对目标语句进行语音合成,以获得与目标语句相对应的合成语音。
根据本发明另一方面,还提供一种语音合成装置,包括上述文本分析装置,其中,语音合成装置还包括:输出模块,用于输出文本结果信息,文本结果信息包括通过结合全局角色信息对待处理文本中的任一目标语句进行文本分析的步骤获得的初始文本分析结果;接收模块,用于接收用户输入的文本反馈信息;修改模块,用于在文本反馈信息包括与初始文本分析结果相关的第一修改信息的情况下,基于第一修改信息对初始文本分析结果进行修改,以获得新文本分析结果;以及语音合成模块,用于至少基于最终文本分析结果对目标语句进行语音合成,以获得与目标语句相对应的最终合成语音,其中,在未对初始文本分析结果进行修改的情况下,最终文本分析结果为初始文本分析结果,并且在对初始文本分析结果进行修改的情况下,最终文本分析结果为新文本分析结果。
根据本发明实施例的文本分析与语音合成方法、装置、***及存储介质,可以实现全局(例如整篇文章)的角色信息采集,后续针对单独的目标语句进行文本分析时,可以利用全局角色信息辅助识别目标语句的各项角色信息,例如对识别错误的性别、年龄等信息进行修正等。这样可以大大提高文本分析的准确性和效率。在文本分析应用于语音合成领域的情况下,上述方案有助于提高后续语音合成的准确性,从而可大大提高语音合成***的用户体验。
在发明内容中引入了一系列简化形式的概念,这将在具体实施方式部分中进一步详细说明。本发明内容部分并不意味着要试图限定出所要求保护的技术方案的关键特征和必要技术特征,更不意味着试图确定所要求保护的技术方案的保护范围。
以下结合附图,详细说明本发明的优点和特征。
附图说明
本发明的下列附图在此作为本发明的一部分用于理解本发明。附图中示出了本发明的实施方式及其描述,用来解释本发明的原理。在附图中,
图1示出根据本发明一个实施例的文本分析方法的示意性流程图;
图2示出根据本发明一个实施例的文本分析方法的流程示意图
图3示出根据本发明一个实施例的语音合成方法的示意性流程图;
图4示出根据本发明一个实施例的多角色多情绪语音合成方法的处理流程的示意图;
图5示出了根据本发明一个实施例的在语音合成过程中结合全局角色信息进行文本分析的示意图;
图6示出了根据本发明一个实施例的文本分析装置的示意性框图;以及
图7示出了根据本发明一个实施例的文本分析***的示意性框图。
具体实施方式
在下文的描述中,提供了大量的细节以便能够彻底地理解本发明。然而,本领域技术人员可以了解,如下描述仅示例性地示出了本发明的优选实施例,本发明可以无需一个或多个这样的细节而得以实施。此外,为了避免与本发明发生混淆,对于本领域公知的一些技术特征未进行详细描述。
为了至少部分地解决上述技术问题,本发明实施例提供一种文本分析方法。通过该方法,可以实现全局(例如整篇文章)的角色信息采集,后续针对单独的目标语句进行文本分析时,可以利用全局角色信息辅助识别目标语句的各项角色信息,例如对识别错误的性别、年龄等信息进行修正等。这样可以大大提高文本分析的准确性和效率。在文本分析应用于语音合成领域的情况下,上述方案有助于提高后续语音合成的准确性,从而可大大提高语音合成***的用户体验。
根据本发明一个方面,公开一种文本分析方法。图1示出根据本发明一个实施例的文本分析方法100的示意性流程图。如图1所示,文本分析方法100包括步骤S110-S150。
在步骤S110,获取待处理文本。
待处理文本可以是任意长度的文本,包括但不限于:整篇文章(例如整本小说),文章中的一个章节,文章中的一个段落,或文章中的一个句子,等等。
在步骤S120,对待处理文本进行人名识别,以确定待处理文本中出现的所有人名。
可以通过人名命名实体识别(NER)模型自动识别出待处理文本中出现的所有表示人名的名词(人称代词等不在此范围内)。可选地,在识别出所有人名之后,可以分析每个人名的特征,例如其出现次数、是否包含姓氏、是否包含人名常用字等。
在步骤S130,将所有人名中属于同一角色的人名聚类在一起,以获得与至少一个角色一一对应的至少一个人名集合。
人名聚类也可以称为人名消歧。示例性地,可以通过聚类(或消歧)模型,对步骤S120中识别出的所有人名进行聚类,将同一人的人名聚类在一起。例如,“王小明”、“王先生”、“小王”、“王经理”都是属于“王小明”这一个角色的人名,则可以将这些人名聚类在一起,组成一个人名集合。聚类形成的每一个人名集合对应着一个角色(即一个类别)。可选地,可以将聚类获得的所有角色(即待处理文本中出现的所有角色)作为所述至少一个角色。可选地,还可以对聚类获得的所有角色(即待处理文本中出现的所有角色)进行进一步的筛选,例如从中选择出现次数超过一定阈值的角色作为所述至少一个角色。
上述步骤S130可以采用任何现有的或将来可能出现的人名聚类(或消歧)方法实现,本文不做赘述。
在步骤S140,至少基于至少一个人名集合确定全局角色信息,其中,全局角色信息包括与至少一个角色一一对应的至少一组角色信息,每组角色信息包括对应角色的代表性角色名称和别名集合,别名集合包括对应角色的人名集合中除代表性角色名称以外的人名。
除至少一个人名集合之外,还可以结合其他信息来确定全局角色信息。例如,可以进一步结合包含至少一个人名集合中的每个人名的文本片段和/或包含至少一个人名集合中的每个人名的特定语句来确定全局角色信息。在本文中,包含任一人名的文本片段可以是仅包含该人名所对应字符的文本片段,也可以是包含该人名所对应字符以及在先字符和/或在后字符的文本片段,在先字符为在该人名所对应字符之前第一预设数目的字符,在后字符为在该人名所对应字符之后第二预设数目的字符。第一预设数目和第二预设数目可以根据需要设定,二者可以是任意值,并且二者可以相等或不等。
至少基于至少一个人名集合确定全局角色信息可以包括:对于至少一个角色中的每个角色,从该角色所对应的人名集合中选择代表性角色名称。
对于任一角色,可以从其人名集合中选择某一人名作为其代表性角色名称,并可以将人名集合中的剩余人名作为别名。
在一个示例中,对于任一角色,可以从其人名集合中随机选择某一人名作为其代表性角色名称。在另一示例中,可以根据预设的标准从人名集合中选择代表性角色名称。
示例性地,对于至少一个角色中的每个角色,从该角色所对应的人名集合中选择代表性角色名称包括:对于至少一个角色中的每个角色,分析该角色所对应的人名集合中的每个人名的人名特征,人名特征包括以下一项或多项:出现次数、是否包含姓氏、是否包含人名常用字;从该角色所对应的人名集合中选择人名特征满足预设要求的人名作为该角色的代表性角色名称。
预设要求可以根据需要设定。示例性地,预设要求包括:在该角色所对应的人名集合中出现次数最多,或者,在包含姓氏和/或人名常用字的人名中出现次数最多。
在一个示例中,可以仅根据人名出现次数来选择代表性角色名称。例如,对于任一角色,可以从其对应的人名集合中选择出现次数最多的人名作为代表性角色名称。这种方案实现简单,选择速度快。
在另一个示例中,对于任一角色,可以在其对应的人名集合中找出包含姓氏和/或人名常用字的人名。如果包含姓氏和/或人名常用字的人名仅有一个,则将该人名作为代表性角色名称。如果包含姓氏和/或人名常用字的人名有多个,则可以从中选择,例如随机选择,某一人名作为代表性角色名称。
在又一个示例中,对于任一角色,可以在其对应的人名集合中找出包含姓氏和/或人名常用字的人名。随后,可以从包含姓氏和/或人名常用字的人名中选择出现次数最多的人名作为代表性角色名称。这种方案可以选择包含姓氏和/或人名常用字同时出现次数也比较高的人名作为代表性角色名称。包含姓氏和/或人名常用字的人名识别错误的概率相对较低,且更便于进行后续的文本或语音处理。因此,可以优先选择这类人名作为代表性角色名称。另外,与出现次数低的人名相比,出现次数高的人名意味着在整个待处理文本中占比比较大,用这类人名作为代表性角色名称有助于后续进行语音合成时选择更加合适的语音合成模型。
可以理解,上述选择代表性角色名称的方案仅是示例,上述人名特征还可以包含其他类型的特征,预设要求还可以是其他形式的要求。
每组角色信息可以包括对应角色的代表性角色名称和别名集合。通过全局性的代表性角色名称和别名集合,可以在后续进行局部目标语句的文本分析时,帮助更好地识别出目标语句所对应的角色名称。
在一个示例中,每组角色信息可以仅包括对应角色的代表性角色名称和别名集合。在另一个示例中,每组角色信息还可以包括其他信息,例如角色属性信息等。角色属性信息可以包括角色性别信息和/或角色年龄信息等。
在一个示例中,可以在分析目标语句所对应的角色名称时,就将全局角色信息作为角色识别算法(例如角色识别模型)的输入,以通过角色识别算法识别出目标语句所对应的角色名称。在另一个示例中,可以在通过角色识别算法识别出目标语句所对应的角色名称之后,参考全局角色信息对识别出的角色名称进行修正。例如,统计获得“王小明”这一角色在整个待处理文本中共有四个人名“王小明”、“王先生”、“小王”、“王经理”,并且已经识别出当前的目标语句所对应的角色名称是“王经理”,则可以将目标语句所对应的角色名称从“王经理”(别名)修改为“王小明”(代表性角色名称)。
总之,通过全局角色信息中每个角色的代表性角色名称和别名集合,可以帮助实现后续针对目标语句的角色名称的识别。
在步骤S150,结合全局角色信息对待处理文本中的任一目标语句进行文本分析,以获得目标语句所对应的文本分析结果,文本分析包括对至少一个预设项目的分析,至少一个预设项目包括以下一项或多项:文本类型、角色名称和角色属性,其中,文本类型是指目标语句是判断目标语句是否属于多角色类型,多角色类型包括对白,角色属性包括角色性别和/或角色年龄。
示例性地,文本类型可以划分为多角色类型和非多角色类型两种。在一个示例中,多角色类型可以仅包括对白。在另一个示例中,多角色类型可以仅包括对白和独白。示例性地,非多角色类型可以包括旁白。示例性地,可以首先分析目标语句的文本类型。如果目标语句属于多角色类型,则可以继续分析目标语句的角色名称和/或角色属性,甚至继续分析目标语句的情绪类别。如果目标语句不属于多角色类型,则可以不再分析其他项目。
上文描述了结合全局角色信息中每个角色的代表性角色名称和别名集合来识别目标语句所对应的角色名称的实施例,此处不赘述。
对目标语句的文本分析还可以包括针对角色属性的分析。如上所述,可以结合全局角色信息识别目标语句所对应的角色名称。具体地,识别出目标语句的角色名称,也就可以确定目标语句所对应的角色以及其所对应的人名集合。在一个示例中,可以结合目标语句所对应的人名集合来分析目标语句所对应的角色的角色属性。在另一个示例中,全局角色信息中的任一角色所对应的一组角色信息本身就可以包括角色属性信息。这样,识别出目标语句所对应的角色名称之后,就可以确定其所对应的角色属性信息。
在一个示例中,可以首先按照常规方式对目标语句进行局部的文本分析,获取其初始的文本分析结果,并进而利用全局角色信息对初始的文本分析结果进行进一步的修正。在另一个示例中,可以直接结合全局角色信息对目标语句进行角色名称、角色属性等项目的分析。
根据本发明实施例的文本分析方法,可以针对整个待处理文本进行全局性的角色分析,获得全局角色信息。后续针对单独的目标语句进行文本分析时,可以利用全局角色信息辅助识别目标语句的各项角色信息。这样有助于将大范围的角色信息关联起来,便于对同一角色进行识别和关联,从而可以大大提高文本分析的准确性和效率。
根据本发明实施例,至少一组角色信息中的每组角色信息还包括对应角色的角色属性信息,角色属性信息包括角色性别信息和/或角色年龄信息。
可以理解,角色性别信息是与角色性别这一项目相关的信息,即用于表示角色性别是男还是女的信息。角色年龄信息是与角色年龄这一项目相关的信息,即用于表示角色年龄是多少的信息。可选地,角色年龄信息可以是单个的年龄值,也可以是一个年龄区间。例如,待处理文本中描述了“小丽”这一角色的年龄是16岁,则其角色年龄信息可以是16岁。又例如,待处理文本中描述了“小丽”这一角色是高中生,则可以推测其角色年龄信息是16-18岁这一区间。可选地,角色年龄信息还可以是与年龄相关的描述性词语,例如可以是“高中生”、“大学生”、“青年”、“老年”等这类词语。
根据本发明实施例,角色属性信息包括角色性别信息,至少基于至少一个人名集合确定全局角色信息包括:对于至少一个角色中的任一特定角色,通过第一操作、第二操作和第三操作中的一者或多者各自获得的性别分类结果来确定特定角色的性别,以获得特定角色的角色性别信息;其中,第一操作包括:从特定角色所对应的人名集合中查找能够指示性别的性别指示人名;如果查找到至少一个性别指示人名,则基于至少一个性别指示人名所指示的性别分析特定角色的性别,以获得第一性别分类结果;其中,第二操作包括:从待处理文本中查找与特定角色所对应的人名集合中的任意一个或多个人名一一对应地匹配的一个或多个人称代词集合,每个人称代词集合包括一个或多个人称代词;如果查找到至少一个人称代词集合,则基于至少一个人称代词集合中的每个人称代词所指示的性别分析特定角色的性别,以获得第二性别分类结果;其中,第三操作包括:对于特定角色所对应的人名集合中的每个人名,将包含该人名的文本片段、包含该人名的特定语句以及特定语句的上下文输入性别分类模型,以获得性别分类模型输出的第三性别分类结果,其中,第三性别分类结果用于指示特定角色的性别。
示例性地,上述特定角色可以是至少一个角色中的每个角色,即,针对至少一个角色中的每个角色,均可以采用本实施例的方案确定其性别。
可以通过第一操作、第二操作和第三操作中的一者或多者各自获得的性别分类结果来确定特定角色的性别。如果仅通过第一操作、第二操作和第三操作中的单一操作确定特定角色的性别,则可以直接将该操作确定的性别视为特定角色的性别,以获得最终的角色性别信息。如果通过第一操作、第二操作和第三操作中的多个操作确定特定角色的性别,则可以将多个操作的性别分类结果进行进一步处理,例如加权平均,来获得新的性别分类结果,并基于该新的性别分类结果确定特定角色的性别,以获得最终的角色性别信息。
在第一操作中,对于任一角色,可以从其代表性角色名称和别名集合中检查角色性别,例如检查是否存在能够指示性别的性别指示人名。性别指示人名可以是诸如:某女士/先生/小姐/夫人/太太/女孩/男孩/奶奶/爷爷/爸爸/妈妈/贵妃/皇后/太后/王妃/美人/姬/公主/驸马等。如果存在性别指示人名则可以基于这些人名确定角色性别。
示例性地,角色性别可以划分为至少两种性别。第一性别分类结果可以是或者包括与每种性别一一对应的性别占比信息(下文描述的第一性别占比)。可选地,第一性别分类结果还可以是或者包括与唯一性别相关的性别信息。至少两种性别可以包括男、女这两种性别类型,或者包括男、女、未知这三种性别类型。角色性别还可以有其他划分方式,本文不赘述。例如,某一角色的人名集合中共包括5个性别指示人名,其中3个指示男性,2个指示女性,则第一性别分类结果可以是“男性占比3/5,女性占比2/5”这样的中间性信息,或者第一性别分类结果也可以是“男性”这样的结论性信息。
在第二操作中,对于任一角色,可以通过预设规则从待处理文本中识别出与该角色的人名集合中任意一个或多个人名相匹配的人称代词,并通过这些人称代词来确定角色性别。人称代词可以是诸如:他/她/它/先生/女士等。预设规则可以是例如就近原则,这将在下文描述。
需注意,每个人名在待处理文本中可能出现一次或多次,该人名的每个出现位置处可能识别出相匹配的人称代词,也可能无法识别出相匹配的人称代词。因此,假设任一人名出现n1次,其相匹配的人称代词可能是n2次,那么存在n2≤n1,n1≥1,n2≥0。例如,角色A的人名集合中共包括2个人名,其中第1个人名出现10次,找到相匹配的人称代词8个(与第1个人名相匹配的人称代词集合),第2个人名出现20次,找到相匹配的人称代词15个(与第2个人名相匹配的人称代词集合),则与角色A相对应的所有人称代词是23个。
与第一性别分类结果类似地,第二性别分类结果可以是或者包括与每种性别一一对应的性别占比信息(下文描述的第二性别占比)。可选地,第二性别分类结果还可以是或者包括与唯一性别相关的性别信息。沿用上述示例,假设与角色A相对应的所有人称代词是23个,其中19个指示男性,4个指示女性,则第二性别分类结果可以是“男性占比19/23,女性占比4/23”这样的中间性信息,或者第二性别分类结果也可以是“男性”这样的结论性信息。
在第三操作中,可以通过构建性别分类模型来确定角色性别。在一个示例中,可以将包含该人名的文本片段、包含该人名的特定语句以及特定语句的上下文输入性别分类模型进行处理。可以理解,某一人名可以出现一次或多次,在其出现多次的情况下,包含该人名的文本片段、包含该人名的特定语句以及特定语句的上下文各自都有多份。可选地,还可以进一步将第一性别分类结果和/或第二性别分类结果输入性别分类模型。性别分类模型可以是任何合适的神经网络模型。例如,性别分类模型可以采用卷积神经网络模型(CNN)、循环神经网络模型(RNN)、转换器模型(Transformer)等网络模型中的一种或多种实现。
示例性地,第三性别分类结果包括与至少两种性别一一对应的性别概率,性别概率可以用于表示特定角色的性别为对应性别的概率。性别分类模型可以直接输出每种性别的概率。当然,性别分类模型也可以输出上述与唯一性别相关的性别信息。
根据本发明实施例,角色性别划分为至少两种性别,其中,基于至少一个性别指示人名所指示的性别分析特定角色的性别,以获得第一性别分类结果包括:确定至少一个性别指示人名中的每个性别指示人名所指示的性别;对于至少两种性别中的每种性别,计算属于该种性别的性别指示人名的数目与至少一个性别指示人名的总数目之比,以获得与该种性别相对应的第一性别占比P 1i ,第一性别分类结果包括与至少两种性别一一对应的第一性别占比P 1i ,其中,i = 1, 2, 3……N,N是至少两种性别中性别的总数目;和/或,基于至少一个人称代词集合中的每个人称代词所指示的性别分析特定角色的性别,以获得第二性别分类结果包括:确定至少一个人称代词集合中的每个人称代词所指示的性别;对于至少两种性别中的每种性别,计算属于该种性别的人称代词的数目与至少一个人称代词集合中的所有人称代词的总数目之比,以获得与该种性别相对应的第二性别占比P 2i ,第二性别分类结果包括与至少两种性别一一对应的第二性别占比P 2i ;和/或,第三性别分类结果包括与至少两种性别一一对应的性别概率P 3i ,性别概率P 3i 用于表示特定角色的性别为对应性别的概率。
上述已经结合示例描述了第一性别占比P 1i 、第二性别占比P 2i 和性别概率P 3i 的计算方式,此处不再赘述。
上述对于至少两种性别中的每种性别,计算属于该种性别的性别指示人名的数目与至少一个性别指示人名的总数目之比,以获得与该种性别相对应的第一性别占比P 1i 的步骤可以在至少一个性别指示人名所指示的性别不统一的情况下执行。如果至少一个性别指示人名所指示的性别是统一的,例如都指示女性,则可以直接将至少一个性别指示人名所指示的性别作为特定角色的性别,以获得第一性别分类结果。
类似地,上述对于至少两种性别中的每种性别,计算属于该种性别的人称代词的数目与至少一个人称代词集合中的所有人称代词的总数目之比,以获得与该种性别相对应的第二性别占比P 2i 的步骤可以在至少一个人称代词集合中的所有人称代词所指示的性别不统一的情况下执行。如果至少一个人称代词集合中的所有人称代词所指示的性别是统一的,例如都指示女性,则可以直接将至少一个人称代词集合中的所有人称代词所指示的性别作为特定角色的性别,以获得第二性别分类结果。
相对于与唯一性别相关的性别信息,第一性别占比P 1i 、第二性别占比P 2i 和性别概率P 3i 包含的信息更丰富,方便后续进行其他处理,例如方便对多种性别分类结果进行综合来获得更准确的性别信息等。
根据本发明实施例,通过第一操作、第二操作和第三操作中的一者或多者各自获得的性别分类结果来确定特定角色的性别,以获得特定角色的角色性别信息包括:基于第一性别分类结果确定第一性别占比P 1i 最大的性别为特定角色的性别,以获得角色性别信息;或者,基于第二性别分类结果确定第二性别占比P 2i 最大的性别为特定角色的性别,以获得角色性别信息;或者基于第三性别分类结果确定性别概率P 3i 最大的性别为特定角色的性别,以获得角色性别信息;或者,对于至少两种性别中的每种性别,将该种性别所对应的第一性别占比P 1i 、第二性别占比P 2i 和性别概率P 3i 中的两者或三者进行加权平均或者直接相加来获得总的性别占比,并确定总的性别占比最大的性别为特定角色的性别,以获得角色性别信息。
在基于单个操作确定角色的性别的情况下,可以直接选择占比或概率最大的性别作为特定角色的性别。在基于多个操作确定角色的性别的情况下,可以将这些操作针对同一性别计算的占比或概率进行加权平均或者直接相加,来求得该性别的占比,进而确定角色的性别。
根据本发明实施例,通过第一操作、第二操作和第三操作中的一者或多者各自获得的性别分类结果来确定特定角色的性别,以获得特定角色的角色性别信息包括:首先执行第一操作,如果第一条件满足,则基于第一性别分类结果确定角色性别信息,其中,第一条件包括:查找到至少一个性别指示人名;如果第一条件不满足,则执行第二操作,如果第二条件满足,则基于第二性别分类结果确定角色性别信息,其中,第二条件包括:查找到至少一个人称代词集合;如果第二条件不满足,则执行第三操作并基于第三性别分类结果确定角色性别信息。
示例性地,基于第一性别分类结果确定角色性别信息的步骤可以包括:基于第一性别分类结果确定第一性别占比P 1i 最大的性别为目标角色的性别,以获得角色性别信息。基于第二性别分类结果确定角色性别信息的步骤可以包括:基于第二性别分类结果确定第二性别占比P 2i 最大的性别为目标角色的性别,以获得角色性别信息。基于第三性别分类结果确定角色性别信息的步骤可以包括:基于第三性别分类结果确定性别概率P 3i 最大的性别为目标角色的性别,以获得角色性别信息。
在通过第一操作、第二操作和第三操作中的多者的方式确定角色性别的实施例中,可以按照顺序执行第一操作、第二操作和第三操作。例如,对于任一角色,可以首先按照第一操作的方式确定角色性别,如果不存在性别指示人名,则可以继续按照第二操作的方式确定角色性别,如果不存在人称代词,则可以继续按照第三操作的方式确定角色性别。第一操作的方式只需对角色的人名集合进行检查,运算量少,可以更加快速地识别出角色性别。因此,可以首先实施第一操作中的确定角色性别的方案。第二操作需要检查人名集合以外的文本中是否存在人称代词,这种方案比第一操作的运算量要大一些,因此可以在通过第一操作的方案无法确定角色性别的情况下补充实施,进而帮助确定角色性别。第三操作涉及性别分类模型的应用,模型通常需要训练,并且参数量较大,计算量也大。因此,可以在上述两种操作的方案无法确定角色性别的情况下进一步采用性别分类模型来确定角色性别。
根据本发明实施例,第一条件还包括:在第一性别分类结果中,最大的第一性别占比P 1i 大于第一比例阈值;和/或第二条件还包括:在第二性别分类结果中,最大的第二性别占比P 2i 大于第二比例阈值。
第一比例阈值和第二比例阈值可以是任何合适的值,其可以根据需要设定,本发明不对此进行限制。示例性地,第一比例阈值和第二比例阈值可以相同或不同。
在考虑是否继续执行第二操作或第三操作的过程中,可以进一步考虑上一步操作获得的性别分类结果的准确性是否满足要求。例如,如果在第一性别分类结果中,最大的第一性别占比P 1i 不大于第一比例阈值,那可能意味着最大的第一性别占比P 1i 所对应的性别与其他性别之间的占比差距过小。例如,男性所对应的第一性别占比P 1i 是16/30,女性所对应的第一性别占比P 1i 14/30,二者之间的差距比较小,因此,这一性别分类结果的可靠性比较低,此时可以选择继续执行第二操作。第二条件的实施例可以参考上述示例理解,不再赘述。
基于上述方案,可以通过上一操作的性别分类结果的可靠性来选择是否执行后续操作,如果可靠性较高则可以采用当前操作的性别分类结果确定角色的性别,以减少工作量;如果可靠性较低则可以继续采用后续操作来进一步确定角色的性别,以提高性别的识别准确率。因此,以上方案可以尽量达到工作量和性别识别准确率的平衡。
根据本发明实施例,从待处理文本中查找与特定角色所对应的人名集合中的任意一个或多个人名一一对应地匹配的一个或多个人称代词集合包括:对于特定角色所对应的人名集合中的每个人名,获取包含该人名的至少一个特定语句以及至少一个特定语句各自的上下文;对于至少一个特定语句中的每个特定语句,从该特定语句以及该特定语句的上下文中查找距离该人名最近的人称代词作为与该人名相匹配的人称代词。
如上所述,预设规则可以是例如就近原则。就近原则即为找出距离任一人名最近的人称代词作为与该人名相匹配的人称代词。在查找距离任一人名最近的人称代词时,所采用的特定语句为该人名所在的语句。在本文中,任一语句(特定语句或目标语句)的上下文可以包括位于该语句上方的第一预设句数或第一预设字数内的语句和/或位于该语句下方的第二预设句数或第二预设字数内的语句。第一预设句数、第一预设字数、第二预设句数、第二预设字数均可以根据需要设定为任意合适的值。第一预设句数与第二预设句数可以相同或不同。第一预设字数与第二预设字数可以相同或不同。例如,可以规定仅选择位于特定语句上方和下方5句以内的语句作为其上下文,超过5句的语句(例如特定语句上方的第6句和下方的第6句)均不加入与当前人名相匹配的人称代词的查找。在另一个示例中,所述特定语句的上下文的边缘可以不受限制,即可以在整个待处理文本的范围内查找与当前人名最近的人称代词。
如上所述,对于任一角色,虽然针对该角色所对应的人名集合中的每个人名查找相匹配的人称代词,但可能每个人名都能查找到相匹配的人称代词,也可能至少部分人名无法查找到相匹配的人称代词。因此,最终识别出的人称代词集合的数目可能是一个或多个,这些人称代词集合与人名集合中的一个或多个人名一一对应。当然,最终识别出的人称代词的数目也可能是零个。
根据本发明实施例,角色属性信息包括角色年龄信息,至少基于至少一个人名集合确定全局角色信息包括:对于至少一个角色中的任一特定角色,通过第四操作和/或第五操作各自获得的年龄预测结果来确定特定角色的年龄,以获得特定角色的角色年龄信息;其中,第四操作包括:从特定角色所对应的人名集合中查找能够指示年龄的年龄指示人名;如果查找到至少一个年龄指示人名,则基于至少一个年龄指示人名所指示的年龄分析特定角色的年龄,以获得第一年龄预测结果;其中,第五操作包括:对于特定角色所对应的人名集合中的每个人名,将包含该人名的文本片段、包含该人名的特定语句以及特定语句的上下文输入年龄预测模型,以获得年龄预测模型输出的第二年龄预测结果,其中,第二年龄预测结果用于指示特定角色的年龄。
示例性地,上述特定角色可以是至少一个角色中的每个角色,即,针对至少一个角色中的每个角色,均可以采用本实施例的方案确定其年龄。
与角色性别类似地,可以通过第四操作和/或第五操作各自获得的年龄预测结果来确定特定角色的年龄。如果仅通过第四操作或第五操作确定特定角色的年龄,则可以直接将第四操作或第五操作确定的年龄视为特定角色的年龄,以获得最终的角色年龄信息。如果通过第四操作和第五操作确定特定角色的年龄,则可以将这两个操作的年龄预测结果进行进一步处理,例如加权平均,来获得新的年龄预测结果,并基于该新的年龄预测结果确定特定角色的年龄,以获得最终的角色年龄信息。
在第四操作中,对于任一角色,可以从其代表性角色名称和别名集合中检查角色年龄,例如检查是否存在能够指示年龄的年龄指示人名。年龄指示人名可以是诸如:某女士/先生/小姐/夫人/太太/女孩/男孩/奶奶/爷爷/爸爸/妈妈/贵妃/皇后/太后/王妃/美人/姬/公主/驸马等。如果存在年龄指示人名则可以基于这些人名确定角色年龄。
示例性地,角色年龄可以划分为至少两个年龄类别。如上所述,角色年龄可以是单独的值,也可以是年龄区间。也就是说,每个年龄类别可以用单独的值表示,或者用年龄区间表示。此外,每个年龄类别还可以用描述性词汇(例如“青年”等)表示。第一年龄预测结果可以是或者包括与每个年龄类别一一对应的年龄占比信息(下文描述的第一年龄占比)。可选地,第一年龄预测结果还可以是或者包括与唯一年龄类别相关的年龄信息。至少两个年龄类别可以包括诸如儿童、少年、青年、老年等多个类别。角色年龄还可以有其他划分方式,本文不赘述。例如,某一角色的人名集合中共包括10个年龄指示人名,其中3个指示少年,4个指示青年,3个指示老年,则第一年龄预测结果可以是“少年占比3/10,青年占比4/10,老年占比3/10”这样的中间性信息,或者第一年龄预测结果也可以是“青年”这样的结论性信息。
在第五操作中,可以通过构建年龄预测模型来确定角色年龄。在一个示例中,可以将包含该人名的文本片段、包含该人名的特定语句以及特定语句的上下文输入年龄预测模型进行处理。可以理解,某一人名可以出现一次或多次,在其出现多次的情况下,包含该人名的文本片段、包含该人名的特定语句以及特定语句的上下文各自都有多份。可选地,还可以进一步将第一年龄预测结果输入年龄预测模型。年龄预测模型可以是任何合适的神经网络模型。例如,年龄预测模型可以采用卷积神经网络模型(CNN)、循环神经网络模型(RNN)、转换器模型(Transformer)等网络模型中的一种或多种实现。
示例性地,第二年龄预测结果包括与至少两个年龄类别一一对应的年龄概率,年龄概率可以用于表示特定角色的年龄为对应年龄类别的概率。年龄预测模型可以直接输出每个年龄类别的概率。当然,年龄预测模型也可以输出上述与唯一年龄类别相关的年龄信息。
根据本发明实施例,角色年龄划分为至少两个年龄类别,其中,基于至少一个年龄指示人名所指示的年龄分析特定角色的年龄,以获得第一年龄预测结果包括:确定至少一个年龄指示人名中的每个年龄指示人名所指示的年龄类别;对于至少两个年龄类别中的每个年龄类别,计算属于该年龄类别的年龄指示人名的数目与至少一个年龄指示人名的总数目之比,以获得与该年龄类别相对应的年龄占比P 4i ,第一年龄预测结果包括与至少两个年龄类别一一对应的年龄占比P 4i ,其中,i = 1, 2, 3……M,M是至少两个年龄类别中年龄类别的总数目;和/或,第二年龄结果包括与至少两个年龄类别一一对应的年龄概率P 5i ,年龄概率P 5i 用于表示特定角色的年龄为对应年龄类别的概率。
上述已经结合示例描述了年龄占比P 4i 和年龄概率P 5i 的计算方式,此处不再赘述。
上述对于至少两个年龄类别中的每个年龄类别,计算属于该年龄类别的年龄指示人名的数目与至少一个年龄指示人名的总数目之比,以获得与该种年龄相对应的年龄占比P 1i 的步骤可以在至少一个年龄指示人名所指示的年龄不统一的情况下执行。如果至少一个年龄指示人名所指示的年龄是统一的,例如都指示25-35岁,则可以直接将至少一个年龄指示人名所指示的年龄作为特定角色的年龄,以获得第一年龄预测结果。
相对于与唯一年龄类别相关的年龄信息,年龄占比P 4i 和年龄概率P 5i 包含的信息更丰富,方便后续进行其他处理,例如方便对多种年龄预测结果进行综合来获得更准确的年龄信息等。
根据本发明实施例,通过第四操作和/或第五操作各自获得的年龄预测结果来确定特定角色的年龄,以获得特定角色的角色年龄信息包括:基于第一年龄预测结果确定年龄占比P 4i 最大的年龄类别为特定角色的年龄,以获得角色年龄信息;或者,基于第二年龄预测结果确定年龄概率P 5i 最大的年龄类别为特定角色的年龄,以获得角色年龄信息;或者对于至少两个年龄类别中的每个年龄类别,将该年龄类别所对应的年龄占比P 4i 和年龄概率P 5i 进行加权平均或者直接相加来获得总的年龄占比,并确定总的年龄占比最大的年龄类别为特定角色的年龄,以获得角色年龄信息。
在基于单个操作确定角色的年龄的情况下,可以直接选择占比或概率最大的年龄类别作为特定角色的年龄。在基于多个操作确定角色的年龄的情况下,可以将这些操作针对同一年龄类别计算的占比或概率进行加权平均或者直接相加,来求得该年龄类别的占比,进而确定角色的年龄。
根据本发明实施例,通过第四操作和/或第五操作各自获得的年龄预测结果来确定特定角色的年龄,以获得特定角色的角色年龄信息包括:首先执行第四操作,如果第三条件满足,则基于第一年龄预测结果确定角色年龄信息,其中,第三条件包括:查找到至少一个年龄指示人名;如果第三条件不满足,则执行第五操作并基于第二年龄预测结果确定角色性别信息。
示例性地,基于第一年龄预测结果确定角色年龄信息的步骤可以包括:基于第一年龄预测结果确定年龄占比P 4i 最大的年龄类别为目标角色的年龄,以获得角色年龄信息。基于第二年龄预测结果确定角色年龄信息的步骤可以包括:基于第二年龄预测结果确定年龄概率P 5i 最大的年龄类别为目标角色的年龄,以获得角色年龄信息。
可以通过上述第四操作和/或第五操作的方式来确定角色年龄。在通过第四操作和第五操作的方式确定角色年龄的实施例中,可以按照顺序执行第四操作和第五操作。例如,对于任一角色,可以首先按照第四操作的方式确定角色年龄,如果不存在年龄指示人名,则可以继续按照第五操作的方式确定角色年龄。第四操作的方式只需对角色的人名集合进行检查,运算量少,可以更加快速地识别出角色年龄。因此,可以首先实施第四操作中的确定角色年龄的方案。第五操作涉及年龄预测模型的应用,模型通常需要训练,并且参数量较大,计算量也大。因此,可以在通过第四操作的方案无法确定角色年龄的情况下补充实施第五操作的方案,进而帮助确定角色年龄。
根据本发明实施例,第三条件还包括:在第一年龄预测结果中,最大的年龄占比P 4i 大于第三比例阈值。
第三比例阈值可以是任何合适的值,其可以根据需要设定,本发明不对此进行限制。示例性地,第三比例阈值可以与上述第一比例阈值和第二比例阈值中的任一者相同或不同。
在考虑是否继续执行第五操作的过程中,可以进一步考虑第四操作获得的年龄预测结果的准确性是否满足要求。例如,如果在第一年龄预测结果中,最大的年龄类别占比P 1i 不大于第三比例阈值,那可能意味着最大的年龄占比P 1i 所对应的年龄类别与其他年龄类别之间的占比差距过小。因此,这一年龄预测结果的可靠性比较低,此时可以选择继续执行第五操作。
基于上述方案,可以通过上一操作的年龄预测结果的可靠性来选择是否执行后续操作,如果可靠性较高则可以采用当前操作的年龄预测结果确定角色的年龄,以减少工作量;如果可靠性较低则可以继续采用后续操作来进一步确定角色的年龄,以提高年龄的预测准确率。因此,以上方案可以尽量达到工作量和年龄预测准确率的平衡。
根据本发明实施例,至少基于至少一个人名集合确定全局角色信息包括:对于至少一个角色中的每个角色,分析该角色所对应的人名集合中的每个人名的人名特征,人名特征包括以下一项或多项:出现次数、是否包含姓氏、是否包含人名常用字;从该角色所对应的人名集合中选择人名特征满足预设要求的人名作为该角色的代表性角色名称。
根据本发明实施例,预设要求包括:在该角色所对应的人名集合中出现次数最多,或者,在包含姓氏和/或人名常用字的人名中出现次数最多。
上文描述了根据人名特征确定代表性角色名称的实施例,此处不再赘述。
根据本发明实施例,在结合全局角色信息对待处理文本中的任一目标语句进行文本分析之前,方法还包括:输出全局角色信息;接收用户输入的与全局角色信息相关的修改信息;基于修改信息对全局角色信息进行修改。
在识别出全局角色信息之后,可以通过用户对全局角色信息中存在错漏的地方进行修改。这样,可以提高全局角色信息的准确度。可以采用任何合适的输出装置输出全局角色信息。在一个示例中,语音合成***可以直接通过输出装置输出全局角色信息,此时所述输出装置可以采用显示屏和/或扬声器实现。在另一个示例中,语音合成***可以通过第一输出装置将全局角色信息输出至客户端,再由客户端通过其第二输出装置输出全局角色信息以供用户查看,此时第一输出装置可以采用有线和/或无线通信装置实现,第二输出装置可以采用显示屏和/或扬声器实现。
根据本发明实施例,结合全局角色信息对待处理文本中的任一目标语句进行文本分析包括:分析目标语句的文本类型,以获得与文本类型相对应的分析结果,文本分析结果包括与文本类型相对应的分析结果;在目标语句属于多角色类型的情况下,至少基于目标语句识别目标语句所对应的初始角色名称;从全局角色信息中检索包含初始角色名称的目标角色信息,目标角色信息与目标角色相对应;对于至少一个预设项目中的任一特定预设项目,从目标角色信息中提取与特定预设项目相对应的信息,并确定所提取的信息为文本分析结果中的与特定预设项目相对应的分析结果,其中,在特定预设项目是角色名称的情况下,所提取的信息是目标角色信息中的代表性角色名称。
对于特定预设项目以外的预设项目,可以采用常规的分析方法来对其进行分析以获得对应的分析结果。
可以理解,从全局角色信息中检索包含初始角色名称的目标角色信息的步骤以及对于至少一个预设项目中的任一特定预设项目,从目标角色信息中提取与特定预设项目相对应的信息,并确定所提取的信息为文本分析结果中的与特定预设项目相对应的分析结果的步骤在目标语句属于多角色类型的情况下执行。
至少基于目标语句识别目标语句所对应的初始角色名称的步骤可以采用常规的角色识别方法来实现,此时的识别可以是基于局部信息的角色名称识别。例如,可以从目标语句及其上下文中识别出至少一个候选角色名称,并从至少一个候选角色名称中找出与目标语句对应的角色名称。示例性地,至少基于目标语句识别目标语句所对应的初始角色名称可以包括:将目标语句、目标语句的上下文、包含至少一个候选角色名称的文本片段、全局角色信息中的一者或多者输入角色识别模型,以确定初始角色名称。
例如,根据目标语句及其上下文分析获知当前目标语句的发出者是“小王”这一角色,则可以将“小王”作为与当前的目标语句相对应的初始角色名称。
所述特定预设项目可以包括角色名称和/或角色属性。例如,如果发现与目标语句对应的初始角色名称属于全局角色信息中与某一角色相对应的别名集合中的一个人名,则可以将全局角色信息中与该角色相对应的代表性角色名称作为新的角色名称来覆盖初始角色名称,即将该角色所对应的代表性角色名称作为与目标语句对应的最终角色名称。这种情况下,特定预设项目是角色名称。例如,目标语句所对应的初始角色名称是“小王”,而全局角色信息中记录了“小王”属于“王小明”的一种别名,则可以用“王小明”覆盖“小王”作为目标语句所对应的角色名称。
示例性地,如果发现文本分析结果中与某一预设项目相对应的分析结果不符合要求,则可以从全局角色信息中找出与目标语句所对应的目标角色的一组角色信息,并用该组角色信息中与该预设项目相对应的信息替换原始的分析结果。分析结果被替换的预设项目即为特定预设项目。
通过上述方式,可以利用全局角色信息自动化修正局部识别的角色信息中存在错漏或不统一的地方,这样可以提高角色信息的识别准确率。
根据本发明实施例,在对于至少一个预设项目中的任一特定预设项目,从目标角色信息中提取与特定预设项目相对应的信息,并确定提取的信息为文本分析结果中的与特定预设项目相对应的分析结果之前,方法还包括:在目标语句属于多角色类型的情况下,分析目标语句所对应的角色属性,以获得与角色属性相对应的分析结果以及与角色属性相对应的分析结果的置信度,文本分析结果包括与角色属性相对应的分析结果;如果与角色属性相对应的分析结果的置信度低于预设置信度阈值,则确定角色属性为特定预设项目;对于至少一个预设项目中的任一特定预设项目,从目标角色信息中提取与特定预设项目相对应的信息,并确定提取的信息为文本分析结果中的与特定预设项目相对应的分析结果包括:从目标角色信息中提取角色属性信息;利用提取的角色属性信息覆盖文本分析结果中的与角色属性相对应的分析结果。
在对角色属性进行分析时,获得分析结果的同时还可以获得该分析结果的置信度。例如,可以采用性别分类模型预测目标语句所对应的角色A的角色性别,输出的结果指示该角色性别为男,其置信度(类似上述性别概率P 3i )是60%,表示该角色性别为男性的概率是60%,是女性的概率则是40%。假设预设置信度阈值是75%,由于角色A的角色性别分析结果的置信度低于预设置信度阈值,因此可以用全局角色信息中与角色A相关的角色性别信息来覆盖文本分析结果中与角色性别这一项相对应的分析结果,即覆盖原始的“男性”这一分析结果。这样,如果全局角色信息中与角色A相关的角色性别信息是“女性”,则可以将当前目标语句的角色性别分析结果修正成更加正确的结果。这有助于提高后续的语音合成的准确性,进而有助于提高用户体验。
根据本发明实施例,角色属性划分为至少两类属性,分析目标语句所对应的角色属性,以获得与角色属性相对应的分析结果以及与角色属性相对应的分析结果的置信度包括:获取待分析文本,待分析文本包括目标语句及目标语句的上下文;从全局角色信息中获取目标角色所对应的人名集合;基于目标角色所对应的人名集合从待分析文本中识别目标角色出现的所有文本片段;针对所有文本片段中的每个文本片段进行属性识别,以确定与所有文本片段一一对应的属性;对于至少两类属性中的每类属性,计算该类属性所对应的文本片段的数目与所有文本片段的总数目之比,以获得属性占比;选择属性占比最大的属性作为目标语句所对应的角色属性,以获得与角色属性相对应的分析结果;确定属性占比最大的属性的属性占比为与角色属性相对应的分析结果的置信度。
待分析文本的长度可以根据需要设定。比较可取的是,待分析文本是局部文本,即其长度小于整个待处理文本的长度。
例如,角色属性为角色性别,且角色性别划分为男性和女性两大类。假设角色A的人名集合共包括3个人名,分别在待分析文本中出现5次、10次和3次,则角色A在共出现18次。针对这18次各自对应的文本片段分别进行性别的识别,获得18个性别识别结果。统计这18个性别识别结果中每类性别的占比,例如男性占比为12/18,女性占比为6/18,则可以确定目标语句所对应的性别为男性,并且可以将12/18作为其置信度。如果12/18低于预设置信度阈值,则认为目标语句当前的性别分析结果不够准确,可以用全局角色信息中与角色A相对应的角色性别信息覆盖当前的性别分析结果。
角色属性为角色年龄时,计算置信度的方案与上述性别的示例类似,不再赘述。
上述方案为统计的方案,将同一角色的某一类属性在局部出现的频率作为置信度来衡量是否需要对该属性的分析结果进行修正。
根据本发明实施例,分析目标语句所对应的角色属性,以获得与角色属性相对应的分析结果以及与角色属性相对应的分析结果的置信度包括:获取待分析文本,待分析文本包括目标语句及目标语句的上下文;将待分析文本输入属性识别模型,以获得属性识别模型输出的与角色属性相对应的分析结果以及与角色属性相对应的分析结果的置信度。
可选地,还可以将全局角色信息、文本分析结果中与角色名称相对应的分析结果以及至少一个候选角色名称中的一者或多者输入属性识别模型。
这种方案采用模型进行属性识别,因此,可以直接将模型输出的与最大概率的属性相对应的概率作为分析结果的置信度。
根据本发明实施例,至少基于目标语句识别目标语句所对应的初始角色名称包括:获取待分析文本,待分析文本包括目标语句及目标语句的上下文;基于待分析文本提取初始候选角色名称;确定初始候选角色名称为最终候选角色名称;将全局角色信息、最终候选角色名称以及待分析文本输入角色识别模型,以获得角色识别模型输出的角色识别结果,角色识别结果用于指示目标语句所对应的角色名称为初始角色名称。
根据本发明实施例,在目标语句属于多角色类型的情况下,至少基于目标语句识别目标语句所对应的初始角色名称之后,结合全局角色信息对待处理文本中的任一目标语句进行文本分析还包括:获取待分析文本,待分析文本包括目标语句及目标语句的上下文;将全局角色信息、初始角色名称以及待分析文本输入属性识别模型,以获得属性识别模型输出的与角色属性相对应的分析结果。
如上所述,可以在进行局部的角色名称或角色属性的分析时,将全局角色信息作为角色识别模型或属性识别模型的输入之一,以使得这些模型能够借鉴全局角色信息来对角色名称或角色属性进行预测。这种方式可以改善角色识别模型或属性识别模型的预测性能。
根据本发明实施例,将所有人名中属于同一角色的人名聚类在一起,以获得与至少一个角色一一对应的至少一个人名集合包括:将所有人名中属于同一角色的人名聚类在一起,以获得与待处理文本中出现的所有角色一一对应的人名集合;从所有角色中选择所对应的人名集合中的人名的数目大于预设数目阈值的角色作为至少一个角色。
一个角色的人名在整个待处理文本中出现次数太少的话,难以收集到比较丰富的角色信息,这可能导致其全局的角色信息的准确度不太高,因此,其全局的角色信息的参考意义不大。在这种情况下,可以考虑在获取全局角色信息时,将这类角色排除在外。即,仅针对出现次数大于阈值的角色采集其全局的角色信息。
图2示出根据本发明一个实施例的文本分析方法100的流程示意图。如图2所示,获取待处理文本之后,可以采用人名NER模型检测文本中的人名。随后,可以通过聚类方式确定每个角色的代表性角色名称和别名集合。随后,可以分别识别每个角色的年龄和性别,最后获得包含各角色的代表性角色名称、别名集合、性别、年龄等信息的全局角色信息。
为了至少部分地解决现有的多角色多情绪语音合成技术单纯依靠模型无法保证最终的语音合成效果的技术问题,本发明实施例提供一种半自动多角色多情绪语音合成技术,该技术可以结合模型的高效性和人工干预的精确性等特点,可以在保证较高效率的同时获得高质量的合成语音,以更好地满足有声读物等需要多角色多情绪朗读的应用场景的需求。
根据本发明一个方面,公开一种语音合成方法,该语音合成方法主要是一种多角色多情绪语音合成方法。图1示出根据本发明一个实施例的语音合成方法300的示意性流程图。如图1所示,语音合成方法300包括步骤S310-S360。
在步骤S310,获取待处理文本。
待处理文本可以是任意长度的文本,包括但不限于:整篇文章(例如整本小说),文章中的一个章节,文章中的一个段落,或文章中的一个句子,等等。
在步骤S320,对待处理文本中的任一目标语句进行文本分析,以获得初始文本分析结果,其中,文本分析包括对至少一个预设项目的分析,至少一个预设项目包括以下一项或多项:文本类型、角色名称、角色属性和情绪类别,其中,对文本类型的分析是指判断目标语句是否属于多角色类型,多角色类型包括对白,角色属性包括角色性别和/或角色年龄。
目标语句可以是待处理文本中的任意一个或多个语句(即句子)。可以采用任何现有或将来可能出现的语句提取技术从待处理文本中提取出目标语句。例如,通常双引号内部是对白文本,因此,可以通过检测双引号的方式来识别对白文本。识别出对白文本之后,可以对该文本进行语句划分,其中的任意一个语句可以作为目标语句。语句划分的粒度可以根据需要设定。例如,对于双引号中的对白,可以将双引号中的整个对白连在一起视为一个目标语句。可选地,还可以将双引号中的对白拆分成一个个短的句子,每个句子视为一个目标语句。示例性而非限制性地,对白语句可以按照标点符号进行拆分,例如每次遇到句号就拆分一次,或者每次遇到逗号和句号均拆分一次。
对上述目标语句可以进行多角色多情绪文本分析。多角色多情绪文本分析可以首先包括文本类型分析。从待处理文本中获取目标语句之后,可以判断目标语句的文本类型。或者,可以在获取目标语句的过程中,判断目标语句的文本类型。文本类型是指目标语句是独白、对白还是旁白。示例性地,可以将在特定标点符号(例如双引号)内的目标语句视为对白。示例性地,可以将目标语句或者将目标语句及其上下文输入预训练的文本类型分析模型中进行分析,即将文本类型视为一种分类任务,通过文本类型分析模型进行分类,进而确定目标语句的文本类型。对于文本类型为独白或对白的语句,可以根据发出该独白或对白的角色名称获取与之匹配的发音人的声学模型(即本文所述语音合成模型),并进而合成该发音人的语音。而对于文本类型为旁白的语句,可以选择默认发音人的声学模型来合成默认发音人的语音。可选地,整个待处理文本中的所有旁白可以采用同一个默认发音人的声音合成。
在目标语句是对白或独白的情况下,可以进一步对目标语句进行多角色分析和多情绪分析。多角色分析包括角色识别,是对文本中对白或独白的发出者进行自动识别,识别出的角色可以用角色名称表示。此外,除了获取角色本身之外,还可以获取角色所具有的性别、年龄等属性。因此,多角色分析还可以包括角色属性识别,以识别角色的性别和/或年龄等属性。多情绪分析也称情绪识别,即对角色在特定上下文中发出对白或独白时所持有的情绪类别进行自动识别。情绪类别可以根据需要进行分类和预先设定,例如,可以将所有情绪划分为四大类:喜、怒、哀、乐。当然,可以根据需要对情绪进行更细致的划分,本发明不对此进行限制。
总的来说,在目标语句是对白或独白的情况下,文本分析所针对的预设项目可以包括文本类型、角色名称、角色属性和情绪类别中的一项或多项,此时所获得的初始文本分析结果中可以包括与每个所分析的预设项目相对应的分析结果。可以理解的是,与任一预设项目相对应的分析结果有可能有信息,也有可能没有信息,是空结果。例如,对于某一对白文本,所分析的预设项目包括情绪类别这一项,情绪识别模型有可能识别出此处的情绪是“喜”,但是也有可能识别失败,无法识别出结果,此时的分析结果就是空结果。对于存在空结果的情况,用户可以选择手动补充相关信息,这将在下文描述。
示例性地,对于文本分析操作没有涉及的项目,可以采用默认设置或由用户手动设置。
在目标语句是旁白的情况下,角色名称、角色属性和情绪类别均可以是缺省的,即这些信息可以是空的,可以直接采用默认的旁白声音(其音质、音调、语气等均是确定的)进行语音合成。因此,在目标语句是旁白的情况下,文本分析所针对的预设项目可以包括文本类型。
由于多角色多情绪语音合成对最终合成音频的质量要求较高,因此在文本分析之后可以加入人工干预来进一步优化文本分析质量,以获得质量更佳的合成语音。下面描述人工干预的实现方式。
在步骤S330,输出文本结果信息,文本结果信息包括初始文本分析结果。输出文本结果信息用于供用户查看。
可以采用任何合适的输出装置输出文本结果信息。在一个示例中,语音合成***可以直接通过输出装置输出文本结果信息,此时所述输出装置可以采用显示屏和/或扬声器实现。在另一个示例中,语音合成***可以通过第一输出装置将文本结果信息输出至客户端,再由客户端通过其第二输出装置输出文本结果信息以供用户查看,此时第一输出装置可以采用有线和/或无线通信装置实现,第二输出装置可以采用显示屏和/或扬声器实现。
本文所述的语音合成***可以包括客户端和/或服务器端,即其既可以是客户端或服务器端本身,也可以采用客户端和服务器端组合形成。客户端可以是个人计算机、移动终端等设备。
文本结果信息可以采用诸如音频信息、文字信息、视频信息、图像信息等形式中的一种或多种表示。例如,可以将初始文本分析结果以文字信息的形式直接在显示屏上显示,以供用户查看。又例如,可以将初始文本分析结果以音频信息的形式用扬声器播放出来,以供用户查看。
输出文本结果信息是为了使用户获知语音合成***当前分析获得的文本分析结果,以由用户检查文本分析结果中的各项信息是否存在错误或遗漏,用户可以选择对存在错误的地方进行改正或对遗漏的地方进行补充。
在步骤S340,接收用户输入的文本反馈信息。
示例性地,文本反馈信息可以包括针对文本分析结果中的任意一个或多个预设项目所对应的分析结果进行修改的修改信息,语音合成***可以基于文本反馈信息中与任一预设项目相关的修改信息来对该预设项目所对应的分析结果进行修改。即,当用户发现输出的初始文本分析结果存在错误或遗漏时,可以输入对应的修改信息,以修改初始文本分析结果。本文所述的修改可以包括对错误信息进行改正、对遗漏信息进行增添和对多余信息进行删除中的一项或多项。例如,如果用户发现角色名称这一项信息识别错误,则可以对角色名称进行改正,例如将“张三”改成“李四”。又例如,如果用户发现角色属性中的年龄一项未成功检测出,初始文本分析结果中缺少这项信息或者这项信息处的数据为空,则可以手动对年龄这一项信息进行补充。又例如,如果文本类型原本是旁白的被识别成了对白并相应识别出了相关的角色名称等信息,则用户可以在将文本类型改正成“旁白”的同时,将角色名称等信息删除。
示例性地,文本反馈信息还可以包括与初始文本分析结果相关的正确反馈信息(可以称为第一正确反馈信息),正确反馈信息可以用于指示初始文本分析结果没有问题,无需修改,便于通知语音合成***继续执行后续操作(例如后续的发音人适配、语音合成等操作)。
可以采用任何合适的接收装置接收文本反馈信息。在一个示例中,用户可以直接向语音合成***输入文本反馈信息,此时接收装置可以采用键盘、鼠标、麦克风和触摸屏中的一种或多种实现。在另一个示例中,用户也可以通过客户端的输入装置向客户端输入文本反馈信息,再由客户端将文本反馈信息传输至语音合成***,此时接收装置可以采用有线和/或无线通信装置实现。
在步骤S350,在文本反馈信息包括与初始文本分析结果相关的第一修改信息的情况下,基于第一修改信息对初始文本分析结果进行修改,以获得新文本分析结果。
第一修改信息用于指示初始文本分析结果存在问题,需要修改。如果用户输入了针对初始文本分析结果的修改信息,则可以根据修改信息对相应的信息部分进行修改。步骤S340和S350可以称为人工修改(或人工配置或人工干预)步骤。
在步骤S360,至少基于最终文本分析结果对目标语句进行语音合成,以获得与目标语句相对应的最终合成语音,其中,在未对初始文本分析结果进行修改的情况下,最终文本分析结果为初始文本分析结果,并且在对初始文本分析结果进行修改的情况下,最终文本分析结果为新文本分析结果。
示例性地,如果初始文本分析结果是没有问题的,无需对其进行修改,则可以将初始文本分析结果直接确定为最终文本分析结果。反之,如果初始文本分析结果存在问题,并按照用户指示的修改信息进行了修改,则可以将新文本分析结果确定为最终文本分析结果。最终文本分析结果是用来参与最终的语音合成的文本分析结果。
示例性地,可以将最终文本分析结果应用于发音人适配操作,通过发音人适配找到与目标语句所对应的角色(或者角色和情绪)相匹配的发音人信息,并找到该发音人信息所对应的声学模型。最后,可以基于声学模型进行语音合成,获得所需的合成语音。
现有的单纯依靠模型的多角色多情绪语音合成方案具有以下缺点:单靠模型无法保证最终合成效果,单个模型的实际效果(准确率、召回率等)很难达到100%,而各种模型的错误叠加会进一步加剧这种影响。而采用本发明提供的多角色多情绪语音合成技术,在文本分析之后加入人工干预的方式可以及时修正针对文本的分析结果,避免错误的进一步叠加。这种方案可以结合模型的高效性和人工干预的精确性等特点,可以在保证较高效率的同时获得高质量的合成语音,以更好地满足有声读物等需要多角色多情绪朗读的应用场景的需求。
示例性地,对待处理文本中的任一目标语句进行文本分析(步骤S320)可以包括:利用文本分析模型对目标语句进行文本分析;在基于第一修改信息对初始文本分析结果进行修改(步骤S350)之后,方法300还可以包括:将新文本分析结果作为标注数据,并将初始文本分析结果作为预测数据,计算文本分析模型的损失函数;利用所计算的损失函数对文本分析模型进行优化。
文本分析模型可以包括文本类型分析模型、角色识别模型、属性识别模型和情绪识别模型中的一个或多个。可选地,在至少一个预设项目包括文本类型的情况下,文本分析模型可以包括对应的文本类型分析模型;在至少一个预设项目包括角色名称的情况下,文本分析模型可以包括对应的角色识别模型;在至少一个预设项目包括角色属性的情况下,文本分析模型可以包括对应的属性识别模型;在至少一个预设项目包括情绪类别的情况下,文本分析模型可以包括对应的情绪识别模型。
示例性地,文本类型分析模型可以将目标语句和/或目标语句的上下文作为输入,将文本类型分析结果作为输出。示例性地,角色识别模型可以将目标语句和/或目标语句的上下文作为输入,将角色名称分析结果作为输出。示例性地,属性识别模型可以将目标语句、目标语句的上下文和角色名称分析结果中的一者或多者作为输入,将角色属性分析结果作为输出。示例性地,情绪识别模型可以将目标语句、目标语句的上下文、角色名称分析结果和角色属性分析结果中的一者或多者作为输入,将情绪类别分析结果作为输出。
文本类型分析模型、角色识别模型、属性识别模型和情绪识别模型中的每个模型均可以采用现有或将来可能出现的合适模型实现,本文不做赘述。
在本文中,任一模型(例如文本类型分析模型、角色识别模型、属性识别模型、情绪识别模型或下文描述的发音人适配模型、语音合成模型等)均可以采用规则+网络模型的方式构建。上述规则可以是任何合适的机器学习规则。示例性而非限制性地,上述网络模型可以采用诸如卷积神经网络模型(CNN)、循环神经网络模型(RNN)、转换器模型(Transformer)等网络模型中的一种或多种实现。
对于文本分析模型来说,输入可以包括目标语句或者目标语句及其上下文等信息,输出可以为与目标语句对应的文本分析结果。初始文本分析结果可以作为文本分析模型的自动分析结果,即预测数据,而用户修改获得的新文本分析结果则可以作为标注数据(ground truth)。基于预测数据和标注数据可以计算损失函数,并可以基于该损失函数优化文本分析模型。本领域技术人员可以理解标注数据、预测数据以及损失函数的含义及其实现方式,本文不做赘述。
基于损失函数对模型进行优化可以是诸如基于损失函数进行反向传播和梯度计算,不断对模型的参数进行更新,直至模型收敛。本领域技术人员可以理解模型优化的实现方式,本文不赘述。
用户作为语音合成***的使用者,可以利用语音合成***合成自己想要的多角色多情绪音频。同时,语音合成***也可以将用户每次使用过程中产生的数据收集起来,通过用户对文本分析结果的修改来反过来优化语音合成***采用的文本分析模型。这种优化过程是可以迭代的,随着用户使用时间越来越长,模型的优化效果越来越好,模型输出的结果也越来越可靠,使得用户再次使用时所需要进行的修改也就越来越少。
在多角色多情绪语音合成领域,相关模型的训练数据非常难获取。通过人工从零开始构建大规模高质量的多情绪多角色训练数据难度大,而采用模型与人工相结合的方式不但可以为用户提供需要的语音合成服务,并且可以同步实现模型的迭代式优化。并且,对于语音合成***来说,其可以从大量用户中获取丰富的训练数据,由此可以大大降低模型训练数据的获取难度和人工标注的难度,并同时可以大幅提升模型的训练效率。
因此,通过模型加人工干预的语音合成方式,可以获得高质量的文本分析结果,同时还可以扩充模型的训练数据,持续迭代优化模型以改善模型的数据处理效果。
示例性地,文本分析模型包括与至少一个预设项目一一对应的至少一个预设分析模型,第一修改信息包括对初始文本分析结果中与特定预设项目相对应的分析结果的修改信息;将新文本分析结果作为标注数据,并将初始文本分析结果作为预测数据,计算文本分析模型的损失函数包括:将新文本分析结果中与特定预设项目相对应的分析结果作为标注数据,并将初始文本分析结果中与特定预设项目相对应的分析结果作为预测数据,计算与特定预设项目相对应的特定预设分析模型的特定损失函数;利用所计算的损失函数对文本分析模型进行优化包括:利用特定损失函数对特定预设分析模型进行优化。
上文已经描述了每个预设项目所对应的预设分析模型是哪种,此处不再赘述。对于每个预设项目来说,如果用户有针对该预设项目的分析结果进行修改,则可以对该预设项目所对应的预设分析模型进行训练。
示例性地,至少基于最终文本分析结果对目标语句进行语音合成(步骤S360)包括:基于最终文本分析结果进行发音人适配,以确定与目标语句匹配的初始发音人信息;确定初始发音人信息为最终发音人信息;基于最终发音人信息从模型库中调用对应的语音合成模型,其中,模型库用于存储与多组不同的发音人信息一一对应的语音合成模型;以及利用所调用的语音合成模型对目标语句进行语音合成。
发音人也可以称为语音库(即音库)。可以预先将许多发音人(音库)的声学模型存储起来。找到与目标语句匹配的发音人(音库)之后,可以基于该发音人的声学模型进行语音合成。需注意,在本文中,每组发音人信息是唯一的,且每组发音人信息对应于唯一的声学模型。
在一个示例中,对于同一个发音人来说,其可以具有唯一的发音人信息(例如用SpeakerID表示),且具有唯一对应的声学模型。例如,发音人是自然人小红,针对其仅创建单一的声学模型,如果识别出当前目标语句的情绪类别是“喜”,则可以将“喜”这一情绪类别作为声学模型的变量,与目标语句一起输入小红的声学模型,获得以小红声音发出的带有“喜”的情绪且内容与目标语句一致的语音。
在另一个示例中,对于同一个发音人来说,其可以具有多于一组的发音人信息,每组发音人信息对应着一个声学模型。例如,发音人是自然人小红,针对同一自然人小红可以形成两组发音人信息,一组是“小红+喜”,对应于小红在高兴状态下的声音,另一组是“小红+悲”,对应于小红在难过状态下的声音,这两组发音人信息可以用不同的标识符(例如SoundID)来表示。并且,针对上述两组发音人信息,可以分别创建两种声学模型。示例性地,可以基于目标语句的角色名称、角色属性、情绪类别确定对应的发音人信息,进而获得声学模型。这种情况下,可以直接将目标语句输入声学模型,即可合成获得所需的角色和情绪均匹配的语音。
模型库可以存储若干上述声学模型。模型库可以采用单一的存储空间实现,也可以采用分布式的存储空间实现(例如分布式存储在多个服务器单元上)。
示例性地,语音合成***可以基于目标语句、目标语句的上下文、文本类型分析结果、角色名称分析结果、角色属性分析结果、情绪类别分析结果等信息中的至少部分信息自动为目标语句匹配合适的发音人信息,进而获得对应的语音合成模型。随后,可以利用语音合成模型进行语音合成,获得所需的合成语音。
示例性地,基于最终文本分析结果进行发音人适配包括:基于最终文本分析结果中与角色名称、角色属性和情绪类别分别对应的分析结果进行发音人适配,以获得初始发音人信息;利用语音合成模型对目标语句进行语音合成包括:将目标语句输入语音合成模型,以获得语音合成模型输出的最终合成语音。
可以依据发音人本人的性别、年龄和情绪创建对应的声学模型,这样,同一发音人可以具有多于一组发音人信息以及多于一个声学模型。示例性地,不同组发音人信息可以用不同的标识符表示,进行发音人适配时找到与目标语句的角色和情绪相匹配的标识符即可。这种情况可以直接基于目标语句进行语音合成。
示例性地,基于最终文本分析结果进行发音人适配包括:基于最终文本分析结果中与角色名称和角色属性分别对应的分析结果进行发音人适配,以获得初始发音人信息;利用语音合成模型对目标语句进行语音合成包括:将目标语句和最终文本分析结果中与情绪类别相对应的分析结果输入语音合成模型,以获得语音合成模型输出的最终合成语音。
可以依据发音人本人的性别、年龄创建对应的声学模型,这样,同一发音人具有唯一发音人信息以及唯一的声学模型。如上所述,对于这种情况,可以将目标语句的情绪类别信息与目标语句一起输入声学模型,获得最终合成语音。
示例性地,在确定初始发音人信息为最终发音人信息之后且在基于最终发音人信息从模型库中调用对应的语音合成模型之前,至少基于最终文本分析结果对目标语句进行语音合成(步骤S360)还可以包括:输出初始发音人信息;接收用户输入的发音人反馈信息;在发音人反馈信息包括与初始发音人信息相关的第二修改信息的情况下,基于第二修改信息对初始发音人信息进行修改,以获得新发音人信息;将最终发音人信息更新为新发音人信息。
与初始文本分析结果类似地,用户也可以查看初始发音人信息并在需要时对其进行修改。可以参考初始文本分析结果的修改方式理解初始发音人信息的修改方式,此处不再赘述。
示例性地,文本反馈信息还可以包括与初始发音人信息相关的正确反馈信息(可以称为第二正确反馈信息),正确反馈信息可以用于指示初始发音人信息没有问题,无需修改,便于通知语音合成***继续执行后续操作(例如后续的基于语音合成模型进行语音合成等操作)。
示例性地,如果初始发音人信息是没有问题的,无需对其进行修改,则可以将初始发音人信息直接确定为最终发音人信息。反之,如果初始发音人信息存在问题,并按照用户指示的修改信息进行了修改,则可以将新发音人信息确定为最终发音人信息。最终发音人信息是用来参与最终的语音合成的发音人信息。
对于角色与发音人(音库)均较多(如数以百计)的场景,单纯依靠模型进行发音人适配的方式难以避免匹配错误的情况,而完全依靠手工配置文本与发音人信息的对应关系则比较困难,效率会比较低。采用模型+手工结合的方式,可以首先自动匹配发音人信息,对于存在错误的情况,再由用户手动修改。这种方案可以兼顾发音人适配的效率和准确度。
此外,采用上述方案,可以将初始文本分析结果和初始发音人信息均输出,以由用户对初始文本分析结果和初始发音人信息整体进行查看和需要时的修改,这种方案可以从整体上对语音合成效果进行优化。现有技术主要集中在情感风格、角色预测等单个任务上,对多角色多情绪语音合成方法的整体考虑较少。然而,单点优化难以保证整体效果。针对单个任务的效果进行优化很难保证整体的效果,而从整体来进行优化则可以有效避免这一问题。
示例性地,基于最终文本分析结果进行发音人适配包括:利用发音人适配模型基于最终文本分析结果进行发音人适配;在基于第二修改信息对初始发音人信息进行修改之后,方法300还可以包括:将新发音人信息作为标注数据,并将初始发音人信息作为预测数据,计算发音人适配模型的损失函数;利用所计算的损失函数对发音人适配模型进行优化。
在用户对初始发音人信息进行修改的情况下,可以通过新发音人信息和初始发音人信息对发音人适配模型进行优化。发音人适配模型的优化与上述文本分析模型的优化类似,可以参考上文关于文本分析模型的优化方式的描述理解发音人适配模型的优化方式,本文不做赘述。
现有技术中,针对文本分析模型和发音人适配模型的训练均是单独训练的,这些模型的训练数据通常来源于不同的语句,这种训练方案难以做到语音合成***的整体优化。而在本实施例中,采用同一目标语句的相关信息作为文本分析模型和发音人适配模型的训练数据,保证文本分析模型和发音人适配模型的数据来源的统一性,这种方案可以获得针对整个语音合成***的更好优化。
示例性地,任一当前时刻下的目标语句、文本分析结果、发音人信息以及合成语音构建为统一形式的多元组数据结构,其中,多元组数据结构表示为<Content, Type,Character, Gender, Age, Emotion, SoundID, Audio>,其中,Content表示目标语句的文本内容,Type表示目标语句的文本类型,Character表示目标语句所对应的角色名称,Gender表示目标语句所对应的角色性别,Age表示目标语句所对应的角色年龄,Emotion表示目标语句所对应的情绪类别,SoundID表示目标语句所对应的发音人信息,Audio表示目标语句所对应的合成语音。
在整个语音合成的过程中,可以采用统一形式的多元组数据结构来表示目标语句、文本分析结果、发音人信息以及合成语音这些信息。任一当前时刻下的文本分析结果可以是初始文本分析结果或新文本分析结果,当然,还可以是初始文本分析结果和新文本分析结果之间的中间状态结果。例如,目标语句+初始文本分析结果可以采用<Content, Type`, Character`, Gender`, Age`, Emotion`>表示,用户首先对其中的角色名称一项的分析结果进行修改,此时该多元组数据结构更新为<Content, Type`, Character, Gender`,Age`, Emotion`>,随后,用户对其中的角色性别一项的分析结果进行修改,则多元组数据结构可以更新为<Content, Type`, Character, Gender, Age`, Emotion`>,依此类推,最终全部修改完成之后,将整个多元组数据结构更新为<Content, Type, Character,Gender, Age, Emotion>。
类似地,任一当前时刻下的发音人信息可以是初始发音人信息或新发音人信息。任一当前时刻下的合成语音可以是最终合成语音或下述初始合成语音。
采用多元组数据结构来表征各种信息的方案,便于在语音合成***的不同算法模块之间采用统一的数据结构进行信息传递,这有助于简化处理任务,有利于提高***的处理效率。
示例性地,对待处理文本中的任一目标语句进行文本分析(步骤S320)可以包括:获取目标语句的上下文;基于目标语句以及目标语句的上下文提取初始候选角色名称;确定初始候选角色名称为最终候选角色名称;通过最终候选角色名称确定目标语句所对应的角色名称。
通常单凭当前的目标语句难以判断发出语句的角色是哪个。因此,结合目标语句的上下文可以更好地识别到发出目标语句的角色。可以从目标语句及其上下文中提取若干候选角色名称,并从中挑选出合适的候选角色名称作为与目标语句所对应的角色名称。上述角色名称的识别方式仅是示例而非对本发明的限制,本发明可以采用任何现有或将来可能出现的角色识别方法确定与目标语句相对应的角色名称。
示例性地,通过最终候选角色名称确定目标语句所对应的角色名称可以包括:将候选角色名称和/或包含候选角色名称的文本片段、目标语句、目标语句的上下文输入角色识别模型,以获得角色识别模型输出的角色识别结果,所述角色识别结果用于指示与目标语句相对应的角色名称。
示例性地,文本结果信息还包括初始候选角色名称,在确定初始候选角色名称为最终候选角色名称之后且在通过最终候选角色名称确定目标语句所对应的角色名称之前,方法300还可以包括:在文本反馈信息包括与初始候选角色名称相关的第三修改信息的情况下,基于第三修改信息对初始候选角色名称进行修改,以获得新候选角色名称;将最终候选角色名称更新为新候选角色名称。
与初始文本分析结果和初始发音人信息类似地,初始候选角色名称也可以输出并由用户根据需要进行修改。可以用修改后的新候选角色名称覆盖原来的最终候选角色名称以使得最终候选角色名称更新为新候选角色名称。可以参考上文关于初始文本分析结果和初始发音人信息的修改方式理解初始候选角色名称的修改方式,此处不赘述。
示例性地,基于目标语句以及目标语句的上下文提取初始候选角色名称包括:利用人名命名实体识别模型基于目标语句以及目标语句的上下文提取初始候选角色名称;在基于第三修改信息对初始候选角色名称进行修改之后,方法300还可以包括:将新候选角色名称作为标注数据,并将初始候选角色名称作为预测数据,计算人名命名实体识别模型的损失函数;利用所计算的损失函数对人名命名实体识别模型进行优化。
人名命名实体识别(NER)模型可以识别文本中包含的各种人名。通过人名NER模型可以提取出若干初始候选角色名称。
与文本分析模型和发音人适配模型类似地,人名NER模型也可以基于自动分析结果(即初始候选角色名称)以及人工修改结果(即新候选角色名称)进行优化。模型优化的方式可以参考上文描述,此处不赘述。
示例性地,在输出文本结果信息(步骤S330)之前,方法300还可以包括:接收与目标语句相关的信息输出指令;其中,输出文本结果信息的步骤响应于信息输出指令的接收而执行。
如果待处理文本包含的语句数量很大,都需要逐一由用户查看并根据需要修改是非常耗费用户时间和精力的,因此,用户可以根据需要选择是否对当前语句进行查看和修改。当用户想要对当前语句进行查看和修改时,可以向语音合成***直接或间接(例如经由客户端)输入信息输出指令,语音合成***在接收到信息输出指令的情况下,才输出文本结果信息。这种方案可以为用户提供自由选择若干语句进行查看和修改的选择权,便于用户自行控制人工干预的深度,这种方案用户体验比较好。
示例性地,在接收与目标语句相关的信息输出指令之前,方法300还可以包括:至少基于初始文本分析结果进行语音合成,以获得与目标语句相对应的初始合成语音;以及输出初始合成语音。
可以在获得初始文本分析结果之后,先自动进行语音合成,获得初始合成语音,并将初始合成语音输出。这样,用户可以先查看一下按照当前的初始文本分析结果(及初始发音人信息)进行语音合成的效果,便于用户初步了解初始文本分析结果(及初始发音人信息)的哪个部分存在问题。如果发现初始文本分析结果(及初始发音人信息)存在问题,则用户可以发出信息输出指令,指示语音合成***输出文本结果信息供用户查看并进行相应修改。
图4示出根据本发明一个实施例的多角色多情绪语音合成方法的处理流程的示意图。参见图4,示出多角色多情绪语音合成方法的处理流程如下:
①多角色多情绪文本分析,包括三个方面:
⑴ 文本类型分析,区分每一个句子是对白、独白还是旁白,并将对白或独白语句提取出来,此时可以获得包含目标语句本身和文本类型分析结果的数据,其形式化描述为:<Content, Type`>;
⑵ 多角色分析,包括三个步骤:
a. 人名NER,即候选角色名称提取;
b. 角色识别,识别目标语句所对应的角色名称,此时可以获得包含目标语句本身、文本类型分析结果和角色名称分析结果的数据,其形式化描述为:<Content, Type`,Character`>;
c. 角色属性(性别、年龄等)识别,自动提取角色的相关属性,此时可以获得包含目标语句本身、文本类型分析结果、角色名称分析结果和角色属性分析结果的数据,其形式化描述为:<Content, Type`, Character`, Gender`, Age`>;
⑶ 多情绪分析,根据目标语句及其上下文、角色名称、角色属性等信息预测目标语句所对应的情绪类别,此时可以获得包含目标语句本身和初始文本分析结果(初始文本分析结果包括文本类型分析结果、角色名称分析结果、角色属性分析结果和情绪类别分析结果)的数据(简称为处理结果1),其形式化描述为:<Content, Type`, Character`,Gender`, Age`, Emotion`>;
②人工配置。人工根据上下文信息对①中有问题的地方进行修改,以获得较为准确的角色、情绪等信息,此时可以获得包含目标语句本身和新文本分析结果的数据(简称为处理结果2),其形式化描述为:<Content, Type, Character, Gender, Age, Emotion >;
③发音人(音库)适配,即根据目标语句及其上下文、角色名称、角色属性、情绪类别等信息自动适配发音人信息,此时可以获得包含目标语句本身、新文本分析结果和初始发音人信息的数据(简称为处理结果3),其形式化描述为:<Content, Type, Character,Gender, Age, Emotion, SoundID`>;
④多角色多情绪语音合成。在③的基础上,调用对应的语音合成模型进行合成以获得最终合成语音,此时可以获得包含目标语句本身、新文本分析结果、初始发音人信息和最终合成语音的数据(简称为处理结果4),其形式化描述为:<Content, Type, Character,Gender, Age, Emotion, SoundID`, Audio>。
图4所示的语音合成流程仅是示例而非对本发明的限制,例如在发音人适配之后还可以再次执行人工配置操作(只是这次修改的是发音人信息),这种情况下可以获得新发音人信息,进而获得新的数据结构<Content, Type, Character, Gender, Age, Emotion,SoundID>。
可以将上文描述的文本分析方法100这种全局配置方案与语音合成方法300这种人工配置方案结合在一起,即可以在对待处理文本中的任一目标语句进行文本分析时结合全局角色信息进行分析,分析获得的文本分析结果可以进一步由用户进行查看和必要时的修改。如果某一角色的对白在整个待处理文本中属于高频内容,而初始文本分析结果中对该角色的识别错误相对较多时,那么人工干预环节就需要做非常多的重复修改。这会导致人工干预过程的效率低下,增加整个语音合成的时间(人工)开销,并且会大大降低用户体验。针对这一问题,可以在针对局部语句进行文本分析之前进行全局角色信息的配置,通过全局角色信息来尽量全地收集整个文本中出现的角色信息。这种方式可以有效减少人工配置的工作量。比较大的待处理文本(例如中长篇小说)中的对白数量往往成千上万,通过配置全局角色信息,可以大大减少需要用户修改的数据量,进而提高语音合成的效率,提高用户体验。
示例性地,在对待处理文本中的任一目标语句进行文本分析,以获得初始文本分析结果之前,方法还包括:对待处理文本进行人名识别,以确定待处理文本中出现的所有人名;将所有人名中属于同一角色的人名聚类在一起,以获得与至少一个角色一一对应的至少一个人名集合;至少基于至少一个人名集合确定全局角色信息,其中,全局角色信息包括与至少一个角色一一对应的至少一组角色信息,每组角色信息包括对应角色的代表性角色名称和别名集合,别名集合包括对应角色的人名集合中除代表性角色名称以外的人名;对待处理文本中的任一目标语句进行文本分析,以获得初始文本分析结果包括:结合全局角色信息对目标语句进行文本分析,以获得初始文本分析结果。
示例性地,至少一组角色信息中的每组角色信息还包括对应角色的角色属性信息,角色属性信息包括角色性别信息和/或角色年龄信息。
示例性地,角色属性信息包括角色性别信息,至少基于至少一个人名集合确定全局角色信息包括:对于至少一个角色中的任一特定角色,通过第一操作、第二操作和第三操作中的一者或多者各自获得的性别分类结果来确定特定角色的性别,以获得特定角色的角色性别信息;其中,第一操作包括:从特定角色所对应的人名集合中查找能够指示性别的性别指示人名;如果查找到至少一个性别指示人名,则基于至少一个性别指示人名所指示的性别分析特定角色的性别,以获得第一性别分类结果;其中,第二操作包括:从待处理文本中查找与特定角色所对应的人名集合中的任意一个或多个人名一一对应地匹配的一个或多个人称代词集合,每个人称代词集合包括一个或多个人称代词;如果查找到至少一个人称代词集合,则基于至少一个人称代词集合中的每个人称代词所指示的性别分析特定角色的性别,以获得第二性别分类结果;其中,第三操作包括:对于特定角色所对应的人名集合中的每个人名,将包含该人名的文本片段、包含该人名的特定语句以及特定语句的上下文输入性别分类模型,以获得性别分类模型输出的第三性别分类结果,其中,第三性别分类结果用于指示特定角色的性别。
示例性地,角色性别划分为至少两种性别,其中,基于至少一个性别指示人名所指示的性别分析特定角色的性别,以获得第一性别分类结果包括:确定至少一个性别指示人名中的每个性别指示人名所指示的性别;对于至少两种性别中的每种性别,计算属于该种性别的性别指示人名的数目与至少一个性别指示人名的总数目之比,以获得与该种性别相对应的第一性别占比P 1i ,第一性别分类结果包括与至少两种性别一一对应的第一性别占比P 1i ,其中,i = 1, 2, 3……N,N是至少两种性别中性别的总数目;和/或,基于至少一个人称代词集合中的每个人称代词所指示的性别分析特定角色的性别,以获得第二性别分类结果包括:确定至少一个人称代词集合中的每个人称代词所指示的性别;对于至少两种性别中的每种性别,计算属于该种性别的人称代词的数目与至少一个人称代词集合中的所有人称代词的总数目之比,以获得与该种性别相对应的第二性别占比P 2i ,第二性别分类结果包括与至少两种性别一一对应的第二性别占比P 2i ;和/或,第三性别分类结果包括与至少两种性别一一对应的性别概率P 3i ,性别概率P 3i 用于表示特定角色的性别为对应性别的概率。
示例性地,通过第一操作、第二操作和第三操作中的一者或多者各自获得的性别分类结果来确定特定角色的性别,以获得特定角色的角色性别信息包括:基于第一性别分类结果确定第一性别占比P 1i 最大的性别为特定角色的性别,以获得角色性别信息;或者,基于第二性别分类结果确定第二性别占比P 2i 最大的性别为特定角色的性别,以获得角色性别信息;或者基于第三性别分类结果确定性别概率P 3i 最大的性别为特定角色的性别,以获得角色性别信息;或者,对于至少两种性别中的每种性别,将该种性别所对应的第一性别占比P 1i 、第二性别占比P 2i 和性别概率P 3i 中的两者或三者进行加权平均或者直接相加来获得总的性别占比,并确定总的性别占比最大的性别为特定角色的性别,以获得角色性别信息。
示例性地,通过第一操作、第二操作和第三操作中的一者或多者各自获得的性别分类结果来确定特定角色的性别,以获得特定角色的角色性别信息包括:首先执行第一操作,如果第一条件满足,则基于第一性别分类结果确定角色性别信息,其中,第一条件包括:查找到至少一个性别指示人名;如果第一条件不满足,则执行第二操作,如果第二条件满足,则基于第二性别分类结果确定角色性别信息,其中,第二条件包括:查找到至少一个人称代词集合;如果第二条件不满足,则执行第三操作并基于第三性别分类结果确定角色性别信息。
示例性地,第一条件还包括:在第一性别分类结果中,最大的第一性别占比P 1i 大于第一比例阈值;和/或第二条件还包括:在第二性别分类结果中,最大的第二性别占比P 2i 大于第二比例阈值。
示例性地,从待处理文本中查找与特定角色所对应的人名集合中的任意一个或多个人名一一对应地匹配的一个或多个人称代词集合包括:对于特定角色所对应的人名集合中的每个人名,获取包含该人名的至少一个特定语句以及至少一个特定语句各自的上下文;对于至少一个特定语句中的每个特定语句,从该特定语句以及该特定语句的上下文中查找距离该人名最近的人称代词作为与该人名相匹配的人称代词。
示例性地,角色属性信息包括角色年龄信息,至少基于至少一个人名集合确定全局角色信息包括:对于至少一个角色中的任一特定角色,通过第四操作和/或第五操作各自获得的年龄预测结果来确定特定角色的年龄,以获得特定角色的角色年龄信息;其中,第四操作包括:从特定角色所对应的人名集合中查找能够指示年龄的年龄指示人名;如果查找到至少一个年龄指示人名,则基于至少一个年龄指示人名所指示的年龄分析特定角色的年龄,以获得第一年龄预测结果;其中,第五操作包括:对于特定角色所对应的人名集合中的每个人名,将包含该人名的文本片段、包含该人名的特定语句以及特定语句的上下文输入年龄预测模型,以获得年龄预测模型输出的第二年龄预测结果,其中,第二年龄预测结果用于指示特定角色的年龄。
示例性地,角色年龄划分为至少两个年龄类别,其中,基于至少一个年龄指示人名所指示的年龄分析特定角色的年龄,以获得第一年龄预测结果包括:确定至少一个年龄指示人名中的每个年龄指示人名所指示的年龄类别;对于至少两个年龄类别中的每个年龄类别,计算属于该年龄类别的年龄指示人名的数目与至少一个年龄指示人名的总数目之比,以获得与该年龄类别相对应的年龄占比P 4i ,第一年龄预测结果包括与至少两个年龄类别一一对应的年龄占比P 4i ,其中,i = 1, 2, 3……M,M是至少两个年龄类别中年龄类别的总数目;和/或,第二年龄结果包括与至少两个年龄类别一一对应的年龄概率P 5i ,年龄概率P 5i 用于表示特定角色的年龄为对应年龄类别的概率。
示例性地,通过第四操作和/或第五操作各自获得的年龄预测结果来确定特定角色的年龄,以获得特定角色的角色年龄信息包括:基于第一年龄预测结果确定年龄占比P 4i 最大的年龄类别为特定角色的年龄,以获得角色年龄信息;或者,基于第二年龄预测结果确定年龄概率P 5i 最大的年龄类别为特定角色的年龄,以获得角色年龄信息;或者对于至少两个年龄类别中的每个年龄类别,将该年龄类别所对应的年龄占比P 4i 和年龄概率P 5i 进行加权平均或者直接相加来获得总的年龄占比,并确定总的年龄占比最大的年龄类别为特定角色的年龄,以获得角色年龄信息。
示例性地,通过第四操作和/或第五操作各自获得的年龄预测结果来确定特定角色的年龄,以获得特定角色的角色年龄信息包括:首先执行第四操作,如果第三条件满足,则基于第一年龄预测结果确定角色年龄信息,其中,第三条件包括:查找到至少一个年龄指示人名;如果第三条件不满足,则执行第五操作并基于第二年龄预测结果确定角色性别信息。
示例性地,第三条件还包括:在第一年龄预测结果中,最大的年龄占比P 4i 大于第三比例阈值。
示例性地,至少基于至少一个人名集合确定全局角色信息包括:对于至少一个角色中的每个角色,分析该角色所对应的人名集合中的每个人名的人名特征,人名特征包括以下一项或多项:出现次数、是否包含姓氏、是否包含人名常用字;从该角色所对应的人名集合中选择人名特征满足预设要求的人名作为该角色的代表性角色名称。
示例性地,预设要求包括:在该角色所对应的人名集合中出现次数最多,或者,在包含姓氏和/或人名常用字的人名中出现次数最多。
示例性地,在对待处理文本中的任一目标语句进行文本分析,以获得初始文本分析结果之前,方法还包括:输出全局角色信息;接收用户输入的与全局角色信息相关的第四修改信息;基于第四修改信息对全局角色信息进行修改。
示例性地,结合全局角色信息对目标语句进行文本分析,以获得初始文本分析结果包括:分析目标语句的文本类型,以获得与文本类型相对应的分析结果,文本分析结果包括与文本类型相对应的分析结果;在目标语句属于多角色类型的情况下,至少基于目标语句识别目标语句所对应的初始角色名称;从全局角色信息中检索包含初始角色名称的目标角色信息,目标角色信息与目标角色相对应;对于至少一个预设项目中的任一特定预设项目,从目标角色信息中提取与特定预设项目相对应的信息,并确定所提取的信息为初始文本分析结果中的与特定预设项目相对应的分析结果,其中,在特定预设项目是角色名称的情况下,所提取的信息是目标角色信息中的代表性角色名称。
示例性地,在对于至少一个预设项目中的任一特定预设项目,从目标角色信息中提取与特定预设项目相对应的信息,并确定提取的信息为初始文本分析结果中的与特定预设项目相对应的分析结果之前,方法还包括:在目标语句属于多角色类型的情况下,分析目标语句所对应的角色属性,以获得与角色属性相对应的分析结果以及与角色属性相对应的分析结果的置信度,初始文本分析结果包括与角色属性相对应的分析结果;如果与角色属性相对应的分析结果的置信度低于预设置信度阈值,则确定角色属性为特定预设项目;对于至少一个预设项目中的任一特定预设项目,从目标角色信息中提取与特定预设项目相对应的信息,并确定提取的信息为初始文本分析结果中的与特定预设项目相对应的分析结果包括:从目标角色信息中提取角色属性信息;利用提取的角色属性信息覆盖初始文本分析结果中的与角色属性相对应的分析结果。
示例性地,角色属性划分为至少两类属性,分析目标语句所对应的角色属性,以获得与角色属性相对应的分析结果以及与角色属性相对应的分析结果的置信度包括:获取待分析文本,待分析文本包括目标语句及目标语句的上下文;从全局角色信息中获取目标角色所对应的人名集合;基于目标角色所对应的人名集合从待分析文本中识别目标角色出现的所有文本片段;针对所有文本片段中的每个文本片段进行属性识别,以确定与所有文本片段一一对应的属性;对于至少两类属性中的每类属性,计算该类属性所对应的文本片段的数目与所有文本片段的总数目之比,以获得属性占比;选择属性占比最大的属性作为目标语句所对应的角色属性,以获得与角色属性相对应的分析结果;确定属性占比最大的属性的属性占比为与角色属性相对应的分析结果的置信度。
示例性地,分析目标语句所对应的角色属性,以获得与角色属性相对应的分析结果以及与角色属性相对应的分析结果的置信度包括:获取待分析文本,待分析文本包括目标语句及目标语句的上下文;将待分析文本输入属性识别模型,以获得属性识别模型输出的与角色属性相对应的分析结果以及与角色属性相对应的分析结果的置信度。
示例性地,至少基于目标语句识别目标语句所对应的初始角色名称包括:获取待分析文本,待分析文本包括目标语句及目标语句的上下文;基于待分析文本提取初始候选角色名称;确定初始候选角色名称为最终候选角色名称;将全局角色信息、最终候选角色名称以及待分析文本输入角色识别模型,以获得角色识别模型输出的角色识别结果,角色识别结果用于指示目标语句所对应的角色名称为初始角色名称。
示例性地,在目标语句属于多角色类型的情况下,至少基于目标语句识别目标语句所对应的初始角色名称之后,结合全局角色信息对目标语句进行文本分析,以获得初始文本分析结果还包括:获取待分析文本,待分析文本包括目标语句及目标语句的上下文;将全局角色信息、初始角色名称以及待分析文本输入属性识别模型,以获得属性识别模型输出的与角色属性相对应的分析结果。
示例性地,将所有人名中属于同一角色的人名聚类在一起,以获得与至少一个角色一一对应的至少一个人名集合包括:将所有人名中属于同一角色的人名聚类在一起,以获得与待处理文本中出现的所有角色一一对应的人名集合;从所有角色中选择所对应的人名集合中的人名的数目大于预设数目阈值的角色作为至少一个角色。
图5示出了根据本发明一个实施例的在语音合成过程中结合全局角色信息进行文本分析的示意图。可以参考图5理解上述实施例。
根据本发明另一方面,提供一种文本分析装置。图6示出了根据本发明一个实施例的文本分析装置600的示意性框图。
如图6所示,根据本发明实施例的文本分析装置600包括获取模块610、人名识别模块620、聚类模块630、全局确定模块640和文本分析模块650。所述各个模块可分别执行上文中结合图1-2描述的文本分析方法100的各个步骤/功能。以下仅对该文本分析装置600的各部件的主要功能进行描述,而省略以上已经描述过的细节内容。
获取模块610用于获取待处理文本。
人名识别模块620用于对待处理文本进行人名识别,以确定待处理文本中出现的所有人名。
聚类模块630用于将所有人名中属于同一角色的人名聚类在一起,以获得与至少一个角色一一对应的至少一个人名集合。
全局确定模块640用于至少基于至少一个人名集合确定全局角色信息,其中,全局角色信息包括与至少一个角色一一对应的至少一组角色信息,每组角色信息包括对应角色的代表性角色名称和别名集合,别名集合包括对应角色的人名集合中除代表性角色名称以外的人名。
文本分析模块650用于结合全局角色信息对待处理文本中的任一目标语句进行文本分析,以获得目标语句所对应的文本分析结果,文本分析包括对至少一个预设项目的分析,至少一个预设项目包括以下一项或多项:文本类型、角色名称和角色属性,其中,对文本类型的分析是指判断目标语句是否属于多角色类型,多角色类型包括对白,角色属性包括角色性别和/或角色年龄。
根据本发明另一方面,提供一种文本分析***。图7示出了根据本发明一个实施例的文本分析***700的示意性框图。文本分析***700包括处理器710和存储器720。
所述存储器720存储用于实现根据本发明实施例的文本分析方法100中的相应步骤的计算机程序指令。
所述处理器710用于运行所述存储器720中存储的计算机程序指令,以执行根据本发明实施例的文本分析方法100的相应步骤。
根据本发明另一方面,提供一种存储介质,在所述存储介质上存储了程序指令,在所述程序指令被计算机或处理器运行时用于执行本发明实施例的文本分析方法100的相应步骤,并且用于实现根据本发明实施例的文本分析装置600中的相应模块。所述存储介质例如可以包括智能电话的存储卡、平板电脑的存储部件、个人计算机的硬盘、只读存储器(ROM)、可擦除可编程只读存储器(EPROM)、便携式紧致盘只读存储器(CD-ROM)、USB存储器、或者上述存储介质的任意组合。
根据本发明另一方面,提供一种语音合成方法(用第一语音合成方法表示),其包括上述文本分析方法100,其中,所述语音合成方法还包括:至少基于文本分析结果对目标语句进行语音合成,以获得与目标语句相对应的合成语音。
可以直接基于上述文本分析方法100的步骤S150获得的文本分析结果来进行语音合成,而无需对该文本分析结果进行额外的修改。
根据本发明另一方面,提供一种语音合成装置(用第一语音合成装置表示)。根据本发明实施例的语音合成装置包括上述文本分析装置600以及语音合成模块。语音合成模块用于至少基于文本分析结果对目标语句进行语音合成,以获得与目标语句相对应的合成语音。所述各个模块可分别执行上述第一语音合成方法的各个步骤/功能。
根据本发明另一方面,提供一种语音合成***。语音合成***包括处理器和存储器。所述存储器存储用于实现根据本发明实施例的上述第一语音合成方法中的相应步骤的计算机程序指令。所述处理器用于运行所述存储器中存储的计算机程序指令,以执行根据本发明实施例的第一语音合成方法的相应步骤。
根据本发明另一方面,提供一种存储介质,在所述存储介质上存储了程序指令,在所述程序指令被计算机或处理器运行时用于执行本发明实施例的第一语音合成方法的相应步骤,并且用于实现根据本发明实施例的第一语音合成装置中的相应模块。所述存储介质例如可以包括智能电话的存储卡、平板电脑的存储部件、个人计算机的硬盘、只读存储器(ROM)、可擦除可编程只读存储器(EPROM)、便携式紧致盘只读存储器(CD-ROM)、USB存储器、或者上述存储介质的任意组合。
根据本发明另一方面,提供一种语音合成方法(用第二语音合成方法表示),其包括上述文本分析方法100,其中,语音合成方法还包括:输出文本结果信息,文本结果信息包括通过结合全局角色信息对待处理文本中的任一目标语句进行文本分析的步骤获得的初始文本分析结果;接收用户输入的文本反馈信息;在文本反馈信息包括与初始文本分析结果相关的第一修改信息的情况下,基于第一修改信息对初始文本分析结果进行修改,以获得新文本分析结果;以及至少基于最终文本分析结果对目标语句进行语音合成,以获得与目标语句相对应的最终合成语音,其中,在未对初始文本分析结果进行修改的情况下,最终文本分析结果为初始文本分析结果,并且在对初始文本分析结果进行修改的情况下,最终文本分析结果为新文本分析结果。
可以将上述文本分析方法100的步骤S150获得的文本分析结果作为初始文本分析结果,采用诸如语音合成方法300中描述的人工配置的方式对该初始文本分析结果进行进一步修正之后,再进行语音合成。
根据本发明另一方面,提供一种语音合成装置(用第二语音合成装置表示)。根据本发明实施例的语音合成装置包括上述文本分析装置600以及输出模块、接收模块、修改模块和语音合成模块。所述各个模块可分别执行上述第二语音合成方法的各个步骤/功能。
输出模块用于输出文本结果信息,文本结果信息包括通过结合全局角色信息对待处理文本中的任一目标语句进行文本分析的步骤获得的初始文本分析结果。
接收模块用于接收用户输入的文本反馈信息。
修改模块用于在文本反馈信息包括与初始文本分析结果相关的第一修改信息的情况下,基于第一修改信息对初始文本分析结果进行修改,以获得新文本分析结果。
语音合成模块用于至少基于最终文本分析结果对目标语句进行语音合成,以获得与目标语句相对应的最终合成语音,其中,在未对初始文本分析结果进行修改的情况下,最终文本分析结果为初始文本分析结果,并且在对初始文本分析结果进行修改的情况下,最终文本分析结果为新文本分析结果。
根据本发明另一方面,提供一种语音合成***。语音合成***包括处理器和存储器。所述存储器存储用于实现根据本发明实施例的上述第二语音合成方法中的相应步骤的计算机程序指令。所述处理器用于运行所述存储器中存储的计算机程序指令,以执行根据本发明实施例的第二语音合成方法的相应步骤。
根据本发明另一方面,提供一种存储介质,在所述存储介质上存储了程序指令,在所述程序指令被计算机或处理器运行时用于执行本发明实施例的第二语音合成方法的相应步骤,并且用于实现根据本发明实施例的第二语音合成装置中的相应模块。所述存储介质例如可以包括智能电话的存储卡、平板电脑的存储部件、个人计算机的硬盘、只读存储器(ROM)、可擦除可编程只读存储器(EPROM)、便携式紧致盘只读存储器(CD-ROM)、USB存储器、或者上述存储介质的任意组合。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个设备,或一些特征可以忽略,或不执行。
类似地,应当理解,为了精简本发明并帮助理解各个发明方面中的一个或多个,在对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该本发明的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如相应的权利要求书所反映的那样,其发明点在于可以用少于某个公开的单个实施例的所有特征的特征来解决相应的技术问题。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域的技术人员可以理解,除了特征之间相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的文本分析***和/或语音合成***中的一些模块的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
以上所述,仅为本发明的具体实施方式或对具体实施方式的说明,本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。本发明的保护范围应以权利要求的保护范围为准。
Claims (30)
1.一种文本分析方法,包括:
获取待处理文本;
对所述待处理文本进行人名识别,以确定所述待处理文本中出现的所有人名;
将所述所有人名中属于同一角色的人名聚类在一起,以获得与至少一个角色一一对应的至少一个人名集合;
至少基于所述至少一个人名集合确定全局角色信息,其中,所述全局角色信息包括与所述至少一个角色一一对应的至少一组角色信息,每组角色信息包括对应角色的代表性角色名称和别名集合,所述别名集合包括对应角色的人名集合中除代表性角色名称以外的人名;
结合所述全局角色信息对所述待处理文本中的任一目标语句进行文本分析,以获得所述目标语句所对应的文本分析结果,所述文本分析包括对至少一个预设项目的分析,所述至少一个预设项目包括以下一项或多项:文本类型、角色名称和角色属性,其中,对所述文本类型的分析是指判断所述目标语句是否属于多角色类型,所述多角色类型包括对白,所述角色属性包括角色性别和/或角色年龄;
其中,所述结合所述全局角色信息对所述待处理文本中的任一目标语句进行文本分析包括:
分析所述目标语句的文本类型,以获得与文本类型相对应的分析结果,所述文本分析结果包括所述与文本类型相对应的分析结果;
在所述目标语句属于所述多角色类型的情况下,至少基于所述目标语句识别所述目标语句所对应的初始角色名称;
从所述全局角色信息中检索包含所述初始角色名称的目标角色信息,所述目标角色信息与目标角色相对应;
对于所述至少一个预设项目中的任一特定预设项目,从所述目标角色信息中提取与所述特定预设项目相对应的信息,并确定所提取的信息为所述文本分析结果中的与所述特定预设项目相对应的分析结果,其中,在所述特定预设项目是角色名称的情况下,所述所提取的信息是所述目标角色信息中的代表性角色名称;
其中,在所述对于所述至少一个预设项目中的任一特定预设项目,从所述目标角色信息中提取与所述特定预设项目相对应的信息,并确定提取的信息为所述文本分析结果中的与所述特定预设项目相对应的分析结果之前,所述方法还包括:
在所述目标语句属于所述多角色类型的情况下,分析所述目标语句所对应的角色属性,以获得与角色属性相对应的分析结果以及所述与角色属性相对应的分析结果的置信度,所述文本分析结果包括所述与角色属性相对应的分析结果;
如果所述与角色属性相对应的分析结果的置信度低于预设置信度阈值,则确定角色属性为所述特定预设项目;
所述对于所述至少一个预设项目中的任一特定预设项目,从所述目标角色信息中提取与所述特定预设项目相对应的信息,并确定提取的信息为所述文本分析结果中的与所述特定预设项目相对应的分析结果包括:
从所述目标角色信息中提取角色属性信息;
利用提取的角色属性信息覆盖所述文本分析结果中的所述与角色属性相对应的分析结果。
2.根据权利要求1所述的方法,其中,所述至少一组角色信息中的每组角色信息还包括对应角色的角色属性信息,所述角色属性信息包括角色性别信息和/或角色年龄信息。
3.根据权利要求2所述的方法,其中,所述角色属性信息包括角色性别信息,所述至少基于所述至少一个人名集合确定全局角色信息包括:
对于所述至少一个角色中的任一特定角色,通过第一操作、第二操作和第三操作中的一者或多者各自获得的性别分类结果来确定所述特定角色的性别,以获得所述特定角色的角色性别信息;
其中,所述第一操作包括:
从所述特定角色所对应的人名集合中查找能够指示性别的性别指示人名;
如果查找到至少一个性别指示人名,则基于所述至少一个性别指示人名所指示的性别分析所述特定角色的性别,以获得第一性别分类结果;
其中,所述第二操作包括:
从所述待处理文本中查找与所述特定角色所对应的人名集合中的任意一个或多个人名一一对应地匹配的一个或多个人称代词集合,每个人称代词集合包括一个或多个人称代词;
如果查找到至少一个人称代词集合,则基于所述至少一个人称代词集合中的每个人称代词所指示的性别分析所述特定角色的性别,以获得第二性别分类结果;
其中,所述第三操作包括:
对于所述特定角色所对应的人名集合中的每个人名,将包含该人名的文本片段、包含该人名的特定语句以及所述特定语句的上下文输入性别分类模型,以获得所述性别分类模型输出的第三性别分类结果,其中,所述第三性别分类结果用于指示所述特定角色的性别。
4.根据权利要求3所述的方法,其中,所述角色性别划分为至少两种性别,其中,
所述基于所述至少一个性别指示人名所指示的性别分析所述特定角色的性别,以获得第一性别分类结果包括:
确定所述至少一个性别指示人名中的每个性别指示人名所指示的性别;
对于所述至少两种性别中的每种性别,计算属于该种性别的性别指示人名的数目与所述至少一个性别指示人名的总数目之比,以获得与该种性别相对应的第一性别占比P 1i ,所述第一性别分类结果包括与所述至少两种性别一一对应的第一性别占比P 1i ,其中,i = 1,2, 3……N,N是所述至少两种性别中性别的总数目;和/或,
所述基于所述至少一个人称代词集合中的每个人称代词所指示的性别分析所述特定角色的性别,以获得第二性别分类结果包括:
确定所述至少一个人称代词集合中的每个人称代词所指示的性别;
对于所述至少两种性别中的每种性别,计算属于该种性别的人称代词的数目与所述至少一个人称代词集合中的所有人称代词的总数目之比,以获得与该种性别相对应的第二性别占比P 2i ,所述第二性别分类结果包括与所述至少两种性别一一对应的第二性别占比P 2i ;和/或,
所述第三性别分类结果包括与所述至少两种性别一一对应的性别概率P 3i ,所述性别概率P 3i 用于表示所述特定角色的性别为对应性别的概率。
5.根据权利要求4所述的方法,其中,所述通过第一操作、第二操作和第三操作中的一者或多者各自获得的性别分类结果来确定所述特定角色的性别,以获得所述特定角色的角色性别信息包括:
基于所述第一性别分类结果确定第一性别占比P 1i 最大的性别为所述特定角色的性别,以获得所述角色性别信息;或者,
基于所述第二性别分类结果确定第二性别占比P 2i 最大的性别为所述特定角色的性别,以获得所述角色性别信息;或者
基于所述第三性别分类结果确定性别概率P 3i 最大的性别为所述特定角色的性别,以获得所述角色性别信息;或者,
对于所述至少两种性别中的每种性别,将该种性别所对应的第一性别占比P 1i 、第二性别占比P 2i 和性别概率P 3i 中的两者或三者进行加权平均或者直接相加来获得总的性别占比,并确定总的性别占比最大的性别为所述特定角色的性别,以获得所述角色性别信息。
6.根据权利要求3所述的方法,其中,所述通过第一操作、第二操作和第三操作中的一者或多者各自获得的性别分类结果来确定所述特定角色的性别,以获得所述特定角色的角色性别信息包括:
首先执行所述第一操作,如果第一条件满足,则基于所述第一性别分类结果确定所述角色性别信息,其中,所述第一条件包括:查找到所述至少一个性别指示人名;
如果所述第一条件不满足,则执行所述第二操作,如果第二条件满足,则基于所述第二性别分类结果确定所述角色性别信息,其中,所述第二条件包括:查找到所述至少一个人称代词集合;
如果所述第二条件不满足,则执行所述第三操作并基于所述第三性别分类结果确定所述角色性别信息。
7.根据权利要求4或5所述的方法,其中,所述通过第一操作、第二操作和第三操作中的一者或多者各自获得的性别分类结果来确定所述特定角色的性别,以获得所述特定角色的角色性别信息包括:
首先执行所述第一操作,如果第一条件满足,则基于所述第一性别分类结果确定所述角色性别信息,其中,所述第一条件包括:查找到所述至少一个性别指示人名;
如果所述第一条件不满足,则执行所述第二操作,如果第二条件满足,则基于所述第二性别分类结果确定所述角色性别信息,其中,所述第二条件包括:查找到所述至少一个人称代词集合;
如果所述第二条件不满足,则执行所述第三操作并基于所述第三性别分类结果确定所述角色性别信息。
8. 根据权利要求7所述的方法,其中,
所述第一条件还包括:在所述第一性别分类结果中,最大的第一性别占比P 1i 大于第一比例阈值;和/或
所述第二条件还包括:在所述第二性别分类结果中,最大的第二性别占比P 2i 大于第二比例阈值。
9.根据权利要求3至5任一项所述的方法,其中,所述从所述待处理文本中查找与所述特定角色所对应的人名集合中的任意一个或多个人名一一对应地匹配的一个或多个人称代词集合包括:
对于所述特定角色所对应的人名集合中的每个人名,
获取包含该人名的至少一个特定语句以及所述至少一个特定语句各自的上下文;
对于所述至少一个特定语句中的每个特定语句,从该特定语句以及该特定语句的上下文中查找距离该人名最近的人称代词作为与该人名相匹配的人称代词。
10.根据权利要求2所述的方法,其中,所述角色属性信息包括角色年龄信息,所述至少基于所述至少一个人名集合确定全局角色信息包括:
对于所述至少一个角色中的任一特定角色,通过第四操作和/或第五操作各自获得的年龄预测结果来确定所述特定角色的年龄,以获得所述特定角色的角色年龄信息;
其中,所述第四操作包括:
从所述特定角色所对应的人名集合中查找能够指示年龄的年龄指示人名;
如果查找到至少一个年龄指示人名,则基于所述至少一个年龄指示人名所指示的年龄分析所述特定角色的年龄,以获得第一年龄预测结果;
其中,所述第五操作包括:
对于所述特定角色所对应的人名集合中的每个人名,将包含该人名的文本片段、包含该人名的特定语句以及所述特定语句的上下文输入年龄预测模型,以获得所述年龄预测模型输出的第二年龄预测结果,其中,所述第二年龄预测结果用于指示所述特定角色的年龄。
11.根据权利要求10所述的方法,其中,所述角色年龄划分为至少两个年龄类别,其中,
所述基于所述至少一个年龄指示人名所指示的年龄分析所述特定角色的年龄,以获得第一年龄预测结果包括:
确定所述至少一个年龄指示人名中的每个年龄指示人名所指示的年龄类别;
对于所述至少两个年龄类别中的每个年龄类别,计算属于该年龄类别的年龄指示人名的数目与所述至少一个年龄指示人名的总数目之比,以获得与该年龄类别相对应的年龄占比P 4i ,所述第一年龄预测结果包括与所述至少两个年龄类别一一对应的年龄占比P 4i ,其中,i = 1, 2, 3……M,M是所述至少两个年龄类别中年龄类别的总数目;和/或,
所述第二年龄预测结果包括与所述至少两个年龄类别一一对应的年龄概率P 5i ,所述年龄概率P 5i 用于表示所述特定角色的年龄为对应年龄类别的概率。
12.根据权利要求11所述的方法,其中,所述通过第四操作和/或第五操作各自获得的年龄预测结果来确定所述特定角色的年龄,以获得所述特定角色的角色年龄信息包括:
基于所述第一年龄预测结果确定年龄占比P 4i 最大的年龄类别为所述特定角色的年龄,以获得所述角色年龄信息;或者,
基于所述第二年龄预测结果确定年龄概率P 5i 最大的年龄类别为所述特定角色的年龄,以获得所述角色年龄信息;或者
对于所述至少两个年龄类别中的每个年龄类别,将该年龄类别所对应的年龄占比P 4i 和年龄概率P 5i 进行加权平均或者直接相加来获得总的年龄占比,并确定总的年龄占比最大的年龄类别为所述特定角色的年龄,以获得所述角色年龄信息。
13.根据权利要求10所述的方法,其中,所述通过第四操作和/或第五操作各自获得的年龄预测结果来确定所述特定角色的年龄,以获得所述特定角色的角色年龄信息包括:
首先执行所述第四操作,如果第三条件满足,则基于所述第一年龄预测结果确定所述角色年龄信息,其中,所述第三条件包括:查找到所述至少一个年龄指示人名;
如果所述第三条件不满足,则执行所述第五操作并基于所述第二年龄预测结果确定所述角色性别信息。
14.根据权利要求11或12所述的方法,其中,所述通过第四操作和/或第五操作各自获得的年龄预测结果来确定所述特定角色的年龄,以获得所述特定角色的角色年龄信息包括:
首先执行所述第四操作,如果第三条件满足,则基于所述第一年龄预测结果确定所述角色年龄信息,其中,所述第三条件包括:查找到所述至少一个年龄指示人名;
如果所述第三条件不满足,则执行所述第五操作并基于所述第二年龄预测结果确定所述角色性别信息。
15.根据权利要求14所述的方法,其中,
所述第三条件还包括:在所述第一年龄预测结果中,最大的年龄占比P 4i 大于第三比例阈值。
16.根据权利要求1至5任一项所述的方法,其中,所述至少基于所述至少一个人名集合确定全局角色信息包括:
对于所述至少一个角色中的每个角色,
分析该角色所对应的人名集合中的每个人名的人名特征,所述人名特征包括以下一项或多项:出现次数、是否包含姓氏、是否包含人名常用字;
从该角色所对应的人名集合中选择人名特征满足预设要求的人名作为该角色的代表性角色名称。
17.根据权利要求16所述的方法,其中,所述预设要求包括:在该角色所对应的人名集合中出现次数最多,或者,在包含姓氏和/或人名常用字的人名中出现次数最多。
18.根据权利要求1至5任一项所述的方法,其中,在所述结合所述全局角色信息对所述待处理文本中的任一目标语句进行文本分析之前,所述方法还包括:
输出所述全局角色信息;
接收用户输入的与所述全局角色信息相关的修改信息;
基于所述修改信息对所述全局角色信息进行修改。
19.根据权利要求1所述的方法,其中,所述角色属性划分为至少两类属性,所述分析所述目标语句所对应的角色属性,以获得与角色属性相对应的分析结果以及所述与角色属性相对应的分析结果的置信度包括:
获取待分析文本,所述待分析文本包括所述目标语句及所述目标语句的上下文;
从所述全局角色信息中获取所述目标角色所对应的人名集合;
基于所述目标角色所对应的人名集合从所述待分析文本中识别所述目标角色出现的所有文本片段;
针对所述所有文本片段中的每个文本片段进行属性识别,以确定与所述所有文本片段一一对应的属性;
对于所述至少两类属性中的每类属性,计算该类属性所对应的文本片段的数目与所述所有文本片段的总数目之比,以获得属性占比;
选择属性占比最大的属性作为所述目标语句所对应的角色属性,以获得所述与角色属性相对应的分析结果;
确定所述属性占比最大的属性的属性占比为所述与角色属性相对应的分析结果的置信度。
20.根据权利要求1所述的方法,其中,所述分析所述目标语句所对应的角色属性,以获得与角色属性相对应的分析结果以及所述与角色属性相对应的分析结果的置信度包括:
获取待分析文本,所述待分析文本包括所述目标语句及所述目标语句的上下文;
将所述待分析文本输入属性识别模型,以获得所述属性识别模型输出的所述与角色属性相对应的分析结果以及所述与角色属性相对应的分析结果的置信度。
21.根据权利要求1所述的方法,其中,所述至少基于所述目标语句识别所述目标语句所对应的初始角色名称包括:
获取待分析文本,所述待分析文本包括所述目标语句及所述目标语句的上下文;
基于所述待分析文本提取初始候选角色名称;
确定所述初始候选角色名称为最终候选角色名称;
将所述全局角色信息、所述最终候选角色名称以及所述待分析文本输入角色识别模型,以获得所述角色识别模型输出的角色识别结果,所述角色识别结果用于指示所述目标语句所对应的角色名称为所述初始角色名称。
22.根据权利要求1所述的方法,其中,在所述在所述目标语句属于所述多角色类型的情况下,至少基于所述目标语句识别所述目标语句所对应的初始角色名称之后,所述结合所述全局角色信息对所述待处理文本中的任一目标语句进行文本分析还包括:
获取待分析文本,所述待分析文本包括所述目标语句及所述目标语句的上下文;
将所述全局角色信息、所述初始角色名称以及所述待分析文本输入属性识别模型,以获得所述属性识别模型输出的与角色属性相对应的分析结果。
23.根据权利要求1至5任一项所述的方法,其中,所述将所述所有人名中属于同一角色的人名聚类在一起,以获得与至少一个角色一一对应的至少一个人名集合包括:
将所述所有人名中属于同一角色的人名聚类在一起,以获得与所述待处理文本中出现的所有角色一一对应的人名集合;
从所述所有角色中选择所对应的人名集合中的人名的数目大于预设数目阈值的角色作为所述至少一个角色。
24.一种语音合成方法,包括如权利要求1至23任一项所述的文本分析方法,其中,所述语音合成方法还包括:
输出文本结果信息,所述文本结果信息包括通过所述结合所述全局角色信息对所述待处理文本中的任一目标语句进行文本分析的步骤获得的初始文本分析结果;
接收用户输入的文本反馈信息;
在所述文本反馈信息包括与所述初始文本分析结果相关的第一修改信息的情况下,基于所述第一修改信息对所述初始文本分析结果进行修改,以获得新文本分析结果;以及
至少基于最终文本分析结果对所述目标语句进行语音合成,以获得与所述目标语句相对应的最终合成语音,其中,在未对所述初始文本分析结果进行修改的情况下,所述最终文本分析结果为所述初始文本分析结果,并且在对所述初始文本分析结果进行修改的情况下,所述最终文本分析结果为所述新文本分析结果。
25.一种文本分析装置,包括:
获取模块,用于获取待处理文本;
人名识别模块,用于对所述待处理文本进行人名识别,以确定所述待处理文本中出现的所有人名;
聚类模块,用于将所述所有人名中属于同一角色的人名聚类在一起,以获得与至少一个角色一一对应的至少一个人名集合;
全局确定模块,用于至少基于所述至少一个人名集合确定全局角色信息,其中,所述全局角色信息包括与所述至少一个角色一一对应的至少一组角色信息,每组角色信息包括对应角色的代表性角色名称和别名集合,所述别名集合包括对应角色的人名集合中除代表性角色名称以外的人名;
文本分析模块,用于结合所述全局角色信息对所述待处理文本中的任一目标语句进行文本分析,以获得所述目标语句所对应的文本分析结果,所述文本分析包括对至少一个预设项目的分析,所述至少一个预设项目包括以下一项或多项:文本类型、角色名称和角色属性,其中,对所述文本类型的分析是指判断所述目标语句是否属于多角色类型,所述多角色类型包括对白,所述角色属性包括角色性别和/或角色年龄;
其中,所述文本分析模块包括:
分析子模块,用于分析所述目标语句的文本类型,以获得与文本类型相对应的分析结果,所述文本分析结果包括所述与文本类型相对应的分析结果;
识别子模块,用于在所述目标语句属于所述多角色类型的情况下,至少基于所述目标语句识别所述目标语句所对应的初始角色名称;
检索子模块,用于从所述全局角色信息中检索包含所述初始角色名称的目标角色信息,所述目标角色信息与目标角色相对应;
提取子模块,用于对于所述至少一个预设项目中的任一特定预设项目,从所述目标角色信息中提取与所述特定预设项目相对应的信息,并确定所提取的信息为所述文本分析结果中的与所述特定预设项目相对应的分析结果,其中,在所述特定预设项目是角色名称的情况下,所述所提取的信息是所述目标角色信息中的代表性角色名称;
其中,所述文本分析装置还包括:
属性分析模块,用于在所述提取子模块对于所述至少一个预设项目中的任一特定预设项目,从所述目标角色信息中提取与所述特定预设项目相对应的信息,并确定提取的信息为所述文本分析结果中的与所述特定预设项目相对应的分析结果之前,在所述目标语句属于所述多角色类型的情况下,分析所述目标语句所对应的角色属性,以获得与角色属性相对应的分析结果以及所述与角色属性相对应的分析结果的置信度,所述文本分析结果包括所述与角色属性相对应的分析结果;
确定模块,用于如果所述与角色属性相对应的分析结果的置信度低于预设置信度阈值,则确定角色属性为所述特定预设项目;
所述提取子模块包括:
提取单元,用于从所述目标角色信息中提取角色属性信息;
覆盖单元,用于利用提取的角色属性信息覆盖所述文本分析结果中的所述与角色属性相对应的分析结果。
26.一种语音合成装置,包括如权利要求25所述的文本分析装置,其中,所述语音合成装置还包括:
输出模块,用于输出文本结果信息,所述文本结果信息包括通过所述结合所述全局角色信息对所述待处理文本中的任一目标语句进行文本分析的步骤获得的初始文本分析结果;
接收模块,用于接收用户输入的文本反馈信息;
修改模块,用于在所述文本反馈信息包括与所述初始文本分析结果相关的第一修改信息的情况下,基于所述第一修改信息对所述初始文本分析结果进行修改,以获得新文本分析结果;以及
语音合成模块,用于至少基于最终文本分析结果对所述目标语句进行语音合成,以获得与所述目标语句相对应的最终合成语音,其中,在未对所述初始文本分析结果进行修改的情况下,所述最终文本分析结果为所述初始文本分析结果,并且在对所述初始文本分析结果进行修改的情况下,所述最终文本分析结果为所述新文本分析结果。
27.一种文本分析***,包括处理器和存储器,其中,所述存储器中存储有计算机程序指令,所述计算机程序指令被所述处理器运行时用于执行如权利要求1至23任一项所述的文本分析方法。
28.一种语音合成***,包括处理器和存储器,其中,所述存储器中存储有计算机程序指令,所述计算机程序指令被所述处理器运行时用于执行如权利要求24所述的语音合成方法。
29.一种存储介质,在所述存储介质上存储了程序指令,所述程序指令在运行时用于执行如权利要求1至23任一项所述的文本分析方法。
30.一种存储介质,在所述存储介质上存储了程序指令,所述程序指令在运行时用于执行如权利要求24所述的语音合成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110787732.XA CN113539235B (zh) | 2021-07-13 | 2021-07-13 | 文本分析与语音合成方法、装置、***及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110787732.XA CN113539235B (zh) | 2021-07-13 | 2021-07-13 | 文本分析与语音合成方法、装置、***及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113539235A CN113539235A (zh) | 2021-10-22 |
CN113539235B true CN113539235B (zh) | 2024-02-13 |
Family
ID=78098729
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110787732.XA Active CN113539235B (zh) | 2021-07-13 | 2021-07-13 | 文本分析与语音合成方法、装置、***及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113539235B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114863906B (zh) * | 2022-07-07 | 2022-10-28 | 北京中电慧声科技有限公司 | 一种文本转语音处理的别名标记方法及装置 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001331191A (ja) * | 2000-05-23 | 2001-11-30 | Sharp Corp | 音声合成装置および音声合成方法、携帯端末器、並びに、プログラム記録媒体 |
US9639518B1 (en) * | 2011-09-23 | 2017-05-02 | Amazon Technologies, Inc. | Identifying entities in a digital work |
CN108091321A (zh) * | 2017-11-06 | 2018-05-29 | 芋头科技(杭州)有限公司 | 一种语音合成方法 |
CN109523986A (zh) * | 2018-12-20 | 2019-03-26 | 百度在线网络技术(北京)有限公司 | 语音合成方法、装置、设备以及存储介质 |
WO2020018724A1 (en) * | 2018-07-19 | 2020-01-23 | Dolby International Ab | Method and system for creating object-based audio content |
CN110767209A (zh) * | 2019-10-31 | 2020-02-07 | 标贝(北京)科技有限公司 | 语音合成方法、装置、***和存储介质 |
CN112434492A (zh) * | 2020-10-23 | 2021-03-02 | 北京百度网讯科技有限公司 | 文本标注方法、装置及电子设备 |
CN112908292A (zh) * | 2019-11-19 | 2021-06-04 | 北京字节跳动网络技术有限公司 | 文本的语音合成方法、装置、电子设备及存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8594996B2 (en) * | 2007-10-17 | 2013-11-26 | Evri Inc. | NLP-based entity recognition and disambiguation |
US8355919B2 (en) * | 2008-09-29 | 2013-01-15 | Apple Inc. | Systems and methods for text normalization for text to speech synthesis |
CN110491365A (zh) * | 2018-05-10 | 2019-11-22 | 微软技术许可有限责任公司 | 为纯文本文档生成音频 |
-
2021
- 2021-07-13 CN CN202110787732.XA patent/CN113539235B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001331191A (ja) * | 2000-05-23 | 2001-11-30 | Sharp Corp | 音声合成装置および音声合成方法、携帯端末器、並びに、プログラム記録媒体 |
US9639518B1 (en) * | 2011-09-23 | 2017-05-02 | Amazon Technologies, Inc. | Identifying entities in a digital work |
CN108091321A (zh) * | 2017-11-06 | 2018-05-29 | 芋头科技(杭州)有限公司 | 一种语音合成方法 |
WO2020018724A1 (en) * | 2018-07-19 | 2020-01-23 | Dolby International Ab | Method and system for creating object-based audio content |
CN109523986A (zh) * | 2018-12-20 | 2019-03-26 | 百度在线网络技术(北京)有限公司 | 语音合成方法、装置、设备以及存储介质 |
CN110767209A (zh) * | 2019-10-31 | 2020-02-07 | 标贝(北京)科技有限公司 | 语音合成方法、装置、***和存储介质 |
CN112908292A (zh) * | 2019-11-19 | 2021-06-04 | 北京字节跳动网络技术有限公司 | 文本的语音合成方法、装置、电子设备及存储介质 |
CN112434492A (zh) * | 2020-10-23 | 2021-03-02 | 北京百度网讯科技有限公司 | 文本标注方法、装置及电子设备 |
Non-Patent Citations (2)
Title |
---|
《A feature selection approach for automatic e-book classification based on discourse segmentation》;Guo, Jiunn-Liang et, al.;《PROGRAM-ELECTRONIC LIBRARY AND INFORMATION SYSTEM》;第49卷(第1期);2-22 * |
《面向语音合成的文本处理技术的改进》;李晓红;《中国优秀硕士学位论文全文数据库 信息科技辑》;1-67 * |
Also Published As
Publication number | Publication date |
---|---|
CN113539235A (zh) | 2021-10-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107818781B (zh) | 智能交互方法、设备及存储介质 | |
CN107832286B (zh) | 智能交互方法、设备及存储介质 | |
CN107609101B (zh) | 智能交互方法、设备及存储介质 | |
CN107797984B (zh) | 智能交互方法、设备及存储介质 | |
CN108287858B (zh) | 自然语言的语义提取方法及装置 | |
CN109493850B (zh) | 成长型对话装置 | |
CN107301865B (zh) | 一种用于语音输入中确定交互文本的方法和装置 | |
US20190370398A1 (en) | Method and apparatus for searching historical data | |
US20160163318A1 (en) | Metadata extraction of non-transcribed video and audio streams | |
CN107305541A (zh) | 语音识别文本分段方法及装置 | |
CN104598644B (zh) | 喜好标签挖掘方法和装置 | |
CN109637537B (zh) | 一种自动获取标注数据优化自定义唤醒模型的方法 | |
JP2016051179A (ja) | 音声認識方法、音声評価方法、音声認識システム及び音声評価システム | |
CN108874895B (zh) | 交互信息推送方法、装置、计算机设备及存储介质 | |
CN110634472B (zh) | 一种语音识别方法、服务器及计算机可读存储介质 | |
US20150179173A1 (en) | Communication support apparatus, communication support method, and computer program product | |
CN111261162B (zh) | 语音识别方法、语音识别装置及存储介质 | |
US9251808B2 (en) | Apparatus and method for clustering speakers, and a non-transitory computer readable medium thereof | |
US11501546B2 (en) | Media management system for video data processing and adaptation data generation | |
CN109872714A (zh) | 一种提高语音识别准确性的方法、电子设备及存储介质 | |
CN110473543B (zh) | 一种语音识别方法、装置 | |
CN116312552A (zh) | 一种视频说话人日志方法及*** | |
CN113539235B (zh) | 文本分析与语音合成方法、装置、***及存储介质 | |
CN113539234B (zh) | 语音合成方法、装置、***及存储介质 | |
CN108305629B (zh) | 一种场景学习内容获取方法、装置、学习设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: Room 1201, Building B, Phase 1, Innovation Park, No. 1 Keyuan Weiyi Road, Laoshan District, Qingdao City, Shandong Province, 266101 Applicant after: Beibei (Qingdao) Technology Co.,Ltd. Address before: 100192 b303a, floor 3, building B-2, Zhongguancun Dongsheng science and Technology Park, No. 66, xixiaokou Road, Haidian District, Beijing Applicant before: DATABAKER (BEIJNG) TECHNOLOGY Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |