语音互动服务 API 提供了对不同潜在语音控制应用的抽象。可以按照应用开发中描述的指南开发实现。本集成指南中的内容介绍了如何将这些应用集成到特定的 Android Automotive OS (AAOS) 系统映像中。
术语
本指南中使用了以下术语
- 辅助数据。当语音互动会话开始时,系统可以捕获视图和屏幕截图,并将此信息传递给会话。应用可以通过实现
Activity#onProvideAssistData()
和Activity#onProvideAssistContent()
来公开其他信息。 - 一键通 (PTT)。物理语音控制按钮,通常位于方向盘上。
- RecognitionService (RS)。应用通过
SpeechRecognizer
API 使用的语音识别服务。VIA 必须同时包含VoiceInteractionService
和RecognitionService
。 - 轻触通话 (TTT)。软件语音控制按钮,通常包含在系统界面中。在 Android 中,这也称为辅助手势。
VoiceInteractionService
。VIA 开发者实现的轻量级系统服务。选定的服务从启动时的系统服务绑定,并且始终在运行。- VoiceInteractionSession (VIS)。此类封装了用户互动业务逻辑。它负责向用户呈现语音互动状态、处理 VoiceInteractor 请求以及接收辅助数据和屏幕截图数据。
- VoiceInteractionSessionService (VSS)。VIA 的一部分服务,负责处理语音互动会话。此服务在用户进行语音互动期间从 Android 的系统服务绑定。此会话的所有业务逻辑都在
VoiceSession
类中实现。此服务仅保证在单个用户语音会话期间保持活动状态。 - 语音互动应用 (VIA)。旨在用作语音控制(称为助理)的 Android 应用。这些应用可以通过在其清单中包含
VoiceInteractionService
来识别。在系统中,一次只能选择其中一个应用作为默认应用。只有默认应用会保持活动状态(从系统服务绑定),并且将成为一键通 (PTT) 或 轻触通话 (TTT) 事件的接收者。
职责
下表描述了各方的职责。
汽车制造商 (OEM) | AOSP | 应用开发者 |
---|---|---|
|
|
|
用户体验要求
OEM 最终有责任为客户提供良好的用户体验。OEM 必须确保所有预安装的语音互动服务均满足预加载的助理:用户体验指南中描述的要求。
核心助理体验
汽车语音互动应用 (VIA) 执行以下操作
- [必须] 响应系统处理的语音互动触发器(PTT、TTT)。
- [必须] 显示其进度的可视化表示(例如,正在收听、正在处理和正在实现)。
- [必须] 使用语音或声音来指示理解和完成用户请求。
- [必须] 用作其他应用的语音识别器(请参阅 SpeechRecognizer API)。
- [应] 响应热词触发器。
- [可以] 显示设置 Activity,用户可以在其中配置此 VIA(例如,权限、热词配置和登录)。
- [可以] 处理辅助数据 (
Intent#ACTION_ASSIST
) - [可以] 支持来自锁屏界面的语音互动。
组件
在高层级上,语音互动应用与以下参与者互动
图 1. 语音互动参与者
详细信息
VoiceInteractionManagerService
。此系统服务负责管理默认 VIA,并将其功能公开给系统的其余部分。RecognitionService
。此服务向系统中的其他应用公开语音识别功能。SoundTrigger
。实现热词管理,VIA 可以通过 AlwaysOnHotwordDetector 使用它。MediaRecorder
。提供对音频输入的访问权限,用于热词检测(使用 CPU 时)和语音识别。PhoneWindowManager
/CarInputService
。这些服务(除其他事项外)负责处理按键事件,通过VoiceInteractionManagerService
将 PTT 路由到 VIA。User
。用户通过触发器(PTT、TTT、热词)或语音面板 UI 与 VIA 互动。- CarService、Notifications、Media、Telephony、ContactsProvider 等。 VoiceInteractionSession 用于实现用户命令的服务和应用。
汽车专用概念
AAOS 在以下方面与 Android 不同