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


Siri 能做什么

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

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

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



es ik_smart配置 esset kit_项目管理

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

对话助手 Conversational Assistant 与意图 Intents

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

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



es ik_smart配置 esset kit_es ik_smart配置_02

在不同的 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 也会对使用过的捷径进行自动的建议(甚至是未使用过但可能使用的捷径),这样可以让用户获得更方便快捷的体验。



es ik_smart配置 esset kit_es ik_smart配置_03

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

如何为对话进行设计

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

模式 Modality

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

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



es ik_smart配置 esset kit_es ik_smart配置_04

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

对话 Dialog

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

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

最佳实践 Best Practices

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

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