来源:@微软中国MSDN,源地址:http://weibo.com/p/1001603898586285925224
使用语音命令,延伸 Cortana 与您的应用程序所提供的功能。启动应用程序,启动您的应用程序并执行命令,或如这里所讨论,将您的应用程序功能直接并入Cortana UI。
语音命令定义在语音命令定义 (VCD) 档中,它是一种具有特定用途的单次语言表达,会透过 Cortana 导向已安装的应用程序。 (VCD 档案是一个XML 档案,定义一个或多个语音命令,每个命令都有特定的用途。)
VCD 中的每个语音命令定义可以有不同的复杂度,且可以支持任何从单一、限制的语句,到更具弹性、自然的语言表达集合,而全部表示同样、特定的用途。
目标应用程序可以在前景 (应用程序取得焦点) 或背景启动 (Cortana 保持焦点但提供来自应用程序的结果) ,这根据互动的复杂性而定。例如,需要额外内容或用户输入的语音命令 (例如传送讯息给特定的联系人) 最好在前景应用程序处理,而基本命令则可由 Cortana 透过背景应用程序处理。
整合应用程序的基本功能,并提供一个中心进入点,让用户不需要开启应用程序就能完成大部分的工作,让 Cortana 成为您的应用程序与用户之间的桥梁。在多数情况下,这可以为使用者节省很多时间和精力。
经过亲切体贴地设计和实作,语音可以成为用户与您的应用程序互动之可靠又有趣的方式,可补充或甚至取代键盘、鼠标、触控和手势。
Cortana 互动设计
这些指导方针与建议会说明您的应用程序如何充分利用 Cortana 与使用者互动,以协助他们完成工作,并清楚传达发生的过程。
Cortana 可让应用程序在背景执行,并提示使用者进行确认或去除混淆,然后根据语音命令的状态提供用户回馈。过程轻量且快速,而且不会强迫使用者离开 Cortana 体验或切换内容到应用程序。
虽然使用者应该感觉是 Cortana 协助让过程变得尽可能轻松,但您可能希望 Cortana 也指明是您的应用程序完成了工作。
我们使用已整合到 Cortana UI,名为 Adventure Works 的旅行计划及管理应用程序 (如下所示),示范我们讨论过的多种概念和功能。
对话式写入
成功的 Cortana 互动需要您在制作文字到语音转换 (TTS) 和GUI 字符串时遵循一些基础原则。
依人们说话的方式撰写。不要在自然语调上过度地强调文法准确性。举例来说,我们听来顺耳的口语简写,如 “想要” 或 “要去”,对于文字到语音转换 (TTS) 念出是可以接受的。
请尽可能且自然地使用隐含的第一人称时态。例如,”正在寻找您的下一个 Adventure Works 行程” 表示某人正在进行寻找,但并未使用 “我” 这个字来说明。
使用一些变化让您的应用程序听起来更加自然。提供 TTS 与图形用户界面 (GUI) 不同版本的字符串,以更有效地来说出同样的事情。例如,”您想要看什么电影?” 可以替换成像是 “您想要观赏哪部电影?”。人们在说同样的事情时,不会每次都是完全相同的方式。只要确定您的 TTS 和 GUI 版本保持同步。
在您的响应中谨慎使用 “确定” 和 “正确” 这类的词组。虽然它们可以提供通知和进度上的感受,但频繁使用且没有变化会变成重复的感受。
注意 只在 TTS 中使用通知词组。 因为 Cortana 画布上的空间有限,请不要在对应的 GUI字符串中重复它们。
在您的响应中使用缩写,让互动更自然且节省 Cortana 画布上的空间。例如,”我找不到该电影” 而不是”我没有办法找到该电影”。写给耳朵,而不是眼睛。
使用系统了解的语言。使用者通常会重复要表达的字汇。 了解您的显示项目。
在您的响应中透过从集合内或替代性的响应,轮流或随机选取来产生变化。例如,”您想要看什么电影?” 和 “您想要观赏哪部电影?”。这样能让您的应用程序听起来更自然且独特。
本地化
若要使用语音命令启动动作,您的应用程序必须在用户于装置上选取的语言中登录语音命令(Settings > System > Speech> Speech Language)。
您应该本地化应用程序响应的语音命令,以及所有 TTS 和 GUI 字符串。
您应该避免冗长的 GUI 字符串。 Cortana 画布提供三行的响应,并会截断超过的字符串。
影像资源和缩放
通用 Windows 平台 (UWP) app 可以根据特定的设定和装置功能,自动选取最适当的应用程序标志影像 (高对比度、有效像素及地区设定等)。您需要的就是提供影像,并确保您在应用程序项目内为不同的资源版本使用适当的命名惯例和文件夹组织。如果您未提供建议的资源版本,则视使用者的喜好设定、能力、装置类型及位置而定,辅助功能、本地化及影像质量可能会有问题。
您要使用限定符命名资源。资源限定符是文件夹和文件名的修饰词,用来识别内容中应该使用的特定资源版本。
标准命名惯例是”foldername/qualifiername-value[_qualifiername-value]/filename.qualifiername-value[_qualifiername-value].ext”。
例如:images/en-US/logo.scale-100_contrast-white.png只是指在程序代码中使用的根文件夹和文件名: images/logo.png。
即使您目前不打算提供本地化或多种分辨率资源,仍建议您在字符串资源文件上标示默认语言 (如”en-US\resources.resw”),并在影像上标示默认缩放比例 (如”logo.scale-100.png”)。不过,您应该提供 100、200及 400 的缩放比例的资产。
重要 Cortana 内容砖有效的图示大小为:
- 68w x 68h
- 68w x 92h
- 280w x 140h
示例
这个范例示范在 Cortana 中背景应用程序的端对端工作流程。我们使用 AdventureWorks 应用程序来取消到拉斯韦加斯的行程。
以下透过影像叙述步骤:
- 用户点选麦克风以起始 Cortana。
- 使用者说出 “取消我的 Adventure Works 拉斯韦加斯行程”,以在背景中启动 Adventure Works 应用程序。应用程序同时使用 Cortana 语音和画布两者与用户互动。
- Cortana 转换到递交画面,给予使用者通知回馈 (“我会取得 Adventure Works。”)、一个状态栏,与 [取消] 按钮。
- 在这个范例中,用户有许多行程符合查询,因此应用程序提供去除混淆画面列出所有符合的结果,并询问「您想要取消哪一个?」
- 用户指定 “拉斯韦加斯科技会议” 项目。
- 由于取消无法复原,应用程序提供确认画面,询问使用者确认意图。
- 使用者说:”是”。
- 应用程序提供完成画面显示操作结果。
我们将研究这些步骤的详细资料如下。
提交
寻找行程,没有提交画面
包含递交画面的取消行程
应用程序在工作响应上花费小于 500 毫秒,不需要其他的用户信息与 Cortana 的进一步参与即可完成 (除了显示完成画面)。
如果应用程序需要 500 毫秒以上才能响应,Cortana 提供递交画面。应用程序图标与名称将会显示,且您必须同时提供 GUI 与 TTS 递交字符串,以指出语音命令已经正确地了解。递交画面最多显示 5 秒;如果您的应用程序没有在这段时间内响应,Cortana 会显示一般错误画面。
提交画面的 GUI 与 TTS 指导方针
清楚地指出工作正在进行。
使用现在式时态。
使用动作动词,确认哪些工作正在初始化以及参照的指定实体。
使用一般动词命令并非认可被请求的、尚未完成的动作。举例来说,使用 “正在寻找您的行程” 代替 “正在取消您的行程”。在这个范例中,如果没有结果回传,使用者不会听到如 “正在取消您的拉斯韦加斯的行程…找不到前往拉斯韦加斯的行程”。
假如应用程序仍须解析请求的实体,请务必清楚描述工作尚未开始。例如请注意我们说「正在寻找您的行程」而不是「正在取消您的行程」,因为可能没有符合的行程,或是有多个符合的行程,而我们还不清楚结果如何。
GUI 与 TTS 字符串可以相同,但并非必要。尝试让 GUI 字符串保持简短,避免截断以及与其他视觉资产重复。
进度
包含进度画面的取消行程
当工作在步骤间要花费一点时间时,应用程序必须在进度画面上介入并更新信息,告知用户正在发生的事情。应用程序图标将会显示,且您必须同时提供 GUI 与 TTS 进度字符串,以指出工作正在进行。
您应该提供一个包含启动参数的链接到您的应用程序,以在适当的状态下启动应用程序。这可让使用者检视或完成工作本身。Cortana 提供链接文字 (例如”移至 Adventure Works”)。
进度画面会分别显示 5 秒钟,之后必须紧接着另一个画面,否则工作将会逾时。
这些画面可以接在进度画面之后:
- 进度
- 确认 (明确,稍后说明)
- 去除混淆
- 完成
进度画面的 GUI 与 TTS 指导方针
使用现在式时态。
使用动作动词命令,以确认工作正在进行。
GUI:如果有显示实体,使用它的参照 (“正在取消这个行程…”);如果没有显示实体,明确地呼叫实体 (“正在取消「拉斯韦加斯科技会议」”)。
TTS:在第一个进度画面,应只包括一个 TTS 字符串。如果需要进一步的进度画面,传送一个空字符串 ({}) 作为您的 TTS 字符串,并只提供一个 GUI 字符串。
确认
包含确认画面的取消行程
有些工作可由使用者命令的性质隐含确认;其他可能更具敏感性的则需要明确确认。下列是何时使用明确确认与隐含确认的指导方针。
在确认画面上的 GUI 与 TTS 字符串,是由您的应用程序指定 (如果有提供应用程序图标,就会取代 Cortana 虚拟人偶的显示)。
客户响应确认之后,您的应用程序必须在 500 毫秒内提供下一个画面,避免进入进度画面。
使用明确确认当…
- 内容正离开用户 (例如传送文字讯息、电子邮件,或社交文章等等)
- 无法复原的动作 (例如购买或删除项目等等)
- 结果可能是令人尴尬的 (例如拨号给错误的人)
- 要求比较复杂的辨识 (例如开放端点的转译)
使用隐含确认当…
- 只储存给使用者的内容 (例如给自己的笔记)
- 没有简单的方式往返 (例如开启或关闭闹钟)
- 工作必须要快速 (例如要快速地撷取想法,以免之后忘记)
- 准确度很高 (例如简单的菜单)
确认画面的 GUI 与 TTS 指导方针
使用现在式时态。
使用明确的、可用 “是” 或 “否” 回答的问题询问使用者。问题应明确地确认使用者正要进行的动作,并且不应该有其他不明确的选项。
针对重新提示给予问题的变化,以防在第一次的语音命令没有被了解。
GUI:如果有显示实体,使用它作为参照。如果没有显示实体,明确地呼叫实体。
TTS:为了清晰起见,一律参照特定的项目或实体,除非它在先前的切换由系统读出。
去除混淆
取消行程 (包含去除混淆画面)
有些工作可能需要用户从列表选取实体以完成工作。
在去除混淆画面上的 GUI 与 TTS 字符串两者,是由您的应用程序指定 (如果有提供应用程序图标,就会取代 Cortana 虚拟人偶的显示)。
客户响应去除混淆问题之后,您的应用程序必须在 500 毫秒内提供下一个画面,避免进入进度画面。
去除混淆画面的 GUI 与 TTS 指导方针
使用现在式时态。
询问使用者可回答的明确问题 (含有标题或任何实体显示的文字行)。
最多 10 个实体可以显示。
每个实体都应该有唯一的标题。
针对重新提示给予问题的变化,以防在第一次的语音命令没有被了解。
TTS:为了清晰起见,一律参照特定的项目或实体,除非它在先前的切换被说出。
TTS:请不要读出实体列表,除非它们少于三个且很简短。
完成
包含完成画面的取消行程
当工作成功完成,应用程序应通知用户请求的工作已经成功完成。
在完成画面上的 GUI 与 TTS 字符串两者,是由您的应用程序指定 (如果有提供应用程序图标,就会取代 Cortana 虚拟人偶的显示)。
您应该提供一个包含启动参数的链接到您的应用程序,以在适当的状态下启动应用程序。这可让使用者检视或完成工作本身。Cortana 提供链接文字 (例如”移至 Adventure Works”)。
完成画面的 GUI 与 TTS 指导方针
使用过去式时态。
使用动作动词明确地声明工作已完成。
如果有显示实体,或它在先前的切换已经有参照,那么只参照到它。
错误
取消行程 (包含错误画面)
当下列其中一个错误发生时,Cortana 会显示相同的一般错误讯息。
- 应用程序服务意外地终止。
- Cortana 与应用程序服务通讯失败。
- 在 Cortana 显示递交画面或进度画面 5 秒后,应用程序无法提供画面。
希望对大家有帮助哦~~
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/109290.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...