时钟式层次变分编码器的制作方法
本公开涉及一种用于预测韵律的时钟式(clockwork)层次变分(variational)编码器。
背景技术:
语音合成系统使用文本到语音(tts)模型来根据文本输入生成语音。生成/合成的语音应该准确地传达信息(可懂度),同时听起来像具有意图的韵律(prosody)(表达性)的人类语音(自然度)。虽然传统的拼接式和参数式合成模型能够提供可理解的语音,并且语音的神经建模方面的最新进展已经显著提高了合成语音的自然度,但是大多数现有的tts模型在对韵律建模方面是无效的,从而导致重要应用所使用的合成语音缺乏表达性。例如,对于诸如会话助手和长篇式阅读器的应用来说,期望的是通过输入文本输入中没有传达的韵律特征(诸如语调、重音、节奏和风格)来产生真实的语音。例如,简单的语句可以以许多不同的方式讲出,这取决于该语句是否是问题、是否是问题的答案、该语句中是否存在不确定性,或者是否传达输入文本未指定的关于环境或上下文的任何其他含义。
技术实现要素:
本公开的一个方面提供了一种在合成语音中表示意图的韵律的方法。该方法包括在数据处理硬件处接收具有至少一个词的文本话语,并且由数据处理硬件选择用于该文本话语的话语嵌入。文本话语中的每个词具有至少一个音节,并且每个音节至少有一个音素。话语嵌入表示意图的韵律。对于每个音节,使用所选择的话语嵌入,该方法还包括:由数据处理硬件通过将该音节的每个音素的语言特征与该音节的相对应的韵律音节嵌入进行编码,来预测该音节的持续时间;由数据处理硬件基于音节的预测持续时间来预测音节的基音轮廓;以及由数据处理硬件基于音节的预测持续时间生成多个固定长度的预测基音帧。每个固定长度的预测基音帧表示音节的预测基音轮廓的一部分。
本公开的实施方式可以包括以下可选特征中的一个或多个。在一些实施方式中,表示文本话语的层次语言结构的网络包括包含文本话语的每个音节的第一层级、包含文本话语的每个音素的第二层级和包含文本话语的每个音节的每个固定长度的预测基音帧的第三层级。在这些实施方式中,网络的第一层级可以包括表示文本话语的每个音节的长短期记忆(longshort-termmemory,lstm)处理单体,网络的第二层级可以包括表示文本话语的每个音素的lstm处理单体,并且网络的第三层级可以包括表示每个固定长度的预测基音帧的lstm处理单体。这里,第二层级的lstm处理单体相对于第一层级的lstm处理单体计时并且计时得比第一层级的lstm处理单体更快,而第三层级的lstm处理单体相对于第二层级的lstm处理单体计时并且计时得比第二层级的lstm处理单体更快。
在一些示例中,预测音节的持续时间包括:对于与音节相关联的每个音素,通过将相对应的音素的语言特征与该音节的相对应的韵律音节嵌入进行编码,来预测相对应的音素的持续时间;以及通过对与音节相关联的每个音素的预测持续时间求和来确定音节的持续时间。在这些示例中,基于音节的预测持续时间来预测音节的基音轮廓可以包括将该音节的相对应的韵律音节嵌入与对相对应的韵律音节嵌入和与该音节相关联的每个相对应的音素的音素层级语言特征的每个编码相组合。
在一些实施方式中,该方法还包括,对于每个音节,使用所选择的话语嵌入进行以下操作:由数据处理硬件基于音节中每个音素的预测持续时间来预测音素的能量轮廓;以及对于与音节相关联的每个音素,由数据处理硬件基于该音素的预测持续时间生成多个固定长度的预测能量帧。这里,每个固定长度的能量帧表示相对应的音素的预测能量轮廓。在这些实施方式中,层次语言结构表示文本话语,并且层次语言结构包括包含文本话语的每个音节的第一层级、包含文本话语的每个音素的第二层级、包含文本话语的每个音节的每个固定长度的预测基音帧的第三层级、以及平行于第三层级并且包含文本话语的每个音素的每个固定长度的预测能量帧的第四层级。第一层级可以包括表示文本话语的每个音节的长短期记忆(lstm)处理单体,第二层级可以包括表示文本话语的每个音素的lstm处理单体,第三层级可以包括表示每个固定长度的预测基音帧的lstm处理单体,以及第四层级可以包括表示每个固定长度的预测能量帧的lstm处理单体。这里,第二层级的lstm处理单体相对于第一层级的lstm处理单体计时并且计时得比第一层级的lstm处理单体更快,第三层级的lstm处理单体相对于第二层级的lstm处理单体计时并且计时得比第二层级的lstm处理单体更快,并且第四层级的lstm处理单体以与第三层级的lstm处理单体相同的速度计时,并且相对于第二层级的lstm处理单体计时并且计时得比第二层级的lstm处理单体更快。
在一些示例中,层次语言结构的第三层级包括在单次中预测每个音节的预测基音帧的前馈层,和/或层次语言结构的第四层级包括在单次中预测每个音素的预测能量帧的前馈层。此外,固定长度的预测能量帧和固定长度的预测基音帧的长度可以相同。附加地或替选地,为所接收的文本话语的每个音素生成的固定长度的预测能量帧的总数可以等于为接收到的文本话语的每个音节生成的固定长度的预测基音帧的总数。
在一些实施方式中,该方法还包括:由数据处理硬件接收包括多个参考音频信号的训练数据,每个参考音频信号包括人类语音的讲出的话语并具有相对应的韵律;以及由数据处理硬件通过将每个参考音频信号编码成表示参考音频信号的相对应的韵律的相对应的固定长度的话语嵌入来训练韵律模型的深度神经网络。话语嵌入可以包括固定长度的数值向量。
本公开的另一方面提供了一种用于在合成语音中表示意图韵律的系统。该系统包括数据处理硬件和与数据处理硬件通信的存储器硬件。存储器硬件存储指令,这些指令当在数据处理硬件上运行时,使得数据处理硬件执行操作。这些操作包括接收具有至少一个词的文本话语,并且选择用于该文本话语的话语嵌入。文本话语中的每个词具有至少一个音节,并且每个音节至少有一个音素。话语嵌入表示意图的韵律。对于每个音节,在使用所选择的话语嵌入的情况下,这些操作还包括:通过将该音节的每个音素的语言特征与该音节的相对应的韵律音节嵌入进行编码,来预测该音节的持续时间;基于音节的预测持续时间来预测音节的基音轮廓;以及基于音节的预测持续时间生成多个固定长度的预测基音帧。每个固定长度的预测基音帧表示音节的预测基音轮廓的一部分。
这个方面可以包括以下可选特征中一个或多个。在一些实施方式中,表示文本话语的层次语言结构的网络包括包含文本话语的每个音节的第一层级、包含文本话语的每个音素的第二层级和包含文本话语的每个音节的每个固定长度的预测基音帧的第三层级。在这些实施方式中,网络的第一层级可以包括表示文本话语的每个音节的长短期记忆(longshort-termmemory,lstm)处理单体,网络的第二层级可以包括表示文本话语的每个音素的lstm处理单体,并且网络的第三层级可以包括表示每个固定长度的预测基音帧的lstm处理单体。这里,第二层级的lstm处理单体相对于第一层级的lstm处理单体计时并且计时得比第一层级的lstm处理单体更快,而第三层级的lstm处理单体相对于第二层级的lstm处理单体计时并且计时得比第二层级的lstm处理单体更快。
在一些示例中,预测音节的持续时间包括:对于与音节相关联的每个音素,通过将相对应的音素的语言特征与该音节的相对应的韵律音节嵌入进行编码,来预测相对应的音素的持续时间;以及通过对与音节相关联的每个音素的预测持续时间求和来确定音节的持续时间。在这些示例中,基于音节的预测持续时间来预测音节的基音轮廓可以包括将该音节的相对应的韵律音节嵌入与对相对应的韵律音节嵌入和与该音节相关联的每个相对应的音素的音素层级语言特征的每个编码相组合。
在一些实施方式中,这些操作还包括,对于每个音节,在使用所选择的话语嵌入的情况下:基于音素的预测持续时间来预测音节中每个音素的能量轮廓;以及对于与音节相关联的每个音素,基于该音素的预测持续时间生成多个固定长度的预测能量帧。这里,每个固定长度的能量帧表示相对应的音素的预测能量轮廓。在这些实施方式中,层次语言结构表示文本话语,并且层次语言结构包括包含文本话语的每个音节的第一层级、包含文本话语的每个音素的第二层级、包含文本话语的每个音节的每个固定长度的预测基音帧的第三层级、以及平行于第三层级并且包含文本话语的每个音素的每个固定长度的预测能量帧的第四层级。第一层级可以包括表示文本话语的每个音节的长短期记忆(lstm)处理单体,第二层级可以包括表示文本话语的每个音素的lstm处理单体,第三层级可以包括表示每个固定长度的预测基音帧的lstm处理单体,以及第四层级可以包括表示每个固定长度的预测能量帧的lstm处理单体。这里,第二层级的lstm处理单体相对于第一层级的lstm处理单体计时并且计时得比第一层级的lstm处理单体更快,第三层级的lstm处理单体相对于第二层级的lstm处理单体计时并且计时得比第二层级的lstm处理单体更快,并且第四层级的lstm处理单体以与第三层级的lstm处理单体相同的速度计时,并且相对于第二层级的lstm处理单体计时并且计时得比第二层级的lstm处理单体更快。
在一些示例中,层次语言结构的第三层级包括在单次中预测每个音节的预测基音帧的前馈层,和/或层次语言结构的第四层级包括在单次中预测每个音素的预测能量帧的前馈层。此外,固定长度的预测能量帧和固定长度的预测基音帧的长度可以相同。附加地或替选地,为所接收的文本话语的每个音素生成的固定长度的预测能量帧的总数可以等于为接收到的文本话语的每个音节生成的固定长度的预测基音帧的总数。
在一些实施方式中,这些操作还包括:接收包括多个参考音频信号的训练数据,每个参考音频信号包括人类语音的讲出的话语并具有相对应的韵律;以及通过将每个参考音频信号编码成表示参考音频信号的相对应的韵律的相对应的固定长度的话语嵌入来训练韵律模型的深度神经网络。话语嵌入可以包括固定长度的数字向量。
在以下附图和描述中阐述了本公开的一个或多个实施方式的细节。其他方面、特征和优点根据说明书和附图以及权利要求书将变得显而易见。
附图说明
图1是用于训练深度神经网络以提供用于在预测文本话语的韵律表示中使用的可控韵律模型的示例系统的示意图。
图2a是用于将参考音频信号的韵律编码成固定长度的话语嵌入的层次语言结构的示意图。
图2b是使用固定长度话语嵌入来预测文本话语的韵律表示的层次语言结构的示意图。
图2c是被配置成将固定长度的参考帧直接编码成固定长度的话语嵌入的层次语言结构的编码器部分的示意图。
图3a和图3b是用于预测文本话语的每个音节的持续时间和基音轮廓的示例自动编码器的示意图。
图3c是用于预测文本话语的每个音素的持续时间和能量轮廓的示例自动编码器的示意图。
图4是用于预测接收的文本话语的韵律表示的方法的示例操作布置的流程图。
图5是可以用于实施本文描述的系统和方法的示例计算设备的示意图。
各附图中相似的附图标记表示相似的元素。
具体实施方式
通常由语音合成系统使用的文本到语音(tts)模型一般而言在运行时仅被给予文本输入而没有任何参考声学表示,并且必须估算(impute)文本输入未提供的许多语言因素,以便产生听起来真实的合成语音。这些语言因素的子集统称为韵律,并且可以包括语音的语调(基音变化)、重音(重读音节与非重读音节)、声音持续时间、音量、音调、节奏和风格。韵律可以指示语音的情感状态、语音的形式(例如,陈述、问题、命令等)、存在语音讽刺或挖苦,语音的知识方面的不确定性、或不能由输入文本的语法或词汇选择编码的其他语言元素。因此,与高度韵律变化相关联的给定文本输入可以产生这样的合成语音,该合成语音具有音调和说话持续时间的局部变化以传达不同的语义含义,并且还具有整体基音轨迹的全局变化以传达不同的情绪和情感。
神经网络模型通过预测与文本输入未提供的韵律相对应的语言因素,为鲁棒地合成语音提供了潜力。因此,许多应用(诸如有声读物讲述、新闻阅读器、语音设计软件和会话助手)可以产生发音不单调的听起来真实的合成语音。本文的实施方式涉及这样的神经网络模型,该神经网络模型包括变分自动编码器(vae),该变分自动编码器具有:编码器部分,该编码器部分用于将对应于讲出的话语的参考音频信号编码成表示讲出的话语的韵律的话语嵌入;以及解码器部分,该解码器部分对话语嵌入进行解码以预测每个音节的音素持续时间以及基音轮廓和能量轮廓。
编码器部分可以通过根据表示话语的语言特征进行调节(condition)来对大量参考音频信号进行编码来训练表示韵律的话语嵌入。语言特征可以包括但不限于每个音素的个体声音、每个音节是重读还是非重读、每个词的类型(例如,名词/形容词/动词)和/或词在话语中的位置、以及话语是问题还是短语。每个话语嵌入由一个固定长度的数字向量表示。在一些实施方式中,固定长度的数值向量包括等于256的值。然而,其他实施方式可以使用具有大于或小于256的值的固定长度的数值向量。解码器部分可以经由第一解码器将固定长度的话语嵌入解码成音素持续时间的序列,并使用音素持续时间解码成固定长度的基音帧和能量帧(例如,5毫秒)的序列。在训练期间,以下二者紧密匹配:由解码器部分预测的音素持续时间和固定长度的基音帧和能量帧,以及从与固定长度的话语嵌入相关联的参考音频信号采样的音素持续时间和固定长度的基音帧和能量帧。
本公开的vae包括一种时钟式层次变分自动编码器(clockworkhierarchalvariationalautoencoder,chive),其包含层次堆叠的长短期记忆(lstm)单体,其中lstm单体的每一层包含话语的结构,使得一层表示音素,下一层表示音节,并且另一层表示词。而且,堆叠的lstm单体的层次被可变地计时(clock)到层次输入数据的长度。例如,如果输入数据包含三个音节的词,随后是四个音节的词,那么对于第一个输入词,chive的音节层将相对于词层的单个时钟计时三次,并且然后对于第二个词,音节层将相对于词层的后续单个时钟计时四次。因此,不同于使用基于帧的技术——其中与给定lstm单体相关联的记忆仅对于大约半秒钟有效(即,在五(5)毫秒的帧速率情况下的100次步进)并且因此仅为两个或三个语音音节提供lstm单体记忆,而是分别以音素、词和音节对chive的音素层、词层和音节层计时,从而给予堆叠层的lstm单体对最近100个词、音节或音素的记忆。
在推断期间,该chive被配置成接收文本话语并选择用于该文本话语的话语嵌入。所接收的文本话语具有至少一个词,每个词具有至少一个音节,并且每个音节具有至少一个音素。由于文本话语缺少上下文、语义信息和语用信息来引导适当的韵律以便根据话语产生合成语音,因此chive使用那个选择的话语嵌入作为潜在变量来表示意图的韵律。此后,chive使用所选择的话语嵌入,以通过将包含在该音节中的每个音素的语言特征与每个音节的相对应的韵律音节嵌入进行编码来预测该音节的持续时间,并基于音节的预测持续时间来预测每个音节的基音。最后,chive被配置为基于每个音节的预测持续时间来生成多个固定长度的基音帧,使得每个固定长度的基音帧表示该音节的预测基音。chive可以基于音节的预测持续时间类似地预测每个音节的能量(例如响度),并生成各自表示音节的预测能量的多个固定长度的能量帧。固定长度的基音和/或能量帧可以被提供给tts系统的单元选择模型或波网模型,以产生具有由输入的固定长度话语的嵌入提供的意图韵律的合成语音。
图1示出了用于训练深度神经网络200以提供可控韵律模型300以及用于使用韵律模型300预测文本话语320的韵律表示322的示例系统100。系统100包括计算系统120,该计算系统具有数据处理硬件122和与数据处理硬件122通信并存储使数据处理硬件122执行操作的指令的存储器硬件124。在一些实施方式中,计算系统120(例如,数据处理硬件122)向文本到语音(tts)系统150提供基于经训练的深度神经网络200的韵律模型300,用于控制来自输入文本话语320的合成语音152的韵律。由于输入文本话语320无法传达上下文、语义和语用来引导合成语音152的适当韵律,因此韵律模型300可以通过以下操作来预测输入文本话语320的韵律表示322:使模型300以从文本话语320提取的语言特征为条件并使用固定长度的话语嵌入260作为表示文本话语320的意图韵律的潜在变量。在一些示例中,计算系统120实施tts系统150。在其他示例中,计算系统120和tts系统150是不同的,并且在物理上彼此分离。计算系统可以包括分布式系统(例如,云计算环境)。
在一些实施方式中,深度神经网络200在一大组参考音频信号222上进行训练。每个参考音频信号222可以包括由麦克风记录并具有韵律表示的人类语音的讲出的话语。在训练期间,深度神经网络200可以接收相同的讲出的话语—但是具有不同的韵律(即,相同的话语可以以多种不同的方式讲出)的多个参考音频信号222。在此,参考音频信号222具有可变长度,使得即使内容是相同的,讲出的话语的持续时间也变化。深度神经网络200被配置成将与每个参考音频信号222相关联的韵律表示编码/压缩成相对应的固定长度的话语嵌入260。深度神经网络200可以将每个固定长度的话语嵌入260连同与话语嵌入260相关联的参考音频信号222的相对应的转录261一起存储在话语嵌入存储180中(例如,在计算系统120的存储器硬件124上)。深度神经网络200可以通过根据从转录261提取的语言特征进行调节来反向传播固定长度的话语嵌入260来进一步训练,以生成每个音节的固定长度的基音帧、能量帧和持续时间。
在推断期间,计算系统120可以使用韵律模型300来预测文本话语320的韵律表示322。韵律模型300可以选择用于文本话语320的话语嵌入260。话语嵌入260表示文本话语320的意图韵律。下面参考图2a至图2c和3a至图3c更详细地描述,韵律模型300可以使用所选择的话语嵌入260来预测文本话语320的韵律表示322。韵律表示322可以包括文本话语320的预测基音、预测定时和预测响度(例如,能量)。在所示的示例中,tts系统150使用韵律表示322根据文本话语320产生具有意图韵律的合成语音152。
图2a和图2b示出了用于时钟式层次变分自动编码器(chive)300(“自动编码器300”)的层次语言结构(例如,图1的深度神经网络)200,该层次语言结构提供了韵律的可控模型,该模型对于给定输入文本的每个音节,联合地预测音节中所有音素的持续时间以及音节的基音(f0)轮廓和能量(c0)轮廓而不依赖于来自给定输入文本或其他语言规范的任何独特映射,来产生具有意图/所选择的韵律的合成语音152。自动编码器300包括:编码器部分302(图2a),该编码器部分将从参考音频信号222采样的多个固定长度的参考帧220编码成固定长度的话语嵌入260;以及解码器部分310(图2b),该解码器部分学习如何将固定长度的话语嵌入260解码成多个固定长度的预测帧280。将显而易见的是,自动编码器300被训练成使得从解码器部分310输出的预测帧280的数量等于输入到编码器部分302的参考帧220的数量。而且,自动编码器300被训练成使得与参考帧220和预测帧280相关联的数据基本上彼此匹配。
参考图2a,编码器部分302接收来自输入的参考音频信号222的固定长度参考帧220的序列。输入的参考音频信号222可以包括由麦克风记录的、包括目标韵律的人类语音的讲出的话语。编码器部分302可以接收相同的讲出的话语—但是具有不同的韵律(即,相同的话语可以以多种不同的方式讲出)的多个参考音频信号222。例如,与当讲出的话语是问题时相比,当讲出的话语是对问题的回答时相同的讲出的话语可以在韵律方面不同。参考帧220可以各自包括5毫秒(ms)的持续时间,并且表示参考音频信号222的基音(f0)轮廓或能量(c0)轮廓之一。并行地,编码器部分302还可以接收参考帧220的第二序列,这些参考帧各自包括5ms的持续时间并且表示参考音频信号222的基音(f0)轮廓或能量(c0)轮廓中的另一个。因此,从参考音频信号222采样的参考帧220的序列提供持续时间、基音轮廓和/或能量轮廓来表示参考音频信号222的韵律。参考音频信号222的长度或持续时间与参考帧220的总数之和相关。
编码器部分302包括用于参考音频信号222的参考帧220、音素230,230a、音节240,240a和词250,250a的彼此相对计时的层次层级。例如,与参考帧220的序列相关联的层级计时得比与音素230的序列相关联的下一层级更快。类似地,与音节240的序列相关联的层级计时得比与音素230的序列相关联的层级更慢,并且计时得比与词250的序列相关联的层级更快。因此,更慢的计时层接收来自更快计时层的输出作为输入,使得更快层的最终时钟(即状态)之后的输出被用作相对应的更慢层的输入,以基本上提供序列到序列编码器。在所示的示例中,层次层级包括长短期记忆(lstm)层级。
在一些示例中,编码器部分302首先将参考帧220的序列编码成音素230的序列。每个音素230接收参考帧220的子集的相对应的编码作为输入,并且包括等于经编码的子集中的参考帧220的数量的持续时间。在所示的示例中,前四个固定长度的参考帧220被编码成音素230aa1;接下来的三个固定长度的参考帧220被编码成音素230aa2;接下来的四个固定长度的参考帧220被编码成音素230ab1;接下来的两个定长参考帧220被编码成音素230ba1,接下来的五个固定长度的参考帧220被编码成音素230ba2;接下来的四个固定长度参考帧220被编码成音素230ba3;接下来的三个固定长度参考帧220被编码成音素230ca1;接下来的四个固定长度参考帧220被编码成音素230cb1;以及最后两个固定长度的参考帧220被编码成音素230cb2。因此,音素230的序列中的每个音素230包括基于被编码到音素230中的参考帧220的数量的相对应的持续时间和相对应的基音轮廓和/或能量轮廓。例如,音素230aa1包括等于20ms的持续时间(即,各自具有5毫秒的固定长度的四个参考帧220),并且音素230aa2包括等于15ms的持续时间(即,各自具有5毫秒的固定长度的三个参考帧220)。因此,对于该音素层级230,对于音素230aa1和下一音素230aa2之间的单次计时,参考帧层级220总共计时七次。
在将固定长度的帧220编码成相对应的音素230之后,编码器部分302还被配置成将参考音频信号222的音素230序列编码成音节240序列。在此,每个音节240接收一个或多个音素230的相对应的编码作为输入,并且包括等于相对应的编码的一个或多个音素230的持续时间之和的持续时间。音节240的持续时间可以指示音节240的定时和相邻音节240之间的停顿。在所示的示例中,前两个音素230aa1、230aa2被编码成音节240aa;下一音素230ab1被编码成音节240ab;音素230ba1、230ba2、230ba3中的每一个被编码成音节240ba;音素230ca1被编码成音节240ca;以及音素230cb1、230cb2被编码成音节240cb。音节层级240中的每个音节240aa至240cb可以对应于相应的音节嵌入(例如,数字向量),该音节嵌入指示与相对应的音节240相关联的持续时间、基音(f0)和/或能量(c0)。而且,每个音节指示音节层级240的相对应的状态。例如,音节240aa包括等于35ms的持续时间(即音素230aa1的20ms的持续时间和音素230a2的15ms的持续时间之和),并且音节240ab包括等于20ms的持续时间(即音素230ab1的20ms的持续时间)。因此,对于该音节层级240,对于音节240aa和下一音节240ab之间的单次计时,参考帧层级220总共计时11次并且音素层级230总共计时3次。
继续参考图2a,在一些实施方式中,编码器部分302进一步将参考音频信号222的音节240序列编码成词250序列。在此,音节240aa、240ab被编码成词250a;音节240ba被编码成词250b;以及音节240ca、240cb被编码成词250c。最后,编码器部分302将词250序列编码成固定长度的话语嵌入260。固定长度的话语嵌入260包括表示参考音频信号222的韵律的数字向量。在一些示例中,固定长度的话语嵌入260包括具有等于“256”的值的数值向量。编码器部分302可以对每个参考音频信号222重复这个过程。在一些示例中,编码器部分302对多个参考音频信号222进行编码,这些参考音频信号各自对应于相同的讲出的话语/短语——但是具有不同的韵律,即,每个参考音频信号222传达相同的话语但是被不同地讲出。固定长度的话语嵌入260可以与参考音频信号222的相应转录261(例如,文本表示)一起存储在数据存储180中(图1)。从转录261中,可以提取和存储语言特征,以便在对层次语言结构200的训练进行调节中使用。语言特征可以包括但不限于每个音素的各个声音、每个音节是重读还是非重读、每个词的类型(例如,名词/形容词/动词)和/或词在话语中的位置、以及话语是问题还是短语。
参考图2c,在一些实施方式中,层次语言结构200省略了与音素序列230相关联的层级,并且允许编码器部分302在训练期间简单地将相对应的参考帧220子集编码成音节层级240的每个音节240中。例如,前七个参考帧220可以直接编码成音节240aa,而不必编码成相对应的音素230aa1、230aa2(图2a)作为中间步骤。类似地,在训练期间,层次语言结构200可以可选地省略与词250序列相关联的层级,并且允许编码器部分302将音节240序列直接编码成固定长度话语嵌入260。在其他示例中,作为替代训练可以可选地包括与音素230序列相关联的层级,并且允许编码器部分302简单地将相对应的参考帧220子集编码到音素层级230的每个音素230中,并且然后将相对应的音素子集230直接编码到固定长度的话语嵌入260中,而不必编码相对应的音节240和/或词250。
参考图2b,变分自动编码器300的解码器部分310被配置成通过最初解码表示话语的韵律的固定长度的话语嵌入260来产生多个固定长度的音节嵌入245。在训练期间,话语嵌入260可以包括:通过对从参考音频信号222采样的多个固定长度参考帧220进行编码,来从图2a和图2c的编码器部分302输出的话语嵌入260。因此,解码器部分310被配置为在训练期间反向传播话语嵌入260来生成多个固定长度的预测帧280,其与多个固定长度的参考帧220紧密匹配。例如,基音(f0)和能量(c0)两者的固定长度的预测帧280可以并行生成,以表示目标韵律(例如,预测的韵律),该目标韵律基本上匹配作为训练数据输入到编码器部分302的参考音频信号222的参考韵律。在一些示例中,tts系统150(图1)使用固定长度的预测帧280来产生具有基于固定长度的话语嵌入260的所选择的韵律的合成语音152。例如,tts系统150的单元选择模块或wavenet模块可以使用帧280来产生具有意图韵律的合成语音152。
在所示的示例中,解码器部分310将从编码器部分302(图2a或2c)接收的话语嵌入260(例如,数值“256”)解码成词250,250b、音节240,240b、音素230,230b和固定长度的预测帧280的层次层级。具体而言,固定长度的话语嵌入260对应于解码器部分310的层次输入数据的变分层,并且堆叠的层次层级中的每一个包括可变地计时到层次输入数据的长度的长短期记忆(lstm)处理单体。例如,音节层级240计时得比词层级250更快,并且计时得比音素层级230更慢。每一层级中的矩形块对应于针对相应的词、音节、音素或帧的lstm处理单体。有利地,自动编码器300给予词层级250lstm处理单体对最近100个词的记忆,给予音节层级240lstm单体对最近100个音节的记忆,给予音素层级230的lstm单体对最近100个音素的记忆,并给予固定长度的音调和/或能量帧280的lstm单体对最近100个固定长度的帧280的记忆。当固定长度的帧280各自包括每个五毫秒的持续时间(例如,帧速率)时,相对应的lstm处理单体提供对最近500毫秒(例如,半秒)的记忆。
在所示的示例中,层次语言结构200的解码器部分310简单地将由编码器部分302编码的固定长度的话语嵌入260反向传播成三个词250a至250c的序列、五个音节240aa至240cb的序列和九个音素230aa1至230cb2的序列,以生成预测的固定长度帧280的序列。解码器部分310根据输入文本的语言特征进行调节。与图2a和图2c的编码器部分302(其中来自较快计时层的输出被较慢计时层接收作为输入)相比,解码器部分310包括来自更慢计时层的输出馈送到更快计时层,使得较慢计时层的输出在其上附加有定时信号的每个时钟周期被分配给较快计时层的输入。
参考图3a至图3c,在一些实施方式中,自动编码器300使用层次语言结构200通过以下操作来在推理期间预测给定文本话语320的韵律表示:联合地预测给定文本话语320的每个音节240的音素230持续时间以及基音轮廓和/或能量轮廓。由于文本话语320不提供任何上下文、语义信息或语用信息来指示文本话语的适当韵律,自动编码器300选择话语嵌入260作为潜在变量来表示文本话语320的意图韵律。
话语嵌入260可以选择自话语嵌入数据存储180(图1)中。存储180中的每个话语嵌入260可以由编码器部分302(图2a和图2c)在训练期间根据相对应的可变长度参考音频信号222(图2a和2c)编码。具体而言,编码器部分302在训练期间将可变长度参考音频信号222的韵律压缩成固定长度的话语嵌入260,并将每个话语嵌入260与相对应的参考音频信号222的转录261一起存储在话语嵌入数据存储180中,以供解码器部分310在推断时使用。在所示的示例中,自动编码器300可以首先定位具有与文本话语320紧密匹配的转录261的话语嵌入260,并且然后选择话语嵌入260中的一个来预测给定文本话语320的韵律表示322(图1)。在一些示例中,通过在嵌入260的潜在空间中挑选可能表示目标韵律的特定语义和语用的特定点来选择固定长度的话语嵌入260。在其他示例中,对潜在空间进行采样,以选择随机话语嵌入260来表示文本话语320的意图韵律。在又一示例中,自动编码器300通过以下操作来将潜在空间建模为多维单位gaussian:选择具有紧密匹配的转录261的话语嵌入260的平均值,用于表示文本话语320的语言特征的最可能的韵律。如果训练数据的韵律变化是适度中性的,则选择话语嵌入的平均值260的最后的示例是合理的选择。
图3a和图3c示出了具有在层次语言结构200的词层级250中表示的三个词250a、250b、250c的文本话语320。第一个词250a包含音节240aa、240ab,第二个词250b包含一个音节240ba,并且第三个词250c包含音节240ca、240cb。因此,层次语言结构200的音节层级240包括文本话语320的五个音节240aa至240cb的序列。在ltsm处理单体的音节层级240,自动编码器300被配置为从以下输入为每个音节240产生/输出相对应的音节嵌入245aa、245ab、245ba、245ca、245cb:固定长度的话语嵌入260、与文本话语320相关联的话语层级语言特征262、与包含音节240的词250相关联的词层级语言特征252、以及音节240的音节层级语言特征242。话语层级语言特征262可以包括但不限于文本话语320是否是问题、是否是问题的答案、是否是短语、是否是句子等。词层级语言特征252可以包括但不限于词类型(例如,名词、代词、动词、形容词、副词等)和词在文本话语320中的位置。音节层级语言特征242可以包括但不限于音节240是重读还是非重读。
在所示的示例中,音节层级240中的每个音节240aa、240ab、240ba、240ca、240cb可以与相对应的ltsm处理单体相关联,该相对应的ltsm处理单体将相对应的音节嵌入245aa、245ab、245ba、245ca、245cb输出到更快的计时音素层级230,并行地用于解码各个固定长度的预测基音(f0)帧280(280f0)(图3a)和用于解码各个固定长度的预测能量(c0)帧280(280c0)(图3c)。图3a示出了音节层级240中的每个音节,包括指示音节240的持续时间(定时和停顿)和基音轮廓的多个固定长度的预测基音(f0)帧280f0。在此,持续时间和基音轮廓对应于音节240的韵律表示。图3c示出了音素层级230中的每个音素,包括指示音素的持续时间和能量轮廓的多个固定长度的预测能量(c0)帧280c0。
音节层级240中的第一音节240aa(即ltsm处理单体aa)接收固定长度的话语嵌入260、与文本话语320相关联的话语层级语言特征262、与第一词250a相关联的词层级语言特征252a以及音节240aa的音节层级语言特征242aa,作为用于产生相对应的音节嵌入245aa的输入。音节层级240中的第二音节240ab接收固定长度的话语嵌入260、与文本话语320相关联的话语层级语言特征262、与第一词250a相关联的词层级语言特征252a以及音节240ab的相对应的音节层级语言特征242(未示出),作为用于产生相对应的音节嵌入245aa的输入。虽然该示例仅示出了与第一音节240aa相关联的音节层级语言特征242,但是仅为了清楚起见,而从图3a和图3b的视图中省略与音节层级240中的每个其他音节240ab至240cb相关联的相对应的音节层级语言特征242。
为简单起见,没有示出被输入到音节240ab的处理块的相对应的音节层级语言特征242。与第二音节240ab相关联的ltsm处理单体(例如,矩形ab)也接收前面的第一音节240aa的状态。音节层级240中剩余序列的音节240ba、240ca、240cb各自以类似的方式产生相对应的音节嵌入245ba、245ca、245cb。为了简单起见,没有示出被输入到音节240ba、240ca、240cb中的每一个的处理块的相对应的音节层级语言特征242。而且,音节层级240的每个ltsm处理单体接收音节层级240的紧邻的前一个ltsm处理单体的状态。
参考图3a,层次语言结构200的音素层级230包括各自与相对应的预测音素持续时间234相关联的九个音素230aa1至230cb2的序列。而且,自动编码器300编码与每个音素230aa1至230cb2相关联的音素层级语言特征232和相对应的音节嵌入245,用于预测相对应的预测音素持续时间234并用于预测包含该音素的音节的相对应基音(f0)轮廓。音素层级语言特征232可以包括但不限于对应音素230的声音的身份。虽然该示例仅示出了与第一音素230aa1相关联的音素层级语言特征232,但是仅为了清楚起见,而从图3a和图3c的视图中省略了与音素层级230中的其他音素230aa2至230cb2相关联的音素层级语言特征232。
第一音节240aa包含音素230aa1、230aa2,并且包括等于音素230aa1、230aa2的预测音素持续时间234的总和的预测音节持续时间。在此,第一音节240aa的预测音节持续时间要针对第一音节240aa解码的固定长度的预测基音(f0)帧280f0的数量。在所示的示例中,自动编码器300基于音素230aa1、230aa2的预测音素持续时间234的总和,对第一音节240aa的总共七个固定长度的预测基音(f0)帧280f0进行解码。相应的,更快计时音节层240将第一音节嵌入245aa作为输入分配给包括在第一音节240aa中的每个音素230aa1、230aa2。定时信号也可以被附加到第一音节嵌入245aa。音节层级240还将第一音节240aa的状态传递给第二音节240ab。
第二音节240ab包含单个音素230ab1,并且因此包括等于音素230ab1的预测音素持续时间234的预测音节持续时间。基于第二音节240ab的预测音节持续时间,自动编码器300对第二音节240ab的总共四个固定长度的预测基音(f0)帧280f0进行解码。相应的,更快计时音节层240将第二音节嵌入245ab作为输入分配给音素230ab1。定时信号也可以附加到第二音节嵌入245aa。音节层级240还将第二音节240ab的状态传递给第三音节240ba。
第三音节240ba包含音素230ba1、230ba2、230ba3,并且包括等于音素230ba1、230ba2、230ba3的预测音素持续时间234的总和的预测音节持续时间。在所示的示例中,自动编码器300基于音素230ba1、230ba2、230ba3的预测音素持续时间234的总和,对第三音节240ba的总共11个固定长度的预测基音(f0)帧280f0进行解码。因此,更快计时音节层240将第三音节嵌入245ba作为输入分配给包括在第三音节240ba中的每个音素230ba1、230ba2、230ba3。定时信号也可以附加到第三音节嵌入245ba。音节层级240还将第三音节240ba的状态传递给第四音节240ca。
第四音节240ca包含单个音素230ca1,并且因此包括等于音素230ca1的预测音素持续时间234的预测音节持续时间。基于第四音节240ca的预测音节持续时间,自动编码器300对第四音节240ca的总共三个固定长度的预测基音(f0)帧280f0进行解码。因此,更快计时音节层240将第四音节嵌入245ca作为输入分配给音素230ca1。定时信号也可以附加到第四音节嵌入245ca。音节层级240还将第四音节240ba的状态传递给第五音节240cb。
最后,第五音节240cb包含音素230cb1、230cb2,并且包括等于音素230cb1、230cb2的预测音素持续时间234的总和的预测音节持续时间。在所示的示例中,自动编码器300基于音素230cb1、230cb2的预测音素持续时间234的总和,对第五音节240cb的总共六个固定长度的预测基音(f0)帧280f0进行解码。因此,更快计时音节层240将第五音节嵌入245cb作为输入分配给包括在第五音节240cb中的每个音素230cb1、230cb2。定时信号也可以附加到第五音节嵌入245cb。
图3b提供图3a的虚线框350中的详细视图,以示出将第一音节245aa嵌入解码成第一音节240aa的各个固定长度的预测基音(f0)帧280f0。如上参考图3a所述,自动编码器300基于第一音节240aa的预测音节持续时间来确定要解码的固定长度预测音调(f0)帧280的数量。第一音节240aa生成相对应的第一音节嵌入245aa,以便作为输入分配给更快计时音节层级240的第一音素230aa1和第二音素230aa2中的每一个。
在层次语言结构200的音素层级230,自动编码器300通过将与第一音素230aa1相关联的音素层级的语言特征232与第一音节嵌入245aa进行编码,来预测第一音素230aa1的音素持续时间234。同样地,自动编码器300通过将与第二音素230aa2相关联的音素层级语言特征(未示出)与第一音节嵌入245aa进行编码,来预测第二音素230aa2的音素持续时间234。第二音素230aa2也从第一音素230aa1接收先前状态。第一音节230aa的预测音节持续时间等于第一音素230aa1和第二音素230aa2的预测音素持续时间234的总和。在音素层级230的输出处,第一音节嵌入245aa和与音素230aa1、230aa2中的每一个相关联的相对应的音素层级语言特征232的编码进一步与第一音节嵌入245aa相组合,以预测第一音节240aa的基音(f0),并生成第一音节240aa的固定长度的预测基音(f0)帧280f0。在所示的示例中,自动编码器300基于第一音节240aa的预测音节持续时间来确定要解码/生成的固定长度预测基音(f0)帧280f0的总数(例如,七个)。因此,从第一音节嵌入245aa解码的固定长度的预测音调(f0)帧280协同指示文本话语320的第一音节240aa的相对应的持续时间和基音轮廓。
返回参考图3a,自动编码器300类似地将从音节层级240输出的剩余音节嵌入245ab、245ba、245ca、245cb中的每一个解码成每个相对应的音节240ab、240ba、240ca、240cb的各个固定长度的预测基音(f0)帧280。例如,第二音节嵌入245ab在音素层级230的输出处进一步同第二音节嵌入245ab和与音素230ab1相关联的相应音素层级语言特征232的编码组合,而第三音节嵌入245ba在音素层级230的输出处进一步同第三音节嵌入245ba和与音素230ba1、230ba2、230ba3中的每一个相关联的相对应的音素层级语言特征232的编码相组合。而且,第四音节嵌入245ca在音素层级230的输出处进一步同第四音节嵌入245ca和与音素230ca1相关联的相应音素层级语言特征232的编码组合,而第五音节嵌入245cb在音素层级230的输出处进一步同第五音节嵌入245cb和与音素230cb1、230cb2中的每一个相关联的相应音素层级语言特征232的编码相组合。虽然由自动编码器300生成的固定长度的预测基音(f0)帧280f0包括帧层级lstm,但是其他配置可以用前馈层代替基音(f0)帧280f0的帧层级lstm,使得在一次(onepass)中预测相对应的音节中的每个帧的基音(f0)。
现在参考图3c,自动编码器300还被配置成编码与每个音素230aa1至230cb2相关联的音素层级语言特征232和相对应的音节嵌入245,用于预测每个音素230的相对应的能量(c0)轮廓。仅为了清楚起见,而从图3c的视图中省略了与音素层级230中的音素230aa2至230cb2相关联的音素层级语言特征232。自动编码器300基于相对应的预测音素持续时间234,为每个音素230确定要解码的固定长度预测能量(c0)帧280、280c0的数量。例如,自动编码器300解码/生成第一音素230aa1的四(4)个预测能量(c0)帧280c0、第二音素230aa2的三(3)个预测能量(c0)帧280c0、第三音素230ab1的四(4)个预测能量(c0)帧280c0、第四音素230ba1的两(2)个预测能量(c0)帧280c0、第五音素230ba2的五(5)个预测能量(c0)帧280c0,第六音素230ba3的四(4)个预测能量(c0)帧280c0,第七音素230ca1的三(3)个预测能量(c0)帧280c0,第八音素230cb1的四(4)个预测能量(c0)帧280c0,以及第九音素230cb2的两(2)个预测能量(c0)帧280c0。相应的,与所预测的音素持续时间234一样,音素层级230中每个音素的预测能量轮廓是基于从包含该音素的更慢计时音节层级240中的相对应的音节输入的音节嵌入245和与该音素相关联的语言特征232之间的编码。
图4是预测文本话语320的韵律表示322的方法400的示例操作布置的流程图。方法400可以参考图1至图3c来描述。驻留在图1的计算机系统120上的存储器硬件124可以存储指令,当这些指令被数据处理硬件122执行时,使得数据处理硬件122执行方法400的操作。在操作402,方法400包括接收文本话语320。文本话语320具有至少一个词,每个词具有至少一个音节,每个音节具有至少一个音素。在操作404,方法400包括选择文本话语320的话语嵌入260。话语嵌入260表示意图的韵律。如本文所用,所选择的话语嵌入260用于预测文本话语320的韵律表示322,以便由tts系统150使用,以从文本话语320产生具有意图的韵律的合成语音152。话语嵌入260可以由固定长度的数字向量来表示。数字向量可以包括等于“256”的值。为了选择文本话语230的话语嵌入260,数据处理硬件122可以首先查询数据存储180来定位具有与文本话语320紧密匹配的转录261的话语嵌入260,并且然后选择话语嵌入260来预测给定文本话语320的韵律表示322。在一些示例中,通过在嵌入260的潜在空间中挑选可能表示目标韵律的特定语义和语用的特定点来选择固定长度的话语嵌入260。在其他示例中,对潜在空间进行采样,以选择随机话语嵌入260来表示文本话语320的意图韵律。在又一示例中,数据处理硬件122通过以下操作来将潜在空间建模为多维单位gaussian:选择具有紧密匹配的转录261的话语嵌入260的平均值,用于表示文本话语320的语言特征的最可能的韵律。如果训练数据的韵律变化是适度中性的,则选择话语嵌入的平均值260的最后示例是合理的选择。
在操作406,对于每个音节240,在使用所选择的话语嵌入260的情况下,方法400包括通过将该音节的每个音素230的语言特征232与该音节的相对应的韵律音节嵌入245进行编码来预测该音节的持续时间。例如,对于与音节240相关联的每个音素230,方法400可以通过将相对应的音素230的语言特征232与音节240的相对应的韵律音节嵌入245进行编码来预测相对应的音素230的持续时间234。此后,方法400可以通过对与音节240相关联的每个音素230的预测持续时间234求和来预测音节240的持续时间。
在操作408,对于每个音节240,使用所选择的话语嵌入260,方法400包括基于该音节的预测持续时间来预测音节的基音轮廓。在操作410,对于每个音节,使用所选择的话语嵌入260,方法400还包括基于音节240的预测持续时间来生成多个固定长度的预测基音帧280,280f0。每个固定长度的预测基音帧280f0表示音节240的预测轮廓的一部分。
方法400的附加操作可以还包括:对于每个音节240,使用所选择的话语嵌入260,基于相对应的音素230的预测持续时间234来预测音节240中的每个音素230的能量轮廓。对于与音节相关联的每个音素230,方法400可以基于相对应的音素230的预测持续时间234来生成多个固定长度的预测能量帧280(280c0)。在此,每个固定长度的能量帧280c0表示相对应的音素230的预测能量轮廓。
软件应用(即,软件资源)可以指使计算设备执行任务的计算机软件。在一些示例中,软件应用可以被称为“应用”、“app”或“程序”示例应用包括但不限于系统诊断应用、系统管理应用、系统维护应用、文字处理应用、电子表格应用、消息传递应用、媒体流应用、社交网络应用和游戏应用。
非暂时性存储器可以是用于临时或永久地存储程序(例如,指令序列)或数据(例如,程序状态信息)以供计算设备使用的物理设备。非暂时性存储器可以是易失性和/或非易失性可寻址半导体存储器。非易失性存储器的示例包括但不限于闪存和只读存储器(read-onlymemory,rom)/可编程只读存储器(programmableread-onlymemory,prom)/可擦除可编程只读存储器(erasableprogrammableread-onlymemory,eprom)/电可擦除可编程只读存储器(electronicallyerasableprogrammableread-onlymemory,eeprom)(例如,通常用于固件,诸如引导程序)。易失性存储器的示例包括但不限于随机存取存储器(randomaccessmemory,ram)、动态随机存取存储器(dynamicrandomaccessmemory,dram)、静态随机存取存储器(staticrandomaccessmemory,sram)、相变存储器(phasechangememory,pcm)以及磁盘或磁带。
图5是可以用于实现本文档中描述的系统和方法的示例计算设备500(例如,图1的计算系统120)的示意图。计算设备500旨在表示各种形式的数字计算机,诸如膝上型电脑、台式电脑、工作站、个人数字助理、服务器、刀片服务器、大型机和其他合适的计算机。在此示出的组件、它们的连接和关系以及它们的功能仅仅旨在是示例性的,并不旨在限制本文件中描述和/或要求保护的发明的实施方式。
计算设备500包括处理器510、存储器520、存储设备530、连接到存储器520和高速扩展端口550的高速接口/控制器540、以及连接到低速总线570和存储设备530的低速接口/控制器560。组件510、520、530、540、550和560中的每一个使用各种总线互连,并且可以安装在公共主板上或者以其他适当的方式安装。处理器510(例如,图1的数据处理硬件122)可以处理用于在计算设备500内执行的指令,包括存储在存储器520(例如,图1的存储器硬件124)中或者存储在存储设备530(例如,图1的存储器硬件124)上以在外部输入/输出设备(例如,耦合到高速接口540的显示器580)上显示图形用户界面(graphicaluserinterface,gui)的图形信息的指令。在其他实施方式中,可以适当地使用多个处理器和/或多条总线,以及多个存储器和多种类型的存储器。而且,可以连接多个计算设备500,其中每个设备提供必要操作的部分(例如,作为服务器组、一组刀片服务器或多处理器系统)。
存储器520在计算设备500内非临时性地存储信息。存储器520可以是计算机可读介质、(多个)易失性存储单元或(多个)非易失性存储单元。非暂时性存储器520可以是用于临时或永久地存储程序(例如,指令序列)或数据(例如,程序状态信息)以供计算设备500使用的物理设备。非易失性存储器的示例包括但不限于闪存和只读存储器(rom)/可编程只读存储器(prom)/可擦除可编程只读存储器(eprom)/电可擦除可编程只读存储器(eeprom)(例如,通常用于固件,诸如引导程序)。易失性存储器的示例包括但不限于随机存取存储器(ram)、动态随机存取存储器(dram)、静态随机存取存储器(sram)、相变存储器(pcm)以及磁盘或磁带。
存储设备530能够为计算设备500提供大容量存储。在一些实施方式中,存储设备530是计算机可读介质。在各种不同的实施方式中,存储设备530可以是软盘设备、硬盘设备、光盘设备、或磁带设备、闪存或其他类似的固态存储器设备、或设备阵列,包括存储区域网络或其他配置中的设备。在另外的实施方式中,计算机程序产品有形地体现在信息载体中。该计算机程序产品包含指令,这些指令当被执行时执行一种或多种方法,诸如上述方法。信息载体是计算机或机器可读介质,诸如存储器520、存储设备530或处理器510上的存储器。
高速控制器540管理计算设备500的带宽密集型操作,而低速控制器560管理较低带宽密集型操作。这种职责的分配仅是示例性的。在一些实施方式中,高速控制器540耦合到存储器520、显示器580(例如,通过图形处理器或加速器),并且耦合到可以接受各种扩展卡(未示出)的高速扩展端口550。在一些实施方式中,低速控制器560耦合到存储设备530和低速扩展端口590。低速扩展端口590(其可以包括各种通信端口(例如,usb、蓝牙、以太网、无线以太网))可以例如通过网络适配器耦合到一个或多个输入/输出设备,诸如键盘、定点设备、扫描仪或诸如交换机或路由器的联网设备。
如图所示,计算设备500可以以多种不同的形式实施。例如,它可以被实施为标准服务器500a、或者在一组这样的服务器500a中实施多次、作为膝上型计算机500b、或者作为机架服务器系统500c的一部分。
本文描述的系统和技术的各种实施方式可以在数字电子和/或光学电路、集成电路、专门设计的asic(专用集成电路)、计算机硬件、固件、软件和/或它们的组合中实现。这些各种实施方式可以包括在可编程系统上可执行和/或可解释的一个或多个计算机程序中的实施方式,该可编程系统包括至少一个可编程处理器,该至少一个可编程处理器可以是专用或通用的、被耦合以从存储系统、至少一个输入设备和至少一个输出设备接收数据和指令,以及向存储系统、至少一个输入设备和至少一个输出设备发送数据和指令。
这些计算机程序(也称为程序、软件、软件应用或代码)包括用于可编程处理器的机器指令,并且可以以高级过程和/或面向对象的编程语言和/或以汇编/机器语言来实施。如本文所用,术语“机器可读介质”和“计算机可读介质”是指用于向可编程处理器提供机器指令和/或数据的任何计算机程序产品、非暂时性计算机可读介质、装置和/或设备(例如,磁盘、光盘、存储器、可编程逻辑器件(programmablelogicdevice,pld)),包括接收机器指令作为机器可读信号的机器可读介质。术语“机器可读信号”是指用于向可编程处理器提供机器指令和/或数据的任何信号。
本说明书中描述的过程和逻辑流程可以由一个或多个可编程处理器(也称为数据处理硬件)来执行,该可编程处理器执行一个或多个计算机程序以通过对输入数据进行操作并生成输出来执行功能。过程和逻辑流程也可以由专用逻辑电路来执行,例如fpga(fieldprogrammablegatearray,现场可编程门阵列)或asic(applicationspecificintegratedcircuit,专用集成电路)。作为示例,适于执行计算机程序的处理器包括通用和专用微处理器两者,以及任何类型的数字计算机的任何一个或多个处理器。一般而言,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行指令的处理器和用于存储指令和数据的一个或多个存储器设备。一般而言,计算机还将包括用于存储数据的一个或多个大容量存储设备(例如磁盘、磁光盘或光盘),或者被可操作地耦合以从一个或多个大容量存储设备接收数据或将数据传送到一个或多个大容量存储设备,或者进行两者。然而,计算机不需要具有这样的设备。适于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,作为示例包括例如eprom、eeprom和闪存设备的半导体存储器设备、磁盘(例如内部硬盘或可移动磁盘)、磁光盘、和cd-rom和dvd-rom磁盘。处理器和存储器可以由专用逻辑电路补充或被并入专用逻辑电路中。
为了提供与用户的交互,本公开的一个或多个方面可以在这样的计算机上实施,该计算机具有用于向用户显示信息的显示设备(例如crt(cathoderaytube,阴极射线管)或lcd(liquidcrystaldisplay,液晶显示器)或者触摸屏)以及可选地用户可以通过其向计算机提供输入的键盘和指示设备(例如鼠标或轨迹球)。其他类型的设备也可以被用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感官反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以以任何形式接收来自用户的输入,包括声学输入、语音输入或触觉输入。此外,计算机可以通过向由用户使用的设备发送文档和从该设备接收文档(例如通过响应于从网络浏览器接收的请求向用户的客户端设备上的网络浏览器传发送网页)来与用户交互。
已经描述了许多实施方式。然而,应当理解的是,在不脱离本公开的精神和范围的情况下,可以进行各种修改。因此,其他实施方式也在所附权利要求书的范围内。
起点商标作为专业知识产权交易平台,可以帮助大家解决很多问题,如果大家想要了解更多知产交易信息请点击 【在线咨询】或添加微信 【19522093243】与客服一对一沟通,为大家解决相关问题。
此文章来源于网络,如有侵权,请联系删除