Cómo controlar la salida de audio de los lentes con IA usando Text-to-Speech

Dispositivos XR aplicables
Esta guía te ayuda a crear experiencias para estos tipos de dispositivos de XR.
Lentes con IA

Una de las formas en que puedes comunicarte con tus usuarios es a través de la tecnología de texto a voz (TTS). Esta tecnología está integrada en Android (no requiere bibliotecas adicionales) y funciona incluso sin conexión. Estas características hacen que la función de TTS sea ideal para controlar las condiciones de error en el modo sin pantalla. Puedes hacer referencia a las funciones de TTS con la clase TextToSpeech.

Crea una instancia de TextToSpeech

Te recomendamos que crees una instancia de la clase TextToSpeech en el método onCreate() de la actividad de tus lentes con IA para que esté disponible durante la vida útil de Activity:

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)

    tts = TextToSpeech(this) { status ->
        if(status == TextToSpeech.SUCCESS) {
        // Initialization successful
        }else {
            // Initialization failed
        }
    }
    ...
}

Notifica al usuario cuando comience la función de TTS

En el caso de las experiencias sin pantalla (solo audio), notifica al usuario que tu app se inició correctamente con el método onStart():

override fun onStart() {
  super.onStart()

  tts?.speak("Welcome to Android XR Glasses!",
  TextToSpeech.QUEUE_FLUSH,
  null,
  "welcome_utterance")
  ...
}

Puntos clave sobre el código

  • TextToSpeech.QUEUE_FLUSH indica que el texto se debe decir de inmediato y que se debe interrumpir cualquier otra expresión de TTS.
  • El utteranceId, en este caso "welcome_utterance", se usa para identificar cuándo se termina de hablar este texto. Para obtener más información, consulta UtteranceProgressListener.

Cómo interrumpir TTS

Si tu app alguna vez necesita interrumpir la conversión de texto a voz, llama al método stop():

// This interrupts the current utterance and discards other utterances in the queue.
tts?.stop()
...

Limpia los recursos de TTS

Debes limpiar los recursos cuando se destruya tu actividad llamando al método shutdown() dentro del método onDestroy() de la actividad:

override fun onDestroy() {
    super.onDestroy()

    tts?.shutdown()
}