Entrada de voz

Todos los dispositivos Wear OS incluyen un micrófono, por lo que los usuarios pueden usar su voz para interactuar con el dispositivo. Puedes dividir las interacciones en tres tipos:

  • Grabar audio
  • Obtener entrada de voz de formato libre
  • Acciones de voz

Grabación de audio

La grabación de audio en un dispositivo Wear OS funciona de la misma manera que en un teléfono. Consulta la documentación de MediaRecorder para obtener más información sobre la grabación de audios en Android. También puedes ver una implementación de muestra en el ejemplo de bocina en Wear en GitHub.

Entrada de voz de formato libre

Llama a la actividad de reconocimiento de voz integrada del sistema para obtener la entrada de voz de los usuarios. Usa la entrada de voz para enviar mensajes o realizar búsquedas.

En tu app, puedes llamar a startActivityForResult() con la acción ACTION_RECOGNIZE_SPEECH. Esto inicia la actividad de reconocimiento de voz y, luego, puedes controlar el resultado en onActivityResult().

En la siguiente muestra de código, se explica el modo en que puedes iniciar y controlar una actividad de reconocimiento de voz.

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
        )
    }
}

Acciones de voz

Por el momento, no se admiten las Acciones de voz ni las Acciones en apps de Asistente, excepto las apps de Wear OS en China. Obtén más información sobre la compatibilidad con Acciones de voz para China.