Od 27 marca 2025 r. zalecamy używanie android-latest-release
zamiast aosp-main
do kompilowania i wspołtworzenia AOSP. Więcej informacji znajdziesz w artykule o zmianach w AOSP.
Interakcja głosowa
Zadbaj o dobrą organizację dzięki kolekcji
Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.
Interfejs API usługi interakcji głosowej zapewnia abstrakcję różnych potencjalnych aplikacji sterowania głosem. Implementacje można tworzyć zgodnie ze wskazówkami opisanymi w artykule o programowaniu aplikacji.
Treści w tym przewodniku po integracji opisują, jak zintegrować te aplikacje z określonym obrazem systemu Android Automotive (AAOS).
Terminologia
W tym przewodniku używamy tych terminów:
- Dane o pomocy. Gdy rozpocznie się sesja interakcji głosowej, system może rejestrować widoki i zrzuty ekranu oraz przekazywać te informacje do sesji. Aplikacje mogą udostępniać dodatkowe informacje, implementując
Activity#onProvideAssistData()
i Activity#onProvideAssistContent()
.
- Tryb mówienia (PTT). Przycisk sterowania głosem, zwykle umieszczony na kierownicy.
- RecognitionService (RS). Usługa rozpoznawania głosu używana przez aplikacje za pomocą interfejsu API
SpeechRecognizer
. Dokumenty VIA muszą zawierać zarówno VoiceInteractionService
, jak i RecognitionService
.
- Dotknij, aby mówić (TTT). Przycisk sterowania głosem (zwykle w ramach interfejsu systemu). W Androidzie jest to też nazywane gesturem asystenta.
VoiceInteractionService
. Uproszczona usługa systemowa zaimplementowana przez programistę VIA. Wybrana usługa jest powiązana z usługą systemową podczas uruchamiania i jest zawsze uruchomiona.
- VoiceInteractionSession (VIS). Ta klasa zawiera logikę biznesową dotyczącą interakcji z użytkownikiem. Jest odpowiedzialny za wyświetlanie użytkownikowi stanu interakcji głosowej, obsługę żądań interfejsu VoiceInteractor oraz otrzymywanie danych o pomocy i zrzutach ekranu.
- VoiceInteractionSessionService (VSS). Usługa będąca częścią VIA, odpowiedzialna za obsługę sesji interakcji głosowej. Ta usługa jest powiązana z usługą systemową Androida podczas interakcji głosowej z użytkownikiem. Cała logika biznesowa tej sesji jest zaimplementowana w klasie
VoiceSession
.
Ta usługa jest gwarantowana tylko podczas sesji głosowej z jednym użytkownikiem.
- Aplikacja do interakcji głosowej (VIA) aplikacja na Androida służąca do sterowania głosem (nazywana asystentem); Takie aplikacje można zidentyfikować, sprawdzając, czy w ich pliku manifestu znajduje się element
VoiceInteractionService
.
W systemie można wybrać tylko jedną z tych aplikacji jako domyślną.
Tylko aplikacja domyślna będzie aktywna (będzie powiązana z usługą systemową) i będzie odbiornikiem zdarzeń Push-To-Talk (PTT) lub Tap-To-Talk (TTT).
Obowiązki
Ta tabela opisuje obowiązki każdej ze stron.
producenci samochodów (OEM), |
AOSP |
Deweloperzy aplikacji |
- Utwórz zgodny system multimedialno-rozrywkowy z AAOS.
- Wdrożyć wejście i wyjście audio, opcjonalnie z obsługą wykrywania słów kluczowych DSP.
- Przyznaj uprawnienia systemowe usługom interakcji głosowej.
- Przestrzegaj wymagań
VoiceInteractionService dotyczących dostępu do ekranów ustawień aplikacji.
|
- Definiowanie i ulepszanie interfejsów
VoiceInteractionService i powiązanych interfejsów API.
- Prześlij dokumentację interfejsu API, przykładowy kod i inne materiały pomocnicze deweloperom VIA.
- Przekaż wskazówki dotyczące UX wraz z wymaganiami i zaleceniami.
|
- Wdróż interfejsy
VoiceInteractionService API, RecognitionService API i NotificationListenerService API (szczegółowe informacje znajdziesz w artykule o programowaniu aplikacji).
- Udostępnianie dostosowywanego interfejsu użytkownika, który może być dostosowywany przez producentów OEM, aby pasował do każdego systemu projektowania samochodów.
|
Wymagania dotyczące UX
Producenci urządzeń oryginalnych ponoszą ostateczną odpowiedzialność za zapewnienie klientom dobrych wrażeń.
Producenci OEM muszą zadbać o to, aby wszystkie wstępnie zainstalowane usługi interakcji głosowej spełniały wymagania opisane w wstępnie zainstalowanych asystentach: wskazówki dotyczące UX.
Podstawowe funkcje Asystenta
Aplikacja do interakcji głosowej w samochodach (VIA) wykonuje te czynności:
- [MUST] Reagowanie na wywołania interakcji głosowej obsługiwane przez system (PTT, TTT).
- [MUST] Wyświetl wizualną reprezentację postępów (np. słuchanie, przetwarzanie i realizację).
- [WYMAGANIE] Używaj głosu lub dźwięków, aby sygnalizować zrozumienie i wykonanie żądań użytkownika.
- [MUST] Służy do rozpoznawania mowy w innych aplikacjach (zob. SpeechRecognizer API).
- [SHOULD] Odpowiedź na słowo-klucz.
- [MAY] Wyświetlanie aktywności związanej z ustawieniami, w ramach której użytkownicy mogą konfigurować tę funkcję (np. uprawnienia, konfigurację słów kluczowych i logowanie).
- [MAY] Obsługa danych pomocy (
Intent#ACTION_ASSIST
)
- [MAY] Obsługa interakcji głosowych z Keyguard (ekran blokady).
Komponenty
Ogólnie rzecz biorąc, aplikacja do interakcji głosowej wchodzi w interakcje z tymi podmiotami:

Rysunek 1. Aktorzy głosowi
Szczegóły:
VoiceInteractionManagerService
. Ta usługa systemowa odpowiada za zarządzanie domyślnym interfejsem VIA i udostępnianie jego funkcji reszcie systemu.
RecognitionService
. Ta usługa udostępnia funkcje rozpoznawania mowy innym aplikacjom w systemie.
SoundTrigger
. Umożliwia zarządzanie słowami kluczowymi i jest dostępna dla VIA za pomocą funkcji AlwaysOnHotwordDetector.
MediaRecorder
. Zapewnia dostęp do wejścia audio zarówno do wykrywania słów kluczowych (w przypadku korzystania z procesora) jak i do rozpoznawania mowy.
PhoneWindowManager
/CarInputService
. Te usługi odpowiadają (między innymi) za obsługę kluczowych zdarzeń, kierowanie PTT do VIA za pomocą VoiceInteractionManagerService
.
User
. Użytkownik wchodzi w interakcję z VIA za pomocą wyzwalaczy (PTT, TTT, Hotword) lub interfejsu Voice Plate.
- CarService, Notifications, Media, Telephony, ContactsProvider itd.
Usługi i aplikacje używane przez VoiceInteractionSession do wykonywania poleceń użytkownika.
Pojęcia związane z motoryzacją
AAOS różni się od Androida w tych aspektach:
- Oprócz standardowych funkcji Asystenta AAOS VIA może sterować funkcjami pojazdu (np. klimatyzacją, fotelami i oświetleniem wnętrza). Te funkcje można zintegrować za pomocą interfejsu CarPropertyManager API (więcej informacji znajdziesz w artykule Czytanie właściwości pojazdu), o ile producenci oryginalnego sprzętu prawidłowo skonfigurują dostęp zgodnie z opisem w załączniku z uprawnieniami.
- Personalizacja i spójność są w przypadku branży motoryzacyjnej ważniejsze niż w przypadku jakiejkolwiek innej. Aby dowiedzieć się więcej o wdrażaniu tych wytycznych, zapoznaj się z artykułem Dostosowywanie.
Treść strony i umieszczone na niej fragmenty kodu podlegają licencjom opisanym w Licencji na treści. Java i OpenJDK są znakami towarowymi lub zastrzeżonymi znakami towarowymi należącymi do firmy Oracle lub jej podmiotów stowarzyszonych.
Ostatnia aktualizacja: 2025-07-27 UTC.
[[["Łatwo zrozumieć","easyToUnderstand","thumb-up"],["Rozwiązało to mój problem","solvedMyProblem","thumb-up"],["Inne","otherUp","thumb-up"]],[["Brak potrzebnych mi informacji","missingTheInformationINeed","thumb-down"],["Zbyt skomplikowane / zbyt wiele czynności do wykonania","tooComplicatedTooManySteps","thumb-down"],["Nieaktualne treści","outOfDate","thumb-down"],["Problem z tłumaczeniem","translationIssue","thumb-down"],["Problem z przykładami/kodem","samplesCodeIssue","thumb-down"],["Inne","otherDown","thumb-down"]],["Ostatnia aktualizacja: 2025-07-27 UTC."],[],[],null,["# About voice interaction\n\nThe Voice Interaction Service API provides an abstraction over different\npotential voice control apps. Implementations can be developed following the guidelines\ndescribed in\n[App development](/docs/automotive/voice/voice_interaction_guide/app_development).\nThe content in this integration guide describes how to integrate these apps into\na specific Android Automotive OS (AAOS) system image.\n\nTerminology\n-----------\n\nThese terms are used through this guide:\n\n- **Assist data.** When a voice interaction session is started, the system is able to capture views and screenshots, and pass this information to the session. Apps can expose additional information by implementing [Activity#onProvideAssistData()](https://developer.android.com/reference/android/app/Activity#onProvideAssistData(android.os.Bundle)) and [Activity#onProvideAssistContent()](https://developer.android.com/reference/android/app/Activity#onProvideAssistContent(android.app.assist.AssistContent)).\n- **[Push-to-talk (PTT)](https://developer.android.com/reference/android/service/voice/VoiceInteractionSession#SHOW_SOURCE_PUSH_TO_TALK)**. Physical voice control button, usually located in the steering wheel.\n- **RecognitionService (RS).** Voice recognition service used by apps through the [SpeechRecognizer](https://developer.android.com/reference/android/speech/SpeechRecognizer)`\n ` API. VIAs must include both the `VoiceInteractionService` *and* the `RecognitionService`.\n- **[Tap-to-talk (TTT)](https://developer.android.com/reference/android/service/voice/VoiceInteractionSession#SHOW_SOURCE_ASSIST_GESTURE)** . Software voice control button, usually included as part of the system UI). In Android this is also referred to as *Assist Gesture*.\n- **[VoiceInteractionService](https://developer.android.com/reference/android/service/voice/VoiceInteractionService)**. Lightweight system service implemented by the VIA developer. The selected service is bound from system service on boot, and is always running.\n- **VoiceInteractionSession (VIS).** This class encapsulates the user interaction business logic. It is responsible for presenting the user with status of the voice interaction, handling VoiceInteractor requests and receiving assist and screenshot data.\n- **VoiceInteractionSessionService (VSS).** A service, part of a VIA, responsible for handling a voice interaction session. This service is bound from Android's system service during a voice interaction with a user. All business logic of this session is implemented in the `VoiceSession` class. This service is only guaranteed to stay alive during a single user voice session.\n- **Voice Interaction App (VIA).** Android app designed to serve as a voice control (referred to as *assistant* ). These apps can be identified by including a `VoiceInteractionService` in their manifest. Only one of these apps can be selected as *default* at a time in the system. Only the default app will be maintained alive (bound from a system service), and will be the receiver of [Push-To-Talk (PTT)](https://developer.android.com/reference/android/service/voice/VoiceInteractionSession#SHOW_SOURCE_PUSH_TO_TALK) or [Tap-To-Talk (TTT)](https://developer.android.com/reference/android/service/voice/VoiceInteractionSession#SHOW_SOURCE_ASSIST_GESTURE) events.\n\nResponsibilities\n----------------\n\nThis table describes the responsibilities of each party.\n\n| Car Manufacturers (OEMs) | AOSP | App Developers |\n|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| - Build a [compatible](/compatibility/android-cdd) infotainment system with AAOS. - Implement audio input and output, optionally including DSP hotword detection support. - Grant system-privileged permissions for the voice interaction services. - Respect `VoiceInteractionService` requirements regarding access to app's settings screens. | - Define and evolve `VoiceInteractionService` and related APIs. - Provide API documentation, sample code and other support material to VIA developers. - Provide UX guidance with requirements and recommendations. | - Implement `VoiceInteractionService` API, RecognitionService API and NotificationListenerService API (see detailed description at [App development](/docs/automotive/voice/voice_interaction_guide/app_development)). - Provide a customizable UI that can be adjusted by OEMs to match each car design system. |\n\nUX requirements\n---------------\n\nOEMs have the ultimate responsibility of providing a good user experience to customers.\nOEMs must ensure that the all pre-installed voice interaction services fulfill the\nrequirements described in\n[Preloaded Assistants: UX Guidance](/static/docs/automotive/voice/voice_interaction_guide/preloaded-assistants_UX-guidelines.pdf).\n\nCore assistant experience\n-------------------------\n\nAn automotive Voice Interaction Application (VIA) performs the following actions:\n\n- \\[MUST\\] Respond to system-handled voice interaction triggers (PTT, TTT).\n- \\[MUST\\] Display a visual representation of their progress (for example, listening, processing, and fulfilling).\n- \\[MUST\\] Use voice or sounds to indicate understanding and completion of user requests.\n- \\[MUST\\] Serve as a speech recognizer for other apps (see the [SpeechRecognizer\n API](https://developer.android.com/reference/android/speech/SpeechRecognizer)).\n- \\[SHOULD\\] Respond to a hotword trigger.\n- \\[MAY\\] Display a settings activity where users can configure this VIA (for example, permissions, hotword configuration, and sign-in).\n- \\[MAY\\] Handle assist data ([Intent#ACTION_ASSIST](https://developer.android.com/reference/android/content/Intent#ACTION_ASSIST))\n- \\[MAY\\] Support voice interaction from Keyguard (lock screen).\n\nComponents\n----------\n\nAt a high level, a voice interaction app interacts with these actors:\n\n**Figure 1.** Voice interaction actors\n\nDetails:\n\n- `VoiceInteractionManagerService`. This system service is responsible for managing the default VIA, and exposing its functionality to the rest of the system.\n- `RecognitionService`. This service exposes speech recognition capabilities to other apps in the system.\n- `SoundTrigger`. Implements hotword management and it's available to VIAs through the AlwaysOnHotwordDetector.\n- `MediaRecorder`. Provides access to audio input for both hotword detection (when using CPU) and speech recognition.\n- `PhoneWindowManager`/`CarInputService`. These services are responsible (among other things) for handling key events, routing PTT to the VIA, by means of the `VoiceInteractionManagerService`.\n- `User`. The user interacts with a VIA by means of Triggers (PTT, TTT, Hotword) or the Voice Plate UI.\n- **CarService, Notifications, Media, Telephony, ContactsProvider, and so on.** Services and apps used by the VoiceInteractionSession to fulfill the user's commands.\n\nAutomotive-specific concepts\n----------------------------\n\nAAOS diverges from Android in the following aspects:\n\n- Besides normal Assistant functionalities, AAOS VIAs can control vehicle functions (for example, HVAC, seats, and interior lights). These functionalities can be integrated using the CarPropertyManager API (see more at [Read a\n vehicle property](/docs/automotive/voice/voice_interaction_guide/fulfilling_commands#vehicle-property)) provided OEMs configure access correctly as described in [Privileged permission allowlisting](/docs/core/permissions/perms-allowlist).\n- Customization and consistency are more relevant in Automotive than in any other form factor. See [Customization](/docs/automotive/voice/voice_interaction_guide/integration_flows#customization) to read more about implementing these guidelines."]]