Każde urządzenie z Wear OS ma wbudowany mikrofon, aby użytkownicy mogli obsługiwać urządzenie za pomocą głosu. Można je podzielić na 3 rodzaje interakcji:
- Nagrywanie dźwięku
- Korzystaj z swobodnego wprowadzania mowy
- Komendy głosowe
Nagrywanie dźwięku
Nagrywanie dźwięku na urządzeniu z Wear OS działa tak samo jak na telefonie. Więcej informacji o nagrywaniu dźwięku na Androidzie znajdziesz w dokumentacji MediaRecorder. Możesz też zobaczyć przykładową implementację w przykładzie Wear Speaker w GitHubie.
Korzystaj z swobodnego wprowadzania mowy
Wywołaj działanie funkcji rozpoznawania mowy wbudowanej w system, aby użytkownicy mogli wprowadzać mowę. Używaj rozpoznawania mowy do wysyłania wiadomości i wyszukiwania.
Wywołaj w aplikacji startActivityForResult()
za pomocą działania ACTION_RECOGNIZE_SPEECH
. Spowoduje to uruchomienie funkcji rozpoznawania mowy, którą możesz obsłużyć w onActivityResult()
.
Poniższy przykładowy kod pokazuje, jak rozpocząć działanie związane z rozpoznawaniem mowy i wykonać je.
Kotlin
private const val SPEECH_REQUEST_CODE = 0 ... // Create an intent that can start the Speech Recognizer activity private fun displaySpeechRecognizer() { val intent = Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH).apply { putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM) } // This starts the activity and populates the intent with the speech text. startActivityForResult(intent, SPEECH_REQUEST_CODE) } // This callback is invoked when the Speech Recognizer returns. // This is where you process the intent and extract the speech text from the intent. override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent) { if (requestCode == SPEECH_REQUEST_CODE && resultCode == Activity.RESULT_OK) { val spokenText: String? = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS).let { results -> results[0] } // Do something with spokenText. } super.onActivityResult(requestCode, resultCode, data) }
Java
private static final int SPEECH_REQUEST_CODE = 0; // Create an intent that can start the Speech Recognizer activity private void displaySpeechRecognizer() { Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH); intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM); // This starts the activity and populates the intent with the speech text. startActivityForResult(intent, SPEECH_REQUEST_CODE); } // This callback is invoked when the Speech Recognizer returns. // This is where you process the intent and extract the speech text from the intent. @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == SPEECH_REQUEST_CODE && resultCode == RESULT_OK) { List<String> results = data.getStringArrayListExtra( RecognizerIntent.EXTRA_RESULTS); String spokenText = results.get(0); // Do something with spokenText. } super.onActivityResult(requestCode, resultCode, data); }
Komendy głosowe
Komendy głosowe i działania w aplikacji Asystenta są obecnie obsługiwane tylko w aplikacjach na Wear OS w Chinach. Dowiedz się więcej o obsłudze komend głosowych w Chinach.