SiriKit 新变化:评估优化 App 的语音交互

Stella981
• 阅读 498

作者:Rickey,iOS 开发者,就职于字节跳动

Sessions: https://developer.apple.com/videos/play/wwdc2020/10071/

Siri 能做什么

在 Siri  Human Interface Guidelines 中,Apple 对 Siri 有这样的定义:

Siri makes it easy for people to accomplish everyday tasks quickly using voice, touch, or automation.

Siri 借助语音、触摸和自动化操作让人们更快捷地完成日常工作。

SiriKit 新变化:评估优化 App 的语音交互

而其中,Siri 的语音体验又包括 Assistant 助手、Intents 意图、Shortcuts 捷径、Suggestions 建议、Automations 自动化五个部分。

对话助手 Conversational Assistant 与意图 Intents

Siri 在苹果设备上可以作为一个助手,帮助人们完成各种事情,包括获取信息(查询天气等)和完成任务(给他人打电话)。

作为开发者,我们可以让 Siri 发挥更好的效果。从概念上讲,Intents 指的是我们平时说话的方式。比如发送消息,我们需要知道发消息的对象以及消息的内容,这就是意图。Apple 为这些主要体验都提供了强大的自然语言支持,来识别其中的意图。

SiriKit 新变化:评估优化 App 的语音交互

在不同的 Domain 领域中,Apple 都会提供一组意图用于识别和完成日常的工作,这些 Domain 也被成为 System Intents 系统意图。这些意图会随着对话而产生,用于完成日常任务。

注:而具体的 Domain 和 Intents 的数据可在 Siri - System Intents 中查看到,包括 Audio and video calling(语音视频电话拨打)、Messaging(发送、朗读短信)、Lists and notes(操作笔记、todo 清单)等等。

而又比如想要点一杯咖啡,System Intents 中并没有提供,那就需要开发者自己进行设计。从用例的角度出发,考虑需要用户提供什么信息,需要哪些步骤,如何与用户进行交谈,这就是 Custom Intents。

捷径 Shortcuts 与建议 Suggestions

捷径是许多功能的一个合集,它让用户能更直接的触达某些深层功能。用户也可以创造自己的捷径并进行分享。在此基础之上,Siri 也会对使用过的捷径进行自动的建议(甚至是未使用过但可能使用的捷径),这样可以让用户获得更方便快捷的体验。

SiriKit 新变化:评估优化 App 的语音交互

在捷径 App 中,有许多有趣和有用的内置捷径,用户也可以通过 Automation 进行自定义。并且还可以通过语音控制,快捷触发。

如何为对话进行设计

如果将对话设计为重复的一问一答的方式,是非常低效的。语音交互非常适合简化繁琐的多步操作,特别是那些经常完成的工作。将应用程序设计得非常有层次对那些新用户来说非常有必要,但是使用语音进行交互能够方便那些高级用户,减少中间步骤;与此同时语音也适合那些使用 AirPods 或者正在路上的人,方便他们同时处理多件事情。因此需要尽量保证 Siri 语音对话的良好体验。

模式 Modality

Siri 一共有两种模式:静音模式和语音模式。

在 iOS14 上,如果 iPhone 铃声处于静音,那么 Siri 默认处于静音模式,也就是 Siri 不会讲话,而是以dialog 对话框的 UI 样式进行对话。而语音模式仍会呈现相同 UI,不过同时 Siri 会将对话完整地朗读出来。你需要根据你提供的解决方案,来选择恰当的模式。

SiriKit 新变化:评估优化 App 的语音交互

如果使用系统意图 System Intents 中内置的功能,你不需要任何额外的工作量;而自定义意图 Custom Intents 需要一定的自定义,但依然很方便使用,只需要定义 Siri 使用的对话功能以及 UI 样式即可。Siri 会保证在合适的时候使用合适的对话语句。

对话 Dialog

Siri 团队会尽量确保 Siri 只说需要说的内容,因此只要人们熟悉了 Siri 的功能,Siri 会使用更简短的对话。

Siri 达到这样的是让人们知道从何处去获取信息。如果你的自定义意图 Custom Intents 设计的非常好,人们会经常使用你的捷径,这种情况下,Siri 会简化调用你的捷径时所需要的额外信息,也就意味着使用更少的信息就可以出发捷径。所以,你也有责任设计交互性更好的对话流程。

最佳实践 Best Practices

提问是最好的书签。提问会引导使用者知道他们应该提供什么样的答案,这在你需要使用者提供一些信息的时候非常有效。

请不要使用行话。开发者是专家,但是用户可能不是,尽量使用标准的说法而不是一些口语或者行话,才能保证良好的对话体验。

推荐阅读

当 Widget 遇到智能化

SiriKit 新变化:高品质的 Siri 媒体交互

SiriKit 新变化:让 Intent 更强大

Sirikit 和 Shortcuts 的新特性

关注我们

我们是「老司机技术周报」,每周会发布一份关于 iOS 的周报,也会定期分享一些和 iOS 相关的技术。欢迎关注。

SiriKit 新变化:评估优化 App 的语音交互

关注有礼,关注【老司机技术周报】,回复「2020」,领取学习大礼包。

支持作者

这篇文章的内容来自于 《WWDC20 内参》。在这里给大家推荐一下这个专栏,专栏目前已经创作了 108 篇文章,只需要 29.9 元。点击【阅读原文】,就可以购买继续阅读 ~

WWDC 内参 系列是由老司机周报、知识小集合以及 SwiftGG 几个技术组织发起的。已经做了几年了,口碑一直不错。 主要是针对每年的 WWDC 的内容,做一次精选,并号召一群一线互联网的 iOS 开发者,结合自己的实际开发经验、苹果文档和视频内容做二次创作。

本文分享自微信公众号 - 老司机技术周报(LSJCoding)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

点赞
收藏
评论区
推荐文章
blmius blmius
2年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Jacquelyn38 Jacquelyn38
2年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Stella981 Stella981
2年前
PhoneGap设置Icon
参考:http://cordova.apache.org/docs/en/latest/config\_ref/images.html通过config.xml中的<icon标签来设置Icon<iconsrc"res/ios/icon.png"platform"ios"width"57"height"57"densi
Wesley13 Wesley13
2年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
2年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
2年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
2年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
3个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这