掌桥专利:专业的专利平台
掌桥专利
首页

用于流式文本的文本到语音合成的方法和系统

文献发布时间:2023-06-19 19:30:30



技术领域

除非本文另有说明,否则此部分中描述的材料不是本申请中权利要求的现有技术,并且不因为包含在此部分中而被承认为是现有技术。

自动语音识别(ASR)技术的目标是将特定的话语或语音样本映射到该话语的准确文本表示或其他符号表示。例如,对话语“我的狗有跳蚤”执行的ASR将理想地映射到文本串“我的狗有跳蚤”,而不是无意义的文本串“我的狗有冰冻”,或者合理但不准确的文本串“我的沼泽有树”。

语音合成技术的目标是将书面语言转换为能够以音频格式输出的语音,例如直接地用于音频输出或者存储为适合于音频输出的音频文件。这种语音合成可以由文本到语音(TTS)系统来执行。书面语言可以采取文本或符号语言表示的形式。语音可以由语音合成器生成为波形,该语音合成器产生人工的人类语音。听起来自然的人类语音也可以是语音合成系统的目标。

背景技术

包括计算机、网络服务器、电话和个人数字助理(PDA)的各种技术可以被用来实现ASR系统和/或语音合成系统,或者这样的系统的一个或多个组件。通信网络可以转而在这样的设备中的一些或所有之间提供通信路径和链路,支持语音合成系统能力和可以利用ASR和/或语音合成系统能力的服务。

发明内容

在一个方面,本文呈现的示例实施例提供了一种方法,包括:在文本到语音(TTS)系统处,接收具有起点和终点的实时流式文本串;在TTS系统处,累积包括从初始点到第一触发点接收的文本串的第一部分的第一子串,其中,初始点不早于起点且在第一触发点之前,并且第一触发点不超过终点;在TTS系统处,将TTS系统的标点模型应用于第一子串以生成预处理的第一子串,该预处理的第一子串包括添加如了由标点模型确定的语法标点的第一子串;在TTS系统处,至少对预处理的第一子串应用TTS合成处理,以生成第一合成语音;以及产生第一合成语音的音频播放。

在另一方面,本文呈现的示例实施例提供了一种包括在装置上实现的文本到语音(TTS)系统的系统,包括:一个或多个处理器;存储器;以及在存储器中所存储的机器可读指令,该指令在由一个或多个处理器执行时使得TTS系统执行操作,包括:接收具有起点和终点的实时流式文本串;累积包括从初始点到第一触发点接收的文本串的第一部分的第一子串,其中,初始点不早于起点且在第一触发点之前,并且第一触发点不超过终点;将TTS系统的标点模型应用于第一子串以生成预处理的第一子串,该预处理的第一子串包括添加了如由标点模型确定的语法标点的第一子串;至少对预处理的第一子串应用TTS合成处理,以生成第一合成语音;以及产生第一合成语音的音频播放。

在又一方面,本文呈现的示例实施例提供了一种包括计算机可读存储介质的制品,该计算机可读存储介质上存储有程序指令,该程序指令当由包括文本到语音(TTS)系统的系统的一个或多个处理器执行时,该程序指令使得该系统执行操作,包括:接收具有起点和终点的实时流式文本串;累积包括从初始点到第一触发点接收的文本串的第一部分的第一子串,其中,初始点不早于起点且在第一触发点之前,并且第一触发点不超过终点;将TTS系统的标点模型应用于第一子串以生成预处理的第一子串,该预处理的第一子串包括添加了如由标点模型确定的语法标点的第一子串;至少对预处理的第一子串应用TTS合成处理,以生成第一合成语音;以及产生第一合成语音的音频播放。

通过适当参考附图来阅读以下详细描述,这些以及其他方面、优点和替代方案对于本领域普通技术人员来说将变得明显。此外,应当理解,本文提供的此概述和其他描述以及附图旨在仅通过示例的方式来说明实施例,并且同样地,许多变化是可能的。例如,结构元素和过程步骤可以被重新排列、组合、分布、消除或以其他方式改变,而同时保持在所要求保护的实施例的范围内。

附图说明

图1描绘了根据示例实施例的示例文本到语音系统的简化框图。

图2是根据示例实施例的示例网络和计算架构的框图。

图3A是根据示例实施例的服务器设备的框图。

图3B描绘了根据示例实施例的基于云的服务器系统。

图4描绘了根据示例实施例的客户端设备的框图。

图5描绘了根据示例实施例的文本到语音合成的示例操作。

图6示出了根据示例实施例的包括标点模型的示例文本到语音系统的简化框图。

图7A描绘了根据示例实施例的使用标点模型的文本到语音合成期间串累积的示例定时图。

图7B描绘了根据示例实施例的使用标点模型的文本到语音合成的第一示例处理流程。

图7C描绘了根据示例实施例的使用标点模型的文本到语音合成的第二示例处理流程。

图7D描绘了根据示例实施例的使用标点模型的文本到语音合成的第三示例处理流程。

图8描绘了根据示例实施例的包括标点模型的文本到语音合成的示例操作。

图9是示出根据示例实施例的示例方法的流程图。

具体实施方式

1.概述

语音合成系统可以是基于处理器的系统,其被配置为将书面语言转换为人工产生的语音或口头语音。书面语言可以是书面文本,诸如一个或多个书面句子或文本串。书面语言也可以采取其他符号表示的形式,诸如语音合成标记语言,其可以包括指示说话者情绪、说话者性别、说话者身份以及说话风格的信息。书面文本的来源可以从诸如便携式计算设备(例如,PDA、智能电话等)的计算设备的键盘或小键盘输入,或者可以来自在一种或另一种形式的计算机可读存储介质上所存储的文件,或者来自经由网络访问的远程资源(诸如网页)。人工产生的语音可以作为来自信号生成设备或模块(例如,语音合成器设备)的波形而生成,并且由音频播放设备输出和/或格式化并且记录为有形记录介质上的音频文件。合成语音经由到音频设备的网络连接播放,诸如老实电话或智能电话。这种系统也可以称为“文本到语音”(TTS)系统,尽管书面形式不一定仅限于文本。

语音合成系统可以通过接收输入文本(或其他形式的书面语言)并且将该书面文本翻译成与该文本的口头呈现听起来或应该听起来如何的符号表示相对应的“语音学转写”来进行操作。语音学转写然后可以被映射到语音特征,该语音特征参数化语音学转写的声学渲染,并且其然后用作对于信号生成模块设备或元件的输入数据,该信号生成模块设备或元件可以产生适合于由音频输出设备播放的音频波形。例如,播放可能听起来像是说出输入文本串的单词(或声音)的人类语音。在语音合成的情况下,合成语音的声音(例如,对人耳而言)越自然,通常系统的语音质量排名越好。在某些情况下,更自然的声音还可以减少计算资源,因为可以减少随后与用户澄清输出含义的交流。音频波形也可以被生成为音频文件,该音频文件可以被存储或记录在适合于随后播放的存储介质上。在一些实施例中,语音可以直接地从文本合成而不必生成语音学转写。

在操作中,TTS系统可以用于将信息从装置(例如,基于处理器的设备或系统)传达到用户,诸如消息、提示、对于问题的答案、指令、新闻、电子邮件和语音到语音翻译等信息。语音信号本身可以携带各种形式或类型的信息,包括语言内容、情感状态(例如,情绪和/或心情)、身体状态(例如,身体声音特征)和说话者身份等。

在示例实施例中,语音合成可以使用具有文本的语音和语言内容的符号描述的语音的参数表示。可以使用主要由大量语音样本和相应的文本串(或其他符号渲染)构成的数据来训练TTS系统。出于实际原因,通常记录语音样本,尽管原则上不需要。通过构造,相对应的文本串是书面存储格式,或者通常适应书面存储格式。因此,记录的语音样本及其相对应的文本串可以构成TTS系统的训练数据。

TTS的一个示例基于隐马尔可夫模型(HMM)。在这种方法中,HMM用于对下述统计概率进行建模:该统计概率将输入文本串的语音学转写与要合成的相对应的语音的参数表示相关联。作为另一示例,TTS可以基于某种形式的机器学习来生成语音的参数表示以合成语音。例如,通过训练人工神经网络(ANN)将已知的语音学转写与语音声音的已知参数表示相关联来使用ANN生成语音参数。基于HMM的语音合成和基于ANN的语音合成两者可以有助于使用一种或另一种形式的统计适应来改变或调整合成语音的特征。其他形式的TTS系统也是可能的。

在常规操作中,TTS训练数据的文本示例包括语法标点,诸如逗号、句号、问号和感叹号。这样,TTS系统可以被训练成在运行时生成“预测的”语音,该语音可以传达(例如,以音调和/或音量)含义、意图或内容,例如,不仅仅是输入运行时文本的书面单词。然而,在TTS的一些应用中,运行时文本可能包含很少或没有语法标点。非限制性示例是智能电话上的文本应用程序,其中典型的用户输入可能部分或完全缺少语法标点。这种形式的文本——可以被称为“流式文本”或“实时”文本——的TTS处理对于传统训练的TTS系统可能存在挑战,并且在这种情况下所得到的合成语音可能听起来单调或不自然,或者更糟。因此,期望能够从部分或全部缺乏语法标点的文本中合成自然发音的语音。发明人已经发现了如何做到这点。

根据示例实施例,“标点模型”可以被添加到或集成到TTS系统中。标点模型可以应用于运行时输入文本,以便在合成处理之前向文本添加语法标点。然后,所得到的合成语音可能听起来比合成的无标点的输入文本更自然。在示例实施例中,标点模型可以基于机器学习和/或其他人工智能技术,并且被训练成从包含很少或不包含标点的输入文本生成包括语法标点的输出文本。除了提高合成语音的质量之外,当接收到流式文本时,标点可以实时递增地添加,并且用于将到达的流式文本细分成连续的子串,这些子串可以被递增地处理为合成语音。这种逐段的、递增的处理能够实现一个子串的TTS合成,同时接收后续子串,从而减少从第一个到最后一个流式文本字符生成合成语音所花费的时间。

2.示例文本到语音系统

TTS合成系统(或者更一般地,语音合成系统)可以通过下述来操作:接收输入文本、将文本处理为文本串的语音学和语言内容的符号表示、生成与符号表示相对应的语音特征序列、以及将语音特征作为输入提供给语音合成器以便产生输入文本的口头呈现。文本的语音学和语言内容的符号表示可以采取标签序列的形式,每个标签标识低层级语音学语音单元(诸如音素),并且进一步标识或编码低层级语言和/或句法语境、时间参数以及用于指定如何将符号表示的声音渲染为给定语言的有意义的语音的其他信息。其他语音特征可以包括音高、频率、语速和语调(例如陈述音调、疑问音调等)。这些特征中的至少一些有时被称为“韵律”。

根据示例实施例,语音学转写的语音学语音单元可以是音素。音素可以被认为是给定语言的语音的最小声学片段,其包含与给定语言的其他语音片段的有意义的对比。因此,单词通常包括一个或多个音素。为了简单起见,音素可以被认为是字母的发音,尽管这不是一个完美的类比,因为一些音素可能代表多个字母。在书面形式中,音素通常被表示为某种类型的分隔符内表示代表音素的文本的一个或多个字母或符号。例如,单词“cat”的美式英语发音的音素拼写是/k//ae//t/,并且由音素/k/、/ae/和/t/构成。另一示例是单词“dog”的音素拼写是/d//aw//g/,并且由音素/d/、/aw/和/g/构成。存在不同的音素字母,并且其他音素表示也是可能的。美式英语常用的音素字母包含大约40个不同的音素。其他语言可以通过包含不同音素的不同音素字母来描述。

话语中的音素的语音学属性可以依赖于被说出(或意图被说出)的语境,或受其影响。例如,“三音素”是音素的三元组,其中给定音素的口头渲染由时间上在前的音素(称为“左语境”)和时间上在后的音素(称为“右语境”)形成。因此,英语三音素的音素顺序对应于英语阅读的方向。也可以考虑其他音素语境,诸如五音素。

例如,除了音素层级的语境之外,语音学属性还可能依赖于更高层级的语境,诸如单词、短语和句子。更高层级的语境一般与语言使用相关联,可以通过语言模型来表征。在书面文本中,语言的使用可以通过语法标点来传达,至少是部分传达。具体低,语法标点可以提供与语音节奏、语调和其他发音细微差别相关的高层级的语境。

语音特征将语音的声学属性表示为参数,并且在语音合成的语境下,可以用于驱动与输出语音信号相对应的合成波形的生成。一般来说,语音合成的特征考虑了语音信号的三个主要组成,即,类似声道效果的频谱包络、模拟声门源的激励,以及如上所述的描述音高轮廓(“旋律”)和节拍(节奏)的韵律。在实践中,特征可以表示为与一个或多个时间帧相对应的多维特征向量。TTS合成系统的基本操作中的一个是将语音学转写(例如,标签序列)映射到适当的特征向量序列。

举例来说,特征可以包括梅尔滤波器倒谱系数(MFCC)系数。MFCC可以表示输入话语的一部分的短期功率频谱,并且可以基于例如非线性梅尔频率标度上的对数功率谱的线性余弦变换。(Mel标度可以是被听众主观感知为彼此距离大约相等的音高标度,即使这些音高的实际频率彼此距离不等。)

在一些实施例中,特征向量可以包括MFCC、一阶倒谱系数导数和二阶倒谱系数导数。例如,特征向量可以包含13个系数、13个一阶导数(“δ”)和13个二阶导数(“δ-δ”),因此长度为39。然而,在其他可能的实施例中,特征向量可以使用不同的特征组合。作为另一示例,特征向量可以包括感知线性预测(PLP)系数、相对频谱(RASTA)系数、滤波器组对数能量系数或它们的某种组合。每个特征向量可以被认为包括话语(或者更一般地,音频输入信号)的相对应的时间帧的声学内容的量化表征。

图1描绘了根据示例实施例的示例文本到语音(TTS)合成系统100的简化框图。除了功能组件,图1还示出了示例操作的所选择的示例输入、输出和中间产物。TTS合成系统100的功能组件包括:文本分析模块102,用于将输入文本101转换为语音学转写103;TTS子系统104,用于从语音学转写103生成表示待合成语音的声学特性105的数据;以及语音生成器106,用于从声学特性105生成合成语音107。这些功能组件可以在诸如以上所描述那些的一个或多个计算平台或系统上、以集中和/或分布的方式被实现为机器语言指令。机器语言指令可以存储在一种或另一种形式的有形的、非暂时性的计算机可读介质(或其他制品)中,诸如磁盘或光盘等;并且使得作为例如制造过程、配置过程和/或执行启动过程的一部分可用于系统的处理元件。

应当注意,此部分中的讨论以及附图是出于示意性和示例的目的而给出的。例如,TTS子系统104可以使用HMM模型来实现,用于在运行时基于已知标签和已知参数化语音之间的学习(训练)关联来生成语音特征。作为另一示例,TTS子系统104可以使用诸如人工神经网络(ANN)的机器学习模型来实现,用于在运行时从已知标签和已知参数化语音之间的关联来生成语音特征,其中这些关联是通过利用已知关联的训练来学习的。在又一示例中,TTS子系统可以采用混合HMM-ANN模型。

根据示例实施例,文本分析模块102可以接收输入文本101(或其他形式的基于文本的输入)并且生成语音学转写103作为输出。例如,输入文本101可以是文本消息、电子邮件、聊天输入、书籍段落、文章或其他基于文本的通信。如上所述,语音学转写可以对应于标识语音单元(诸如音素)的标签序列,可能还有语境信息。

如所示地,TTS子系统104可以采用基于HMM或基于ANN的语音合成来生成与语音学转写103相对应的特征向量。特征向量可以包括表示要生成的语音的声学特性105的量。例如,声学特性可以包括音高、基频、步调(例如,语速)和韵律。其他声学特性也是可能的。

声学特性可以被输入到语音生成器106,该语音生成器106生成合成语音107作为输出。合成语音107可以被生成为实际的音频输出,例如来自具有一个或多个扬声器的音频设备(例如,耳机、耳塞或扬声器等);和/或可以被记录并且从数据文件(例如,波形文件等)播放的数字数据。

尽管没有必要在图1中明确示出,TTS系统100也可以使用语言模型来预测高层级的语境,用于语音学转写103的解释和可以由语音生成器106渲染为自然发声语音的声学特征105的生成。语言模型的预测的准确性可以至少部分取决于输入文本101中的结构特征,包括语法标点。如上所述,在书面文本中缺少语法标点会冲淡或消除高层级的语境的这些方面,导致较差地或不足地确定语音学属性。因此,典型地,使用带标点的文本和相应的语音样本训练的TTS系统可能无法从缺少语法标点的文本输入中生成自然发音的语音。语法标点缺少或不足的输入文本的非限制性示例是流式文本,诸如由文本应用程序生成的。

本文描述的示例实施例采用传统的TTS处理,以便能够从语法标点缺少或不足的文本输入中生成自然发音的语音。具体地,示例实施例引入了标点模型,该标点模型可以创建输入文本的语法标点渲染,该渲染然后可以由TTS子系统处理以生成自然发音的语音。在描述适用于适应标点不足的文本的TTS系统的示例实施例之前,呈现了其中可以实现具有标点建模的TTS合成的示例实施例的示例通信系统和设备架构的讨论。

3.示例通信系统和设备架构

根据示例实施例的方法,诸如上述的一个实施例,设备可以使用所谓的“瘦客户端”和“基于云的”服务器设备以及其他类型的客户端和服务器设备来实现。在该范例的各个方面下,诸如移动电话和平板计算机的客户端设备可以将一些处理和存储责任负载转移给远程服务器设备。至少在某些时候,这些客户端服务能够通过诸如互联网的网络与服务器设备通信。作为结果,在客户端设备上运行的应用也可以具有永久的、基于服务器的组件。尽管如此,应当注意,本文公开的方法、处理和技术中的至少一些可以能够完全地在客户端设备或服务器设备上操作。

此部分描述了针对这种客户端设备和服务器设备的一般系统和设备架构。然而,在随后的部分中呈现的方法、设备和系统也可以在不同的范例下操作。因此,此部分的实施例仅仅是如何能够进行这些方法、设备和系统的示例。

a.示例通信系统

图2是其中可以采用本文描述的各种实施例的通信系统200的简化框图。通信系统200包括客户端设备202、204和206,其分别地代表桌面个人计算机(PC)、平板计算机和移动电话。客户端设备还可以包括,例如,可穿戴计算设备,诸如头戴式显示器和/或增强现实显示器。这些客户端设备中的每个可以能够通过使用有线连接(由实线表示)和/或无线连接(由虚线表示)、经由网络208与其他设备(包括与彼此)通信。

网络208可以是,例如,互联网,或一些其他形式的公共或私有互联网协议(IP)网络。因此,客户端设备202、204和206可以使用分组交换技术进行通信。尽管如此,网络208还可以并入至少一些电路交换技术,并且客户端设备202、204和206可以替代地或者除了分组交换之外经由电路交换进行通信。

服务器设备210也可以经由网络208进行通信。具体地,服务器设备210可以根据一个或多个网络协议和/或应用层级协议与客户端设备202、204和206通信,以有助于在这些客户端设备上使用基于网络或基于云的计算。服务器设备210可以包括集成的数据存储(例如,存储器、磁盘驱动器等)并且还可以能够访问单独的服务器数据存储212。如图2所示,服务器设备210和服务器数据存储212之间的通信可以是直接的、经由网络208的或者是直接的和经由网络208的两者。服务器数据存储212可以存储应用数据,该应用数据被用来有助于由客户端设备202、204和206以及服务器设备210执行的应用的操作。

尽管在图2中仅示出了三个客户端设备、一个服务器设备和一个服务器数据存储,但是通信系统200可以包括任意数量的这些组件中的每个。例如,通信系统200可以包括数百万个客户端设备、数千个服务器设备和/或数千个服务器数据存储。此外,客户端设备可以采用不同于图2中的形式。

b.示例服务器设备和服务器系统

图3A是根据示例实施例的服务器设备的框图。具体地,图3A所示的服务器设备300可以被配置为执行服务器设备210和/或服务器数据存储212的一个或多个功能。服务器设备300可以包括用户接口302、通信接口304、处理器306和数据存储308,这些中的所有可以经由系统总线、网络或其他连接机制314链接在一起。

用户接口302可以包括用户输入设备,诸如键盘、小键盘、触摸屏、计算机鼠标、轨迹球、操纵杆和/或现在已知或以后开发的其他类似设备。用户接口302还可以包括用户显示设备,诸如一个或多个阴极射线管(CRT)、液晶显示器(LCD)、发光二极管(LED)、使用数字光处理(DLP)技术的显示器、打印机、灯泡和/或现在已知或以后开发的其他类似设备。额外地,用户接口302可以被配置为经由扬声器、扬声器插孔、音频输出端口、音频输出设备、耳机和/或现在已知或以后开发的其他类似设备来生成听觉输出。在一些实施例中,用户接口302可以包括软件、电路或能够向外部用户输入/输出设备传送数据和/或从外部用户输入/输出设备接收数据的另外形式的逻辑。

通信接口304可以包括一个或多个无线接口和/或有线接口,其可被配置为经由网络(诸如图2所示的网络208)进行通信。如果存在的话,无线接口可以包括一个或多个无线收发器,诸如蓝牙

在一些实施例中,通信接口304可以被配置为提供可靠的、安全的和/或认证的通信。对于本文描述的每个通信,可以提供用于确保可靠通信(例如,保证的消息传递)的信息,可能作为消息报头和/或报尾的一部分(例如,分组/消息排序信息、封装报头和/或报尾、大小/时间信息、以及诸如循环冗余校验(CRC)和/或奇偶校验值的传输验证信息)。可以使用一个或多个密码协议和/或算法来使通信安全(例如,编码或加密)和/或解密/解码,该密码协议和/或算法诸如但不限于数据加密标准(DES)、高级加密标准(AES)、Rivest、Shamir和Adleman(RSA)算法、Diffie-Hellman算法和/或数字签名算法(DSA)。可以使用其他加密协议和/或算法来代替或补充这里列出的那些来使通信安全(然后解密/解码)。

处理器306可以包括一个或多个通用处理器(例如,微处理器)和/或一个或多个专用处理器(例如,数字信号处理器(DSP)、图形处理单元(GPU)、浮点处理单元(FPU)、网络处理器或专用集成电路(ASIC))。处理器306可以被配置为执行在数据存储308中所包含的计算机可读程序指令310和/或其他指令,以执行本文描述的各种功能。

数据存储308可以包括一个或多个非暂时性计算机可读存储介质,其可以被处理器306读取或访问。一个或多个计算机可读存储介质可以包括易失性和/或非易失性存储组件,诸如光、磁、有机或其他存储器或盘存储,它们可以整体或部分地与处理器306集成。在一些实施例中,数据存储308可以使用单个物理设备(例如,一个光、磁、有机或其他存储器或盘存储单元)来实现,而在其他实施例中,数据存储308可以使用两个或更多个物理设备来实现。

数据存储308还可以包括程序数据312,该程序数据312可以被处理器306用来执行本文描述的功能。在一些实施例中,数据存储308可以包括或可以访问附加的数据存储组件或设备(例如,下面描述的集群数据存储)。

再次简要参考图2,服务器设备210和服务器数据存储设备212可以在经由网络208可访问的一个或多个场所存储应用和应用数据。这些场所可能是包含大量服务器和存储设备的数据中心。服务器设备210和服务器数据存储设备212的确切物理位置、连接性和配置对于客户端设备可能是未知的和/或不重要的。因此,服务器设备210和服务器数据存储设备212可以被称为“基于云”的设备,其被容纳在各种远程位置。这种“基于云”的计算的一个可能的优点是从客户端设备负载转移处理和数据存储,从而简化这些客户端设备的设计和要求。

在一些实施例中,服务器设备210和服务器数据存储设备212可以是驻留在单个数据中心的单个计算设备。在其他实施例中,服务器设备210和服务器数据存储设备212可以包括数据中心中的多个计算设备,或者甚至多个数据中心中的多个计算设备,其中数据中心位于不同的地理位置。例如,图2描绘了可能位于不同的物理位置的服务器设备210和服务器数据存储设备212中的每个。

图3B描绘了基于云的服务器集群的示例。在图3B中,服务器设备210和服务器数据存储设备212的功能可以分布在三个服务器集群320A、320B和320C当中。服务器集群320A可以包括由本地集群网络326A连接的一个或多个服务器设备300A、集群数据存储322A和集群路由器324A。类似地,服务器集群320B可以包括由本地集群网络326B连接的一个或多个服务器设备300B、集群数据存储322B和集群路由器324B。同样地,服务器集群320C可以包括由本地集群网络326C连接的一个或多个服务器设备300C、集群数据存储322C和集群路由器324C。服务器集群320A、320B和320C可以分别地经由通信链路328A、328B和328C与网络308通信。

在一些实施例中,服务器集群320A、320B和320C中的每个可以具有相等数量的服务器设备、相等数量的集群数据存储和相等数量的集群路由器。然而,在其他实施例中,服务器集群320A、320B和320C中的一些或所有可以具有不同数量的服务器设备、不同数量的集群数据存储和/或不同数量的集群路由器。每个服务器集群中的服务器设备、集群数据存储和集群路由器的数量可以依赖于分配给每个服务器集群的计算任务和/或应用。

例如,在服务器集群320A中,服务器设备300A可以被配置为执行诸如服务器设备210的服务器的各种计算任务。在一个实施例中,这些计算任务可以分布在服务器设备300A中的一个或多个当中。服务器集群320B和320C中的服务器设备300B和300C可以被配置为与服务器集群320A中的服务器设备300A相同或相似。另一方面,在一些实施例中,服务器设备300A、300B和300C各自可以被配置为执行不同的功能。例如,服务器设备300A可以被配置为执行服务器设备210的一个或多个功能,而服务器设备300B和服务器设备300C可以被配置为执行一个或多个其他服务器设备的功能。类似地,服务器数据存储设备212的功能可以专用于单个服务器集群,或者分布在多个服务器集群上。

服务器集群320A、320B和320C的集群数据存储322A、322B和322C分别地可以是包括被配置为管理对硬盘驱动器组的读写和访问的磁盘阵列控制器的数据存储阵列。磁盘阵列控制器,单独地或结合其相应的服务器设备,也可以被配置为管理存储在集群数据存储中的数据的备份或冗余拷贝,以防止:磁盘驱动器故障或阻止一个或多个服务器设备访问一个或多个集群数据存储的其他类型的故障。

与服务器设备210和服务器数据存储设备212的功能可以跨服务器集群320A、320B和320C分布的方式类似,这些组件的各种活动部分和/或备份/冗余部分可以跨集群数据存储322A、322B和322C分布。例如,一些集群数据存储322A、322B和322C可以被配置为存储在其他集群数据存储322A、322B和322C中所存储的数据的备份版本。

服务器集群320A、320B和320C中的集群路由器324A、324B和324C分别地可以包括被配置为向服务器集群提供内部和外部通信的联网设备。例如,服务器集群320A中的集群路由器324A可以包括一个或多个分组交换和/或路由设备,其被配置为提供(i)经由集群网络326A的服务器设备300A和集群数据存储322A之间的网络通信,和/或(ii)经由到网络308的通信链路328A的服务器集群320A和其他设备之间的网络通信。集群路由器324B和324C可以包括类似于集群路由器324A的网络设备,并且集群路由器324B和324C可以为服务器集群320B和320C执行集群路由器324A为服务器集群320A执行的联网功能。

额外地,集群路由器324A、324B和324C的配置可以至少部分地基于服务器设备和集群存储阵列的数据通信需求、集群路由器324A、324B和324C中的网络设备的数据通信能力、本地集群网络326A、326B、326C的延迟和吞吐量、广域网连接328A、328B和328C的延迟、吞吐量和成本、和/或可能对成本、速度、容错性、弹性、效率和/或系统架构的其他设计目标有贡献的其他因素。

c.示例客户端设备

图4是示出示例客户端设备400的组件中的一些的简化框图。客户端设备400可以被配置为执行客户端设备202、204、206的一个或多个功能。作为示例而非限制,客户端设备400可以是或包括“简易老式电话系统”(POTS)电话、蜂窝移动电话、静态相机、摄像机、传真机、应答机、计算机(诸如桌面型、笔记本型或平板型计算机)、个人数字助理、可穿戴计算设备、家庭自动化组件、数字录像机(DVR)、数字电视、遥控器或者配备有一个或多个无线或有线通信接口的一些其他类型的设备。客户端设备400还可以采取交互式虚拟和/或增强现实眼镜的形式,诸如头戴式显示设备,有时被称为“平视”显示设备。尽管不一定在图4中示出,但是头戴式设备可以包括用于在头戴式设备的显示器组件上显示图像的显示器组件。头戴式设备还可以包括一个或多个面向眼睛的相机或被配置为跟踪头戴式设备的佩戴者的眼睛运动的其他设备。眼睛跟踪相机可以用于实时确定眼睛注视方向和佩戴者眼睛的运动。眼睛注视方向可以被提供作为各种操作、功能和/或应用的输入,诸如跟踪佩戴者的注视方向和在显示设备中显示的文本上的运动。

如图4所示,客户端设备400可以包括通信接口402、用户接口404、处理器406和数据存储408,所有这些可以通过系统总线、网络或其他连接机制410通信地链接在一起。

通信接口402用于允许客户端设备400使用模拟或数字调制与其他设备、接入网络和/或传输网络进行通信。因此,通信接口402可以有助于电路交换和/或分组交换通信,诸如POTS通信和/或IP或其他分组化通信。例如,通信接口402可以包括芯片组和天线,其被布置为用于与无线电接入网络或接入点的无线通信。另外,通信接口402可以采取有线接口的形式,诸如以太网、令牌环或USB端口。通信接口402也可以采取无线接口的形式,诸如Wifi、蓝牙

用户接口404可以用于允许客户端设备400与人类或非人类用户交互,诸如接收来自用户的输入并且向用户提供输出。因此,用户接口404可以包括输入组件,诸如小键盘、键盘、触敏或存在感面板、计算机鼠标、轨迹球、操纵杆、麦克风、静态相机和/或摄像机。用户接口404还可以包括一个或多个输出组件,诸如(例如,可以与触敏面板组合的)显示器屏幕、CRT、LCD、LED、使用DLP技术的显示器、打印机、灯泡和/或现在已知或以后开发的其他类似设备。用户接口404还可以被配置为经由扬声器、扬声器插孔、音频输出端口、音频输出设备、耳机和/或现在已知或以后开发的其他类似设备来生成听觉输出。在一些实施例中,用户接口404可以包括软件、电路或能够向外部用户输入/输出设备传送数据和/或从外部用户输入/输出设备接收数据的另外形式的逻辑。额外地或替选地,客户端设备400可以支持经由通信接口402或经由另一物理接口(未示出)从另一设备的远程访问。用户接口404可以被配置为接收用户输入,其位置和运动可以由本文描述的指示符或光标来指示。用户接口404可以额外地或替选地被配置为显示设备,以渲染或显示文本片段。

处理器406可以包括一个或多个通用处理器(例如,微处理器)和/或一个或多个专用处理器(例如,DSP、GPU、FPU、网络处理器或ASIC)。数据存储408可以包括一个或多个易失性和/或非易失性存储组件,诸如磁、光、闪存或有机存储,并且可以整体或部分地与处理器406集成。数据存储408可以包括可移动和/或不可移动的组件。

一般而言,处理器406可能能够执行在数据存储408中所存储的程序指令418(例如,编译或非编译的程序逻辑和/或机器代码),以执行本文所述的各种功能。数据存储408可以包括非暂时性计算机可读介质,其上存储有程序指令,该程序指令在由客户端设备400执行时,使得客户端设备400执行本说明书和/或附图中公开的任何方法、处理或功能。处理器406执行程序指令418可以导致处理器406使用数据412。

作为示例,程序指令418可以包括安装在客户端设备400上的操作系统422(例如,操作系统内核、设备驱动程序和/或其他模块)以及一个或多个应用程序420(例如,地址簿、电子邮件、网页浏览、社交网络和/或游戏应用)。类似地,数据412可以包括操作系统数据416和应用数据414。操作系统数据416可以主要地对于操作系统422可访问,并且应用数据414可以主要地对于一个或多个应用程序420可访问。应用数据414可以被布置在对客户端设备400的用户可见或隐藏的文件系统中。

应用程序420可以通过一个或多个应用编程接口(API)与操作系统412通信。这些API可以有助于例如应用程序420读取和/或写入应用数据414、经由通信接口402传送或接收信息、在用户接口404上接收或显示信息等等。

在一些行话中,应用程序420可以简称为“app(应用)”。额外地,应用程序420可以通过一个或多个在线应用商店或应用市场下载到客户端设备400。然而,应用也可以以其他方式安装在客户端设备400上,诸如经由网络浏览器或通过客户端设备400上的物理接口(例如,USB端口)。

4.示例系统和操作

在图5中示出了其中输入文本中缺少或缺乏语法标点的TTS的使用场景的示例,在图5中,智能电话502用于例如经由文本应用程序输入文本并且将文本转换成语音,该语音然后可以通过通信网络504传送到电话506并且由音频组件506-1播放。智能电话502和电话506两者是通过网络504的方式通信地连接的通信设备的示例,并且因此被认为彼此远离。也可以使用其他设备。图中的“闪电”线代表每个设备与网络的通信连接。

在图示中,用户可以键入输入文本,显然地并且作为示例,该输入文本包括没有任何标点的串501“嗨你想和我见面吃午饭吗我可以在比萨宫殿(pizza palace)预订让我知道(hi do you want to meet for lunch i can make a reservation at pizza palacelet me know)”。发送用户可以点击智能电话502上的虚拟“发送”按钮(如图5中的指向手指所表示)来调用智能电话502的TTS系统502-1,该TTS系统502-1生成合成语音,该合成语音在图中由波形503表示,然后如所指示地被传送到蜂窝电话506。弯曲的虚线箭头表示到智能电话506的传输。在一些实施例中,可以使用驻留在蜂窝电话上而不是智能电话502上的TTS处理在蜂窝电话506处将文本转换成语音。替选地,TTS处理可以远程托管在第三方计算系统(未示出)上,该第三方计算系统被配置为通过通信网络504从智能电话502接收文本数据,使用TTS处理将其转换成语音,以及通过该通信网络或另一通信网络504将语音传送到蜂窝电话506。

输入文本流中缺少语法标点可能导致TTS系统501-2合成平坦的、听起来不自然的输出语音505。这在图5中通过下述来可视地表示:将输入文本501的每个单词放置在意图表示输出语音505中所说的单词的书写单词的单独一行上。因此,如在合成语音中渲染地,输出505的每个单词听起来好像一次一个地说出,并且彼此隔离。发明人已经发现,通过引入标点模型,可以补偿输入文本中语法标点的缺失,并且生成自然发音的语音。

a.具有标点模型的示例文本到语音系统

图6示出了根据示例实施例的包括标点模型的示例文本到语音系统600的简化框图。像图1中的TTS系统100一样,TTS系统600包括文本分析模块606、TTS子系统608和语音生成器610。然而,TTS系统600还包括子串累积模块602,其后是在文本分析模块606之前的标点模型604。如同TTS系统100一样,图6中所示的TTS的元件和模块不一定精确地对应于TTS系统的特定实施方式的实际或特定组件,而是至少代表在TTS处理过程中执行的操作的便利概念化,包括对否则可能缺少语法标点的输入文本串的标点预测。

一般而言,TTS系统600将标点模型应用于输入串或其一部分,以生成预处理的子串605,然后该子串可以由文本分析模块606和其他下游处理元件以类似于图1所示的TTS100处理输入文本串101的方式来处理。更详细地,如下所述,子串累积模块602和标点模型604可以一起将输入流式文本601分割或细分成两个或更多个连续的子串,以供TTS子系统608和/或语音生成器610单独处理。

根据示例实施例,子串累积模块602可以用于将输入流式文本610的连续子部分累积到累积子串603中,累积子串603然后被标点模型604处理以产生预处理子串605。例如,累积的子串可以对应于一些数量的输入文本对象,诸如字母(例如,文本字符)、单词(例如,文本字符的句法分组)或短语。给定的子串可以从传入的流式文本中递增地积累,并且输入到标点模型604,以生成积累的子串的标点版本603。如果累积的子串603对应于整个输入流式文本串,则子串的标点版本可以被传递到文本分析模块606。如果累积子串603对应于少于整个输入流式文本串,则可以在累积子串603的标点版本中搜索用于TTS合成处理的定界(delimit)累积子串603的标点。如果在累积子串603的标点版本中找到合适的标点,则累积子串603可以被传递到文本分析模块606。如果在累积的子串603的标点版本中没有找到合适的标点,则附加的传入流式文本可以被累积到更大的子串中,该子串可以再次被测试用于定界标点。由图6中标记为“决定累积多少”的箭头表示的这种递增累积处理可以迭代地重复,直到标点模型604可以生成累积子串603的标点版本,其包含用于定界累积子串603的合适标点。

在图6中,包含用于定界的适当标点的子串(包括整个流式文本串的情况)被示出为预处理子串605,其然后可以由文本分析模块606处理成语音学转写607。然后,TTS子系统608应用TTS合成来生成声学特性609,语音生成器610可以从声学特性609产生合成语音611形式的音频输出,如图所示。

在示例实施例中,子串累积可以一次一个输入单词递增地执行,其中字母分组之间的空格字符可以用作分隔符(delimiter)。在这样的方案中,子串可以一次一个单词地建立,并且当每个后续单词被附加到现有子串时,由标点模型604有效地测试。

在一般情况下,输入文本流,无论是来自诸如文本应用程序的流式源,还是来自诸如文本文件或来自存档文本的复制粘贴的静态源,都可以被细分成任意两个或更多个子串,这些子串可以被单独地合成为语音。实际上,可能更常见的是只有两个或者可能三个子串细分。如所述地,整个输入文本串可以由TTS合成后的标点模型来处理,根本不再细分。

细分成子串的一个优点是,它使得能够在传入的流式文本到达时对其进行TTS处理,从而减少了由于在处理之前等待整个流式文本串到达而导致的延迟。例如,在由文本应用程序产生的流式文本串的情况下,TTS处理可以在流式文本的初始部分开始,即使用户仍在键入后面的部分。还可能在合成后面部分的同时,甚至在用户仍在键入后面部分的时候,播放合成的一部分的音频。这些不同模式的细节在以下示例操作的语境中描述。

根据示例实施例,标点模型可以基于人工神经网络(ANN)或其他形式或机器学习。例如,ANN可以被训练来从作为输入的无标点文本中预测作为输出的标点文本。在示例实施例中,输入可以是文本串的字符序列,并且输出可以是输入串的每个字符被输出为相同字符或标点符号的计算概率。训练数据可以包括标记的文本串对,其中每对中的一个元素是另一个元素的无标点版本。无标点元素可以表示输入数据,而标点元素可以表示用于在训练期间与预测输出进行比较的“基本事实”。训练可能需要调整模型参数以实现预测标点和“真实”标点之间的统计确定的“最佳拟合”。

b.示例操作

如上所述,子串处理可能需要任何数量的连续或顺序子串。出于本文讨论的目的,详细考虑的仅有情况是没有子串(即完整的输入串)或有两个子串的情况。从两个子串扩展到两个以上的子串是直接的,并且通过考虑仅两个子串,对于两个以上的子串来说没有一般性损失。在下面的讨论中,首先描述处理整个接收的串(即,没有子字符串)的示例情况。接下来是对两个示例情况的描述,每个情况具有两个子字符串。第一个示例示出了第一子串的音频播放,同时合成第二子串。第二示例示出了第一子串的音频播放,同时接收第二子串,随后同时合成第二子串。

图7A描绘了根据示例实施例的使用标点模型的文本到语音合成期间串累积的示例定时图。对于所有示例情况,流式文本串被认为是实时接收的,从起点到终点测量,如时间线732所示。示例时间线732-1示出了整个传入文本串的累积;即没有子串(或者等于整个串的一个子串)。在这种情况下,初始点等于起点,第一个触发点等于终点,并且没有第二个触发点。示例时间线732-2、732-3和732-4各自示出了累积两个(或更多)子串的示例情况。在这些情况下,第一子串被认为是从初始点累积到第一触发点,其中初始点大于或等于初始点,并且第一触发点大于初始点且小于第二触发点。第二触发点小于或等于终点。

本讨论的并且如图7A所示的定时元素之间的关系可以简明地表示为t

术语“触发点”只是为了讨论方便而引入的。根据示例实施例,触发点标记一个子串的结束和下一子串的开始,如果存在下一个子串的话。触发点可以是文本分隔符,诸如分隔单词和/或短语的标点记号。这种标点记号的非限制性示例包括逗号、句号、问号和感叹号。例如,触发点也可以是完整输入的串的结束和/或检测到来自文本应用程序的“发送”命令。

图7B、图7C和图7D示出了根据示例实施例的使用标点模型的TTS处理的处理流程。在每个示例中,流式文本被呈现为TTS系统的输入,用于处理、合成和播放。例如,在典型的实施方式中,流式文本的源可以是文本应用程序。然而,该源也可以或者可替换地是文本文件或者来自文本应用的保存文本。在图7B、图7C和图7D的示例中,在TTS系统接收流式文本可以被认为是文本字符的到达,因为它们是采用文本应用程序或其他实时流式文本生成器键入的。采用该描述,术语“累积”可以被认为是在TTS系统的字符和/或单词的增量接收。点击“发送”按钮,或者从流式文本程序发出类似的触发或命令,则可以被认为是下述信号:整个文本串是完整的并且应该被转换成语音(合成的),以及其音频渲染被产生和播放。在图5的示例中,这对应于向远程通信设备传送音频播放。

图7B、图7C和图7D中所示的示例操作的主要区别在于:在点击“发送”按钮之前,累积文本的TTS处理是否开始以及哪个TTS处理开始。具体而言,在点击“发送”按钮之前开始处理可以减少与等待直到点击“发送”按钮相关联的延迟。对于实时流式文本应用程序和其他实时文本流程序,这可以有利地使语音通信(其中语音的来源是文本应用)在合成语音的质量和减少的端到端延迟方面听起来更自然。

图7B描绘了根据示例实施例的文本到语音合成的示例处理流程,其中在由标点模型处理之前接收整个流式文本串。在图的顶部示出了处理流程,并且在处理流程下方示出了处理时间线714-B和716-B。流式文本串702到达TTS系统并且被实时累积704。如上所述,这可以对应于接收例如由流式文本程序生成(例如,键入)的文本字符。当累积了整个文本串时,如点击发送按钮706而信号发送的,整个文本串被输入到标点模型708,该标点模型708生成包括由标点模型708确定的添加的语法标点的标点文本串。

在图7B的处理流程中,实时文本串累积704在第一触发点被输入到标点模型708。标点模型的输出然后被输入到TTS合成710,随后生成音频输出712。

在该示例中,时间线714-B示出了初始点与初始点处的开始重合,并且第一触发点与终点重合。例如,第一触发点可以对应于“发送”按钮信号。

如时间线716-B中所示,整个文本串在从初始点到第一触发点的间隔上累积。还如图所示,整个文本串的累积或接收之后是整个文本串的标点,从标点文本串合成语音,以及最后播放合成的文本串。应当注意,时间线716-B中每个操作的表观相对持续时间是为了说明的目的,并且不一定是成比例的和/或旨在传达实际的数量关系。

图7C描绘了根据示例实施例的使用标点模型的文本到语音合成的示例处理流程,在该标点模型中累积了两个子串。在该示例中,第一子串的TTS合成处理与第二子串的累积同时进行,并且第一子串的音频播放与第二子串的TTS处理同时进行。该处理流程在图的顶部示出,并且处理时间线714-C、716-C1和716-C2在处理流程下方示出。流式文本串702到达TTS系统并且被实时累积704。再次地,这可以对应于接收例如由流式文本程序生成(例如,键入)的文本字符。在该示例中,第一触发点发生在终点之前,标签第二触发点与终点重合。结果,整个文本串被累积在两个连续的子串中,如下所述。

在图7C的处理流程中,实时文本串704的部分累积产生实时文本子串722,当已经累积了某个阈值量的文本时,该实时文本子串722被输入到标点模型708。在示例实施例中,阈值可以对应于一个或多个完整单词的累积。例如,如上所述,然后针对包括定界标点的“可接受的”标点来评估标点模型的输出724。如果实时文本子串722可以基于标点模型的输出来定界,则实时文本子串722被输入到TTS合成710。如果实时文本子串722不能被定界,则累积额外的文本,并且再次应用标点模型测试。重复该循环,直到实时文本子串722可以被定界,随后是TTS合成710和音频播放712。

当实时文本子串722被输入到TTS合成710时,下一顺序子串的累积开始。注意,实际上,从一个子串到下一个子串,累积可以是连续的。一旦下一顺序子串的累积完成,就可以开始生成初始子串的音频输出712。这在时间线716-C1上由TTS合成和音频播放之间的“等待”间隙来指示。

刚刚描述的子串累积处理可以针对下述重复:重复到达的流式文本中可以累积的尽可能多的连续子串。连续子串之间的边界是触发点。对于当前示例,仅考虑第一子串和第二子串。第一子串的结束和第二子串的开始由第一触发点标记。在该示例中,第二子串的结束由第二触发点标记。在图7C的图示中,第二子串对应于最后的子串726,其在接收到发送按钮706时被直接地输入到TTS合成710。因此,第二触发点与到达的流式文本的终点重合。

在该示例中,时间线714-C示出了初始点与起点重合,并且第一触发点发生在终点之前。第一触发点标记第一子串的结束和第二子串的开始,并且第二触发点标记第二子串的结束。例如,第二触发点可以对应于“发送”按钮信号。

如时间线716-C1中所示,第一子串在从初始点到第一触发点的间隔上累积。如时间线716-C1上所标记的,累积被假定为包括标点和以上述方式进行定界的测试,其中累积和标点的结果被称为“预处理的第一子串”。随后从预处理的第一子串中合成语音,并且最后播放合成的第一子串。

如时间线716-C2中所示,第二子串在从第一触发点到第二触发点的间隔上累积。如时间线716-C2上所标记的,累积还被假设为包括标点和用于定界的测试和/或接收“发送”按钮信号706,其中累积和标点的结果被称为“预处理的第二子串”。随后从预处理的第二子串合成语音,并且最后播放合成的第二子串。第二子串的播放对应于整个文本串播放的完成,尽管是在两个连续子串的播放中。时间线716-C1和716-C2的比较示出了第二子串的累积与第一子串的TTS合成同时发生,并且第二子串的TTS合成与第一子串的播放同时发生。注意,第二(和第一)子串的累积可以对应于流式文本的键入(或生成)。因此,第一子串的处理与第二子串的键入同时发生。

为了与整个文本串的TTS处理进行比较(如图7B所示),在时间线716-C2上示出了用于整个文本串的处理的示例的播放完成的时间标记。可以看出,完成播放第二子串的相对应的时间比处理和播放整个文本串的时间更早。这说明了延迟的减少。如同图7B的时间线一样,时间线716-C中的每个操作的表观相对持续时间是为了说明的目的,并且不一定是成比例的和/或旨在传达实际的数量关系。

图7D描绘了根据示例实施例的使用标点模型的文本到语音合成的另一个示例处理流程,在该标点模型中累积了两个子串。在该示例中,TTS合成处理(可能还有第一子串的至少部分播放)与第二子串的累积同时进行,并且第一子串的至少部分音频播放与第二子串的TTS处理同时进行。在图的顶部示出了处理流程,并且在处理流程下方示出了处理时间线714-D、716-D1和716-D2。流式文本串702到达TTS系统并且被实时累积704。再次地,这可以对应于接收例如由流式文本程序生成(例如,键入)的文本字符。在该示例中,第一触发点发生在终点之前,并且第二触发点与终点重合。结果,整个文本串被累积在两个连续的子串中,如下所述。

在图7D的处理流程中,实时文本串704的部分累积产生实时文本子串722,当已经累积了某个阈值量的文本时,该实时文本子串722被输入到标点模型708。在示例实施例中,阈值可以对应于一个或多个完整单词的累积。例如,如上所述,然后针对包括定界标点的“可接受的”标点来评估标点模型的输出724。如果实时文本子串722可以基于标点模型的输出来定界,则实时文本子串722被输入到TTS合成710。如果实时文本子串722不能被定界,则累积额外的文本,并且再次应用标点模型测试。重复该循环,直到实时文本子串722可以被定界,随后是TTS合成710和音频播放712。

当实时文本子串722被输入到TTS合成710时,下一顺序子串的累积开始。如上所述,从一个子串到下一子串,累积可以是连续的。在一些情况下,TTS合成处理710的完成可以在下一个连续子串的累积结束之前完成。例如,当初始子串已经被合成并且可以被播放时,实时流式文本应用可能仍然在生成文本,例如,用户可能仍然在键入流式文本。在这种情况下,在播放可以开始之前,关于合成语音是否“准备好发送”进行确定728。如果是,则可以开始播放。如果否,则播放被延迟,直到更多到达的流式文本串被接收和合成。该操作允许在仍在接收流式文本的同时开始播放,但仅当“准备好发送”条件满足时。

在示例实施例中,“准备好发送”条件可以对应于用于评估下述的标准:在发送按钮706信号发出之前已经接收和合成的流式文本的源文本将被编辑、修订和/或修改的可能性。再次对于流式文本应用程序的情况,输入文本消息的用户可以决定在点击发送按钮之前进行改变。如果输入文本的初始部分已经被合成并且播放,那么用户修改文本消息的已播放的部分就太晚了。“准备好发送”标准因此可以用于评估将进行改变的可能性。如果可能性低于“准备好发送”阈值(或者相反地,如果不进行改变的可能性高于互补的“准备好发送”阈值),则播放可以在流式文本仍在累积的同时进行。否则,播放被延迟,直到更多的文本被接收和合成,使得阈值被满足,和/或如果发送按钮信号被接收。

子串累积处理可以针对下述重复:重复到达的流式文本中可以累积的尽可能多的连续子串。连续子串之间的边界是触发点。对于当前示例,仅考虑第一子串和第二子串。第一子串的结束和第二子串的开始由第一触发点标记。在该示例中,第二子串的结束由第二触发点标记。在图7D的图示中,第二子串对应于最后的子串726,其在接收到发送按钮706时被直接地输入到TTS合成710。因此,第二触发点与到达的流式文本的终点重合。

在该示例中,时间线714-D示出了初始点与起点重合,并且第一触发点发生在终点之前。第一触发点标记第一子串的结束和第二子串的开始,并且第二触发点标记第二子串的结束。例如,第二触发点可以对应于“发送”按钮信号。

如时间线716-D1中所示,第一子串在从初始点到第一触发点的间隔上累积。如时间线716-D1上所标记的,累积被假定为包括标点和以上述方式进行定界的测试,其中累积和标点的结果被称为“预处理的第一子串”。随后从预处理的第一子串合成语音,并且如果满足“准备好发送”标准,则播放合成的第一子串。

如时间线716-D2中所示,第二子串在从第一触发点到第二触发点的间隔上累积。如时间线716-D2上所标记的,累积还被假设为包括标点和用于定界的测试和/或接收“发送”按钮信号706,其中累积和标点的结果被称为“预处理的第二子串”。随后从预处理的第二子串合成语音,并且最后播放合成的第二子串。第二子串的播放对应于整个文本串播放的完成,尽管是在两个连续子串的播放中。时间线716-D1和716-D2的比较示出了第二子串的累积与第一子串的TTS合成和至少部分播放同时发生,并且第二子串的TTS合成与第一子串的任何剩余播放同时发生。注意,第二(和第一)子串的累积可以对应于流式文本的键入(或生成)。因此,第一子串的处理和至少一部分与第二子串的键入同时发生。

为了与整个文本串的TTS处理进行比较(如图7B所示),在时间线716-D2上示出了用于整个文本串的处理的示例的播放完成的时间标记。可以看出,完成播放第二子串的相对应的时间比处理和播放整个文本串的时间更早。这再次说明了延迟的减少。如同图7B和图7C的时间线一样,时间线716-D中的每个操作的表观相对持续时间是为了说明的目的,并且不一定是成比例的和/或旨在传达实际的数量关系。

图8描绘了根据示例实施例的图5所示的示例使用场景,但是现在具有包括标点模型的文本到语音合成的操作。再次地,智能电话502用于例如经由文本应用程序输入文本,并且将文本转换成语音,该语音然后可以通过通信网络504传送到电话506并且由音频组件506-1播放。

用户可以键入输入文本,再次举例来说,该文本由没有任何标点的串501“嗨你想和我见面吃午饭吗我可以在pizza palace预订让我知道”组成。发送用户可以点击智能电话502上的虚拟“发送”按钮(如图5中的指向手指所表示),这次调用智能电话502的TTS系统805,该TTS系统805生成合成语音,该合成语音在图中由波形803表示,然后如所指示地被传送到蜂窝电话506。弯曲的虚线箭头表示到智能电话506的传输。

在该示例中,输入文本流中语法标点的缺失由包括标点模型的TTS系统802来补偿。通过在TTS合成之前向文本串添加标点,系统现在可以合成听起来自然的输出语音805。这在图5中通过下述来可视地表示:将输入文本501的每个单词放置在有意义的短语中,并且字体大小和样式意图表示输出语音805中所说的单词。当电话506的用户视力受损,可能难以阅读纯文本消息时,图8所示的布置可能特别有益。如果没有通过本文的示例实施例的技术和方法产生的合成语音的语音质量的有利改进,蜂窝电话506的视力受损用户将不得不满足于图5等中例示的有缺陷的质量。

c.示例方法

在示例实施例中,示例方法可以被实现为机器可读指令,当由系统的一个或多个处理器执行时,指令使得系统执行本文描述的各种功能、操作和任务。除了一个或多个处理器之外,该系统还可以包括用于存储示例方法的机器可读指令(以及可能的其他数据)的一种或多种形式的存储器,以及一个或多个输入设备/接口,一个或多个输出设备/接口以及其他可能的组件。该示例方法的一些或所有方面可以在TTS合成系统中实现,该系统可以包括TTS合成专用的功能和能力。然而,并非示例方法的所有方面都必须依赖于TTS合成系统中的实施方式。

在示例实施例中,包括标点模型的TTS合成系统可以在包括一个或多个处理器、一种或多种形式的存储器、一个或多个输入设备/接口、一个或多个输出设备/接口以及机器可读指令的装置中实现,并且当由一个或多个处理器执行时,机器可读指令使得包括标点模型的TTS合成系统执行本文描述的各种功能和任务。TTS合成系统还可以包括基于一个或多个隐马尔可夫模型的实施方式。具体而言,TTS合成系统可以采用结合了基于HMM的语音合成以及其他可能组件的方法。附加地或可替换地,TTS合成系统还可以包括基于一个或多个人工神经网络(ANN)的实施方式。具体而言,TTS合成系统可以采用结合了基于ANN的语音合成以及其他可能组件的方法。另外,标点模型可以使用结合了基于ANN的语音合成以及其他可能组件的方法来实现。

在示例实施例中,该装置可以是通信设备,诸如智能电话、PDA、平板型设备、膝上型计算机等。在操作中,通信设备可以通过通信网络的方式,诸如电话网络、公共互联网或无线通信网络(例如,蜂窝宽带网络),可通信地连接到远程通信设备。诸如交互式文本/消息程序的流式文本应用程序也可以在通信设备上实现,并且可以是TTS系统的流式文本输入源。

图9是示出根据示例实施例的示例方法900的流程图。在步骤902,TTS系统可以例如从流式文本应用程序接收实时流式文本串。实时流式文本串可以具有起点和终点。起点和终点可以对应于文本串本身以及TTS系统接收整个流式文本串的时间间隔两者。例如,流式文本串的第一字符可以在由起点标记的时间被接收,而最后一个字符和/或“发送”按钮信号可以在由终点标记的时间被接收。

在步骤904,TTS系统可以累积第一子串,该第一子串包括从初始点到第一触发点接收的文本串的第一部分。初始点可以不早于起点且可以在第一触发点之前,并且第一触发点可以不超过终点。

在步骤906,TTS系统可以将TTS系统的标点模型应用于第一子串,以生成预处理的第一子串,该预处理的第一子串包括添加了由标点模型确定的语法标点的第一子串。语法标点的非限制性示例可以包括逗号、句号、问号、感叹号、分号和冒号。

在步骤908,TTS系统可以至少对预处理的第一子串进行TTS合成处理,以生成第一合成语音。

最后,在步骤910,可以产生第一合成语音的音频播放。

根据示例实施例,第一子串可以是:(a)完整接收的文本串,其中初始点是起点,而第一触发点是终点并且标记文本串的结束;(b)少于完整接收的文本串,其中初始点是起点并且第一触发点在终点之前;(c)少于完整接收的文本串,其中初始点在起点之后并且第一触发点是终点;或者(d)少于完整接收的文本串,其中初始点在起点之后并且第一触发点在终点之前。情况(b)对应于在起点开始并且在终点之前结束的第一子串。对于这种情况,随后的子串可以跟随第一子串。情况(c)对应于在起点之后开始并且在终点结束的第一子串。对于这种情况,在先子串可以在第一子串之前。情况(d)对应于在起点之后开始并且在终点之前结束的第一子串。对于这种情况,在先子串可以在第一子串之前,并且后续子串可以在第一子串之后。

根据示例实施例,如上所述,接收实时流式文本串可能需要接收从在通信地连接到远程设备的通信设备上执行的交互式文本应用程序输出的流式文本。对于该示例,第一触发点可以对应于来自交互式文本应用程序的将文本串发送到远程设备的命令。产生第一合成语音的音频播放然后可以通过通信连接将音频播放从通信设备传送到远程设备。

根据示例实施例,当第一触发点在终点之前时,方法900可以进一步包括,在将TTS合成处理应用于预处理的第一子串以生成第一合成语音时,同时累积包括从第一触发点到第二触发点接收的文本串的第二部分的第二子串,其中,第二触发点在第一触发点之后并且不超过终点。示例方法900还可以进一步包括将标点模型应用于第二子串以生成预处理的第二子串。此外,操作还可以包括,在产生第一合成语音的音频播放时,同时将TTS合成处理应用于预处理的第二子串以产生第二合成语音,并且产生第二合成语音的音频播放。

进一步根据示例实施例,第一子串可以是:小于完全接收的文本串,其中初始点是起点;或者小于完全接收的文本串,其中初始点在起点之后。

根据示例实施例,如上所述,接收实时流式文本串可能需要接收从在通信设备上执行的交互式文本应用程序输出的流式文本。在这种情况下,第一触发点和第二触发点可以各自对应于流式文本输出的不同的相应单词的结束。

根据示例实施例,当第一触发点可能在终点之前时,累积第一子串可能需要从所接收的实时流式文本、一次一个连续单词地递增地累积到第一中间子串中,并且在连续单词每次连续累积到第一中间子串中之后,将标点模型应用于第一中间子串以生成预处理的第一中间子串。可以在每个预处理的第一中间子串中搜索由标点模型添加的第一特定标点,该第一特定标点对用于TTS合成处理的第一中间子串进行定界。然后,第一触发点可以被设置为第一特定标点在预处理的第一中间子串中的发生,并且第一子串可以被确定为定界的第一中间子串。采用该布置,将TTS系统的标点模型应用于第一子串以生成预处理的第一子串可能需要生成具有第一特定标点发生的预处理的第一中间子串。特定标点的非限制性示例可以包括逗号、句号、问号、感叹号、分号和冒号。

根据示例实施例,示例方法900还可以包括与将TTS合成处理应用于预处理的第一子串以生成第一合成语音同时执行的操作。这些操作可以包括从第一触发点,从所接收的实时流式文本、一次一个连续单词地递增地累积到第二中间子串中,并且在连续单词每次连续累积到第二中间子串中之后,将标点模型应用于第二中间子串以生成预处理的第二中间子串。然后,设置第二触发点可以被设置为:(i)第二特定标点在预处理的第二中间子串中的发生,其对用于TTS合成处理的第二中间子串进行定界,或者(ii)指示接收的实时流式文本的终点的信号。然后,第二子串可以被设置为从第一触发点到第二触发点的第二中间子串。

进一步根据示例实施例,该示例方法可能需要在产生第一合成语音的音频播放时,同时将TTS合成应用于第二子串以生成第二合成语音。这之后可以产生第二合成语音的音频播放。

根据示例实施例,示例方法900可以进一步需要与产生第一合成语音的音频播放同时执行的操作。这些操作可以包括从第一触发点,从所接收的实时流式文本一次一个连续单词递增地累积到第二中间子串中,并且在连续单词每次连续累积到第二中间子串中之后,将标点模型应用于第二中间子串,以生成预处理的第二中间子串。然后,第二触发点可以被设置为:(i)第二特定标点在预处理的第二中间子串中的发生,该第二特定标点对用于TTS合成处理的第二中间子串进行定界,或者(ii)指示接收的实时流式文本的终点的信号。第二子串可被设置为从第一触发点到第二触发点的第二中间子串,并且TTS合成可以被应用于第二子串以生成第二合成语音。在产生第一合成语音的音频播放之后的操作中,可以产生第二合成语音的音频播放。

根据示例实施例,如上所述,接收实时流式文本串可能需要接收从在通信设备上执行的交互式文本应用程序输出的流式文本。交互式文本应用可以包括被配置用于显示用户输入的文本并且提供文本编辑功能的交互式显示器。采用该布置,第一触发点和第二触发点可以各自对应于流式文本输出的不同的、相应单词的结束。示例方法900可以进一步需要在第一合成语音的音频播放开始时,使得针对与第一子串相对应的任何显示的用户输入文本来禁用文本编辑功能。

根据示例实施例,标点模型可以包括或基于人工神经网络(ANN),其被训练用于向包括多个单词但缺少任何语法标点的输入文本串添加语法标点。添加语法标点然后可以包括预测特定的语法标点记号以及其在输入文本串的单词之前和/或之后的相应位置。

将理解的是,图9所示的步骤旨在说明根据示例实施例的方法。这样,可以改变或修改各种步骤,可以改变某些步骤的顺序,并且可以添加额外的步骤,同时仍然实现整体期望的操作。该方法可以由客户端设备、或者由服务器、或者由客户端设备和服务器的组合来执行。该方法可以由任何合适的计算设备来执行。

结论

本文已经通过示例描述了说明性实施例。然而,本领域技术人员将会理解,在不脱离权利要求所限定的该实施例所针对的元件、产品和方法的真实范围和精神的情况下,可以对该实施例进行改变和修改。

技术分类

06120115938209