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

混合文本到语音

文献发布时间:2024-04-18 19:53:33


混合文本到语音

背景技术

文本到语音(TTS)被用于许多场景,包括现代交通工具和物联网(IoT)设备。TTS应用使用在线TTS系统和离线或本地TTS系统两者,每一个都有优点和缺点。在线TTS系统可能具有更高质量、更易更新,但需要网络连接才能运行。离线TTS系统可以在没有网络连接的情况下运行,但可能具有相对较低的质量并且更难更新。混合TTS系统使用在线TTS系统和离线TTS系统两者,其中在线TTS在可用时被使用而离线TTS系统被用作次要选项。然而,这些混合系统在提供无缝、一致的用户体验、高效的计算资源管理以及设计和实现鲁棒的混合在线-离线系统的用户开发努力方面面临挑战。例如,在线和离线TTS系统之间的转换通常会分散注意力、容易延迟、并且具有不一致的质量。

发明内容

提供本发明内容以便以简化的形式介绍以下在具体实施方式中还描述的概念的选集。本发明内容并不旨在标识所要求保护的主题的关键特征或必要特征,亦非旨在用于帮助确定所要求保护的主题的范围。

描述了一种用于混合文本到语音软件开发工具包的方法。该方法包括:从用户应用接收文本数据;确定所接收的文本数据未被存储在高速缓存中;向远程文本到语音(TTS)引擎和设备中的TTS引擎发送所接收的文本数据;从该远程TTS引擎和该设备中的该TTS引擎两者接收语音数据;基于选择策略来选择来自该远程TTS引擎、该设备中的该TTS引擎或两者的语音数据;以及将所选择的语音数据传送到用户应用。

附图说明

根据附图阅读以下详细描述将更好地理解本说明书,在附图中:

图1是例示根据一实施例的用于混合文本到语音(TTS)架构的系统的框图;

图2是例示根据一实施例的用于混合TTS系统的系统的框图;

图3A和3B是例示根据一实施例的用于混合TTS系统的计算机化方法的序列图;

图4是例示根据一实施例的用于从远程TTS或本地TTS中的一者或多者选择语音数据的计算机化方法的流程图;

图5是例示根据一实施例的用于操作高速缓存的计算机化方法的流程图;

图6是例示根据一实施例的用于混合TTS系统的计算机化方法的流程图;以及

图7将根据一实施例的计算装置例示为功能框图。

在整个附图中相应的附图标记指示相应的部件。在图1至图7中,系统被例示为示意图。附图可能没有按比例绘制。

具体实施方式

本公开的各方面提供了一种用于混合文本到语音(TTS)架构的计算机化方法和系统,其并行地利用在线TTS和本地设备TTS来提供无缝的用户体验。在线(例如,云、基于云、远程或设备外)TTS系统可以提供比离线(例如,设备、基于设备、设备上或本地)TTS系统更高的分辨率和质量,但由于网络连接要求,在线TTS系统并不总是可用的。由于包括不稳定的网络连接、缺乏网络连接等的各种原因,通常提供应用来管理远程TTS和本地TTS系统之间的切换。传统应用包括用于与远程TTS应用编程接口(API)交互的远程TTS处理和用于与本地设备TTS交互的本地设备TTT处理的单独机制。在这些平台中,由于对应用本身执行的大量处理,应用承受了巨大的压力。此外,为远程TTS和本地TTS管理单独的TTS系统导致低效,这是由于当应用由于网络连接断开而被迫从执行远程TTS系统切换到执行本地TTS时引入的等待时间。

因此,本公开中提供的系统通过提供与远程TTS系统和本地TTS系统通信的统一TTS接口(其被暴露给用户应用)以非常规方式操作。使用TTS接口降低了计算资源的复杂性,诸如网络状态如何管理、设备状态如何管理、编码和开发工作如何降低复杂性等,以提高系统的鲁棒性。对网络和复杂逻辑的鲁棒处理需要大量的费力的事来产生高质量的设计、编码和测试。本文提供的TTS接口使得用户能够避免这种费力的事,同时保持系统的鲁棒性。本公开中提供的统一TTS接口与一个或多个用户应用通信,一个或多个用户应用与远程TTS系统和本地TTS系统中的每一者分离,这减少了对面向用户的用户应用的处理要求。提供了策略控制器,该策略控制器与统一TTS接口通信,并且并行地向远程TTS系统和本地TTS系统中的每一者传送请求,其中包括用于语音生成的文本数据。在一些示例中,统一TTS接口对来自远程TTS系统的结果进行优先级排序,并在远程TTS系统超时、不稳定或不提供可接受的语音生成时使用来自本地TTS系统的结果。处理要求因此被减少,同时提供了无缝的用户体验,该体验可以更快地返回比当前解决方案更准确的TTS结果。

此外,由于基于设备的TTS服务和远程或基于网络的TTS服务之间的切换,一些传统解决方案提供了负面的用户体验。当前的解决方案通常在网络运行良好且可用时调用基于远程的TTS,而在网络运行不正常时调用基于设备的TTS服务。由于来自基于远程的TTS服务和基于设备的TTS服务的输出听起来完全不同,用户有时会听到似乎两种不同的声音。这会导致负面的端到端用户体验。因此,由于基于设备的TTS服务和基于远程的TTS服务之间共享语音人才数据和类似的模型结构,本公开的各种实现提供了基于设备的TTS服务和基于远程的TTS服务之间经改进的切换,这基本上消除了基于设备的TTS服务和基于远程的TTS服务之间在前景、时间和保真度方面的差异。

本公开的各方面描述了与基于本地设备的TTS系统相反的基于远程的TTS系统。在一些示例中,术语“远程”和“本地”用于区分两个TTS系统执行操作的位置,并且这包括各种配置。例如,“远程”意味着可经由网络访问而“本地”意味着无需网络即可访问。在其他示例中,“远程”意味着离开设备而“本地”意味着在设备上。在其他示例中,“远程”意味着不在现场而“本地”意味着在现场。术语“远程”和“本地”也可以通过连接速度来区分。例如,远程TTS系统的访问时间比本地TTS系统长。

本公开的各方面还可与第一TTS系统和第二TTS系统一起操作,其中第二TTT系统比第一TTS更复杂,并且处理TTS数据需要更长的时间。例如,第二TTS系统使用机器学习,而第一TTS系统仅存储缓存的查找表。在另一示例中,第二TTS系统是动态的(例如,接收定期或频繁更新),而第一TTS系统则是静态的(例如,不定期或不频繁更新)。本文描述的第一和第二TTS系统可以是用于将文本数据转换成音频数据的任何架构的一部分。

本公开的各方面还可用于经常遇到不稳定网络连接或缺乏网络连接的非平稳平台(诸如交通工具)。与远程系统和本地系统中的每一个进行通信的统一TTS接口减少对面向用户的用户应用的处理要求并减少计算资源复杂性,从而在保持系统的鲁棒性的同时增加系统的鲁棒性,如本文所描述的。

图1是例示根据一实施例的用于混合TTS系统的架构的框图。图1中所示的系统100仅用于说明。在不脱离本公开的范围的情况下,可以使用系统100的其他示例。

系统100包括面向用户的用户应用110。用户应用110从用户接收输入,与混合TTS120系统交互,并在执行混合TTS 120系统之后向用户传送输出。例如,用户应用110以文本格式、姿势格式、音频格式或文本和音频格式的组合从用户接收输入。在用户应用110接收音频格式的输入的实施例中,用户应用110对输入执行语音识别以将输入转换为文本格式。现为文本格式的输入然后由混合TTS 120系统来处理。在用户应用110接收文本格式的输入的实施例中,在由混合TTS 120系统处理之前可能不需要附加的分析。在一些实施例中,用户应用110被提供在计算设备上,诸如下面更详细描述的计算装置718,其还存储系统100的附加硬件和软件元件。在一些实施例中,用户应用110被提供在计算装置718的外部,并且数据被从计算装置718传送到用户应用110并且从用户应用110传送到计算装置718。

在一些实施例中,用户应用110响应于所接收的输入来执行动作。所接收的输入是来自用户的命令,并且响应于该命令执行动作。例如,当系统100在汽车或其他交通工具中实现时,所接收的输入是来自用户的“调高音量”的音频命令。用户应用110接收“调高音量”的输入,执行初始语音识别以将音频命令转换为文本,识别文本,并通过增加交通工具立体声输出的音量来执行“调高音量”命令。在各种实施例中,在将输入传送到混合TTS 120系统之前、期间或之后执行动作。例如(a)在向混合TTS 120系统传送文本形式的“调高音量”的输入之前。(b)在向混合TTS 120系统传送文本形式的“调高音量”的输入之时,或(c)在向混合TTS 120系统传送文本形式的“调高音量”的输入之后,用户应用110执行增加音量输出的动作。

混合TTS 120系统被配置成将从用户应用110接收的文本转换为语音,该语音然后被返回给用户。在上述示例中,混合TTS 120系统将响应于由用户发送的命令的文本转换为语音供用户使用。例如,混合TTS 120系统执行文本到语音操作,该操作以响应于所接收的输入传输指示“音量已调高”的声波(即语音)为结束。在图1的示例中,混合TTS 120系统包括统一TTS接口121、高速缓存123、策略控制器125、设备TTS 127和设备模型管理器129。混合TTS120系统与远程TTS 130进行通信,该远程TTS 130在物理上位于执行统一TTS接口121、高速缓存123、策略控制器125、设备TTS 127和设备模型管理器129的组件外部。

在一些示例中,设备TTS 127是在电子设备上本地执行的TTS程序。例如,在系统100在汽车中实现的实施例中,设备TTS 127是在汽车的存储器中存储和执行的TTS程序。设备TTS 127接收文本输入,处理从文本到语音的输入,并以声波的形式返回要传送给用户的语音输出。

在一些示例中,远程TTS 130是远离设备(诸如在云中)执行的TTS程序。例如,远程TTS 130是接收文本输入处理从文本到语音的输入并以声波的形式返回要向用户传送的语音输出的TTS程序,但是该TTS程序是远程地存储和执行的,而不是在电子设备上本地执行的。在一些示例中,远程TTS 130提供比设备TTS 127更高质量的文本到语音处理以返回更准确的结果,但通常需要访问网络连接。相反,设备TTS 127通常不需要访问网络连接,因此通常比远程TTS 130更快且更容易获得。

统一TTS接口121是混合TTS 120系统中的统一混合TTS API、软件开发工具包(SDK)或其他例程。统一TTS接口121操作以隐藏与设备TTS 127和远程TTS 130通信所涉及的细节和差异。统一TTS接口121从用户应用110接收文本。在一些实施例中,所接收的文本是指已经或将要执行的动作。在上面的示例中,接收到的文本是“音量已调高”。在其他实施例中,接收到的文本是来自用户的文本形式的输入,并且混合TTS 120系统执行查找或其他转换以标识对来自用户的输入的响应。例如,接收到的文本是用户输入的“调高音量”。在这些实施例中,统一TTS接口121基于所执行的动作(诸如“音量已调高”)将所接收的输入转换为要输出的响应。

高速缓存123存储文本和相应声波之间的映射。例如,高速缓存123存储响应于接收到的文本输入而作为声波输出给用户的单词、短语和句子中的一者或多者。示例高速缓存123是软件组件(诸如远程存储(例如在云中)的数据库),或者是硬件组件(诸如存储在存储器722中并在图7的描述中进一步描述的数据库)。高速缓存123被配置成基于新近程度或频率来存储各种映射的输入和对应输出。输入对应于由统一TTS接口121接收的文本数据,而对应输出对应于提供对文本数据的响应的语音数据。例如,包含文本数据“Hi car,please open the sunroof(嗨车,请打开天窗)”的输入具有语音数据“The sunroof isnow open(天窗现已打开)”和/或“The sunroof cannot be opened(天窗无法打开)”的相应输出。作为另一示例,包含文本数据“Hi car,play some music please(嗨车,请播放一些音乐)”的输入具有语音数据“playing music for you now(现在为您播放音乐)”和/或“music is unavailable right now(音乐现在不可用)”的相应输出。

在一些实施例中,高速缓存123将一个或多个标记存储在对应于语音数据的接收文本数据中。标记可以是任何标记(诸如映射、键、索引等)以标识特定文本数据及其对应的语音数据。一个或多个标记可被嵌入输入文本中,然后被关联或附加到包含相应语音数据的每个音频文件。如下面更详细描述的,当从设备TTS 127和远程TTS 130中的一者或多者选择接收的语音数据时,策略控制器125利用一个或更多个标记来组合特定句子。

在一些实施例中,高速缓存123存储最近的输入和相应的输出。在一些实施例中,高速缓存123存储特定数量的最近输入和相应输出,诸如三个最近输入和对应输出、五个最近输入和对应输出、或者任何其他适当数量的最近输入和对应输出。在一些实施例中,高速缓存123存储特定时间量的最近输入和对应输出。例如,高速缓存123存储来自前一分钟、前五分钟、前一小时等的输入和对应输出。一旦统一TTS接口121从用户应用110接收到输入,统一TTS接口121搜索高速缓存123以标识所接收的输入是否被存储在高速缓存123中。在所接收的输入被存储在高速缓存123中的情况下,由于最近已经执行了由远程TTS 130和设备TTS 127执行的文本到语音功能,因此通过绕过远程TTS 120和设备TTS 127直接且快速地将相应的输出返回(例如,输出给用户)。直接且快速地返回相应的输出提供了减少系统100的等待时间并增强本公开所提供的无缝用户体验的机制。在所接收的输入未被存储在高速缓存123中的情形中,所接收的输入前进到策略控制器125。

策略控制器125控制如何在系统100内使用设备TTS 127和远程TTS 130。在一些实施例中,策略控制器125基于预设规则和/或定制规则或用户输入的策略来操作。例如,策略控制器125基于包括认知驱动策略、性能驱动策略和质量驱动策略中的一者或多者的选择策略来操作。一个或多个策略由用户设置、由系统100(例如,由TTS系统的系统管理员或制造商或提供商)默认设置、由其他用户(例如,众包)设置等等。示例认知驱动策略包括迫使系统100在远程TTS 130上利用设备TTS 127,迫使系统100以一定百分比利用远程TTS120,等等。示例性能驱动策略包括使用将提供更快结果的设备TTS 127和远程TTS 130中的任何一个,使用将提供更准确结果的设备TT 127和远程TT 130中的任何一个等等。这可能基于历史性能数据。示例质量驱动策略包括迫使系统100在设备TTS 127上利用远程TTS 130(假设远程TTS 120提供更高质量的输出)、仅响应于远程TTS 130超时而利用设备TTS 127等等。

在一些实施例中,选择策略在各用户之间变化,并且系统100允许不同的用户设置不同的规则或策略。例如,在系统100在汽车中实现的情况下,汽车在不同用户(诸如家庭成员)之间共享。在此示例中,一个家庭成员更偏好一套规则(诸如性能驱动),而另一家庭成员更偏好另一套规则(诸如质量驱动)。系统100的每个用户的偏好被保存和存储在例如存储器722中,并且在每次使用系统100之前被选择。在一些实施例中,选择策略在系统100的使用期间改变或更新。例如,用户更新由系统使用的选择策略或选择恢复到预设规则。

策略控制器125根据本文描述的选择策略调用设备TTS 127和远程TTS130。换句话说,策略控制器125根据选择策略向设备TTS 128和远程TTS 130中的一者或两者发送文本数据。在一些实施例中,策略控制器125仅调用设备TTS 127。例如,基于迫使系统100使用设备TTS 127的选择策略,或者基于由于不良或不可用的网络连接导致远程TTS 130不可用,系统100将仅调用设备TTS 126,而不调用远程TTS 120。在一些实施例中,策略控制器125仅调用远程TTS 130。例如,基于迫使系统100使用远程TTS 130的选择策略,系统100仅调用远程TTS 120,而不调用设备TTS 127。在一些实施例中,策略控制器125调用设备TTS 127和远程TTS 130两者。在设备TTS 127和远程TTS130两者的实施例中,策略控制器125基于选择策略选择来自设备TTS 127和远程TTS 130的返回结果,或者组合来自设备TT S127和远程TTS130的输出的一些方面。

在从设备TTS 127和远程TTS 130两者返回语音数据的一些实施例中,策略控制器125从设备TTS 127和远程TTS 130中的一者选择语音数据并丢弃来自未选择的TTS的语音数据。换言之,从设备TTS 127接收的语音数据被选择而从远程TTS 130接收的语音数据被丢弃,或者从远程TTS 130接收的语音数据被选择而从设备TTS 127接收的语音数据被丢弃。在一些实施例中,可以基于本文描述的选择策略来执行对从设备TTS 127和远程TTS130接收的语音数据的选择。例如,在质量驱动的选择策略被实现的情况下,策略控制器125选择被标识为具有较高质量的语音数据。可以基于比较从设备TTS 127和远程TTS 130接收的语音数据的分析或者基于默认质量假设来标识质量。例如,默认质量假设假设从远程TTS130接收到的语音数据的质量超过从设备TTS 127接收到的语音数据的质量。在另一示例中,在实现认知驱动的选择策略并且策略控制器125利用从设备TTS 127和远程TTS 130中的每一者以特定百分比接收的语音数据的情况下,策略控制器125根据保持指定百分比来选择所接收的语音数据。

如本文所描述的,在一些实施例中,未选择的语音数据被丢弃。换句话说,未选择的语音数据不存储在高速缓存123或其他存储器中。如本文的各个实施例中所描述的,只有所选择的语音数据被存储在高速缓存123中。

在一些实施例中,策略控制器125接收从设备TTS 127和远程TTS 130中的一者或两者生成的语音数据。在接收到语音数据后,策略控制器125将语音数据发送到用户应用110,用户应用110又将语音数据传送到输出组件140以输出语音数据。

设备模型管理器129提供系统100的更新和下载。在一些示例中,系统100的更新和下载由设备模型管理器129自动执行。换言之,设备模型管理器129操作以更新系统100并下载系统100的新版本而不需要用户进行任何附加动作。设备模型管理器129以定期间隔(诸如每天、每周等)检查模型托管服务器。如果设备模型管理器129发现存在系统100的新版本,则设备模型管理器129将根据用户设置开始下载和升级,诸如在升级或直接升级之前通知用户。如此,设备模型管理器129使用户能够通过自动更新和下载来避免处理系统中的下载、存储和升级。例如,设备模型管理器129使用配置代码执行下载、存储和升级,诸如将系统100放置在何处、模型托管服务器位于何处以及系统100将如何升级。

图2是例示根据一实施例的用于混合TTS系统的系统的框图。图2中所示的系统200仅用于说明。在不脱离本公开的范围的情况下,可以使用系统200的其他示例。

系统200包括输入检测设备205、语音识别模块207、会话系统模块209、TTS组件215和输出设备217。输入检测设备205从用户201接收输入203。在一些实施例中,输入检测设备205是接收音频输入203的设备,诸如话筒。在一些实施例中,输入检测设备205是接收文本输入203的设备,诸如键盘、触摸显示器、触摸板等。在一些实施例中,输入检测设备205是具有集成的音频和文本输入接收器的设备,诸如通过集成的话筒接收文本输入的显示器。例如,在系统200在汽车中实现的实施例中,输入检测设备205在显示在汽车内部的配置成接收文本输入203的用户接口中实现,其进一步包括配置成接收音频输入203的话筒并集成到用户接口中,或在外部提供但通信地耦合到用户接口。

在其他示例中,输入检测设备205是姿势识别设备(例如,相机加识别引擎),其检测由用户做出的姿势并将这些姿势转换为动作。

语音识别模块207识别并标识由输入检测设备205接收的输入中的语音。语音识别模块207解释由输入检测设备205接收的声波,识别声波中的模式,并将模式转换为对话的开始。例如,语音识别模块207将输入检测设备205接收的输入中的语音识别并标识为诸如“Hi car,play some music please(嗨车,请播放一些音乐)”之类的命令。经标识的语音被输出到对话系统模块209。

会话系统模块209从语音识别模块207接收经标识的语音,标识与经标识的语音相关联的动作,并标识对经标识的语音的响应。例如,会话系统模块209的动作标识模块211标识针对经标识的语音的动作,并且会话系统模块208的响应标识模块213标识对经标识的语音的响应。例如,在经标识的语音是“Hi car,play some music please(嗨车,请播放一些音乐)”,则经标识的动作是播放音乐,而经标识的响应是“playing music for you now(现在为您播放音乐)”。在一些实施例中,响应标识模块213至少部分地基于动作标识模块211的结果来标识响应。例如,响应标识模块213在标识确认响应之前确定经标识的动作是可能的。在对话系统模块209将动作标识为播放音乐,但音乐不可播放的情况下,响应标识模块213不将“playing music for you now(现在为您播放音乐)”标识为响应,而是标识指示音乐不可用的响应,诸如“music is unavailable right now(音乐现在不可用)”。在另一示例中,动作标识模块211需要附加信息来执行动作,并且基于此,响应标识模块213标识请求附加信息的响应,诸如“please select a song(请选择歌曲)”、“please select anartist(请选择艺术家)”、“please select a genre(请求选择流派)”等。

TTS组件215将来自响应标识模块213的经标识的响应转换为使用输出设备返回给用户201的输出。在上面的示例中,响应标识模块213将响应识别为“playing music foryou(为您播放音乐)”,TTS组件215基于输出设备217的格式将“playing music for you(为您播放音乐)”转换为适当的格式,例如视觉文本或声波。在输出设备217是立体声、扬声器或输出声波的任何其他设备的实施例中,TTS组件215将“playing music for you(为您播放音乐)”转换为要输出给用户201的相应声波。在输出设备217是显示器、用户接口或可视地显示输出的任何其他设备的实施例中,TTS组件215将“playing music for you(为您播放音乐)”转换为被输出给用户201阅读的文本格式。在一些实施例中,输出设备217是具有用于音频和文本的集成输出的设备,诸如具有集成扬声器的显示文本输出的显示器。例如,在系统200在汽车中实现的实施例中,输出设备217在汽车内部显示的配置成显示文本输出219的用户接口中实现,其进一步包括被配置成输出音频输出219的扬声器,其被集成到用户接口中或在外部提供但与用户接口通信地耦合。

在一些实施例中,TTS组件215包括图1所示的设备TTS 127和远程TTS130两者。特别是在系统200在汽车中实现的实施例中,TTS组件215通过包括设备TTS 127和远程TTS130两者提供了几个优点。设备TTS 127和远程TTS130包括相同的语音人才数据和相似的模型结构,这使得前景、时间和保真度在来自设备TTS 127和远程TTS 130的输出之间是相似的,如果不是基本相同的话。换言之,用于输出从设备TTS 127和远程TTS 130生成的语音数据的声音对用户来说是相同或几乎相同的,这有助于无缝的用户体验。无缝用户体验改进了当前的解决方案,这些解决方案无法在本地TTS服务和远程TTS服务中提供的声音人才之间无缝切换,特别是在来自本地TTS和服务远程TTS服务的语音数据被组合成综合语音数据的情况下。相反,本应用提供了无缝用户体验,其中用户可能无法区分由设备TTS 127和远程TTS 130生成的语音数据。此外,如上文描述的,试图利用本地TTS服务和远程TTS服务两者的传统解决方案在网络工作良好且可用时调用远程TTS,而在网络工作不好时调用本地TTS,这因所生成的语音数据的差异而导致负面的端到端用户体验。

尽管在此描述为各种组件,但在不脱离本公开的范围的情况下,可以组合、添加或省略一些组件。例如,输入检测设备205和输出设备217被集成到单个设备中,诸如用户接口,其被配置成执行系统200的输入和输出功能两者。TTS组件215包括图1所示的设备TTS127和远程TTS 130中的一者或两者。因此,由于设备TTS 127和远程TTS 130之间共享的语音人才数据和相似的模型结构,TTS组件215提供了设备TTS 127和远程TTS 130之间的改进的切换,这基本上消除了设备TTS 127和远程TTS 130之间在前景、时间和保真度方面的差异。

图3A和3B是例示根据一实施例的用于混合TTS系统的计算机化方法的序列图。图3A和3B中所示的方法300仅用于说明。图3B延伸了图3A,并且是从图3A开始的方法300的延续。在不脱离本公开的范围的情况下,可以使用方法300的其他示例。方法300可以由图1中所示的系统100的一个或多个组件来实现,诸如下面在图7的描述中更详细地描述的计算装置718的组件。例如,图3A和3B例示了由系统100的用户应用110、统一TTS接口121和策略控制器125执行的方法300,但是可以构想各种实施例。

方法300开始于用户应用110在操作301向统一TTS接口121发送输入。输入包括文本数据。例如,文本数据是由会话系统模块209的响应标识模块213标识的响应。文本数据包括单词、短语、句子等。文本数据被组织为对命令的响应的文本版本,该命令包括“Hi car,play some music please(嗨车,请播放一些音乐)”或“Hi car,will you please playsome music?(嗨车,你愿意播放一些音乐吗?)”作为由用户输入的示例。在这些实施例中,如果命令或问题被完成,则文本数据包括肯定响应,诸如“playing music now(现在播放音乐)”,或者如果命令或问题不能被肯定回答,则文本数据包括否定响应,诸如“music isunavailable(音乐不可用)”。

在操作303中,统一TTS接口121搜索高速缓存寻找从用户应用110接收到的文本数据以标识所接收的文本数据是否被存储在高速缓存123中。在一些实施例中,统一TTS接口121从高速缓存123中的文本数据中搜索特定关键字。例如,当文本数据背诵“playingmusic now(现在播放音乐)”时,统一TTS接口121在高速缓存123中搜索关键字“music(音乐)”。如果关键字“music(音乐)”与存储在高速缓存123中的条目相匹配,则统一TTS接口121执行附加分析以确认整个文本数据与存储在高速缓存123中条目相匹配。例如,存储在高速缓存123中的“music is unavailable(音乐不可用)”的条目返回基于关键字“music(音乐)”的结果,但是“playing music now(现在播放音乐)”的整个文本数据与存储在高速缓存123中的整个条目不匹配。因此,存储在高速缓存123中的“music is unavailable(音乐不可用)”的条目与“playing music now(现在播放音乐)”的文本数据不匹配。如果统一TTS接口121确认文本数据与存储在高速缓存123中的条目之间的匹配,则方法300前进到操作305。如果统一TTS接口121不能确认文本数据与存储在高速缓存123中的条目之间的匹配,则方法300前进到操作309。

在操作305中,统一TTS接口121确认文本数据和存储在高速缓存123中的条目之间的匹配,并将与存储在高速缓存123中的条目相对应的语音数据发送到用户应用110以供输出。换句话说,语音数据被直接传送到用户应用110而设备TTS 127和远程TTS 130两者都被绕过。在一些实施例中,语音数据包括用于对应于存储在高速缓存123中的条目的文本的声波的指令。例如,在文本数据是“playing music now(现在播放音乐)”并且“playing musicnow(现在播放音乐)”的匹配条目被存储在高速缓存123中的情况下,传送到用户应用110的语音数据是与“playing music now(现在播放音乐)”的文本相对应的声波。在操作307中,响应于接收到语音数据,用户应用110例如使用输出设备217输出与文本数据相对应的声波。在其他实施例中,在操作305中由统一TTS接口121发送的语音数据是存储在高速缓存123中的条目的文本输出,并且在操作307中用户应用110经由输出设备217输出文本输出。在操作309中,基于统一TTS接口121没有确认文本数据与存储在高速缓存123中的条目之间的匹配,统一TTS接口121将文本数据发送到策略控制器125。

在操作311中,策略控制器125向设备TTS 127或远程TTS 130中的至少一者发送文本数据。换言之,策略控制器125将文本数据仅发送到设备TTS 127、仅发送到远程TTS 130、或发送到设备TTS 127和远程TTS 130两者。在一些实施例中,策略控制器125基于诸如传输策略之类的策略来确定是否向设备TTS 127或远程TTS 130中的一者或两者发送文本数据。在一些示例中,传输策略至少部分地基于选择策略,该选择策略用于确定来自设备TTS 127或远程TTS 130或两者的组合的语音数据是否被选择用于用户应用110的输出。下面将更详细地描述选择策略。如果选择策略指示仅选择来自设备TTS 127的语音数据,则传输策略指示仅应将文本数据发送到设备TTS 126。类似地,如果选择策略指示仅选择来自远程TTS130的语音数据,则传输策略指示仅应将文本数据发送到远程TTS 130。如果选择策略指示可以使用来自设备TTS 127和远程TTS 130中的一者或两者的语音数据,则传输策略指示文本数据将被并行地发送到设备TTS 126和远程TTS 130两者以供分析。基于接收到文本数据,TTS系统执行文本数据的文本到语音分析,并生成与文本数据相对应的语音数据。

在一个实施例中,策略控制器125将文本数据发送到设备TTS 127和远程TTS 130两者。换言之,策略控制器125将文本数据发送到设备TTS 127以供分析,并经由网络连接将该文本数据发送给远程TTS 130以供分析。在此实施例中,设备TTS 127和远程TTS 130中的每一者从策略控制器125接收文本数据,并对文本数据执行文本到语音分析以生成相应的语音数据。例如,设备TTS127和远程TTS 130中的每一者生成对应于所接收的文本数据的声波数据或用于输出声波数据的指令。设备TTS 127和远程TTS 130独立地生成声波数据。例如,用于操作设备TTS 127以生成对应于文本数据的声波的程序代码是独立于用于操作远程TTS 130的程序代码来执行的。换言之,设备TTS 127和远程TTS 130两者都独立地起作用以生成与文本数据相对应的声波。在上面的示例中,当文本数据是文本“playing musicnow(现在播放音乐)”时,设备TTS 127和远程TTS 130都生成与短语“playing music now(现在播放音乐)”相对应的声波。在生成语音数据(例如,对应于文本数据的声波)之后,设备TTS 127和远程TTS 130各自将语音数据发送到策略控制器125。

在操作313中,策略控制器125从TTS系统(例如,设备TTS 127和远程TTS 130)接收语音数据。在文本数据仅被发送到一个TTS系统(诸如仅发送到设备TTS 127或仅发送到远程TTS 130)的实施例中,策略控制器125仅从向其发送文本数据的TTS系统接收语音数据。在文本数据被发送到设备TTS127和远程TTS 130两者的实施例中,策略控制器125预期从设备TTS 127和远程TTS 130两者接收相应的语音数据。然而,本公开的实施例认识到并考虑到,语音数据可能并不总是在预期时从设备TTS 127和远程TTS 130中的每一者收到。例如,尽管策略控制器125预期从远程TTS 130接收语音数据,但是断开的网络连接导致无法接收语音数据的接收,或者导致语音数据的传输被延迟或花费比预期更长的时间。

在操作315中,策略控制器125基于选择策略选择从设备TTS 127或远程TTS 130中的至少一者生成的语音数据。换言之,策略控制器125仅从设备TTS127、仅从远程TTS 130、或从设备TTS 127和远程TTS 130两者中选择语音数据。如本文所描述的,策略控制器125基于选择策略来选择语音数据。选择策略包括,例如,以下一者或多者:一个或多个认知驱动策略、一个或多个性能驱动策略和一个或多个质量驱动策略。认知驱动策略包括迫使系统100相较于远程TTS 130优先利用设备TTS 127,迫使系统100不利用远程TTS 130,迫使系统100以一定百分比利用远程TTS 130等等。例如,性能驱动策略包括使用提供更快结果的设备TTS 127和远程TTS 130中的任何一个,使用提供更准确结果的设备TT 127和远程TT 130中的任何一个等等。性能驱动策略包括,例如,迫使系统100相较于TTS 127优先利用远程设备TTS 130,迫使系统100不利用设备TTS 127、利用设备TTS 127以响应远程TTS 130超时等等。

在各种示例中,策略控制器125基于反应式选择策略或主动式选择策略从设备TTS127和/或远程TTS 130中的一者选择语音数据。例如,响应于网络连接超时和远程TTS 130因此不可用,策略控制器125反应性地从设备TTS 127选择语音数据。在此示例中,策略控制器125已反应地选择设备TTS 127作为提供TTS的引擎。作为另一示例,如果策略控制器125知道包括设备TTS 127的设备的一个或多个计算资源(例如,带宽、处理负载、存储器等)高于阈值或以其他方式充满或达到容量,则策略控制器125主动决定从远程TTS 130选择语音数据。在此类示例中,一旦策略控制器125注意到设备TTS 127的计算资源级别(例如,策略控制器125可以向设备TTS 127发送信号以停止处理文本数据),设备TTS 127就可以停止处理该文本数据以保留剩余的计算资源。

传输策略至少部分地基于选择策略,并且还可以反应地或主动地实现。例如,策略控制器125考虑设备TTS 127和/或包括设备TTS 127的设备的计算和处理状态(例如,负载或级别),诸如等待时间、带宽和处理负载,并主动决定将文本数据发送到设备TTS 127或远程TTS 130或两者。作为示例,如果包括设备TTS 127的设备的处理负载高于阈值,则策略控制器125仅向远程TTS130发送文本数据(例如,以保留包括设备TTS 127的设备上的剩余计算资源可用)。在此示例中,策略控制器125已主动地选择远程TTS 130作为提供TTS的引擎。

在另一示例中,在选择策略是迫使系统100仅利用设备TTS 127的认知驱动策略的实施例中,传输策略仅驱动策略控制器125将文本数据传送到设备TTS 127,因为来自远程TTS 130的语音数据将由于此特定选择策略而不被使用。在又一示例中,在选择策略是迫使系统100仅利用远程TTS 130的质量驱动策略的实施例中,传输策略仅驱动策略控制器125将文本数据传送到远程TTS 130,因为来自设备TTS 127的语音数据将由于此特定选择策略而不被使用。在另一示例中,在选择策略指定一个TTS系统优于另一个TTS系统或指定一个特定TTS系统被利用的百分比的实施例中,传输策略驱动策略控制器125将文本数据传送给设备TTS 127和远程TTS 130。

在一些实施例中,从设备TTS 127和远程TTS 130选择语音数据包括组合来自设备TTS 127的一些语音数据和来自远程TTS 130的一些语音数据。例如,性能驱动策略驱动系统100以提供可能的最快语音数据结果。当策略控制器125正在从远程TTS 130接收与“music playing now(现在播放音乐)”相对应的语音数据时,网络连接被断开并且仅语音数据的一部分(诸如“music playing(播放音乐)”)被接收。在性能驱动策略下,策略控制器125能够利用从远程TTS130接收的“music playing(播放音乐)”并使用从设备TTS 127接收的语音数据补充短语的其余部分,诸如“now(现在)”。因此,从远程TTS 130接收的“musicplaying(播放音乐)”和从设备TTS 127接收的“now(现在)”的组合提供了“music playingnow(现在播放音乐)”的综合组合语音数据并且与性能驱动策略一致。如此,策略控制器125将所选择的语音数据组合成综合语音数据,该综合语音数据包括从远程TTS 130生成的语音数据的至少一部分和从设备TTS 127生成的语音数据的至少一部分。

在一些实施例中,从设备TTS 127和远程TTS 130生成的语音数据的选择和组合是在每个句子级别上执行的。例如,文本数据可以包括多个句子,诸如“Music playingnow.Please select an artist.(现在播放音乐。请选择艺术家)。”策略控制器125可以选择从一个TTS系统(诸如远程TTS 130)接收的语音数据“Music playing now(现在播放音乐)”,以及从另一TTS系统(诸如设备TTS127)接收的语音数据“Please select an artist(请选择艺术家)”。策略控制器将从远程TTS 130接收的“Music playing now(现在播放音乐)”和从设备TTS 127接收的“Please select an artist(请选择艺术家)”组合起来,以产生“Music playing now.Please select an artist.(现在播放音乐。请选择艺术家)。”的完整语音数据。例如,可以实现不同句子的组合,其中从远程TTS 130接收到“Musicplaying now(现在播放音乐)”,但是在策略控制器125从远程TTS 130接收到与“Pleaseselect an artist(请选择艺术家)”相对应的语音数据之前,策略控制器125和远程TTS130之间的网络被断开。在一些实施例中,策略控制器125基于存储在高速缓存123中并在上面更详细描述的一个或多个标记来组合语句。例如,策略控制器125标识嵌入在接收到的“Music playing now(现在播放音乐)”的文本数据中的第一标记和嵌入在接收到的“Please select an artist(请选择艺术家)”的文本数据中的第二标记。策略控制器125标识嵌入在接收到的语音数据中的相应标记,将语音数据与适当的文本数据联系起来,以正确的顺序组合正确的句子。

在其他实施例中,策略控制器125不组合从远程TTS 130和设备TTS 127接收的语音数据,而是输出错误消息。例如,输出140是向用户通知网络断开状态的错误消息。示例错误消息可以是指示“Network disconnected,please try again(网络断开,请重试”)的语音数据。在一些实施例中,错误消息存储在高速缓存123中,供策略控制器125检索。在一些实施例中,错误消息被进一步固定在高速缓存123中以防止从高速缓存123删除。

在一些实施例中,策略控制器125利用从设备TTS 127或远程TTS 130接收的整个语音数据。例如,在如上示例中所描述的文本数据描述“music playing now(现在播放音乐)”的情况下,如果从一个TTS系统接收的语音数据不完整,例如,从远程TTS 130接收到的语音数据仅包括“music playing(播放音乐)”,则策略控制器125仅选择从设备TTS 127接收到的被标识为完整的语音数据。然后丢弃从远程TTS 130接收的仅包括“music playing(播放音乐)”的不完整的语音数据。

在操作317中,策略控制器125将语音数据发送到统一TTS接口121以便存储在高速缓存123中。如本文所描述的,高速缓存123存储最近的输入和相应的输出。例如,高速缓存123存储特定数量的最近输入和对应输出,或者存储特定时间段的最近输入与对应输出。在高速缓存123存储特定数量的最近输入和相应输出的实施例中,语音数据作为最近输入和对应输出被存储在高速缓存中。在高速缓存123存储特定时间段的最近输入和相应输出的实施例中,特定时间段的语音数据被存储在高速缓存123中。

在操作319中,策略控制器125向用户应用110发送语音数据。在操作321中,用户应用110控制向用户输出语音数据。例如,如图2所描述的,输出设备217将语音数据作为输出219输出给用户201。任选地,在操作318中,统一TTS接口121向用户应用110发送语音数据,而不是策略控制器125向用户应用110发送语音数据。

在操作323中,系统100被更新。例如,如上文描述的,设备模型管理器129更新并下载系统100。在一些实施例中,设备模型管理器129自动地更新系统100,而用户不需要额外的动作。

图4是例示根据一实施例的用于从远程TTS或本地TTS中的一者或多者选择语音数据的计算机化方法的流程图。图4中所示的方法400仅用于说明。在不脱离本公开的范围的情况下,可以使用方法400的其他示例。方法400可以由图1中所示的系统100的一个或多个组件来实现,诸如下面在图7的描述中更详细地描述的计算装置718的组件。

方法400开始于统一TTS接口121在操作401接收语音数据。更具体地,策略控制器125从TTS服务或设备接收语音数据,该语音数据对应于策略控制器125先前从统一TTS接口121接收并由策略控制器125传送到设备TTS 127和远程TTS 130的文本数据。在一些实施例中,以对应于从统一TTS接口121接收的文本数据的声波的形式接收语音数据。

在操作403中,策略控制器125标识由选择策略指示的TTS服务。如本文所描述的,选择策略指示是否选择从设备TTS 127、远程TTS 130或设备TTS127和远程TTS 130两者接收的语音数据以供策略控制器125输出。选择策略包括认知驱动策略、性能驱动策略和质量驱动策略中的一者或多者。认知驱动策略包括迫使系统100相较于远程TTS 130优先利用设备TTS 127,迫使系统100不利用远程TTS 130,迫使系统100以一定百分比利用远程TTS 130等等。性能驱动策略包括使用将提供更快结果的设备TTS 127和远程TTS 130中的任何一个,使用将提供更准确结果的设备TT 127和远程TT 130中的任何一个等等。质量驱动策略包括迫使系统100相较于设备TTS 127优先利用远程TTS130、迫使系统100不利用设备TTS127、响应于远程TTS 130超时而利用设备TTS 127等等。在一些实施例中,选择策略是预设的,并且包括用于选择语音数据的预设规则和策略。例如,预设选择策略称为默认选择策略、预加载选择策略等。在一些实施例中,预设选择策略被系统100的用户定制的选择策略改变、更新或覆盖。在一些实施例中,选择策略最初不被设置或选择,而选择策略首先由用户在执行系统100之前选择或设置。

在一些实施例中,来自选择策略的数据在神经网络或机器学习(ML)反馈回路中实现,其功能是基于选择策略自动地改进和升级TTS服务的选择。例如,选择策略包括性能驱动策略。每当文本数据被发送到设备TTS 127和远程TTS 130并且基于文本数据从设备TTS127和远程TTS 130返回语音数据时,神经网络使用所接收的数据来更新性能驱动策略。通过更新性能驱动策略,策略控制器125能够在将来更有效地从设备TTS 127或远程TTS 130选择生成的语音数据。

在操作405中,策略控制器125基于操作403中的标识从设备TTS 127、从远程TTS130、或从设备TTS 127和远程TTS 130两者中选择语音数据。例如,在选择策略是利用从提供更快结果的设备TTS 127或远程TTS 130生成的语音数据的性能驱动策略的实施例中,策略控制器125选择所接收的第一经生成的语音数据。作为另一示例,在选择策略是相较于设备TTS 127优先利用来自远程TTS 130的语音数据的质量驱动策略的情况下,如果语音数据可用,则策略控制器125选择由远程TTS 130生成的语音数据,并且如果由远程TTS 130生成的语音数据不可用,则仅可以利用由设备TTS 127生成的语音数据。

在操作407中,策略控制器125发送或传送所选择的语音数据以供输出。例如,策略控制器125将基于选择策略选择的所选语音数据发送到用户应用110以输出给用户。用户应用110控制诸如输出设备217之类的输出设备以将语音数据作为输出219传送给用户201。

图5是例示根据一实施例的用于操作高速缓存的计算机化方法的流程图。图5中所示的方法500仅用于说明。在不脱离本公开的范围的情况下,可以使用方法500的其他示例。方法500可以由图1中所示的系统100的一个或多个组件来实现,诸如下面在图7的描述中更详细地描述的计算装置718的组件。

方法500开始于在操作501中将输入和相应输出存储在高速缓存123中。例如,在方法400的操作407中,策略控制器125除了发送所选择的语音数据以供输出之外,还将所选择的语言数据发送到高速缓存123以进行存储。在一些示例中,高速缓存123要么是软件组件(诸如远程存储在例如云中的数据库),要么是硬件组件(诸如存储在存储器722中并在图7的描述中进一步描述的数据库,其存储最近被系统100使用的输入和相应输出)。高速缓存123存储特定时间段的输入和相应输出,存储特定数量的最近输入和相应输出,存储一定范围的最近输入和相应输出或其组合。在这些实施例中,高速缓存123的内容被定期更新以存储最近的输入和相应输出。

在一些实施例中,高速缓存123分别存储频繁接收的频繁输入和频繁输出的相应输出。在一些示例中,这些输入和相应输出被预先设置或固定到高速缓存123,并且不定期地并自动地更新或移除。在这些实施例中,对输入和相应输出的更新是手动执行的(诸如由用户手动执行的)并且被存储直到它们被手动移除。

在操作503中,统一TTS接口121接收新的文本数据。在操作505中,统一TTS接口121确定所接收的文本数据是否作为输入被存储在高速缓存123中。为了确定所接收的文本数据是否作为输入被存储在高速缓存123中,统一TTS接口121开始于在高速缓存123中搜索所接收的输入中包括的关键字。例如,当文本数据背诵“playing music now(现在播放音乐)”时,统一TTS接口121在高速缓存123中搜索关键字“music(音乐)”。如果关键字“music(音乐)”与存储在高速缓存123中的条目相匹配,则统一TTS接口121执行附加分析以确认整个文本数据与存储在高速缓存123中条目相匹配。例如,存储在高速缓存123中的“music isunavailable(音乐不可用)”的条目将返回基于关键字“music(音乐)”的结果,但是“playing music now(现在播放音乐)”的整个文本数据与存储在高速缓存123中的整个条目不匹配。因此,存储在高速缓存123中的“music is unavailable(音乐不可用)”的条目与“playing music now(现在播放音乐)的文本数据不匹配”。相反,存储在高速缓存123中的“playing music now(现在播放音乐)”的条目与整个文本数据相匹配,并且文本数据与存储在高速缓存123中的条目的匹配被确认。如果确定所接收的文本数据被存储在高速缓存123中,则方法500前进到操作507。如果所接收的文本数据被确定为不存储在高速缓存123中,或者如果所接收的文本数据不能被确认为存储在高速缓存123中,则方法500前进到操作509。

在操作507中,系统100返回存储在高速缓存123中的与接收到的文本数据输入相对应的输出。返回的输出是与文本数据输入相对应的语音数据。统一TTS接口121然后向用户输出相应的输出。例如,如图2所例示的,用户应用110控制输出设备217将输出219传送给用户201。通过存储先前由设备TTS 127和/或远程TTS 130生成的语音数据,以便由系统100快速输出,本公开的各种实施例能够利用先前由设备TTS 127和/或远程TTS 130生成的语音数据,快速、有效地返回对应于接收到的输入的输出,从而在提供快速、准确、高效的结果的同时减少先前执行的操作中的冗余。

在操作509中,基于未存储在高速缓存123中的接收到的文本数据,策略控制器125利用TTS系统来生成与文本数据相对应的语音数据。例如,如本文所描述的,策略控制器125向设备TTS 127和远程TTS 130中的一者或两者发送文本数据,并从设备TTS 127和远程TTS130中的一者或两者接收与文本数据相对应的语音数据。

在操作511中,高速缓存123被更新以存储由设备TTS 127和远程TTS 130中的一者或多者生成的输入文本数据和相应语音数据(即,相应输出)。根据本文描述的各种实施例,输入文本数据和相应输出被存储在高速缓存123中达特定时间段,直到被另一输入和相应输出替换,或者被固定在高速缓存中以被存储,直到手动移除或替换。

图6是例示根据一实施例的用于混合TTS的计算机化方法的流程图。图6中所示的方法600仅用于说明。在不脱离本公开的范围的情况下,可以使用方法600的其他示例。方法600可以由图1中所示的系统100的一个或多个组件来实现,诸如下面在图7的描述中更详细地描述的计算装置718的组件。

在操作601中,统一TTS接口121接收文本数据。从用户应用110接收文本数据。在一些实施例中,如上参考图2所描述的,由响应标识模块213生成文本数据。

在操作603中,统一TTS接口121标识所接收的文本数据是否被存储在高速缓存123中。例如,为了标识所接收的文本数据是否被存储在缓存中,统一TTS接口121标识文本数据是否与存储在高速缓存123中的关键字相匹配,并标识与高速缓存123中标识的所接收的文本数据相对应的语音数据。如上参考图5所描述的,基于统一TTS接口121标识所接收的文本数据在高数缓存123中,统一TTS接口121返回对应的输出,该输出包括与所接收的文本数据对应的语音数据。基于统一TTS接口121将所接收的文本数据未标识为在高速缓存123中(例如,从高速缓存123省略或丢失所接收的数据),统一TTS接口121将文本数据发送到策略控制器125。

在操作605中,基于统一TTS接口121未在高速缓存123中标识文本数据,策略控制器125将所接收的文本数据发送到设备TTS 127和远程TTS 130中的一者或两者。在策略控制器125基于传输策略或其他策略来确定向设备TTS 127和远程TTS 130中的一者或两者发送文本数据。在一些实施例中,策略控制器125向设备TTS 127和远程TTS 130两者发送文本数据,使得设备TTS 126和远程TTS 130两者生成与文本数据相对应的语音数据。

在操作607中,策略控制器125接收由设备TTS 127和/或远程TTS 130生成的语音数据。在文本数据仅被发送到设备TTS 127和远程TTS 130中的一者的实施例中,策略控制器125仅从向其发送文本数据的TTS服务接收语音数据。在文本数据被发送到设备TTS 127和远程TTS 130两者的实施例中,策略控制器125期望从设备TTS 127和远程TTS 130两者接收语音数据。然而,在一些实例中,来自TTS服务的语音数据是预期的,但没有被接收到。例如,文本数据经由网络连接被发送到远程TTS 130,但由于网络连接超时或被丢弃而未被接收。

在操作609中,策略控制器125基于选择策略或其他策略来选择从设备TTS127和远程TTS 130接收的语音数据,并将所选择的语音数据发送到用户应用110。所选择的语音数据是所接收的文本数据的音频版本。如本文所描述的,选择策略包括认知驱动策略、性能驱动策略和质量驱动策略中的一者或多者,这些策略驱动策略控制器125选择来自设备TTS127、远程TTS 130的生成的语音数据,或者将来自设备TTS 127的生成的语音数据的各方面与来自远程TTS 130的生成的语音数据的各方面结合成综合语音数据。在一些实施例中,传输策略至少部分地基于选择策略。

在操作611中,用户应用110输出所选择的语音数据。例如,用户应用110控制诸如输出设备217之类的输出设备,以将语音数据作为输出219输出给用户201。

示例性操作环境

本公开可以通过根据一实施例的作为图7中的功能框图700的计算装置来操作。在一实施例中,计算装置718的各组件可被实现为根据本说明书中所描述的一个或多个实施例的电子设备的一部分。计算装置718包括一个或多个处理器719,这些处理器可以是微处理器、控制器或用于处理计算机可执行指令以控制电子设备的操作的任何其他合适类型的处理器。替换地或附加地,处理器719是能够执行逻辑或指令的任何技术(诸如硬编码机器)。可以在装置720上提供包括操作系统718或任何其他合适的平台软件在内的平台软件以使得应用软件721能够在设备上被执行。根据一个实施例,可以通过软件、硬件和/或固件来实现使用本文描述的安全网关实例来确保对安全边界内的服务资源的访问。

可以使用计算装置718能够访问的任何计算机可读介质来提供计算机可执行指令。计算机可读介质可包括例如诸如存储器722等计算机存储介质和通信介质。诸如存储器722之类的计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括但不限于,RAM、ROM、EPROM、EEPROM、永久性存储器、相变存储器、闪存或其他存储技术、CD-ROM、数字多功能盘(DVD)或其他光学存储、盒式磁带、磁带、磁盘存储、叠片盘存储或其他磁存储设备,或可用于存储信息以供计算装置访问的任何其他非传输介质。相比而言,通信介质可以以诸如载波或其他传输机制之类的已调数据信号来体现计算机可读指令、数据结构、程序模块等。如本文中所定义的,计算机存储介质不包括通信介质。因此,计算机存储介质本身不应当被理解成是传播信号。传播的信号本身不是计算机存储介质的示例。虽然计算机存储介质(存储器722)被示为在计算装置718内,但是本领域的技术人员应当领会,该存储可以是分布式的或位于远程并经由网络或其他通信链路(例如,使用通信接口723)来访问。

计算装置718可包括被配置成向可以与电子设备分开或集成在一起的一个或多个输出设备725(例如,显示屏或扬声器)输出信息的输入/输出控制器724。输入/输出控制器724还可被配置成接收和处理来自一个或多个输入设备726(例如,键盘、话筒或触摸垫)的输入。在一个实施例中,输出设备725也可充当输入设备。这样的设备的示例可以是触敏显示器。输入/输出控制器724还可以向除输出设备之外的设备(例如,本地连接的打印设备)输出数据。在一些实施例中,用户可向(诸)输入设备726提供输入和/或从(诸)输出设备725接收输出。

本文中所描述的功能性可以至少部分地由一个或多个硬件逻辑组件来执行。根据一实施例,计算装置718由当被处理器719执行时执行所描述的操作和功能性的各实施例的程序代码进行配置。替换地或附加地,本文中所描述的功能性可以至少部分地由一个或多个硬件逻辑组件来执行。作为示例而非限制,可被使用的硬件逻辑组件的说明性类型包括现场可编程门阵列(FPGA)、应用专用集成电路(ASIC)、程序专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑器件(CPLD)、图形处理单元(GPU)。

附图中的各种元素的至少一部分功能可由附图中的其他元素或附图中未示出的实体(例如,处理器、web服务、服务器、应用程序、计算设备等)执行。

尽管结合一示例性计算系统环境进行了描述,但本公开的各示例能够用众多其它通用或专用计算系统环境、配置或设备实现。

可能适用于本公开的各方面的公知的计算系统、环境和/或配置的示例包括但不限于:移动或便携式计算设备(如智能手机)、个人计算机、服务器计算机、手持式设备(例如平板)或膝上型设备、多处理器系统、游戏控制台或控制器、基于微处理器的系统、机顶盒、可编程消费电子产品、移动电话、具有可穿戴或配件形状因子(例如,手表、眼镜、头戴式耳机或耳塞)的移动计算和/或通信设备、网络PC、小型计算机、大型计算机、包括上面的系统或设备中的任何一种的分布式计算环境等等。一般而言,本公开可通过具有处理能力使得其能够执行诸如本文所描述的指令的任何设备来操作。此类系统或设备可以以任何方式来接受来自用户的输入,包括来自诸如键盘或指点设备之类的输入设备、通过姿势输入、接近输入(诸如通过悬停)和/或通过语音输入。

本公开的各示例可在被软件、固件、硬件或其组合中的一个或多个计算机或其他设备执行的计算机可执行指令(诸如程序模块)的一般上下文中被描述。计算机可执行指令可以被组织成一个或多个计算机可执行的组件或模块。一般而言,程序模块包括但不限于,执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件,以及数据结构。可以利用任何数量的这样的组件或模块以及它们的任何组织来实现本公开的各方面。例如,本公开的各方面不限于附图中所举例说明并且在本文所描述的特定计算机可执行指令或特定组件或模块。本公开的其他示例可以包括具有比本文所示出和描述的功能更多或更少功能的不同的计算机可执行指令或组件。

在涉及通用计算机的示例中,在被配置成执行本文所描述的指令之时,本公开的各方面将通用计算机转化成专用计算设备。

一种用于混合TTS系统的示例系统包括至少一个处理器和至少一个存储器。该存储器包括高速缓存和计算机程序代码。该至少一个存储器和该计算机程序代码被配置成与该至少一个处理器一起导致该至少一个处理器进行以下操作:从用户应用接收文本数据;确定所接收的文本数据未被存储在所述高速缓存中;向远程文本到语音(TTS)引擎(例如,服务)并向所述设备中的TTS引擎(例如,服务)两者发送所接收的文本数据;从该远程TTS引擎和该设备中的该TTS引擎两者接收语音数据;基于选择策略来选择来自该远程TTS引擎、该设备中的该TTS引擎或两者的语音数据;以及将所选择的语音数据传送到该用户应用。

一种用于混合TTS系统的示例计算机化方法包括:从用户应用接收文本数据;确定所接收的文本数据未被存储在高速缓存中;将所接收的文本数据发送到远程TTS引擎并向设备中的TTS引擎;从该远程TTS引擎和该设备中的该TTS引擎两者接收语音数据;基于选择策略来选择来自该远程TTS引擎、该设备中的该TTS引擎或两者的语音数据;以及将所选择的语音数据传送到用户应用。

一个或多个具有用于混合TTS系统的计算机可执行指令的计算机存储介质,该计算机可执行指令在由处理器执行时使该处理器至少进行以下操作:从用户应用接收文本数据;确定所接收的文本数据未被存储在高速缓存中;向远程TTS引擎并向设备中的TTS引擎两者发送所接收的文本数据;从该远程TTS引擎和该设备中的该TTS引擎两者接收语音数据;基于选择策略来选择来自该远程TTS引擎、该设备中的该TTS引擎或两者的语音数据;以及将所选择的语音数据传送到该用户应用。

作为对本文描述的其他示例的替代或补充,示例包括以下各项的任意组合:

其中所述选择策略包括对认知驱动策略、性能驱动策略或质量驱动策略中的至少一者进行优先级排序的规则;

其中所述选择策略是反应式选择策略或主动式选择策略中的至少一者;

基于所述选择策略选择从所述远程TTS引擎和所述设备中的所述TTS引擎两者生成的所述语音数据;

将所选择的语音数据组合成综合语音数据,其中所述综合语音数据包括从所述远程TTS引擎生成的所述语音数据中的至少一部分和从所述设备中的所述TTS引擎生成的所述语音数据中的至少一部分;

传送所述综合语音数据;

基于传输策略来确定向所述远程TTS引擎和所述设备中的所述TTS引擎发送所接收的文本数据;

其中所述传输策略至少部分地基于所述选择策略;

其中所述远程TTS引擎是在云中执行和存储的TTS引擎;

其中所选择的语音数据是所接收的文本数据的音频版本;

其中为了确定所接收的文本数据是否被存储在所述高速缓存中,所述至少一个处理器被进一步配置成标识所接收的文本数据是否与存储在所述高速缓存中的关键字相匹配;

其中所述至少一个处理器被进一步配置成响应于标识所接收的文本数据被存储在所述高速缓存中来进行以下操作:标识与在该高速缓存中标识的所接收的文本数据相对应的语音数据;

绕过该远程TTS引擎和该设备中的该TTS引擎;以及

将该相对应的语音数据传送到该用户应用。

虽然本发明的各方面没有跟踪个人可标识的信息,但参考了从用户监视和/或收集的数据来描述了各示例。在一些示例中,可向用户提供有关数据收集的通知(例如,经由对话框或偏好设置),并且给予用户对监视和/或收集给予同意或拒绝同意的机会。该同意可以采用选择加入同意或选择退出同意的形式。

虽然用结构特征和/或方法动作专用的语言描述了本发明主题,但应当理解,所附权利要求书中定义的主题不必限于以上所描述的具体特征或动作。更确切而言,以上所描述的具体特征和动作是作为实现权利要求的示例形式公开的。

将会理解,以上所描述的益处及优点可以涉及一个实施例或者可以涉及若干实施例。各实施例并不限于解决所阐述的问题中的任何或全部问题的那些实施例或者具有所阐述的益处和优点中的任何或全部益处和优点的那些实施例。将进一步理解,对“一个”项目的提及是指那些项目中的一个或多个。

本文所例示和描述的各实施例以及本文未具体描述但在权利要求的各方面的范围内的各实施例构成:用于由与安全边界相关联的安全网关实例的处理器接收来自该安全边界之外的边缘部署的请求的示例性装置,该请求包括标识边缘部署的身份数据,其中该请求以该安全边界内的服务资源为目标;用于由该处理器基于与该安全网关实例相关联地存储的允许的身份数据来验证该请求中包括的身份数据的示例性装置;用于由该处理器基于与该请求所针对的服务资源相关联的验证处理器来验证该请求的示例性装置;基于验证该身份数据和验证该请求,由该处理器使用特定于该安全网关实例的安全数据来转换该身份信息的示例性装置,其中经转换的身份数据指示该请求已由该安全网关实例验证,其中转换该身份数据包括以下至少一者:将与该安全数据相关联的至少一个数据值附加到该身份数据、基于该安全数据的转换过程来转换该身份数据的至少一个数据值、和基于该安全数据将该身份数据的至少一个数据值映射到不同的数据值;以及基于转换该请求的身份数据,由该处理器经由该安全边界内的网络链路将经转换的身份数据和该请求转发到该服务资源的示例性装置,其中该服务资源被配置成基于标识经转换的身份数据来处理该请求。

术语“包括”在本说明书中被用来意指包括此后伴随的(一个或多个)特征或(一个或多个)动作,而不排除一个或多个附加特征或动作的存在。

在一些示例中,各附图中所例示的操作可以作为在计算机可读介质上编码的软件指令以被编程或设计为执行操作的硬件或这两者来实现。例如,本公开的各方面可以被实现为片上系统或包括多个互连的导电元件的其它电路。

本文所例示并描述的本公开的各示例中的操作的执行或完成的顺序不是必需的,除非另作指定。也就是说,除非另作指定,操作可以以任何顺序执行,本公开的各示例可以包括附加的或比本文所公开的操作更少的操作。例如,构想了在某一个操作之前、同时、或之后执行或完成另一个操作也在本公开的各方面的范围之内。

当介绍本公开的各方面的元素或其示例时,冠词“一”、“一个”、“该”、“所述”旨在意指一个或多个这样的元素。术语“包括”、“包含”、以及“具有”旨在是包含性的,并意指除所列出的元素以外可存在附加的元素。术语“示例性”旨在表示“……的一示例”。短语以下各项中的一个或多个:“A、B和C”意指“A中的至少一者和/或B中的至少一者和/或C中的至少一者”。

已经详细地描述了本公开的各方面,显然,在不偏离所附权利要求书所定义的本公开的各方面的范围的情况下,可以进行各种修改和变化。在不偏离本公开的各方面的范围的情况下,可以在上面的构造、产品以及方法中作出各种更改,意图是上面的描述中所包含的以及各附图中所示出的所有主题都应该解释为说明性的,而不是限制性的。

技术分类

06120116337574