自动音频内容生成
背景技术:1.文本到语音(tts)合成旨在基于文本输入来生成对应的语音波形。传统的tts模型或系统可以基于文本输入来预测声学特征,并进而基于所预测的声学特征来生成语音波形。tts模型可以被应用于将各种类型的文本内容转换为音频内容,例如,将文本格式的书籍转换为有声书(audiobook)等。
技术实现要素:2.提供本发明内容以便介绍一组概念,这组概念将在以下的具体实施方式中做进一步描述。本发明内容并非旨在标识所保护主题的关键特征或必要特征,也不旨在用于限制所保护主题的范围。
3.本公开的实施例提出了用于自动音频内容生成的方法和装置。可以获得文本。可以构建与所述文本对应的上下文。可以至少基于所述上下文来确定参考因素,所述参考因素至少包括与所述文本对应的角色类别和/或角色。可以至少基于所述文本和所述参考因素来生成与所述文本对应的语音波形。
4.应当注意,以上一个或多个方面包括以下详细描述以及权利要求中具体指出的特征。下面的说明书及附图详细提出了所述一个或多个方面的某些说明性特征。这些特征仅仅指示可以实施各个方面的原理的多种方式,并且本公开旨在包括所有这些方面和其等同变换。
附图说明
5.以下将结合附图描述所公开的多个方面,这些附图被提供用以说明而非限制所公开的多个方面。
6.图1示出了示例性的传统tts模型。
7.图2示出了根据实施例的自动音频内容生成的示例性过程。
8.图3示出了根据实施例的自动音频内容生成的示例性过程。
9.图4示出了根据实施例的准备训练数据的示例性过程。
10.图5示出了根据实施例的预测角色类别和风格的示例性过程。
11.图6示出了根据实施例的采用基于语言特征的tts模型来进行语音合成的示例性实现。
12.图7示出了根据实施例的在基于语言特征的tts模型中的编码器的示例性实现。
13.图8示出了根据实施例的采用基于上下文的tts模型来进行语音合成的示例性实现。
14.图9示出了在基于上下文的tts模型中的上下文编码器的示例性实现。
15.图10示出了根据实施例的预测角色和选择tts模型的示例性过程。
16.图11示出了根据实施例的采用基于语言特征的tts模型来进行语音合成的示例性实现。
17.图12示出了根据实施例的采用基于上下文的tts模型来进行语音合成的示例性实现。
18.图13示出了根据实施例的更新音频内容的示例性过程。
19.图14示出了根据实施例的用于自动音频内容生成的示例性方法的流程。
20.图15示出了根据实施例的用于自动音频内容生成的示例性装置。
21.图16示出了根据实施例的用于自动音频内容生成的示例性装置。
具体实施方式
22.现在将参考多种示例性实施方式来讨论本公开。应当理解,这些实施方式的讨论仅仅用于使得本领域技术人员能够更好地理解并从而实施本公开的实施例,而并非教导对本公开的范围的任何限制。
23.有声书被越来越普遍地用于娱乐和教育。传统的有声书是人为录制的。例如,专业的讲述者(narrator)或配音演员(voice actor)会讲述预先准备的文本内容,并且通过对讲述者的讲述进行录制来获得与该文本内容对应的有声书。有声书的这种录制方式将是非常耗时的并且成本高昂,进而导致无法针对大量的文本书籍及时地获得对应的有声书。
24.tts合成可以改进有声书的生成效率并且降低成本。大多数tts模型是针对每个文本语句单独合成语音的。以这种方式合成的语音通常具有例如单一的话语韵律,从而听起来单调乏味。当这种单一的话语韵律被重复地应用到有声书的整个章节段落中时,将显著地降低有声书的质量。特别地,如果tts合成仅将单个讲述者的声音用于整个有声书,则单调的语音表达将进一步降低有声书的吸引力。
25.本公开的实施例提出了针对文本内容执行自动且高质量的音频内容生成。在本文中,文本内容可以广泛地指采用文本形式的任何内容,例如,书籍、剧本、文章等,而音频内容可以广泛地指采用音频形式的任何内容,例如,有声书、视频的配音、新闻播报等。尽管在以下讨论的多个部分中以将文本故事书转换为有声书为例,但是应当理解,本公开的实施例还可以被应用于将任何其它形式的文本内容转换为任何其它形式的音频内容。
26.本公开的实施例可以针对文本内容中的一个文本语句构建上下文,并且将该上下文用于该文本语句的tts合成,而并非在tts合成中仅仅考虑该文本语句本身。通常,一个文本语句的上下文可以提供关于该文本语句的丰富的表达信息,这些表达信息可以作为tts合成的参考因素,以使得所合成的语音更具有表现力、更生动、更多样等。可以基于上下文来确定各种参考因素,例如,与该文本语句对应的角色、角色类别、风格、角色性格等。在本文中,角色可以指文本内容中出现的具有对话能力的具体的人物、拟人动物、拟人物体等。例如,假设文本内容涉及在名叫“mike”与“mary”的两个人之间发生的故事,则可以认为“mike”和“mary”是该文本内容中的两个角色。例如,假设文本内容涉及在王后、公主和女巫之间发生的故事,则可以认为“王后”、“公主”和“女巫”是该文本内容中的角色。角色类别可以指角色的类别属性,例如,性别、年龄等。风格可以指文本语句所对应的情感类型,例如,高兴的、悲伤的等。角色性格可以指在文本内容中为角色所塑造的性格,例如,温柔的、开朗的、邪恶的等。通过在tts合成中考虑这些参考因素,可以针对不同的角色、角色类型、风格等分别合成具有不同语音特性的语音,例如具有不同的音色、声音风格等的语音。从而,可以增强所合成的语音的表现力、生动性和多样性,由此显著地改进所合成的语音的质量。
27.在一个方面,本公开的实施例可以被应用于以单个讲话者的声音来合成音频内容的场景,其也可以称为单讲述者音频内容生成。该单个讲话者可以是预先指定的目标讲话者,并且可以采用该目标讲话者的声音来模拟或扮演文本内容中的不同类型的角色。可以在语音合成中考虑角色类别,使得可以利用该目标讲话者的声音来生成对应于不同角色类别的语音,例如,对应于年轻男性的语音、对应于老年女性的语音等。可选地,还可以在语音合成中考虑风格,使得可以利用该目标讲话者的声音来生成不同风格的语音,例如,对应于情感类型“高兴”的语音、对应于情感类型“悲伤”的语音等。通过在单讲述者音频内容生成的场景中考虑角色类别和风格,可以增强所合成的语音的表现力、生动性等。
28.在一个方面,本公开的实施例可以被应用于以多个讲话者的声音来合成音频内容的场景,其也可以称为多讲述者音频内容生成。可以针对文本内容中的不同角色而分别采用不同讲话者的声音。这些讲话者可以是预先确定的具有不同属性的候选讲话者。对于一个特定的角色,可以至少参考角色类别、角色性格等来确定采用哪个讲话者的声音。例如,假设角色mike是一个性格开朗的年轻男性,则可以选择具有<年轻>、<男性>、<开朗的>等属性的讲话者的声音来生成mike的语音。通过在语音合成中自动地为不同角色分配不同讲话者的声音,可以增强音频内容的多样性等。可选地,还可以在语音合成中考虑风格,使得可以利用与角色对应的讲话者的声音来生成不同风格的语音,从而增强所合成的语音的表现力、生动性等。。
29.本公开的实施例可以在考虑上述参考因素的情况下,采用各种tts模型来合成语音。在一个方面,可以采用基于语言(linguistic)特征的tts模型。在单讲述者音频内容生成的场景中,可以利用目标讲话者的声音语料库来训练基于语言特征的tts模型,其中,该模型可以至少考虑角色类别、可选的风格等来生成语音。在多讲述者音频内容生成的场景中,可以利用不同候选讲话者的声音语料库来训练基于语言特征的tts模型的不同版本,并且可以为特定角色选择对应版本的模型以为该角色生成语音,或者进一步地通过考虑风格来为该角色生成不同风格的语音。在另一个方面,可以采用基于上下文的tts模型。在单讲述者音频内容生成的场景中,可以利用目标讲话者的声音语料库来训练基于上下文的tts模型,其中,该模型可以至少考虑文本语句的上下文、角色类别、可选的风格等来生成语音。在多讲述者音频内容生成的场景中,可以利用不同候选讲话者的声音语料库来训练基于上下文的tts模型的不同版本,并且可以为特定角色选择对应版本的模型以为该角色生成语音,或者进一步地通过考虑风格来为该角色生成不同风格的语音。
30.本公开的实施例还提供了针对音频内容的灵活的定制化机制。例如,用户可以通过可视的定制化平台来对音频内容进行调整或者定制。可以修改或设置语音合成中涉及的各种参数,以对音频内容中的任意部分进行调整,使得音频内容中的特定话语可以具有期望的角色类别、期望的风格等。由于基于语言特征的tts模型具有显式的特征输入,因此,其可以用于响应于用户的调整指示来对音频内容进行更新。
31.本公开的实施例可以灵活地使用基于语言特征的tts模型和/或基于上下文的tts模型来自动地生成高质量的音频内容。基于语言特征的tts模型可以通过考虑基于上下文所确定的参考因素来生成高质量的语音,并且可以用于对所生成的音频内容进行调整或更新。基于上下文的tts模型在语音合成中不仅考虑了基于上下文所确定的参考因素,还考虑了从该上下文本身提取的上下文特征,从而可以使得针对长文本的语音合成更加协调。在
根据本公开实施例所生成的音频内容中,角色的话语将具有更强的表现力、生动性和多样性,从而可以显著地提高音频内容的吸引力、趣味性等。根据本公开实施例的自动音频内容生成是快速的且低成本的。此外,由于本公开的实施例以全自动的方式来将文本内容转换为高质量的音频内容,音频内容创作的壁垒被进一步降低,使得不仅是专业的配音演员还是普通用户都可以方便快捷地进行自己独特的音频内容创作。
32.图1示出了示例性的传统tts模型100。
33.tts模型100可以被配置为接收文本102,并且生成与文本102相对应的语音波形108。文本102也可以被称为文本语句,其可以包括一个或多个词语、短语、语句、段落等,并且在本文中,术语“文本”与“文本语句”可以互换使用。应当理解,尽管在图1中示出将文本102提供给tts模型100,但是也可以首先将文本102转换为元素序列,例如音素序列、字素(grapheme)序列、字符序列等,然后将该序列提供给tts模型100作为输入。在本文中,所输入的“文本”可以广泛地指文本中所包括的词语、短语、句子等,或者从文本中获得的元素序列,例如音素序列、字素序列、字符序列等。
34.tts模型100可以包括声学模型110。声学模型110可以根据文本102来预测或生成声学特征106。声学特征106可以包括各种tts声学特征,例如,梅尔谱、线性谱对(lsp)等。声学模型110可以基于各种模型架构,例如,序列到序列模型架构等。图1示出了示例性的序列到序列声学模型110,其可以包括编码器112、注意力模块114和解码器116。
35.编码器112可以将文本102中包含的信息转换到更加鲁棒且更适于学习与声学特征的对准的空间中。例如,编码器112可以将文本102中的信息转换为该空间中的状态序列,其也可以被称为编码器状态序列。该状态序列中的每个状态对应于文本102中的一个音素、字素、字符等。
36.注意力模块114可以实施注意力机制。该注意力机制在编码器112和解码器116之间建立连接,以有助于在编码器112所输出的文本特征与声学特征之间进行对准。例如,可以建立在每个解码步骤与编码器状态之间的连接,该连接可以指示每个解码步骤应当以什么权重对应于哪个编码器状态。注意力模块114可以将编码器状态序列和解码器的前一步骤的输出作为输入,并且生成注意力向量,该注意力向量表示下一解码步骤与每个编码器状态进行对准的权重。
37.解码器116可以在注意力模块114中的注意力机制的影响下,将编码器112所输出的状态序列映射到声学特征106。在每一个解码步骤,解码器116可以将注意力模块114输出的注意力向量和解码器的前一步骤的输出作为输入,并且输出一个帧或多个帧的声学特征,例如梅尔谱。
38.tts模型100可以包括声码器120。声码器120可以基于声学模型110所预测的声学特征106来生成语音波形108。
39.图2示出了根据实施例的自动音频内容生成的示例性过程200。过程200可以被应用于单讲述者音频内容生成的场景。
40.文本内容210是根据实施例的自动音频内容生成的处理对象,例如,文本故事书,并且旨在通过对文本内容210中包括的多个文本分别执行过程200来生成音频内容,例如,有声书。假设文本212是当前从文本内容210中取出的,并且旨在通过执行过程200来生成对应于文本212的语音波形。
41.在220处,可以构建与文本212对应的上下文222。在一种实现方式中,上下文222可以包括文本内容210中与文本212临近的一个或多个文本。例如,上下文222可以包括文本212之前的至少一个语句和/或文本212之后的至少一个语句。从而,上下文222实际上是与文本212对应的一个语句序列。可选地,上下文222也可以包括文本内容210中的更多文本或全部文本。
42.在230处,可以至少基于上下文222来确定参考因素232。参考因素232可以在后续的tts语音合成中影响所合成的语音的特性。参考因素232可以包括与文本212对应的角色类别,其指示与文本212对应的角色的年龄、性别等属性。例如,如果文本212是由青年男性讲出的话语,则可以确定与该文本212对应的角色类别为<青年>、<男性>等。通常,不同的角色类别可能对应不同的语音特性。可选地,参考因素232还可以包括与文本212对应的风格,其指示例如文本212是以何种情感类型被讲出的。例如,如果文本212是由角色以生气的情感讲出的话语,则可以确定与该文本212对应的风格为<生气的>。通常,不同的风格可能对应不同的语音特性。角色类别和风格可以单独地或联合地影响所合成的语音的特性。在一种实现方式中,可以在230处通过预先训练的预测模型来基于上下文222预测角色类别、风格等。
43.根据过程200,可以采用针对目标讲话者所预先训练的tts模型240来生成语音波形。目标讲话者可以是预先自动确定的讲述者或者是由用户指定的讲述者。tts模型240可以利用目标讲话者的声音来合成语音。在一种实现方式中,tts模型240可以是基于语言特征的tts模型,与传统的基于语言特征的tts模型不同,此处的基于语言特征的tts模型240可以至少考虑参考因素来合成语音。基于语言特征的tts模型240可以在参考因素232包括角色类别的情况下,至少基于文本212和角色类别来生成与文本212对应的语音波形250,或者可以在参考因素232包括角色类别和风格两者的情况下,至少基于文本212、角色类别和风格来生成与文本212对应的语音波形250。在一种实现方式中,tts模型240可以是基于上下文的tts模型,与传统的基于上下文的tts模型不同,此处的基于上下文的tts模型240可以至少考虑参考因素来合成语音。基于上下文的tts模型240可以在参考因素232包括角色类别的情况下,至少基于文本212、上下文222和角色类别来生成与文本212对应的语音波形250,或者可以在参考因素232包括角色类别和风格两者的情况下,至少基于文本212、上下文222、角色类别和风格来生成与文本212对应的语音波形250。
44.通过类似的方式,可以通过过程200来生成与文本内容210中包括的多个文本所对应的多个语音波形。所有这些语音波形可以一起形成与文本内容210对应的音频内容。该音频内容可以包括利用目标讲话者的声音所合成的不同角色类别和/或不同风格的语音。
45.图3示出了根据实施例的自动音频内容生成的示例性过程300。过程300可以被应用于多讲述者音频内容生成的场景。
46.假设从文本内容310中取出当前的文本312,并且旨在通过执行过程300来生成对应于文本312的语音波形。
47.在320处,可以构建与文本312对应的上下文322。在一种实现方式中,上下文322可以包括文本内容310中与文本312临近的一个或多个文本。可选地,上下文322也可以包括文本内容310中的更多文本或全部文本。
48.在330处,可以至少基于上下文322来确定参考因素332,其用于在后续的tts语音
合成中影响所合成的语音的特性。参考因素332可以包括与文本312对应的角色类别。参考因素332还可以包括与文本312对应的角色性格,其指示文本312所对应的角色的性格。例如,如果文本312是由邪恶的老女巫讲出的话语,则可以确定与该文本312对应的角色性格为<邪恶的>。通常,不同的角色性格可能对应不同的语音特性。参考因素332还可以包括与文本312对应的角色,其指示文本312是由文本内容310中的哪个角色讲出的。通常,不同的角色可以采用不同的声音。可选地,参考因素332还可以包括与文本312对应的风格。在一种实现方式中,可以在330处通过不同的预先训练的预测模型来基于上下文322预测不同的参考因素。这些预测模型可以包括例如用于预测角色类别和风格的预测模型、用于预测角色性格的预测模型、用于预测角色的预测模型等。
49.根据过程300,可以在340处从预先准备的候选tts模型库350中选择所要使用的tts模型。候选tts模型库350可以包括针对不同候选讲话者所预先训练的多个候选tts模型。每个候选讲话者可以具有在角色类别、角色性格、角色等中的至少一个方面的属性。例如,候选讲话者1的属性可以包括<老年>、<女性>、<邪恶的>和<女巫>,候选讲话者2的属性可以包括<中年>、<男性>和<开朗的>,等等。可以利用参考因素332中的角色类别、角色性格和角色中至少之一来确定与文本312对应的候选讲话者,并且相应地选择与所确定的候选讲话者对应的tts模型。
50.假设在340处从候选tts模型库350中选择了tts模型360以用于为文本312生成语音波形。tts模型360可以利用与该模型对应的讲话者的声音来合成语音。在一种实现方式中,tts模型360可以是基于语言特征的tts模型,其可以至少基于文本312来生成与文本312对应的语音波形370。在参考因素332包括风格的情况下,语音波形370可以是由基于语言特征的tts模型360进一步基于风格来生成的。在一种实现方式中,tts模型360可以是基于上下文的tts模型,其可以至少基于文本312和上下文322来生成与文本312对应的语音波形370。在参考因素332包括风格的情况下,语音波形370可以是由基于上下文的tts模型360进一步基于风格来生成的。
51.通过类似的方式,可以通过过程300来生成与文本内容310中包括的多个文本所对应的多个语音波形。所有这些语音波形可以一起形成与文本内容310对应的音频内容。该音频内容可以包括利用为不同角色自动分配的不同讲话者的声音所合成的语音,并且可选地,这些语音可以具有不同风格。
52.图4示出了根据实施例的准备训练数据的示例性过程400。
53.可以预先获得多组匹配的音频内容402和文本内容404,例如,有声书和对应的文本故事书。
54.在410处,可以对音频内容402执行自动分段。例如,可以将音频内容402自动地划分成多个音频段,每个音频段可以对应于一个或多个语音话语。可以通过任何已知的音频分段技术来执行410处的自动分段。
55.在420处,可以利用文本内容404对所划分的多个音频段执行后处理。在一个方面,在420处的后处理可以包括利用文本内容404来进行话语完整性重分段。例如,可以通过任何已知的文本分段技术来将文本内容404容易地划分成多个文本语句,然后以文本语句为参照来确定与每个文本语句对应的音频段。对于每个文本语句,可能将在410处获得的一个或多个音频段进行分割或组合,以便与该文本语句相匹配。相应地,可以实现音频段与文本
语句在时间点上的对准,并形成多个<文本语句,音频段>对。在另一个方面,在420处的后处理可以包括将音频段分类成旁白和对话。例如,通过对文本语句执行用于识别旁白和对话的分类处理,可以将与该文本语句对应的音频段分类为旁白和对话。
56.在430处,可以为涉及对话的<文本语句,音频段>对添加标记。该标记可以包括例如角色类别、风格等。在一种情况下,可以通过自动聚类的方式来确定每个<文本语句,音频段>对的角色类别、风格等。在另一种情况下,可以人为地标记每个<文本语句,音频段>对的角色类别、风格等。
57.通过过程400,可以最终获得一组经过标记的训练数据406。每条训练数据可以具有例如<文本语句,音频段,角色类别,风格>的形式。训练数据406可以进而被应用于训练用于预测与文本对应的角色类别和风格的预测模型、用于生成语音波形的tts模型等。
58.应当理解,以上过程400仅仅是示例性的,取决于具体的应用场景和设计,还可以通过类似的方式来准备任何其它形式的训练数据。例如,在430处添加的标记还可以包括角色、角色性格等。
59.图5示出了根据实施例的预测角色类别和风格的示例性过程500。过程500可以是由用于预测角色类别和风格的预测模型来执行的。该预测模型可以为文本自动分配角色类别和风格。
60.对于文本502,可以在510处构建与文本502对应的上下文。在510处的处理可以类似于图2中220处的处理。
61.所构建的上下文可以被提供给预先训练的语言模型520。语言模型520用于对文本信息进行建模和表达,其可以被训练用于为输入的文本生成隐式空间表达(latent space representation),例如,嵌入表达。语言模型520可以基于任何适当的技术,例如来自变换器的双向编码器表达(bert)等。
62.由语言模型520所输出的嵌入表达可以被依次提供给映射(projection)层530和softmax层540。映射层530可以将嵌入表达转换为经映射的表达,softmax层540可以基于经映射的表达来计算不同角色类别的概率和不同风格的概率,从而最终确定与文本502对应的角色类别504和风格506。
63.可以利用通过图4的过程400所获得的训练数据来训练用于执行过程500的预测模型。例如,可以采用<文本,角色类别,风格>形式的训练数据来训练该预测模型。在应用该经训练的预测模型的阶段,该预测模型可以基于输入的文本来预测出与该文本对应的角色类别和风格。
64.尽管以上结合过程500描述了预测模型可以联合地预测角色类别和风格,但是应当理解,也可以通过类似的过程,采用单独的预测模型来分别预测角色类别和风格。
65.图6示出了根据实施例的采用基于语言特征的tts模型来进行语音合成的示例性实现600。该实现600可被应用于单讲述者音频内容生成的场景,其可被视为是图2的过程200的示例性具体实现。假设在图6中想要为文本602生成语音波形。
66.可以通过预测模型610来预测与文本602对应的风格612和角色类别614。预测模型610可以基于例如图5的过程500来进行预测。可以通过例如角色类别嵌入查找表(lut)来获得与角色类别614对应的角色类别嵌入表达616。在618处,可以对风格612与角色类别嵌入表达616进行级联,以获得经级联的表达。在620处,可以基于经级联的表达来生成对应的隐
式表达。可以通过各种方式来执行620处的隐式表达生成,例如,高斯混合变分自编码器(gmvae)、向量量化vae(vq-vae)、vae、全局风格表示(gst)等。以gmvae为例,其可以学习隐式变量的分布,并且在模型应用阶段,可以从后验概率中采样出隐式表达,或者直接将先验均值用作隐式表达。
67.在630处,可以对文本602执行前端分析,以提取音素特征632和韵律(prosody)特征634。可以采用任何已知的tts前端分析技术来执行630处的前端分析。音素特征632可以指从文本602中提取的音素序列。韵律特征634可以指与文本602对应的韵律信息,例如,停顿(break)、口音(accent)、音调(intonation)、速率等。
68.可以利用编码器640来对音素特征632和韵律特征634进行编码。编码器640可以基于任何架构。作为示例,在图7中给出了编码器640的一个实例。图7示出了根据实施例的在基于语言特征的tts模型中的编码器710的示例性实现。编码器710可以对应于图6中的编码器640。编码器710可以对音素特征702和韵律特征704进行编码,其中,音素特征702和韵律特征704可以分别对应于图6中的音素特征632和韵律特征634。可以分别通过1-d卷积过滤器712、最大池化层714、1-d卷积映射716等的处理对音素特征702和韵律特征704进行特征提取。在718处,可以将1-d卷积映射716的输出与音素特征702和韵律特征704叠加(add)在一起。在718处的叠加的输出可以进而经由高速网络层722和双向长短期记忆(blstm)层724的处理,以便得到编码器输出712。应当理解,图7中的架构和所有组件都是示例性的,取决于具体的需求和设计,编码器710也可以具有任何其它的实现方式。
69.根据过程600,在642处,可以对编码器640的输出和在620处获得的隐式表达进行叠加。
70.图6中的基于语言特征的tts模型可以用于单讲述者音频内容生成。因此,可以针对目标讲话者604来训练该tts模型。可以通过例如讲话者嵌入lut来获得与目标讲话者604对应的讲话者嵌入表达606,并且该讲话者嵌入表达606可以用于影响tts模型以目标讲话者604的声音来进行语音合成。在644处,可以将642处的叠加的输出与讲话者嵌入表达606进行级联,并且级联的输出可以被提供给注意力模块650。
71.解码器660可以在注意力模块650的影响下生成声学特征,例如,梅尔谱特征等。声码器670可以基于声学特征来生成与文本602对应的语音波形608。
72.图6中的实现600旨在说明采用基于语言特征的tts模型来进行语音合成的示例性架构。可以至少采用通过例如图4的过程400所获得的训练数据进行模型训练。例如,通过过程400,可以获得文本与语音波形对,以及对应的角色类别、风格等标记。应当理解,可选地,在实际应用阶段,由于tts模型已经被训练用于基于目标讲话者的声音来合成语音,因此可以省略讲话者嵌入表达的输入。此外,应当理解,实现600中的任何组件和处理都是示例性的,取决于具体的需求和设计,可以对实现600进行任意形式的改变。
73.图8示出了根据实施例的采用基于上下文的tts模型来进行语音合成的示例性实现800。该实现800可被应用于单讲述者音频内容生成的场景,其可被视为是图2的过程200的示例性具体实现。实现800与图6中的实现600类似,除了tts模型采用了上下文编码之外。假设在图8中想要为文本802生成语音波形。
74.可以通过预测模型810来预测与文本802对应的风格812和角色类别814。预测模型810可以类似于图6中的预测模型610。可以获得与角色类别814对应的角色类别嵌入表达
816,并且在818处,可以对风格812与角色类别嵌入表达816进行级联,以获得经级联的表达。在820处,可以基于经级联的表达来生成对应的隐式表达。在820处的隐式表达生成可以类似于图6中在620处的隐式表达生成。
75.可以通过对文本802执行前端分析(未示出)来提取音素特征832。可以利用音素编码器830来对音素特征832执行编码。音素编码器830可以类似于图6中的编码器640,除了仅将音素特征作为输入之外。
76.可以从文本802中提取上下文信息842,并且利用上下文编码器840来对上下文信息842进行编码。上下文信息842可以对应于例如图2中的上下文222,或者是从上下文222中进一步提取的适用于上下文编码器840的各种信息。上下文编码器840可以是任何已知的可用于tts模型的上下文编码器。作为示例,在图9中给出了上下文编码器840的一个实例。图9示出了在基于上下文的tts模型中的上下文编码器900的示例性实现。上下文编码器900可以对应于图8中的上下文编码器840。上下文编码器900可以对上下文信息902执行编码,该上下文信息902可以对应于图8中的上下文信息842。上下文编码器900可以包括词语编码器910,其用于对当前文本,例如文本802,执行编码以获得当前语义特征。词语编码器910可以包括例如嵌入层、上采样层、编码层等,其中,嵌入层用于为当前文本中的词序列生成词嵌入序列,上采样层用于对词嵌入序列进行上采样以与当前文本的音素序列对准,并且编码层用于通过例如卷积层、blstm层等来将经上采样的词嵌入序列编码为当前语义特征。可以从上下文信息902中提取历史文本、将来文本、段落文本等。历史文本可以包括位于当前文本之前的一个或多个语句,将来文本可以包括位于当前文本之后的一个或多个语句,段落文本可以包括当前文本所位于的段落中的所有语句。上下文编码器可以包括历史和将来编码器920,其用于对历史文本、将来文本和段落文本执行编码以分别获得历史语义特征、将来语义特征和段落语义特征。历史和将来编码器920可以包括例如嵌入层、上采样层、密集层、编码层等,其中,嵌入层用于为输入的文本中的词序列生成词嵌入序列,上采样层用于对词嵌入序列进行上采样以与当前文本的音素序列对准,密集层用于为经上采样的词嵌入序列产生压缩表达,并且编码层用于将经压缩的词嵌入序列编码为与输入的文本对应的语义特征。应当理解,尽管图9中示出了单个的历史和将来编码器,但是也可以为历史文本、将来文本和段落文本分别设置各自的编码器以相互独立地生成各自的语义特征。可以在930处对当前语义特征、历史语义特征、将来语义特征、段落语义特征等进行叠加,以输出上下文特征904。
77.根据过程800,在852处,可以对音素编码器830的输出、上下文编码器840的输出和在820处获得的隐式表达进行叠加。此外,上下文编码器840的输出还可以被提供给注意力模块844。
78.图8中的基于语言特征的tts模型可以用于单讲述者音频内容生成。因此,可以针对目标讲话者804来训练该tts模型。可以获得与目标讲话者804对应的讲话者嵌入表达806,其用于影响tts模型以目标讲话者804的声音来进行语音合成。在854处,可以将852处的叠加的输出与讲话者嵌入表达806进行级联,并且级联的输出可以被提供给注意力模块860。
79.在870处,可以对注意力模块844的输出与注意力模块860的输出进行级联,以便影响在解码器880处对声学特征的生成。声码器890可以基于声学特征来生成与文本802对应
的语音波形808。
80.可以至少采用通过例如图4的过程400所获得训练数据来在图8中进行模型训练。应当理解,可选地,在实际应用阶段,由于tts模型已经被训练用于基于目标讲话者的声音来合成语音,因此可以省略讲话者嵌入表达的输入。此外,应当理解,实现800中的任何组件和处理都是示例性的,取决于具体的需求和设计,可以对实现800进行任意形式的改变。
81.图10示出了根据实施例的预测角色和选择tts模型的示例性过程1000。过程1000可以在多讲述者音频内容生成的场景中执行,其是图3中过程300的至少一部分的示例性具体实现。过程1000可用于确定与文本对应的具体角色,并且选择基于与该角色对应的讲话者的声音所训练的tts模型。
82.文本1002来自于文本内容1004。在1010处,可以构建与文本1002对应的上下文。在1020处,可以通过例如预先训练的语言模型来生成上下文的嵌入表达。
83.在1030处,可以从文本内容1004中提取多个候选角色。假设文本内容1004是文本故事书,则可以在1030处提取出该文本故事书中涉及的所有角色以形成候选角色列表。可以通过任何已知的技术来执行1030处的候选角色提取。
84.在1040处,可以执行基于上下文的候选特征提取。例如,对于当前的文本1002,可以从上下文中为每个候选角色提取一个或多个候选特征。假设总共有n个候选角色,则可以在1040处获得n个候选特征向量,其中每个候选特征向量包括为一个候选角色所提取的候选特征。可以在1040处提取各种类型的特征。在一种实现方式中,所提取的特征可以包括在当前文本与候选角色之间间隔的词语数量。由于角色的名字通常在该角色的话语附近出现,因此,该特征有助于确定当前文本是否是由某个候选角色讲出的。在一种实现方式中,所提取的特征可以包括在上下文中角色候选出现的次数。该特征可以反映特定候选角色在文本内容中的相对重要性。在一种实现方式中,所提取的特征可以包括指示候选角色的名字是否在当前文本中出现的二进制特征。通常,一个角色不太可能在自己讲出的话语中提及自己的名字。在一种实现方式中,所提取的特征可以包括指示候选角色的名字是否出现在最接近的先前文本中或最接近的后续文本中的二进制特征。由于在两个角色之间的对话中经常采用讲话者交替模式,因此,讲出当前文本的角色很有可能在最接近的先前文本或最接近的后续文本中出现。应当理解,所提取的特征还可以包括任何其它有助于确定例如与文本1002对应的角色的特征。
85.在1050处,可以将在1020处所生成的上下文嵌入表达与在1040处所提取的所有候选特征向量进行组合,以便形成与所有候选角色对应的候选特征矩阵。
86.根据过程1000,可以通过学习排序(ltr)模型1060,至少基于上下文来从多个候选角色中确定与文本1002对应的角色1062。例如,ltr模型1060可以基于从上下文中获得的候选特征矩阵来对多个候选角色进行排序,并且将排序最高的候选角色确定为与文本1002对应的角色1062。ltr模型1060可以是采用各种技术来构建的,例如,排序支持向量机(svm)、排序网络(ranknet)、有序(ordinal)分类等。应当理解,在本文中,可以将ltr模型1060视为用于基于上下文来预测角色的预测模型,或者更宽泛地将ltr模型1060与步骤1010、1020、1030、1040和1050的组合视为基于上下文来预测角色的预测模型。
87.根据过程1000,可选地,可以通过性格预测模型1070,至少基于上下文来预测与文本1002对应的角色的角色性格1072。例如,性格预测模型1070可以基于从上下文中获得的
候选特征矩阵来预测角色性格1072。性格预测模型1070可以是基于与图5的过程500相类似的过程来构建的,除了其是利用文本与角色性格训练数据对而训练用于角色性格分类任务之外。
88.根据过程1000,可以在1080处从预先准备的候选tts模型库1082中选择所要使用的tts模型1090。候选tts模型库1082可以包括针对不同候选讲话者所预先训练的多个候选tts模型。每个候选讲话者可以具有在角色类别、角色性格、角色等中的至少一个方面的属性。在1080处,可以利用角色1062、角色性格1072和角色类别1006中至少之一来确定与文本1002对应的候选讲话者,并且相应地选择与所确定的候选讲话者对应的tts模型1090。角色类别1006可以是通过例如图5的过程500来确定的。
89.应当理解,过程1000中的任何步骤和处理都是示例性的,取决于具体的需求和设计,可以对过程1000进行任意形式的改变。
90.图11示出了根据实施例的采用基于语言特征的tts模型来进行语音合成的示例性实现1100。该实现1100可被应用于多讲述者音频内容生成的场景,其可被视为是图3的过程300的示例性具体实现。假设在图11中想要为文本1102生成语音波形。
91.可以通过预测模型1110来预测与文本1102对应的角色性格1112。预测模型1110可以对应于例如图10中的性格预测模型1070。可以通过预测模型1120来预测与文本1102对应的角色1122。预测模型1120可以对应于例如以上结合图10所描述的用于预测角色的预测模型。可以通过预测模型1130来预测与文本1102对应的角色类别1132和风格1134。预测模型1130可以基于例如图5的过程500来构建的。在1136处,可以生成与风格1134对应的隐式表达。在1140处,可以对文本1102执行前端分析,以提取音素特征1142和韵律特征1144。可以利用编码器1150来对音素特征1142和韵律特征1144进行编码。在1152处,可以对编码器1150的输出和在1136处获得的隐式表达进行叠加。
92.图11中的基于语言特征的tts模型可以用于多讲述者音频内容生成。可以通过与图10的过程1000类似的方式,基于角色1122、角色性格1112和角色类别1132中至少之一来确定与角色1122对应的候选讲话者1104。可以针对候选讲话者1104来训练该tts模型。可以通过例如讲话者嵌入lut来获得与候选讲话者1104对应的讲话者嵌入表达1106,并且该讲话者嵌入表达1106可以用于影响tts模型以候选讲话者1104的声音来进行语音合成。在1154处,可以将1152处的叠加的输出与讲话者嵌入表达1106进行级联,并且级联的输出可以被提供给注意力模块1160。
93.解码器1170可以在注意力模块1160的影响下生成声学特征。声码器1180可以基于声学特征来生成与文本1102对应的语音波形1108。
94.图11中的实现1100旨在说明采用基于语言特征的tts模型来进行语音合成的示例性架构。通过对不同的候选讲话者构建对应的tts模型,可以获得多个候选tts模型。在实际应用阶段,可以基于角色、角色性格和角色类别中至少之一来确定与角色对应的候选讲话者,并进而选择针对该候选讲话者所训练的tts模型以用于生成语音波形。此外,应当理解,实现1100中的任何组件和处理都是示例性的,取决于具体的需求和设计,可以对实现1100进行任意形式的改变。
95.图12示出了根据实施例的采用基于上下文的tts模型来进行语音合成的示例性实现1200。该实现1200可被应用于多讲述者音频内容生成的场景,其可被视为是图3的过程
300的示例性具体实现。实现1200与图11中的实现1100类似,除了tts模型采用了上下文编码之外。假设在图12中想要为文本1202生成语音波形。
96.可以通过预测模型1210来预测与文本1202对应的角色性格1212。预测模型1210可以类似于图11中的预测模型1110。可以通过预测模型1220来预测与文本1202对应的角色1222。预测模型1220可以类似于图11中的预测模型1120。可以通过预测模型1230来预测与文本1202对应的角色类别1232和风格1234。预测模型1230可以类似于图11中的预测模型1130。在1236处,可以生成与风格1234对应的隐式表达。
97.可以通过对文本1202执行前端分析(未示出)来提取音素特征1242。可以利用音素编码器1240来对音素特征1242执行编码。音素编码器1240可以类似于图8中的音素编码器。可以从文本1202中提取上下文信息1252,并且利用上下文编码器1250来对上下文信息1252进行编码。上下文编码器1250可以类似于图8中的上下文编码器840。
98.在1262处,可以对音素编码器1240的输出、上下文编码器1250的输出和在1236处获得的隐式表达进行叠加。此外,上下文编码器1250的输出还可以被提供给注意力模块1254。
99.图12中的基于上下文的tts模型可以用于多讲述者音频内容生成。可以通过与图10的过程1000类似的方式,基于角色1222、角色性格1212和角色类别1232中至少之一来确定与角色1222对应的候选讲话者1204。可以针对候选讲话者1204来训练该tts模型。可以将与候选讲话者1204对应的讲话者嵌入表达1206用于影响tts模型以候选讲话者1204的声音来进行语音合成。在1264处,可以将1262处的叠加的输出与讲话者嵌入表达1206进行级联,并且级联的输出可以被提供给注意力模块1270。
100.在1272处,可以对注意力模块1254的输出与注意力模块1270的输出进行级联,以便影响在解码器1280处对声学特征的生成。声码器1290可以基于声学特征来生成与文本1202对应的语音波形1208。
101.图12中的实现1200旨在说明采用基于上下文的tts模型来进行语音合成的示例性架构。通过对不同的候选讲话者构建对应的tts模型,可以获得多个候选tts模型。在实际应用阶段,可以基于角色、角色性格和角色类别中至少之一来确定与角色对应的候选讲话者,并进而选择针对该候选讲话者所训练的tts模型以用于生成语音波形。此外,应当理解,实现1200中的任何组件和处理都是示例性的,取决于具体的需求和设计,可以对实现1200进行任意形式的改变。
102.根据本公开的实施例,还可以对音频内容进行定制。例如,所生成的音频内容中的语音波形可以被调整,以便更新音频内容。
103.图13示出了根据实施例的更新音频内容的示例性过程1300。
104.假设用户提供了文本内容1302,并且想要获得对应于该文本内容1302的音频内容。可以通过在1310处执行音频内容生成来创建与文本内容1302对应的音频内容1304。在1310处的音频内容生成可以基于以上结合图2至图12所描述的根据本公开实施例的自动音频内容生成的任意实现方式。
105.音频内容1304可以被提供给定制化平台1320。定制化平台1320可以包括与用户进行交互的用户界面。通过该用户界面,可以向用户提供和呈现音频内容1304,并且可以接收用户对于音频内容的至少一部分的调整指示1306。例如,如果用户对于音频内容1304中的
某一句话语不满意或者想要将该话语修改为期望的角色类别、期望的风格等,则用户可以通过用户界面输入调整指示1306。
106.调整指示1306可以包括对语音合成中涉及的各种参数的修改或设置。在一种实现方式中,调整指示可以包括关于韵律信息的调整信息。韵律信息可以包括例如停顿、口音、音调、速率中至少之一。例如,用户可以指定在某个词语之前或之后的停顿、指定某句话语的口音、改变某个词语的音调、调整某句话语的速率、等等。在一种实现方式中,调整指示可以包括关于发音的调整信息。例如,用户可以指定某个多音字在当前音频内容中应该具有的正确发音,等等。在一种实现方式中,调整指示可以包括关于角色类别的调整信息。例如,用户可以为具有“中年男人”音色的话语指定所期望的“老年男人”的角色类别。在一种实现方式中,调整指示可以包括关于风格的调整信息。例如,用户可以为具有“悲伤”情感的话语指定所期望的“高兴”情感。在一种实现方式中,调整指示可以包括关于声学参数的调整信息。例如,用户可以为某个话语指定特定的声学参数。应当理解,以上仅列出了调整指示1306的几种示例,调整指示1306还可以包括对能够影响语音合成的任何其它参数的修改或设置。
107.根据过程1300,响应于调整指示1306,定制化平台1320可以调用tts模型1330来重新生成语音波形。假设调整指示1306是针对音频内容1304中的某一句话语或对应的语音波形的,则可以将与该语音波形对应的文本连同调整指示中的调整信息一起提供给tts模型1330。tts模型1330可以进而以调整信息为条件重新生成该文本的语音波形1332。以调整指示1306包括关于角色类别的调整信息为例,可以利用调整指示1306中指定的角色类别来替代例如在图2中所确定的角色类别,并进一步由tts模型生成语音波形。在一种实现方式中,由于基于语言特征的tts模型具有显式的特征输入,其是能够被与调整指示对应的参数所控制的,因此,tts模型1330可以采用基于语言特征的tts模型。
108.可以利用重新生成的语音波形1332来替代音频内容1304中的先前语音波形,以便形成更新的音频内容1308。
109.过程1300可以被迭代地执行,从而实现对所生成的音频内容的不断调整和优化。应当理解,过程1300中的任何步骤和处理都是示例性的,取决于具体的需求和设计,可以对过程1300进行任意形式的改变。
110.图14示出了根据实施例的用于自动音频内容生成的示例性方法1400的流程。
111.在1410处,可以获得文本。
112.在1420处,可以构建与所述文本对应的上下文。
113.在1430处,可以至少基于所述上下文来确定参考因素,所述参考因素至少包括与所述文本对应的角色类别和/或角色。
114.在1440处,可以至少基于所述文本和所述参考因素来生成与所述文本对应的语音波形。
115.在一种实现方式中,所述参考因素还可以包括与所述文本对应的风格。
116.在一种实现方式中,所述确定参考因素可以包括:通过预测模型,至少基于所述上下文来预测所述角色类别。
117.所述生成语音波形可以包括:通过基于语言特征的tts模型,至少基于所述文本和所述角色类别来生成所述语音波形。所述基于语言特征的tts模型可以是针对目标讲话者
所预先训练的。
118.所述生成语音波形可以包括:通过基于上下文的tts模型,至少基于所述文本、所述上下文和所述角色类别来生成所述语音波形。所述基于上下文的tts模型可以是针对目标讲话者所预先训练的。
119.在一种实现方式中,所述确定参考因素可以包括:从包括所述文本的文本内容中提取多个候选角色;以及通过ltr模型,至少基于所述上下文来从所述多个候选角色中确定所述角色。
120.在一种实现方式中,所述生成语音波形可以包括:从预先训练的多个候选tts模型中选择与所述角色对应的tts模型,所述多个候选tts模型是分别针对不同讲话者所预先训练的;以及通过所选择的tts模型来生成所述语音波形。
121.所述确定参考因素可以包括:通过第一预测模型,至少基于所述上下文来预测所述角色类别;通过第二预测模型,至少基于所述上下文来预测所述角色;以及通过第三预测模型,至少基于所述上下文来预测角色性格。所述选择tts模型可以包括:基于所述角色、所述角色类别和所述角色性格中至少之一来从所述多个候选tts模型中选择所述tts模型。
122.所选择的tts模型可以是基于语言特征的tts模型,并且所述生成语音波形可以包括:通过所述基于语言特征的tts模型,至少基于所述文本来生成所述语音波形。
123.所选择的tts模型可以是基于上下文的tts模型,并且所述生成语音波形可以包括:通过所述基于上下文的tts模型,至少基于所述文本和所述上下文来生成所述语音波形。
124.在一种实现方式中,所述语音波形可以是进一步基于与所述文本对应的风格来生成的。
125.在一种实现方式中,方法1400还可以包括:接收针对所述语音波形的调整指示;以及响应于所述调整指示,通过基于语言特征的tts模型,重新生成与所述文本对应的语音波形。
126.所述调整指示可以包括以下至少之一:关于韵律信息的调整信息,所述韵律信息包括停顿、口音、音调、速率中至少之一;关于发音的调整信息;关于角色类别的调整信息;关于风格的调整信息;以及关于声学参数的调整信息。
127.应当理解,方法1400还可以包括根据上述本公开实施例的用于自动音频内容生成的任何步骤/过程。
128.图15示出了根据实施例的用于自动音频内容生成的示例性装置1500。
129.装置1500可以包括:文本获得模块1510,用于获得文本;上下文构建模块1520,用于构建与所述文本对应的上下文;参考因素确定模块1530,用于至少基于所述上下文来确定参考因素,所述参考因素至少包括与所述文本对应的角色类别和/或角色;以及语音波形生成模块1540,用于至少基于所述文本和所述参考因素来生成与所述文本对应的语音波形。
130.在一种实现方式中,所述参考因素确定模块1530可以用于:通过预测模型,至少基于所述上下文来预测所述角色类别。
131.所述语音波形生成模块1540可以用于:通过基于语言特征的tts模型,至少基于所述文本和所述角色类别来生成所述语音波形。所述基于语言特征的tts模型可以是针对目
标讲话者所预先训练的。
132.所述语音波形生成模块1540可以用于:通过基于上下文的tts模型,至少基于所述文本、所述上下文和所述角色类别来生成所述语音波形。所述基于上下文的tts模型可以是针对目标讲话者所预先训练的。
133.在一种实现方式中,所述参考因素确定模块1530可以用于:从包括所述文本的文本内容中提取多个候选角色;以及通过ltr模型,至少基于所述上下文来从所述多个候选角色中确定所述角色。
134.在一种实现方式中,所述语音波形生成模块1540可以用于:从预先训练的多个候选tts模型中选择与所述角色对应的tts模型,所述多个候选tts模型是分别针对不同讲话者所预先训练的;以及通过所选择的tts模型来生成所述语音波形。
135.此外,装置1500还可以包括执行根据上述本公开实施例的用于自动音频内容生成的方法的步骤的任何其它模块。
136.图16示出了根据实施例的用于自动音频内容生成的示例性装置1600。
137.装置1600可以包括:至少一个处理器1610;以及存储器1620,其存储计算机可执行指令,当所述计算机可执行指令被执行时使所述至少一个处理器1610:获得文本;构建与所述文本对应的上下文;至少基于所述上下文来确定参考因素,所述参考因素至少包括与所述文本对应的角色类别和/或角色;以及至少基于所述文本和所述参考因素来生成与所述文本对应的语音波形。此外,处理器1610还可以执行根据上述本公开实施例的用于自动音频内容生成的方法的任何其它步骤/过程。
138.本公开的实施例可以实施在非暂时性计算机可读介质中。该非暂时性计算机可读介质可以包括指令,当所述指令被执行时,使得一个或多个处理器执行根据上述本公开实施例的用于自动音频内容生成的方法的任何操作。
139.应当理解,以上描述的方法中的所有操作都仅仅是示例性的,本公开并不限制于方法中的任何操作或这些操作的顺序,而是应当涵盖在相同或相似构思下的所有其它等同变换。
140.还应当理解,以上描述的装置中的所有模块都可以通过各种方式来实施。这些模块可以被实施为硬件、软件、或其组合。此外,这些模块中的任何模块可以在功能上被进一步划分成子模块或组合在一起。
141.已经结合各种装置和方法描述了处理器。这些处理器可以使用电子硬件、计算机软件或其任意组合来实施。这些处理器是实施为硬件还是软件将取决于具体的应用以及施加在系统上的总体设计约束。作为示例,本公开中给出的处理器、处理器的任意部分、或者处理器的任意组合可以实施为微处理器、微控制器、数字信号处理器(dsp)、现场可编程门阵列(fpga)、可编程逻辑器件(pld)、状态机、门逻辑、分立硬件电路、以及配置用于执行在本公开中描述的各种功能的其它适合的处理部件。本公开给出的处理器、处理器的任意部分、或者处理器的任意组合的功能可以实施为由微处理器、微控制器、dsp或其它适合的平台所执行的软件。
142.软件应当被广泛地视为表示指令、指令集、代码、代码段、程序代码、程序、子程序、软件模块、应用、软件应用、软件包、例程、子例程、对象、运行线程、过程、函数等。软件可以驻留在计算机可读介质中。计算机可读介质可以包括例如存储器,存储器可以例如为磁性
存储设备(如,硬盘、软盘、磁条)、光盘、智能卡、闪存设备、随机存取存储器(ram)、只读存储器(rom)、可编程rom(prom)、可擦除prom(eprom)、电可擦除prom(eeprom)、寄存器或者可移动盘。尽管在本公开给出的多个方面中将存储器示出为是与处理器分离的,但是存储器也可以位于处理器内部(如,缓存或寄存器)。
143.以上描述被提供用于使得本领域任何技术人员可以实施本文所描述的各个方面。这些方面的各种修改对于本领域技术人员是显而易见的,本文限定的一般性原理可以应用于其它方面。因此,权利要求并非旨在被局限于本文示出的方面。关于本领域技术人员已知或即将获知的、对本公开所描述各个方面的元素的所有结构和功能上的等同变换,都将由权利要求所覆盖。