首页 / 专利分类库 / 电通信技术 / 电话通信 / 自动或半自动交换局 / 语音和其他交互应用的开发

语音和其他交互应用的开发

申请号 CN202080071550.6 申请日 2020-08-13 公开(公告)号 CN114945979A 公开(公告)日 2022-08-26
申请人 声音有限责任公司; 发明人 J.K.麦克马洪; R.T.诺顿; N.G.莱德劳; A.M.邓恩; J.格林;
摘要 除其他事项外,企业的交互应用的开发者可以创建内容项,该内容项要提供给助理平台以用于在对最终用户的 请求 的响应中使用。开发者能够使用定义的内容项和可用的通用交互模型来部署交互应用,该通用交互模型包括意图和具有槽的样本话语。开发者能够部署交互应用,而不需要开发者制定通用交互模型的任何意图、样本话语或槽。
权利要求

1.一种机器实现的方法,包括:
使企业的交互应用的开发者能够创建内容项,所述内容项要提供给助理平台以用于在对最终用户的请求的响应中使用,以及
使所述开发者能够使用定义的内容项和可用的通用交互模型来部署所述交互应用,所述通用交互模型包括意图和具有槽的样本话语,而不需要所述开发者制定所述通用交互模型的任何意图、样本话语或槽。
2.如权利要求1所述的方法,其中,使所述开发者能够创建内容项包括呈现图形用户界面,所述图形用户界面使所述开发者能够创建所述内容项而不需要所述开发者参与编码。
3.如权利要求1所述的方法,其中,所述通用交互模型的意图包括抽象意图,所述抽象意图在没有解析和解释与对应的样本话语相关联的槽的情况下不能直接映射到特定内容。
4.如权利要求1所述的方法,其中,所述样本话语包括请求的抽象表征,所述请求的抽象表征在没有解析和解释所述样本话语的槽的情况下不能直接映射到特定内容。
5.如权利要求1所述的方法,其中,所述槽中的一个或多个包括开放式槽,所述开放式槽需要解析和解释以便确定与最终用户的话语相对应的适当内容项。
6.如权利要求1所述的方法,其中,所述企业属于特定的垂直市场,并且所述方法包括使所述开发者能够选择被配置用于为属于所述特定市场的企业开发交互应用的模板。
7.如权利要求1所述的方法,包括使所述开发者能够为每个意图指示最终用户的一个或多个特定的样本话语。
8.如权利要求1所述的方法,包括使所述开发者能够通过添加意图或样本话语模式或两者来定制所述通用交互模型。
9.如权利要求1所述的方法,其中,使所述开发者能够部署所述交互应用包括使所述开发者能够部署所述交互应用以供两个或更多个不同的助理平台使用,而不需要所述开发者采取任何动作来配置所述交互应用以供两个或更多个不同的助理平台使用。
10.一种装置,包括
处理器,以及
存储器,所述存储器存储可由所述处理器执行的指令,以
接收包括槽的话语,所述话语已由助理平台从交互助理的最终用户的请求中导出,将每个所接收到的话语应用于通用交互模型以确定意图,所述通用交互模型包括非特定样本话语,所述非特定样本话语包括开放式槽,以及
将所述意图转发到交互应用,所述交互应用被配置为查找内容项,所述内容项用于在对所述最终用户的请求提供响应中使用。
11.如权利要求10所述的装置,其中,在没有解析和解释所述开放式槽的情况下,所述非特定样本话语不能被直接用于查找内容项。
12.如权利要求10所述的装置,其中,所述开放式槽包括最终用户的话语的扩展部分,所述扩展部分包括具有值的参数和表示要被解析和解释的上下文的文本元素。
13.如权利要求10所述的装置,其中,所述意图包括非特定意图。
14.一种基于机器的方法,包括:
存储内容,所述内容配置为由两个不同的交互应用在生成对来自交互助理的用户的请求的响应时使用,以及
基于来自交互助理的用户的所述请求,执行所述两个不同的交互应用以响应从助理平台接收到的意图和槽信息,所述意图和槽信息已经通过对来自所述用户的请求应用单个通用交互模型而生成。
15.如权利要求14所述的方法,其中,所述两个不同的交互应用的执行调用所相应存储的内容。
16.如权利要求14所述的方法,其中,所述两个不同的交互应用与单个企业相关联。
17.如权利要求14所述的方法,其中,所述两个不同的交互应用与属于单个垂直市场的两个不同企业相关联。
18.如权利要求14所述的方法,其中,所述两个不同的交互应用与属于两个不同垂直市场的两个不同企业相关联。
19.如权利要求14所述的方法,包括执行所述不同交互应用中的至少一个,以响应从两个不同助理平台接收的意图和槽信息。
20.如权利要求14所述的方法,其中,所述单个通用交互模型包括非特定意图。
21.如权利要求14所述的方法,其中,所述单个通用交互模型包括开放式槽。
22.如权利要求14所述的方法,包括在不更改所述单个通用交互模型的情况下更新所存储的内容。
23.一种基于机器的方法,包括
将语音标记语言字符串的标记元素表达为节点树,每个节点对应于所述字符串的标记元素之一;
将所述节点树分段成分支,所述分支具有相同的第一节点;
处理所述分支;
基于处理所述分支的结果来重新表达所述语音标记语言字符串;以及
存储重新表达的语音标记语言字符串,所述重新表达的语音标记语言字符串在对交互助理的最终用户的请求进行响应中使用。
24.如权利要求23所述的方法,其中,根据语音合成标记语言来表达所述语音标记语言字符串。
25.如权利要求23所述的方法,其中,所述标记元素包括语音标记语言的标签。
26.如权利要求23所述的方法,其中,将所述节点树分段成分支包括识别不能由交互助理平台使用的分支,所述交互助理平台应用表达所述语音标记语言字符串所根据的语音标记语言的版本。
27.如权利要求26所述的方法,其中,所述分支不能使用,因为所述分支包含不是由所述交互助理平台应用的所述语音标记语言的版本的有效元素的节点。
28.如权利要求23所述的方法,其中,基于处理所述分支的结果来重新表达所述语音标记语言字符串包括:移除分支的无效节点,以及合并包括从其中移除了所述无效节点的分支的分支。
29.如权利要求23所述的方法,包括将重新表达的语音标记语言字符串提供给交互助理平台,所述重新表达的语音标记语言字符串在对最终用户的响应的文本到语音呈现中使用。
30.一种基于机器的方法,包括:
存储表示由交互助理平台应用的语音标记语言定义的特定版本的规则;
应用表示所述特定版本的所述规则来验证符合所述特定版本的、要用于响应交互助理的最终用户的请求的语音标记字符串。
31.如权利要求30所述的方法,包括存储表示由第二交互助理平台应用的所述语音标记语言定义的第二特定版本的规则,以及应用表示所述第二特定版本的所述规则来验证符合所述第二特定版本的、要用于响应交互助理的最终用户的请求的语音标记语言字符串。
32.如权利要求30所述的方法,其中,所述语音标记语言定义包括语音合成标记语言。
33.如权利要求30所述的方法,包括将经验证的语音标记语言字符串提供给所述交互助理平台以用于在呈现对最终用户的请求的响应中使用。
34.如权利要求30所述的方法,其中,应用所述规则来验证所述语音标记语言字符串包括将语音标记语言字符串的标记元素表达为节点树。
35.一种基于机器的方法,包括:
呈现用户界面,所述用户界面使开发者能够创建符合由对应的交互助理平台应用的语音标记语言定义的语音标记语言字符串;
所述用户界面使所述用户能够使用纯文本和图形元素来创建标记语言字符串,而不需要所述用户选择或输入所述语音标记语言定义的标记元素的任何正式表达。
36.如权利要求35所述的方法,其中,所述用户界面呈现用于输入要由交互助理向最终用户说出的文本的控件。
37.如权利要求35所述的方法,其中,所述用户界面呈现对应于所述语音标记语言字符串的元素的控件,所述语音标记语言字符串的元素与要应用或添加到要由交互助理对最终用户说出的文本的一个或多个单词的效果相关联。
38.如权利要求35所述的方法,其中,所述用户界面呈现对应于所述语音标记语言字符串的元素的属性的控件。
39.如权利要求35所述的方法,其中,所述用户界面呈现对应于所述语音标记语言字符串的元素的属性的可选值的控件。
40.如权利要求35所述的方法,其中,所述用户界面呈现控件,所述控件包括图形化地表示要应用到要由交互助理对最终用户说出的文本的一个或多个单词的效果、所述效果的属性、或所述效果的属性值的图标。
41.如权利要求35所述的方法,其中,所述用户界面显示与文本单词一致的图形指示符,所述图形指示符表示当交互助理向最终用户说出所述单词时要应用于所述文本单词中的一个或多个的效果。
42.如权利要求41所述的方法,其中,所述图形指示符包括与要应用对应的效果的所述单词一起显示的背景。
43.如权利要求42所述的方法,其中,根据所述背景对应的所述效果对所述背景进行颜色编码。
44.如权利要求42所述的方法,其中,可以嵌套要应用于一个或多个单词的效果,并且根据所述效果的嵌套来嵌套所述背景。
45.一种基于机器的方法,包括:
向用户界面的用户显示包括标记语言元素的纯文本和图形指示符的语音标记字符串的表示;
每个所述图形指示符都与对应的一个所述标记语言元素应用到的所述语音标记语言字符串的一部分以图形关联的方式显示。
46.如权利要求45所述的方法,其中,所述图形指示符与所述纯文本一致地显示。
47.如权利要求45所述的方法,其中,所述图形指示符表示要应用于所述纯文本的一个或多个单词的音频效果。
48.如权利要求45所述的方法,其中,所述图形指示符表示要应用于所述纯文本的一个或多个单词的音频效果的属性。
49.如权利要求45所述的方法,其中,所述图形指示符包括与要应用对应的效果的所述纯文本的单词一起显示的背景。
50.如权利要求49所述的方法,其中,根据所述背景对应的所述效果对所述背景进行颜色编码。
51.如权利要求49所述的方法,其中,可以嵌套要应用于所述纯文本的一个或多个单词的效果,并且根据所述效果的嵌套来嵌套所述背景。
52.如权利要求45所述的方法,其中,所述用户界面显示控件,所述控件使开发者能够显示原始语音标记语言字符串,并一致地显示所述纯文本和表示要应用于所述文本的所述效果的图形指示符。
53.一种基于机器的方法,包括:
基于交互助理的最终用户的请求,从助理平台接收意图和槽信息,所述意图和槽信息已经由自然语言处理导出;
将附加的自然语言处理应用于从所述助理平台接收的所述意图和槽信息;以及基于所述附加的自然语言处理来导出关于所述最终用户的请求的附加信息。
54.一种基于机器的方法,包括:
接收表示交互助理的最终用户的请求的话语;
将所接收到的话语与通用交互模型的非特定样本话语进行比较;以及
接受多种接收到的话语作为给定非特定样本话语的匹配。
55.如权利要求54所述的方法,包括处理所接收到的话语的槽信息,以识别要用于响应所述请求的内容。
56.如权利要求55所述的方法,包括不同的内容项,所述不同的内容项中的每一个仅对应于被接受为匹配的所述多种接收到的话语中的一个接收到的话语。
57.一种基于机器的方法,包括:
呈现用户界面,所述用户界面使交互应用的开发者能够选择通用话语模式以包括在所述交互应用中,每个所述通用话语模式跨越对应于所述通用话语模式的一个或多个样本话语的集合,所述用户界面公开可用的通用话语模式的集合;
机器学习技术自动应用于存储的样本话语、存储的通用话语模式或由交互应用的开发者提出的样本话语,以识别附加的通用话语模式;以及
将所述附加的通用话语模式包括在由所述用户界面公开的所述可用的通用话语模式的集合中。
58.如权利要求57所述的基于机器的方法,包括
将开发者的提出的样本话语与存储的样本话语或存储的通用话语模式进行匹配,以识别所述附加的通用话语模式。
59.如权利要求57所述的基于机器的方法,其中,正在为特定行业的企业开发所述交互应用,并且至少一些所述通用话语模式可用于另一行业的交互应用的开发者。
60.如权利要求57所述的基于机器的方法,包括
响应于所述开发者提出用于交互应用的样本话语,自动建议在所述交互应用中包括特定的通用话语模式。
61.如权利要求57所述的基于机器的方法,包括
基于由所述特定行业中的企业的交互应用的多个开发者提出的相似的样本话语,来识别附加的通用话语模式以包括在所述集合中。
62.如权利要求57所述的基于机器的方法,包括
确定由所述开发者提出的样本话语的意图;以及
识别具有与所提出的样本话语的意图相匹配的意图的存储的样本话语或存储的通用话语模式。
63.如权利要求62所述的基于机器的方法,包括
响应于确定所提出的样本话语的意图与存储的样本话语或存储的通用话语模式的意图不匹配,自动建议特定的通用话语模式以包括在所述交互应用中。
64.如权利要求57所述的基于机器的方法,包括
基于由所述开发者提出的样本话语来识别所述交互应用的行业;以及
基于所述行业来识别所述附加的通用话语模式以包括在可用的通用话语模式的所述集合中。
65.如权利要求57所述的基于机器的方法,包括
为由所述开发者提出的样本话语识别行业;以及
自动向所述行业中的交互应用的一个或多个其他开发者建议包括所述样本话语。
66.根据权利要求65所述的基于机器的方法,包括
将所述机器学习技术应用于由所述开发者提出的所述样本话语以识别所述行业。
67.如权利要求65所述的基于机器的方法,包括
使用所提出的样本话语来训练用于所述行业中的交互应用的所述机器学习技术。
68.如权利要求57所述的基于机器的方法,包括
形成包括至少一个所述附加的通用话语模式的所述交互应用。
69.如权利要求68所述的基于机器的方法,包括部署所述交互应用。

说明书全文

语音和其他交互应用的开发

技术领域

[0001] 本说明书涉及语音和其他交互应用的开发。

背景技术

[0002] 例如,典型的交互式语音应用或聊天应用处理通过助理平台或机器人平台(诸如Amazon Alexa或Google Assistant)从最终用户接收的说出或写出的请求(或简称为“请求”)。(我们有时使用“助理”这个单词来代替“助理或机器人”。)助理处理每个请求以确定最终用户的意图。然后,交互应用使用该意图来生成要向最终用户说出或显示给最终用户或者两者兼有的响应。交互应用的工作是使用交互模型、端点业务逻辑和用于响应的内容来实现的。
[0003] 交互模型
[0004] 交互模型是帮助助理平台确定来自最终用户的请求的意图的对象。交互模型通常采用JSON数据的形式,包括意图、槽(slot)和样本话语。样本话语是交互模型期望在最终用户请求中遇到的话语的文本表达。槽包含与请求和响应相关联的参数值。意图是最终用户的意图,该意图与他们的请求相对应。
[0005] 端点业务逻辑
[0006] 交互应用的端点是一种组件,其从助理平台接收关于最终用户意图的信息并向助理平台发送关于要在响应中使用的内容项的文本信息。关于用户请求的信息包括助理平台的自然语言处理器与请求的话语相匹配的意图的名称,以及在将从最终用户接收的话语与交互模型的样本话语相匹配的过程中由助理平台分配的任何槽的值。端点业务逻辑通常表示和实现企业想要提供的内容,作为对接收到的意图的响应。端点业务逻辑通常实现为RESTful HTTP API或无服务器功能。端点业务逻辑的主要功能是执行以下过程:使用交互模型、意图和槽信息以查找适当的内容项,并执行用于响应请求的业务逻辑。
[0007] 响应的内容
[0008] 端点业务逻辑返回给助理平台并最终向最终用户说出或显示的响应的内容可以是从语音到文本过程导出的文本的形式或媒体文件的形式或两者。
[0009] 交互模型帮助识别从最终用户请求中导出的文本短语(说出或写出的)的含义,并根据管理一个或多个助理平台的协议将含义映射到意图。例如,诸如Amazon Alexa和Google Assistant的助理平台使用交互模型来提供抽象表示,以用于将说出或写出的人类单词或短语(我们有时统一简称为“话语”)映射到特定功能(即意图)。交互模型(通常以JSON数据的形式)可以包括意图→话语→槽的层次结构。
[0010] 意图表示绑定到一个或多个话语的功能。话语可以包含一个或多个槽来表示动态值(例如,一天中的某个时间)。当最终用户与交互助理(例如,Amazon Echo Dot)的交互指示了意图时,关于交互的信息(包括所识别的意图)由助理平台递送到端点以进行附加处理。端点本质上是一个应用,它有一组映射到交互模型内定义的意图的功能或方法。端点的功能可以包含对内容项或文字内容(我们有时将“内容项”和“文字内容”简称为“内容”)的引用,内容项或文字内容成为发送回助理平台的响应的部分。
[0011] 从最终用户的度来看,交互应用应该实现对话式的交互。开发者的角色是将信息传递给交互应用,使其能够正确地解释意图,并返回适当的内容项来响应这些意图。通常,会话交互应用是使用上述组件以及定制开发过程或流程设计器过程(也称为技能构建器;我们有时将单词“技能”与“交互应用”或“应用”互换使用)开发的。这两种方法都是基于意图和话语之间的文字(有人可能会说“硬连线”)连接。
[0012] 定制开发过程
[0013] 在定制对话式交互应用或应用的典型开发中,开发者从头开始创建一切,并手动开发交互模型、端点业务逻辑和内容。典型的开发过程包括以下步骤顺序:
[0014] 1.决定应用应该支持的交互(请求和响应)。
[0015] 2.为可能在与最终用户的对话中发生的应用的每次交互(请求或响应)生成唯一的意图。
[0016] 3.手动输入每个意图预期的样本话语。样本话语可以是最终用户说出或写出(话语)来表达意图的单词或短语。开发者试图输入最终用户可能为表达给定的意图被期望说出或写出的所有样本话语的综合集合。
[0017] 4.将所有意图及其对应的样本话语编译到交互模型中,将每个样本话语直接映射到其精确的意图。
[0018] 5.基于将请求的话语与先前创建和编译的意图的样本话语相匹配,创建可以从交互模型接收与最终用户请求相对应的意图的端点业务逻辑。
[0019] 6.提供返回与给定意图精确匹配的存储内容的过程。
[0020] 例如,如果开发者正在构建一个应用以使最终用户能够问询天气,那么交互模型结构可能是(单词“样本”指的是样本话语;括号中的单词是可以取决于请求而具有特定值的槽):
[0021] 意图:{
[0022] 名称:“WelcomeIntent”,
[0023] 样本:[“打开天气应用”、“与天气应用对话”]
[0024] }
[0025] 意图:{
[0026] 名称:“GeneralWeatherIntent”,
[0027] 样本:[“天气是什么?”、“外面怎么样”、“今天天气怎么样?”][0028] }
[0029] 意图:{
[0030] 名称:“CityWeatherIntent”,
[0031] 样本:[“{城市}的天气是什么?”、“{城市}外面怎么样”、“今天{城市}天气怎么样?”]
[0032] }
[0033] 意图:{
[0034] 名称:"LatestNewsIntent",
[0035] 样本:[“新的是什么?”,“最新的是什么?”,“有什么新鲜事吗?”][0036] }
[0037] 对于这样的应用,端点业务逻辑可以表达为:
[0038] 如果(request.name==“WelcomeIntent”)返回“欢迎使用天气应用,问询天气。”[0039] 如果(request.name==“GeneralWeatherIntent”)返回…
[0040] 如果(request.name==“CityWeatherIntent”)返回…
[0041] 然后,业务逻辑端点在运行时的数据流将如图1所示。
[0042] 定制应用开发可能需要:
[0043] 1.每个应用都有自己特定的交互模型和端点业务逻辑。
[0044] 2.应用的所有部分都是手动编码的。
[0045] 3.交互模型可以手动创建。
[0046] 4.如果新的意图或样本话语被添加到交互模型,则交互模型被重新部署或重新认证。
[0047] 5.详细的话语与样本话语精确匹配以响应请求。
[0048] 6.每个意图有大量手写输入的样本话语。
[0049] 7.特定的和上下文相关的槽。
[0050] 流程设计器开发过程
[0051] 作为流程设计开发过程的最终结果的应用类似于上述定制应用开发过程产生的应用。不同之处在于,流程设计过程提供了有助于自动创建交互模型和简单的端点业务逻辑的工具。
[0052] 典型的过程是:
[0053] 1.向呈现给开发者的图形用户界面画布添加节点
[0054] 2.每个节点表示添加到交互模型中的特定意图。
[0055] 3.对于每个节点,管理用户(例如,没有受过技术训练的人)可以添加样本话语并给节点命名。
[0056] 4.添加内容并将内容附加到节点作为响应。
[0057] 5.连接画布上的节点,以扩展端点业务逻辑来继续对话。
[0058] 6.将创建的节点结构存储在数据库中。
[0059] 得到的交互模型看起来就像使用定制过程开发的模型一样。在运行时,当接收到意图时,应用的业务逻辑的执行是:
[0060] 1.在节点数据库中搜索匹配与请求相关联的意图的节点。
[0061] 2.查找附加到该节点的内容,并将该内容作为对请求的响应返回。
[0062] 流程设计开发可能需要:
[0063] 1.由于意图和话语的修改,每次更改流程后,重新认证和重新部署应用。
[0064] 2.与画布中的节点的样本话语精确匹配的话语。
[0065] 3.在部署之前设计整个对话式应用。
[0066] 4.额外的努来管理那些被设计来处理多于20个意图的应用。
[0067] 5.特定的和上下文相关的槽。
[0068] 流程设计开发过程可以潜在地支持多个平台,并且不需要端点业务逻辑的定制编码。发明内容
[0069] 一般而言,在一个方面,企业的交互应用的开发者可以创建内容项,该内容项要提供给助理平台以用于在对最终用户的请求的响应中使用。开发者可以使用定义的内容项和可用的通用交互模型来部署交互应用,该通用交互模型包括意图和具有槽的样本话语。开发者可以部署交互应用而不需要开发者制定通用交互模型的任何意图、样本话语或槽。
[0070] 实现方式可以包括以下特征中的一个或者两个或多个的组合。使开发者能够创建内容项包括呈现图形用户界面,图形用户界面使开发者能够创建内容项而不需要开发者参与编码。通用交互模型的意图包括抽象意图,该抽象意图在没有解析和解释与对应的样本话语相关联的槽的情况下不能直接映射到特定内容。样本话语包括请求的抽象表征,该请求的抽象表征在没有解析和解释样本话语的槽的情况下不能直接映射到特定内容。槽中的一个或多个包括开放式槽,开放式槽需要解析和解释以便确定与最终用户的话语相对应的适当内容项。交互应用针对属于特定垂直市场的企业,并且开发者可以选择配置为针对属于特定垂直市场的企业开发交互应用的模板。开发者可以为每个意图指示最终用户的一个或多个特定的样本话语。开发者可以通过添加意图或样本话语模式来定制通用交互模型。开发者可以部署交互应用以供两个或更多个不同的助理平台使用,而不需要开发者采取任何动作来配置交互应用以供两个或更多个不同的助理平台中的每一个使用。
[0071] 一般而言,在一个方面,存储器存储可由处理器执行的指令以接收包括槽的话语,该话语已由助理平台从交互助理的最终用户的请求中导出。每个所接收到的话语被应用于通用交互模型以确定意图。该通用交互模型包括非特定样本话语,非特定样本话语包括开放式槽。意图被转发到交互应用,该交互应用被配置为查找内容项,该内容项用于在对最终用户的请求提供响应中使用。
[0072] 实现方式可以包括以下特征中的一个或者两个或多个的组合。根据权利要求所述的装置,其中,在没有解析和解释开放式槽的情况下,非特定样本话语不能被直接用于查找内容项。根据权利要求所述的装置,其中,开放式槽包括最终用户的话语的扩展部分,扩展部分包括具有值的参数和表示要被解析和解释的上下文的文本元素。根据权利要求所述的装置,其中,意图包括非特定意图。
[0073] 一般而言,在一个方面,将语音标记语言字符串的标记元素表达为节点树。每个节点对应于字符串的标记元素之一。将节点树分段成分支。这些分支具有相同的第一节点。处理分支。基于处理分支的结果来重新表达语音标记语言字符串。语音标记语言字符串被重新表达以用于在对交互助理的最终用户的请求进行响应中使用。
[0074] 实现方式可以包括以下特征中的一个或者两个或多个的组合。根据SSML来表达语音标记语言字符串。标记元素包括语音标记语言的标签。将节点树分段成分支包括识别可能不可由交互助理平台使用的分支,交互助理平台应用表达语音标记语言字符串所根据的语音标记语言的版本。分支可能不可用,因为分支包含不是由交互助理平台应用的语音标记语言的版本的有效元素的节点。无效元素包括无效类型的元素。无效元素包括具有无效属性的元素。无效元素包括具有无效属性值的元素。无效元素包括无效类型的子代节点。基于处理分支的结果来重新表达语音标记语言字符串包括移除分支的无效节点,以及合并包括从其中移除了无效节点的分支的分支。重新表达的语音标记语言字符串被提供给交互助理平台,以在对最终用户的响应的文本到语音呈现中使用。
[0075] 一般而言,在一个方面,存储表示由交互助理平台应用的语音标记语言定义的特定版本的规则。应用表示特定版本的规则来验证符合特定版本的、要用于响应交互助理的最终用户的请求的语音标记字符串。
[0076] 实现方式可以包括以下特征中的一个或者两个或多个的组合。存储表示由第二交互助理平台应用的语音标记语言定义的第二特定版本的规则。应用表示第二特定版本的规则来验证符合第二特定版本的、要用于响应交互助理的最终用户的请求的语音标记语言字符串。语音标记语言定义包括SSML。将经验证的语音标记语言字符串提供给交互助理平台以用于在呈现对最终用户的请求的响应中使用。应用规则来验证语音标记语言字符串包括将语音标记语言字符串的标记元素表达为节点树。验证语音标记语言字符串的规则的应用包括识别字符串中具有无效属性的元素。验证语音标记语言字符串的规则的应用包括识别字符串中具有无效属性值的元素。验证语音标记语言字符串的规则的应用包括识别字符串中具有无效类型的子代节点的元素。
[0077] 一般而言,在一个方面,呈现用户界面,该用户界面使开发者能够创建符合由对应的交互助理平台应用的语音标记语言定义的语音标记语言字符串。用户界面使用户能够使用纯文本和图形元素来创建标记语言字符串,而不需要用户选择或输入语音标记语言定义的标记元素的任何正式表达。
[0078] 实现方式可以包括以下特征中的一个或者两个或多个的组合。用户界面呈现用于输入要由交互助理向最终用户说出的文本的控件。用户界面呈现对应于语音标记语言字符串的元素的控件,语音标记语言字符串的元素与要应用或添加到要由交互助理对最终用户说出的文本的一个或多个单词的效果相关联。用户界面呈现对应于语音标记语言字符串的元素的属性的控件。用户界面呈现对应于语音标记语言字符串的元素的属性的可选值的控件。用户界面呈现控件,控件包括图形化地表示要应用到要由交互助理对最终用户说出的文本的一个或多个单词的效果、效果的属性、或效果的属性值的图标。用户界面显示与文本单词一致的图形指示符,图形指示符表示当交互助理向最终用户说出单词时要应用于文本单词中的一个或多个的效果。图形指示符包括指示效果的性质的图形图标。图形指示符包括识别效果的属性值的图形元素。图形指示符包括与要应用对应的效果的单词一起显示的背景。根据背景对应的效果对背景进行颜色编码。可以嵌套要应用于一个或多个单词的效果,并且根据效果的嵌套来嵌套背景。用户界面显示控件,控件使开发者能够选择显示原始语音标记语言字符串,并一致地显示纯文本和表示要应用于文本的效果的图形指示符。
[0079] 一般而言,在一个方面,向用户界面的用户显示包括标记语言元素的纯文本和图形指示符的语音标记字符串的表示,每个图形指示符都与对应的一个标记语言元素应用到的语音标记语言字符串的一部分以图形关联的方式显示。
[0080] 实现方式可以包括以下特征中的一个或者两个或多个的组合。图形指示符与纯文本一致地显示。图形指示符表示要应用于纯文本的一个或多个单词的音频效果。图形指示符表示要应用于纯文本的一个或多个单词的音频效果的属性。图形指示符包括与要应用对应的效果的纯文本的单词一起显示的背景。根据背景对应的效果对背景进行颜色编码。可以嵌套要应用于纯文本的一个或多个单词的效果,并且根据效果的嵌套来嵌套背景。用户界面显示控件,控件使开发者能够显示原始语音标记语言字符串,并显示纯文本和表示要应用于文本的效果的图形指示符。
[0081] 一般而言,在一个方面,存储配置为由两个不同的交互应用在生成对交互助理的用户的请求的响应时使用的内容。执行两个不同的交互应用,以基于交互助理的用户的请求来响应从助理平台接收到的意图和槽信息。意图和槽信息是通过对用户的请求应用单个通用交互模型而生成的。
[0082] 实现方式可以包括以下特征中的一个或者两个或多个的组合。两个不同的交互应用的执行调用各自存储的内容。两个不同的交互应用与单个企业相关联。两个不同的交互应用与属于单个垂直市场的两个不同企业相关联。两个不同的交互应用与属于两个不同垂直市场的两个不同企业相关联。执行不同交互应用中的至少一个,以响应从两个不同助理平台接收的意图和槽信息。单个通用交互模型包括非特定意图。单个通用交互模型包括开放式槽。在不更改单个通用交互模型的情况下更新存储的内容。
[0083] 一般而言,在一个方面,基于交互助理的最终用户的请求,从助理平台接收意图和槽信息。该意图和槽信息已经由自然语言处理导出。将附加的自然语言处理应用于从助理平台接收的意图和槽信息。基于附加的自然语言处理导出关于最终用户的请求的附加信息。
[0084] 一般而言,在一个方面,接收表示交互助理的最终用户的请求的话语。将所接收到的话语与通用交互模型的非特定样本话语进行比较。接受多种接收到的话语作为给定非特定样本话语的匹配。
[0085] 实现方式可以包括以下特征中的一个或者两个或多个的组合。处理所接收到的话语的槽信息,以识别要用于响应请求的内容。不同的内容项中的每个内容项仅对应于被接受为匹配的多种所接收到的话语中的一个所接收到的话语。
[0086] 一般而言,在一个方面,用户界面使交互应用的开发者能够选择通用话语模式以包括在交互应用中。每个通用话语模式跨越对应于通用话语模式的一个或多个样本话语的集合。用户界面公开可用的通用话语模式的集合。将机器学习技术自动应用于存储的样本话语、存储的通用话语模式或由交互应用的开发者提出的样本话语,以识别附加的通用话语模式。由用户界面公开可用的通用话语模式的集合中的附加的通用话语模式。
[0087] 实现方式可以包括以下特征中的一个或者两个或多个的组合。将开发者的提出的样本话语与存储的样本话语或存储的通用话语模式进行匹配,以识别附加的通用话语模式。正在为特定行业的企业开发交互应用,并且至少一些通用话语模式可用于另一行业的交互应用的开发者。响应于开发者提出用于交互应用的样本话语,自动建议在交互应用中包括特定的通用话语模式。基于由特定行业中的企业的交互应用的多个开发者提出的相似的样本话语,来识别附加的通用话语模式以包括在集合中。
[0088] 这些和其他方面、特征、实现方式和优点(a)可以表示为用于进行功能的方法、装置、系统、组件、程序产品、商业方法、手段或步骤,以及其他方式,并且(b)将从以下描述和权利要求中变得显而易见。附图说明
[0089] 图1是流程图
[0090] 图2是框图
[0091] 图3呈现了流程信息。
[0092] 图4到图8是树。
[0093] 图9到13是屏幕截图。
[0094] 图14至16是示意图。

具体实施方式

[0095] 这里我们描述改进的交互应用开发平台和过程,我们有时将其简称为“开发平台”。该开发平台具有多种特征,这些特征使交互应用的开发变得快速、简单、适应性强、可扩展和方便等优点。
[0096] 内容优先
[0097] 开发平台的一个特征是它使用了“内容优先”(或以内容为中心)的开发方法。内容优先的开发方法优先考虑应用开发和部署过程的各个方面,这些方面涉及内容开发和最终用户请求与响应之间的关系管理。
[0098] 通用交互模型
[0099] 开发平台的另一个方面是,开发平台不需要开发者或管理员(直接或间接地)手动创建整个交互模型,而是提供了预先填充的通用交互模型,该通用交互模型可以处理几乎任何最终用户请求,而不需要开发者或管理员的输入。如下所述,用户可以定制开发平台来处理任何异常请求。通用交互模型是抽象的,并且在全球范围内适用于各种各样的现有和未来的助理平台、给定垂直市场内的各种各样的企业以及各种各样的垂直市场。
[0100] 例如,下面的硬编码交互模型只能支持两个用户请求:欢迎和天气。
[0101] 意图:{
[0102] 名称:“WelcomeIntent”,
[0103] 样本:[“打开天气应用”、“与天气应用对话”]
[0104] }
[0105] 意图:{
[0106] 名称:“GeneralWeatherIntent”,
[0107] 样本:[“天气是什么?”、“外面怎么样”、“今天天气怎么样?”][0108] }
[0109] 意图:{
[0110] 名称:“WelcomeIntent”,
[0111] 样本:[“打开天气应用”、“与天气应用对话”]
[0112] }
[0113] 相比之下,开发平台的通用交互模型由于抽象的性质,可以管理欢迎、天气和其他几个用户请求。
[0114] 意图:{
[0115] 名称:“VoicifyGeneralQuestionIntent”,
[0116] 样本:[“{询问}是什么?”、“{询问}怎么样”]
[0117] }
[0118] 为了演示“, 什么是{询问}”的抽象话语模式可以处理遵循抽象话语模式的用户请求,其中{询问}值可以被动态确定。
[0119] 图形遍历和内容索引搜索
[0120] 开发平台的另一个方面是,通用交互模型确定在哪里搜索内容以用于响应请求的方式是基于图形遍历和内容索引搜索。这种图形遍历和内容索引搜索的某些特征在均于2018年6月5日提交的美国专利申请16/000,805、16/000,799、16/000,789、16/000,798以及授权的美国专利10,235,999中有更详细的描述,这些专利申请通过引用其整体并入本文。
[0121] 问题和答案开发样本
[0122] 交互应用通常定义一组问题和答案,以通过适当的响应(答案)来回复最终用户的请求(问题)。它就像一个网站内的一组常问的问题(即FAQ),仅由语音问题的语音答案来处理。在典型情况下,请求被期望是问题,响应将是问题的答案,使用开发平台为应用创建特定交互模型的基本过程非常简单,并且该基本过程包括三个步骤:
[0123] 1.调用适合特定交互模型的模板类型。例如,问题和答案的模板表示由一组对应于问题的样本话语短语和对应于答案的内容响应组成的对象。
[0124] 2.输入并存储模板类型的内容项。使用上面的示例,用户将输入表示对问题的响应(答案)的内容。
[0125] 2.输入并存储人们可以问询问题的几种方式(样本话语)。
[0126] 使用输入的内容和模板中包含的问题和信息,开发平台拥有足够的信息来自动处理和生成对最终用户可能提出的基本上任何类型请求的响应,并处理不需要精确匹配的话语变化。例如,使用通用话语模式“我怎么样进行{询问}?”的最终用户请求将映射到开发平台的通用交互模型内的单个意图。开发平台使用{询问}的值来搜索内容匹配,该内容匹配将为请求的通用“我怎么样进行”部分和请求的特定{询问}部分两者提供合适的答案。因为{询问}可以具有大范围的表示各种隐式意图的特定值,所以使用通用话语模式支持大范围的请求。在一些实现方式中,这种简单的过程是可能的,因为开发平台的通用交互模型包括比将用于定制开发或流程设计器开发中的特定交互模型的相对更少的不同意图(话语模式),并且通用交互模型使用如下所述的开放式槽。换句话说,通用话语模式表示可能的特定意图的范围,所有这些意图都落入广义意图的概念中,并且{询问}值可以在交互模型的处理过程中使用,以准确地消除最终用户的请求所指的广义意图内的特定意图的歧义。
[0127] 开放式槽
[0128] 通用交互模型使用开放式槽,可以通过完整的句子而不是小短语或单个单词来完成。例如,样本话语及其开放式槽可以表示为:“我想{询问}”,其中单词询问表示开放式槽。这种广义的样本话语产生了对各种请求的意图匹配,但不限于“我想买一台计算机”、“我想学习钓鱼”、“我想知道天气是什么”。这些请求表示了最终用户截然不同的意图,但是由单个样本话语模式来表示。
[0129] 更开放式的槽是可能的,因为在运行时,交互应用可以使用其数据流(包括图形遍历和内容搜索)来将每个请求与要在响应中使用的适当内容进行匹配。并且因为请求中的槽的值包含完整的句子和短语,所以交互应用可以进行附加的辅助自然语言处理,诸如关键词提取和变量提取(例如,交互应用将基于请求“我想买一台计算机”来搜索短语“买一台计算机”),即使在端点从助理平台接收到该请求之前在助理平台已经对该请求进行了它的初级自然语言处理之后。
[0130] 因为使用更少但基于模式的开放式(例如,抽象或通用)意图和样本话语来简化通用交互模型,所以开发平台可以将相同的通用交互模型用于(例如,跨垂直市场的竞争对手的正开发的和跨不同的垂直市场的正开发的)许多不同的交互应用。如果需要,每个交互应用还可以包括对通用交互模型的增强,而不影响底层的通用交互模型。
[0131] 我们在广义上使用术语“开放式”(例如,关于槽、意图和话语模式),例如,它所指的元素是抽象的、概括的、潜在地跨越多个不同实例、普遍的、或其他通用的。
[0132] 示例通用交互模型
[0133] 使用开发平台应用开发的应用(交互应用)的示例(非常简化)通用交互模型是:
[0134]
[0135]
[0136]
[0137] VoicifyGeneralQuestionIntent可以通过以下样本来说明:
[0138] 意图:{
[0139] 名称:“VoicifyGeneralQuestionIntent”,
[0140] 样本:[“{询问}是什么”,“怎么样进行{询问}”,“…”]
[0141] }
[0142] 给定通用交互模型的这部分,当应用于通用交互模型时,最终用户的“今天波士顿的天气是什么”的话语将与意图的抽象第一样本话语(是什么?)相匹配,并向端点发送“通用问题意图”并在{询问}槽中包括短语“今天波士顿的天气”。意图是抽象和通用的,因为它只需要指示一个极其广泛的问题类别,诸如是如何?或者怎么样?通用问题意图在任何其他方面都不特定。
[0143] 相比之下,对于在定制应用开发过程中或使用流程设计器开发过程生成的特定交互模型,端点将仅接收请求的{城市}槽中的特定值“波士顿”。
[0144] 自然地,在涉及问题和答案的对话式交互应用的上下文中,“通用问题意图”、措词恰当的综合样本话语集合以及要遍历的对应节点的适当图形,应该使端点业务逻辑能够处理由最终用户发起的基本上任何传入的问题。样本话语的冗长查询槽提供了使端点能够遍历图形并查找适合于各种可能的槽值中的任何一个的内容的信息。
[0145] 因为开发平台的端点可以接收更多的完整短语(“今天波士顿的天气情况”与“波士顿”),所以端点可以将过程应用于更完整(并且可能更复杂或更细微)的短语,使它能够比仅接收意图名称和城市槽更完整和有效地理解请求。这些过程可以包括附加的自然语言理解、关键词提取、情感分析、内容搜索和分析处理。如果没有更长的短语或表达,这些类型的附加处理通常是不可能的。
[0146] 然后,用于为给定请求获取正确内容的端点业务逻辑遵循前面引用的专利申请和专利中讨论的数据流,如图2所示。该过程涉及本地助理平台向交互应用的端点发送请求数据,然后交互应用通过以下步骤来确定要返回的响应:
[0147] 1.验证收到的请求。
[0148] 2.遍历图形以确定要搜索的预期内容区域。
[0149] 3.根据由内容管理系统用户创建的索引内容进行内容搜索。
[0150] 4.请求和响应的附加处理,诸如第三方网钩(webhook)请求和分析跟踪
[0151] 5.构建返回到本地助理平台的响应。
[0152] 通用交互模型编辑
[0153] 当在交互平台上创建交互应用时,它被给定基本交互模型,该基本交互模型具有由交互平台的主机格式化的若干意图。许多应用将按原样使用这种交互模型,并且永远不需要更新它。
[0154] 虽然许多开发者不一定需要更新或增强开发平台的通用交互模型,因为它的意图和样本话语是抽象的,并且具有广泛的适用性,但是更高级的应用可能需要对通用交互模型进行附加的控制。对于这些情况,交互平台使用户能够直接更改开发平台交互模型,并允许平台在部署期间自动将更改转换为特定的交互模型。这个过程如图3所示。
[0155] 这些更新和更改不适用于直接更改基本交互模型。相反,对基本交互模型的更新和更改被存储为离散更改的集合。更改的每个集合都有时间戳,以保存更改的历史和时间顺序。
[0156] 如图3所示,在一个简单的示例中,由交互平台提供的基本通用交互模型302可以处理意图1(304)和意图2(306)。如前所述,每个意图都包括多个样本话语,最终用户可以说这些样本话语来指示触发交互助理的特征的意图,并且该意图将具有零到多个槽,这些槽允许从话语中提取特定的数据值。
[0157] 开发者可以通过定义对现有意图的更新(诸如意图1更新308),来增强基本通用交互模型。这种更新可以包括通过添加或移除样本话语来编辑意图。在一些情况下,平台的主机可以更新基本通用交互模型的意图,诸如意图2更新(310)。在一些情况下,开发者可以向基本通用交互模型添加新的意图312。
[0158] 此外,交互平台可以帮助开发者识别被特定助理平台拒绝的对基本通用交互模型的更改。交互平台跟踪部署的成功314和失败,因此可以更具体地跟踪特定更改或更新的问题,而不是必须依赖于单个完整交互模型的成功和失败的信息。在图中,更新1没有阻止成功部署,但是更新2导致部署失败。
[0159] 交互平台向开发者和企业提供关于特定交互模型的更改和更新的历史的信息。该信息为改进交互模型及其开发和部署的管理提供了许多机会。
[0160] 例如,开发者可能会应用更新,并发现应用的性能受到了负面影响。因为交互平台在每次连续部署时维护交互平台的结构和元素的历史,所以开发者可以容易地撤销最近的交互模型更新并重新部署先前部署的版本。
[0161] 当交互模型要被部署到特定的助理平台时,首先通过应用所有先前定义的更改和更新,将它扁平化为部署交互模型。从那里,它被转换成符合对应助理平台要求的特定交互式模型320、322、324并被部署。
[0162] 在一些实现方式中,交互平台可以(例如,通过自动检查重复的开发者更新)确定特定意图对于所有交互应用的所有交互模型都值得更新。在这些情况下,可以在所有交互模型中自动(或者在人工助理下)进行管理更新,以添加、移除或编辑一个或多个意图。
[0163] 语音合成标记语言(peech Synthesis Markup Language,SSML)处理和管理[0164] 诸如Amazon Alexa和Google Assistant的助理平台可以通过呈现文本的可听读出来响应最终用户的命令或陈述(即请求)。可听读出是由助理平台基于交互应用开发者在交互应用的内容项中提供的文本而生成的音频文件。可听读出(生成的音频文件)利用由助理平台托管的计算机生成的语音,该语音被设计成听起来像人类。虽然这些语音旨在听起来像人类,但是语音助理通常以一致的速度并表现出很少的语调或对单词的不同强调,来叙述来自端点的响应中提供的文本。
[0165] 为了给文本的读出提供更像人类的质量,助理平台支持一种称为语音合成标记语言的标记语言。SSML允许交互应用开发者指定应用于将由助理平台读出的文本的效果。SSML的核心是一种基于XML的编程标记语言规范,具有表示“纯文本”的隐含节点类型。标记语言用于告诉语音合成引擎(由助理平台托管)如何从来自端点的响应中提供的文本创建输出音频文件。SSML文件用于调整语音的元素,诸如:
[0166] 单词的发音
[0167] 应用于单词或短语的效果,包括
[0168] 语速/语速
[0169] 音调
[0170] 音量
[0171] 强调
[0172] 要添加的暂停
[0173] 可听语音与录制的音频剪辑的混合
[0174] SSML的完整官方W3C规范可以在这里获得:https://www.w3.org/TR/speech‑synthesis11/.
[0175] 当应用于助理平台时,SSML存在一些固有的挑战。一些挑战是基于助理平台对SSML标准的松散采用。例如,虽然Amazon Alexa或Google Assistant两者都支持SSML,但它们并不一致地支持所有SSML标签,并且在某些情况下,有些标签根本不支持。
[0176] 此外,由于SSML是一种基于XML的编程语言,因此它是使用标签的分层表示来应用的。它借用了类似于HTML(超文本标记语言)用于基于屏幕的网页输出的技术,但SSML的标记应用于可听输出。虽然提供图形界面使交互应用开发者能够将SSML应用于文本是相当容易的,但是创建图形界面(例如,一个适合于非技术用户的界面)来可视化和直观地表示SSML标签将如何影响可听输出是具有挑战性的。
[0177] 我们在这里描述的开发平台提供了一种有效的方法来管理上面提到的挑战。开发平台的特征如下:
[0178] 1.SSML被分段并解析成不同的部分,以进行附加的处理来支持诸如文本到语音的功能。
[0179] 2.使用可定制的规则和详细的错误来验证SSML。验证的结果提供了跨多个助理平台(例如,Google Assistant和Amazon Alexa)的兼容性的见解。
[0180] 3.SSML标记可以被可视化地(图形化地)编辑,而不需要知道关于它的结构、层次、代码或规则。
[0181] SSML处理
[0182] 通过将SSML字符串处理成对象树结构,将定制逻辑应用于该树结构,并将该对象树结构处理回SSML字符串,所有这三个特征以及其他特征都成为可能。
[0183] 在第一步中,处理器将SSML字符串预处理成可以解析的格式化部分,然后扫描分段的SSML字符串以查找XML节点和纯文本,并将它们形成具有许多父代子代关系的树。树中的每个节点都有属性,如SSML元素名称、SSML元素的属性以及对其所有子代的引用。
[0184] 例如,下面的SSML字符串将被预处理,然后转换成用代码表示的后续树结构。
[0185] 原始SSML字符串:
[0186] “<说出>这是我的纯文本<强调平=\”强\”>此处有些强调。并且此处还有音频剪辑<音频src=\”https://a‑url.com/an‑audio‑file.mp3\”/><韵律速度=\”+50%\”>有一些效果和说成(say‑as)<说成解释成=\”数字\”>123”[0187] 预处理步骤然后产生以下格式化的预处理SSML:
[0188]
[0189] 在下一步中,对经过预处理和格式化的SSML进行解析,以产生如图4所示的经过处理的SSML数据结构。
[0190] 通过基于节点的名称和属性以及每个节点的以下子代生成属性XML元素和属性,可以处理图4的结构化树以恢复原始的SSML字符串。因为恢复原始的SSML字符串很简单,所以可以将节点添加到数据结构中,然后在恢复的SSML字符串中表示,该恢复的SSML字符串可以由本地助理平台或文本到语音服务处理。换句话说,当在数据结构中表达SSML字符串,然后返回到助理平台或文本到语音服务通常期望的SSML格式时,可以进行操作。
[0191] 验证和规则引擎
[0192] 使用这种树结构,开发平台能够根据规则的集合来验证底层SSML。除此之外,规则可以定制,以适应不同平台支持SSML的不同元素的方式之间的差异。例如,Alexa支持<语音/>元素,而Google不支持,并且Google对<韵律/>元素的最小和最大速度值与Alexa不同。
[0193] 可以为将向其提供开发平台的SSML字符串的每个助理平台生成规则的集合或“规则书”。规则的集合可能包含以下内容:
[0194] 该助理平台支持的SSML元素列表
[0195] 每个元素的规则的子集
[0196] 元素的允许属性
[0197] 这些属性的允许值
[0198] 最小/最大值
[0199] 精确值
[0200] 这些属性值的允许的单位
[0201] 允许的子代元素类型
[0202] 完整字符串中的元素的最大数量
[0203] 验证过程从(多个)第一节点开始遍历树。验证过程通过以下方式验证每个节点:
[0204] 检查元素类型在支持的元素类型的列表中
[0205] 如果不是,验证过程将返回错误,陈述特定元素无效
[0206] 根据该类型元素的允许属性来检查节点的每个属性
[0207] 如果有不允许的属性,验证过程将返回错误,陈述特定元素上不允许的属性[0208] 根据该属性的允许值来检查节点的每个属性的值
[0209] 如果有一个值不符合最小/最大值或确切的允许值,则验证过程将返回错误,陈述精确元素、精确属性和实际的允许值,以及给定值不符合的原因
[0210] 根据该属性的允许单位类型来检查每个属性值的单位
[0211] 如果给定的单位作为无效的属性值,则验证过程将返回错误,陈述给定的单位、属性和不允许它的元素
[0212] 检查节点的直接子代是否在四个节点允许的子代类型中
[0213] 如果有任何子代节点不在允许的子代类型中,则验证过程将返回错误,该错误带有特定节点类型不允许的子代类型的名称。
[0214] 根据上面的相同逻辑集合检查节点的子代中的每一个,直到树中没有元素需要检查并且所有检查的元素都符合规则,此时树被认为是有效的。
[0215] 示例
[0216] 有效类型:
[0217] 给定的规则书具有以下允许的元素:说出、说成、韵律、中断、音频[0218] 提供的SSML字符串是:<说出>这是文本<叫喊>这是更多文本[0219] 验证过程将返回错误,说明:“叫喊不是支持的SSML元素”。
[0220] 有效属性:
[0221] 给定的规则书具有以下允许的类型:韵律
[0222] 它具有以下允许的属性:速率、音调、音量
[0223] 提供的SSML字符串为:<说出>这是文本<韵律强调=”大声”>这是更多文本
[0224] 验证过程将返回错误,说明:“强调不是韵律类型的支持属性”
[0225] 有效属性值:
[0226] 给定的规则书具有以下允许的类型:韵律
[0227] 它具有以下允许的属性:速率
[0228] 允许的值为:>‑50%和<+200%
[0229] 提供的SSML字符串是<说出><韵律速率=”‑80%”>这是缓慢的[0230] 验证将返回错误,说明:“‑80%低于韵律的速率属性的最小值‑50%”有效的属性单位
[0231] 给定的规则书具有以下允许的类型:韵律
[0232] 它具有以下允许的属性:速率
[0233] 允许的单位:%
[0234] 提供的SSML字符串是<说出><韵律速率=”+100dB”>这是大声的[0235] 验证将返回错误,说明:“dB不是韵律的速率属性的有效单位,唯一允许的单位是%”
[0236] 有效的子代类型:
[0237] 给定的规则书具有以下允许的类型:说成
[0238] 它具有以下允许的子代类型:纯文本
[0239] 提供的SSML字符串是<说出><说成解释成=”地址”>拱街33号,<强调水平=”强”>波士顿,MA
[0240] 验证将返回错误,说明:“说成不允许强调元素”
[0241] SSML分段
[0242] 因为某些语音助理和文本到语音工具支持不同的SSML元素,并且有时支持对应的支持元素的不同属性,所以开发平台可以通过分段树的不允许部分来为一个助理平台调整不兼容的SSML以使其得到支持。
[0243] 分段过程涉及选择不允许的SSML元素类型,并将其从树中移除,而不影响该元素的子代。重要的是不要影响子代,以便保持应用于子代的任何其他允许的“父代”效果。分段过程取决于需要进行分段的位置数量来将原始树分成多棵树。
[0244] 例如,Alexa支持Google不支持的<语音>标签。因此,如果需要,开发平台可以分段使用<语音>的SSML元素,以便与Google兼容,并移除这些元素,同时保留其他效果。
[0245] 考虑以下SSML字符串:
[0246]
[0247] 它具有图5所示的树表示。
[0248] 开发平台将基于<语音>元素进行分段,并创建两棵树(分离的分段或分支),如图6所示。
[0249] 在这两个分离的分段中,开发平台将原始树划分为在左段完全有效的元素,以及在右段将无效的元素。然后,分段过程可以只处理左分支,或者可以更改右分支,以移除<语音>元素,从而得到如图7所示的两棵树(分段、分支)。
[0250] 现在这两棵树都被认为是有效的,因此可以重新合并成一个有效的树,如图8所示。
[0251] 现在已经构建了新的有效树,开发平台可以将其重新组装回有效的SSML字符串,从而导致:
[0252]
[0253] 该字符串可以被提供给Google助理平台,而不违反Google对SSML定义的解释。
[0254] 分段过程也递归地工作,因此如果有“N”个嵌套元素需要被分段,它可以被分成“N”+1棵树,并通过将分段和移除的元素的子代向上移动到它们的原始父代元素来适当地重新组装。
[0255] 然后,分段过程可以与规则引擎一起使用,以通过分段规则被破坏的原始树,从无效的SSML字符串自动生成有效的SSML字符串。
[0256] 分段过程也可以单独应用,以允许使用分离的树来运行定制逻辑。例如,一些文本到语音服务支持<音频>元素,而其他服务则不支持。因此,当试图从具有<音频>元素的SSML生成音频文件时,分段引擎可以单独对树进行分段,然后生成输出语音音频文件,并保持音频文件分离但有序。
[0257] 例如,考虑SSML字符串:
[0258]
[0259] 分段引擎会将其分成三个不同的SSML字符串:
[0260]
[0261]
[0262] 使用这三个不同的字符串,开发平台可以单独处理它们以进行文本到语音转换,从而生成三个.mp3文件,这些文件可以作为整个输入的完整表示连续播放。
[0263] 用于表示和编辑SSML的可视(图形)工具
[0264] 如图9和10所示,为了使SSML字符串的创建和编辑即使是非技术用户也能容易地完成,而不必理解SSML的元素、规则和代码格式,开发平台包括可视(例如,图形)编辑器(工具),该编辑器包括:
[0265] 使用以下内容的SSML结构的可视(例如,图形)表示,
[0266] 每种元素类型的图标表示
[0267] 每种元素类型的颜色表示
[0268] 形状和嵌套
[0269] 一个可视化工具,用于将SSML元素添加到字符串中,并将值分配给具有预配置设置的属性
[0270] 可视工具(我们有时可互换使用术语“可视”和术语“图形”)使用户能够使用支持选项的菜单将SSML效果添加到输出SSML字符串。选择每个选项会导致菜单发生更改,以定制该元素类型的适当可用属性。
[0271] 例如,用户可以突出显示作为要被阅读的句子102的部分的文本100的单词或短语,以响应交互助理的最终用户。然后,用户可以通过打开SSML菜单104并选择效果工具106将突出显示的文本片段包装在例如<韵律速率=”…”>元素中。在这种情况下,效果工具是可用于更改文本的突出显示部分的三个工具之一(另外两个是“说成”112和“语音”114)。该菜单还使用户能够插入中断108或音频110。当调用效果工具时,菜单更改到子菜单116,该子菜单呈现与刚刚选择的元素类型的属性相关联的图标。在这个示例中,子菜单116中的图标包括速度118、音调120、强调122和音量124。如果用户随后调用例如速度图标118,则菜单更改为子菜单126。然后,用户可以选择几个预选速度128之一,或者可以指定定制速度值130。在做出选择或指定了定制速度值后,用户可以调用“添加”选项132来使文本框中的文本被更新以反映放置在文本中其预期位置的新SSML元素。
[0272] 如图10所示,由可视工具呈现的SSML的可视表示现在包括图标134,图标134图形地建议或表示SSML元素将添加到SSML字符串的突出显示的单词或短语的效果。在视觉表示中呈现的这个图标与用于菜单选项中的元素的相同图标136相匹配。该图标还包含将受一个或多个效果影响的单词或短语138。如下所述,效果可以嵌套在对单词的效果的嵌套关系中,或者受影响的单词将以直观的方式呈现给用户。
[0273] 例如,对于具有诸如速率、音调、音量或强调的比例值的元素,视觉工具在图标旁边呈现小的垂直值指示符140,以示出当前值142在比例上的位置。SSML可视工具的用户还可以使指针悬停在图标或比例指示符上,以查看工具提示144,该工具提示144解释包括名称、值等元素的细节。然后用户可以点击工具提示来打开该元素的SSML菜单145,其中用户可以编辑给定值147,然后调用更新控件164,或者可以通过调用移除控件166来移除给定文本的效果。如示例170的部分所示,可视工具使用户能够阅读文本并看到将要应用的效果以及这些效果是如何嵌套的。在这种情况下,在没有任何效果的短语“This speech will be read out”之后,单词“slow and loud”将被缓慢读出,并且单词“and loud”也将被大声读出。在单词“with”之后,在短语“abreak in between”之前插入一个中断。从该示例中可以看出,用户可以容易地添加、编辑和移除一个或多个效果,并且容易地嵌套它们,并且可以直观地理解这些效果将如何以嵌套的方式应用于句子中的单词和短语。
[0274] 除了交互式图标和比例指示符之外,SSML的视觉表示还包括对应于给定效果的彩色编码背景146、148(例如,速度可以总是由粉红色表示)。这些背景还具有圆形“药丸”形端部150、152,以帮助指示给定效果的开始和结束。这些视觉元素(例如,药丸形状的图标)也可以彼此嵌套,以显示SSML元素本身如何彼此嵌套。例如,音量图标154可以嵌套在速度图标156内。当SSML元素作为子代嵌套在另一SSML元素中时,视觉表示将向父代的背景“药丸”的末尾添加小填充158,以示出父代在子代结束时结束。
[0275] 该可视工具包括被称为“显示原始SSML”的按钮160,该按钮可被调用来显示包括内嵌标记的SSML字符串162的代码版本。
[0276] 可视表示也可以像普通的文本框一样直接内嵌编辑,包括通过退格移除SSML元素,或者移除文本框中的“药丸”实体。
[0277] 图9和10示出了使用可视工具的每个不同阶段的示例,包括向没有原始元素的SSML字符串添加新元素、元素彼此嵌套,其中每个元素具有其自己的可视表示,以及悬停和编辑状态如何与菜单重新打开一起工作以允许做出更改。
[0278] 其他功能
[0279] 开发平台提供了交互模型的单个抽象表示,能够基于单个一致格式构建和管理广泛的特定交互模型。开发者可以依赖单个的通用交互模型,或者如果需要,可以在开发平台内定制交互模型。然后,开发者的工作产生的原始或定制的通用交互模型可以在部署用于不同的助理平台之前,自动转换为诸如Amazon Alexa或Google Assistant的助理平台所需的语法。
[0280] 一旦特定的交互应用已经被开发并与特定的助理平台一起部署,基于存储在开发平台对通用交互模型的表示中的信息(例如意图、槽、模式和样本话语),相同的特定交互应用可以被容易地部署到其他助理平台。例如,最初部署到Amazon Alexa或Google Assistant的特定交互应用,后来可以基于开发平台对通用交互模型的表示部署到Samsung Bixby。平台的通用交互模型可以转换并映射到Samsung Bixby结构,以用作交互模型,并且然后使用特定交互应用开发的模型部署到Bixby平台。
[0281] 开发平台的通用交互模型利用了通用的抽象意图和开放式槽类型,为话语匹配提供了更大的灵活性。这种更大的灵活性支持其他功能,包括不需要更新通用交互模型即可添加新内容,因此不需要重新部署或重新认证。不需要编码即可创建交互应用的能力使广泛的非技术用户群能够创建语音、聊天和其他交互应用。开发平台还允许用户在不管理业务逻辑的情况下管理内容,而内容、业务逻辑和意图在定制或基于流程的工具中紧密耦合。
[0282] 开发平台可以提供附加的和定制的自然语言处理,以补充由助理平台完成的自然语言处理。一个原因是该平台不需要使用具有特定于数据类型(非开放式)槽的显式(非抽象)意图,这在功能上是受到限制,并且提供较少的可以在开发平台上处理的对话上下文。
[0283] 如图11所示,在交互平台的开发者用户界面402中,所示的交互模型页面提供了通用问题控件406。调用该控件公开了用于各个样本话语模式408的其他控件的列表403。第一个这样的控件406使用户能够添加新的短语(新的样本话语模式)。开发者可以在框中输入新的短语410,可以通过点击控件412来插入一个或多个槽,并且当完成时,开发者可以点击添加短语控件414来使得新的短语被添加到正在处理的特定交互模型。
[0284] 用于各个样本话语模式的其他控件中的每一个都示出了现有的样本话语模式416,并提供控件418以使开发者能够编辑短语和垃圾控件420以使得能够从正在开发的交互模型中删除样本话语模式。在页面左侧的任务栏422中,包括表示已经为企业开发或正在为企业开发的语音应用的图标423。调用其中一个图标将切换到用户界面来表示对应语音应用的特征。开发平台的功能易于扩展;用户可以简单地通过提供新的样本话语来更新交互模型,而不需要创建附加的意图和对应的特征映射。
[0285] 例如,如图13所示,开发者可以为短语“你在哪里{询问}”添加新的话语模式520。使用这种附加的话语模式,开发者可以配置任意数量的样本话语来处理遵循相同模式的问题(以前面说明的方式);诸如“你在哪里,罗密欧”或者“你在哪里,我去年夏天遇见的朋友”。
[0286] 因为开发平台不需要说出的短语(实际的最终用户话语)与特定的样本话语的精确匹配,所以该平台可以以较低的冲突险处理数千个独特的内容项。
[0287] 图12示出了交互平台的开发者用户界面的页面502,其中开发者可以设计交互模型的一部分。在所示的示例中,正在开发的交互模型将与涉及职位空缺的交互应用一起使用。这里,开发者已经为给定意图输入了不同样本话语的三个变化504、506、508。在运行时,交互应用将为以下最终用户请求中的任何一个找到该意图的匹配:“有任何销售位置吗”、“有任何销售职位吗”、“今天有任何销售位置可得到吗”。开发平台允许为抽象意图输入几个样本话语,而不是为每个潜在意图输入一个特定话语。
[0288] 开发平台可以基于开发者话语的内容和来自特定行业内的多组话语模式的基于机器学习的结果来自动化附加的话语模式建议。
[0289] 当开发者输入样本话语时,平台可以基于样本话语的内容来识别样本话语所表示的模式。作为示例,如果开发者输入样本话语“有任何销售位置可得到吗”(504),平台可以推断这是通用问题类型的话语以及关键短语“销售位置可得到”。基于这些信息,平台可能会建议添加以下样本话语,以涵盖最终用户可能会询问有关销售位置的问题的附加方式:
[0290] “有销售位置可得到吗”
[0291] “你们有任何销售位置可得到吗”
[0292] “有哪些销售位置可得到”
[0293] 建议的样本话语是基于通用问题类型的平台的标准交互模型内的样本话语(402)。
[0294] 自动话语模式建议支持其他特征,包括以下特征。开发平台能够从开发平台存储的话语中抽取样本话语变化,并将它们与开放式意图的样本话语(样本话语模式)进行比较,以确定话语变化是否有效(即,与样本话语模式之一显式相关)。如果样本话语变化不符合现有的话语模式,则在内容搜索期间可能找不到它。为了防止这种情况,开发平台可以建议基于话语变化向定制的交互模型添加新的话语模式。这种比较是使用交互模型的话语模式来完成的,该话语模式包含几个单词以及槽变量,并确定给定的新话语变化是否符合话语模式。如果它不符合精确的模式,开发平台可以确定新话语模式的多个选项,以添加到交互模型的话语模式集合中。这是通过将整个新的样本话语分解成新的样本话语中的单个单词,然后通过使用表达式中的第一个或最后一个单词中的1‑3个来确定要添加的最开放的话语模式来完成的,这些单词可以是动词或冠词。然后,它创建新的模式,该新的模式带有将表示话语模式中的剩余短语的槽。
[0295] 例如:如果开发者添加了“我将订购一盒饼干”的新样本话语变化,但是它不对应于任何现有的样本话语模式,则开发平台可能会建议向样本话语模式添加类似“我将{询问}”的内容。
[0296] 平台可以进一步简化基于机器学习(ML)模型的话语模式的创建,该机器学习(ML)模型是对特定行业内的话语模式进行训练的。平台存储交互模型(包括话语模式),并基于行业垂直对其进行分类。给定垂直内的交互模型的定制内容被用作训练数据,以确定相同垂直内的新交互应用的建议样本话语模式。
[0297] 例如,图14示出了医疗保健行业中的三个已知客户A、B和C。如果大多数医疗保健客户(在该示例中为客户A和客户B)将常用短语540(样本话语模式)添加到他们相应的交互应用中,则开发平台自动识别该样本话语模式和特定垂直行业(在该示例中为卫生保健)之间的相关性,并且能够开始建议该样本话语模式以包含在由该行业中的其他客户正在开发的交互应用程序中。
[0298] 例如,随着时间的推移,交互平台收集(识别)在医疗保健行业中的交互应用中使用的话语模式。ML模型确定大多数应用对与ER就诊相关的问题使用不同的常见话语模式:
[0299] "我要等多久才能进ER"
[0300] "ER要等多长时间?"
[0301] “ER有多忙”
[0302] 如果医疗保健行业中的企业的开发者使用上述短语之一创建新的样本话语,则开发平台将基于ML结果自动向开发者建议使用附加的话语模式。
[0303] 图15示出了客户添加常见样本话语“ER等待时间”的示例,该示例随后由开发平台向剩余客户548建议546。
[0304] 图16展示了由客户A、B和C建议的存储的样本话语550如何可以被用来建议相似的样本话语,甚至对于开发平台并不特别知道在医疗保健的企业的开发人员(客户D)也是如此。“ER等待时间”是可能与医疗保健相关的短语,并且当开发平台确定这一点时,可以建议552作为话语模式的部分的其他行业相关短语供开发者使用。
[0305] 开发平台存储每个交互应用的交互模型的存档快照。该存档快照可用于多种目的,例如作为基于话语失败的版本控制和性能分析的机制。
[0306] 开发平台还使用更传统的内容表单样式来管理内容,这种样式不需要大画布的交叉项。
[0307] 因为开发平台不需要定制编码或端点业务逻辑的实现方式或设计,所以非技术管理员更轻松地创建丰富的对话体验,同时专注于内容。
[0308] 其他实现方式也在以下权利要求的范围内。
QQ群二维码
意见反馈