Voice Interaction Service 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 的根本职责是向客户提供良好的用户体验,同时必须确保预安装的所有语音交互服务均满足 预加载的助理:用户体验指南中所述的要求。
核心助理体验
车载语音交互应用 (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、启动指令)或语音控制面板界面与 VIA 交互。- CarService、Notifications、Media、Telephony、ContactsProvider 等:VoiceInteractionSession 执行用户的语音指令所用的服务和应用。
特定于 Android Automotive 的概念
AAOS 与 Android 的区别体现在以下几个方面: