[转载]Cortana 设计指导方针

[转载]Cortana 设计指导方针

来源:@微软中国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 字符串时遵循一些基础原则。

6408cdc7jw1ex2yrt0w7yj20lc0cpdib

依人们说话的方式撰写。不要在自然语调上过度地强调文法准确性。举例来说,我们听来顺耳的口语简写,如 “想要” 或 “要去”,对于文字到语音转换 (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 应用程序来取消到拉斯韦加斯的行程。

6408cdc7jw1ex2ywinewrj20kl0rsdi8

以下透过影像叙述步骤:

  1. 用户点选麦克风以起始 Cortana
  2. 使用者说出 “取消我的 Adventure Works 拉斯韦加斯行程”,以在背景中启动 Adventure Works 应用程序。应用程序同时使用 Cortana 语音和画布两者与用户互动。
  3. Cortana 转换到递交画面,给予使用者通知回馈 (“我会取得 Adventure Works。”)、一个状态栏,与 [取消] 按钮。
  4. 在这个范例中,用户有许多行程符合查询,因此应用程序提供去除混淆画面列出所有符合的结果,并询问「您想要取消哪一个?」
  5. 用户指定 “拉斯韦加斯科技会议” 项目。
  6. 由于取消无法复原,应用程序提供确认画面,询问使用者确认意图。
  7. 使用者说:”是”。
  8. 应用程序提供完成画面显示操作结果。

我们将研究这些步骤的详细资料如下。

提交

寻找行程,没有提交画面

6408cdc7jw1ex2yy5663kj20kl0godgk

包含递交画面的取消行程

6408cdc7jw1ex2yzn8vh9j20kl0go75g

应用程序在工作响应上花费小于 500 毫秒,不需要其他的用户信息与 Cortana 的进一步参与即可完成 (除了显示完成画面)。

6408cdc7jw1ex2z0864lbj20lf07sq3c

如果应用程序需要 500 毫秒以上才能响应,Cortana 提供递交画面。应用程序图标与名称将会显示,且您必须同时提供 GUI 与 TTS 递交字符串,以指出语音命令已经正确地了解。递交画面最多显示 5 秒;如果您的应用程序没有在这段时间内响应,Cortana 会显示一般错误画面。

提交画面的 GUI 与 TTS 指导方针

清楚地指出工作正在进行。

使用现在式时态。

使用动作动词,确认哪些工作正在初始化以及参照的指定实体。

使用一般动词命令并非认可被请求的、尚未完成的动作。举例来说,使用 “正在寻找您的行程” 代替 “正在取消您的行程”。在这个范例中,如果没有结果回传,使用者不会听到如 “正在取消您的拉斯韦加斯的行程…找不到前往拉斯韦加斯的行程”。

假如应用程序仍须解析请求的实体,请务必清楚描述工作尚未开始。例如请注意我们说「正在寻找您的行程」而不是「正在取消您的行程」,因为可能没有符合的行程,或是有多个符合的行程,而我们还不清楚结果如何。

GUI 与 TTS 字符串可以相同,但并非必要。尝试让 GUI 字符串保持简短,避免截断以及与其他视觉资产重复。

进度

包含进度画面的取消行程

6408cdc7jw1ex2z3dny6uj20kl0go75e

当工作在步骤间要花费一点时间时,应用程序必须在进度画面上介入并更新信息,告知用户正在发生的事情。应用程序图标将会显示,且您必须同时提供 GUI 与 TTS 进度字符串,以指出工作正在进行。

您应该提供一个包含启动参数的链接到您的应用程序,以在适当的状态下启动应用程序。这可让使用者检视或完成工作本身。Cortana 提供链接文字 (例如”移至 Adventure Works”)。

进度画面会分别显示 5 秒钟,之后必须紧接着另一个画面,否则工作将会逾时。

这些画面可以接在进度画面之后:

  • 进度
  • 确认 (明确,稍后说明)
  • 去除混淆
  • 完成
进度画面的 GUI 与 TTS 指导方针

使用现在式时态。

使用动作动词命令,以确认工作正在进行。

GUI:如果有显示实体,使用它的参照 (“正在取消这个行程…”);如果没有显示实体,明确地呼叫实体 (“正在取消「拉斯韦加斯科技会议」”)。

TTS:在第一个进度画面,应只包括一个 TTS 字符串。如果需要进一步的进度画面,传送一个空字符串 ({}) 作为您的 TTS 字符串,并只提供一个 GUI 字符串。

6408cdc7jw1ex2zapdyi8j20ln0cet9y

确认

包含确认画面的取消行程

6408cdc7jw1ex2zbqc4ztj20kl0gomy0

有些工作可由使用者命令的性质隐含确认;其他可能更具敏感性的则需要明确确认。下列是何时使用明确确认与隐含确认的指导方针。

在确认画面上的 GUI 与 TTS 字符串,是由您的应用程序指定 (如果有提供应用程序图标,就会取代 Cortana 虚拟人偶的显示)。

客户响应确认之后,您的应用程序必须在 500 毫秒内提供下一个画面,避免进入进度画面。

使用明确确认当…

  • 内容正离开用户 (例如传送文字讯息、电子邮件,或社交文章等等)
  • 无法复原的动作 (例如购买或删除项目等等)
  • 结果可能是令人尴尬的 (例如拨号给错误的人)
  • 要求比较复杂的辨识 (例如开放端点的转译)

使用隐含确认当…

  • 只储存给使用者的内容 (例如给自己的笔记)
  • 没有简单的方式往返 (例如开启或关闭闹钟)
  • 工作必须要快速 (例如要快速地撷取想法,以免之后忘记)
  • 准确度很高 (例如简单的菜单)
确认画面的 GUI 与 TTS 指导方针

使用现在式时态。

使用明确的、可用 “是” 或 “否” 回答的问题询问使用者。问题应明确地确认使用者正要进行的动作,并且不应该有其他不明确的选项。

针对重新提示给予问题的变化,以防在第一次的语音命令没有被了解。

GUI:如果有显示实体,使用它作为参照。如果没有显示实体,明确地呼叫实体。

TTS:为了清晰起见,一律参照特定的项目或实体,除非它在先前的切换由系统读出。

6408cdc7jw1ex2ze5tluyj20lg0gtabt

去除混淆

取消行程 (包含去除混淆画面)

6408cdc7jw1ex2zei8pzkj20kl0smdi5

有些工作可能需要用户从列表选取实体以完成工作。

在去除混淆画面上的 GUI 与 TTS 字符串两者,是由您的应用程序指定 (如果有提供应用程序图标,就会取代 Cortana 虚拟人偶的显示)。

客户响应去除混淆问题之后,您的应用程序必须在 500 毫秒内提供下一个画面,避免进入进度画面。

去除混淆画面的 GUI 与 TTS 指导方针

使用现在式时态。

询问使用者可回答的明确问题 (含有标题或任何实体显示的文字行)。

最多 10 个实体可以显示。

每个实体都应该有唯一的标题。

针对重新提示给予问题的变化,以防在第一次的语音命令没有被了解。

TTS:为了清晰起见,一律参照特定的项目或实体,除非它在先前的切换被说出。

TTS:请不要读出实体列表,除非它们少于三个且很简短。

6408cdc7jw1ex2zg16gw3j20lg0d5ab5

完成

包含完成画面的取消行程

6408cdc7jw1ex2zginduhj20kl0bodg8

当工作成功完成,应用程序应通知用户请求的工作已经成功完成。

在完成画面上的 GUI 与 TTS 字符串两者,是由您的应用程序指定 (如果有提供应用程序图标,就会取代 Cortana 虚拟人偶的显示)。

您应该提供一个包含启动参数的链接到您的应用程序,以在适当的状态下启动应用程序。这可让使用者检视或完成工作本身。Cortana 提供链接文字 (例如”移至 Adventure Works”)。

完成画面的 GUI 与 TTS 指导方针

使用过去式时态。

使用动作动词明确地声明工作已完成。

如果有显示实体,或它在先前的切换已经有参照,那么只参照到它。

6408cdc7jw1ex2zixkp9sj20ld09i0te

错误

取消行程 (包含错误画面)

6408cdc7jw1ex2zjibuf8j20kl0bodg8

当下列其中一个错误发生时,Cortana 会显示相同的一般错误讯息。

  • 应用程序服务意外地终止。
  • Cortana 与应用程序服务通讯失败。
  • Cortana 显示递交画面或进度画面 5 秒后,应用程序无法提供画面。

希望对大家有帮助哦~~

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/109290.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 网站的推广方案有哪些_推广方案范例

    网站的推广方案有哪些_推广方案范例做网站推广也已经有了5、6年了,看了很多网站推广的方法方案,网上流传的100种主要推广方法方案都是一样的,2017年又不什么新的100种主要方法方案吗?在这里厦门网站推广公司领众品牌就2017网站推广

    2022年8月3日
    3
  • 那些惊艳的算法们(三)—— 时间轮[通俗易懂]

    那些惊艳的算法们(三)—— 时间轮[通俗易懂]同步发表于:http://blog.lanjingdejia.com/articles/2018/08/13/1534132662997.html从定时任务说起自然界中定时任务无处不在,太阳每天东升西落,候鸟的迁徙,树木的年轮,人们每天按时上班,每个月按时发工资、交房租,四季轮换,潮涨潮落,等等,从某种意义上说,都可以认为是定时任务。大概很少有人想过,这些“定时”是怎样做到的。当然,计算机…

    2022年10月1日
    0
  • python return换行(python中的换行)

    广告关闭腾讯云11.11云上盛惠,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元!代码太长怎么办,反斜杠引号‘’来帮忙!在写list或者较长的字符串时候,或者多个循环造成ide不够用时,就需要代码换行了。主要的代码换行有通用的反斜杠和针对字符串起作用的三引号结构。1.反斜杠对于一般表达式来说,反斜杠后直接回车即可实现续行,使用的关键在于反斜杠后不能用空格…

    2022年4月16日
    318
  • oracle数据库查询语句大全_oracle查询是否存在记录

    oracle数据库查询语句大全_oracle查询是否存在记录1oracle数据库查询表的所有数据–select*from表名;(*代表所有)2oracle数据库查询表中指定字段的值–select字段名1,字段名2,……from表名;3oracle数据库往表中添加数据信息–(添加信息使用insertinto语句)insertinto表名values(添加相对应的数据信息,如果在一个字段名中没有信息可以用“null”nul…

    2022年9月8日
    0
  • 索引初探(三)

    索引初探(三)

    2021年11月25日
    45
  • linux中文镜像文件iso下载地址,linux系统镜像iso文件下载

    linux中文镜像文件iso下载地址,linux系统镜像iso文件下载Asp.NetCore–基于声明的授权翻译如下:当创建身份时,其可以被分配由可信方发布的一个或多个声明.索赔是名称值对,表示主题是什么,而不是主体可以做什么.例如,您可能有驾驶执照,由当地驾驶执照颁发.您的驾驶执照上有您的出生日期…优秀IT技术文章集(最新)(高质量)作者:赵磊博客:h…

    2022年5月10日
    46

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号