Wprowadź tekst głosowo

Każde urządzenie z Wear OS ma mikrofon, więc użytkownicy mogą głosowo reagować na: urządzenia. Możesz je podzielić na 3 rodzaje interakcji:

  • Nagrywanie dźwięku
  • Korzystaj z metody rozpoznawania 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. Zapoznaj się z Dokumentacja MediaRecorder, w której znajdziesz więcej informacji nagrywania dźwięku na Androidzie. Możesz też zobaczyć przykładową implementację w Wear – przykład z głośnika w GitHubie.

Korzystaj z metody rozpoznawania mowy

Wywoływanie wbudowanej aktywności systemu rozpoznawania mowy w celu uzyskania od użytkowników danych głosowych. Użyj mowy dane wejściowe do wysyłania wiadomości lub wyszukiwania.

W aplikacji zadzwoń pod numer startActivityForResult() przy użyciu operatora ACTION_RECOGNIZE_SPEECH działania. Spowoduje to rozpoczęcie działania rozpoznawania mowy. Później możesz obsługiwać wyniki w naszych poleceniach. onActivityResult()

Poniższy przykładowy kod pokazuje, jak rozpocząć i obsługiwać aktywność związaną z rozpoznawaniem mowy.

var textForVoiceInput by remember { mutableStateOf("") }

val voiceLauncher =
    rememberLauncherForActivityResult(
        ActivityResultContracts.StartActivityForResult()
    ) { activityResult ->
        // This is where you process the intent and extract the speech text from the intent.
        activityResult.data?.let { data ->
            val results = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS)
            textForVoiceInput = results?.get(0) ?: "None"
        }
    }

val scrollState = rememberScrollState()

ScreenScaffold(scrollState = scrollState) {
    // rest of implementation here
    // ...
    Column(
        // rest of implementation here
        // ...

        // Create an intent that can start the Speech Recognizer activity
        val voiceIntent: Intent = Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH).apply {
            putExtra(
                RecognizerIntent.EXTRA_LANGUAGE_MODEL,
                RecognizerIntent.LANGUAGE_MODEL_FREE_FORM
            )

            putExtra(
                RecognizerIntent.EXTRA_PROMPT,
                stringResource(R.string.voice_text_entry_label)
            )
        }
        // Invoke the process from a chip
        Chip(
            onClick = {
                voiceLauncher.launch(voiceIntent)
            },
            label = stringResource(R.string.voice_input_label),
            secondaryLabel = textForVoiceInput
        )
    }
}

Komendy głosowe

Komendy głosowe i komendy Asystenta nie są obecnie obsługiwane (z wyjątkiem aplikacji na Wear OS w: Chiny. Więcej informacji o Obsługa komend głosowych dla Chin.