Gestire l'output audio per gli occhiali AI utilizzando la sintesi vocale

Dispositivi XR applicabili
Queste indicazioni ti aiutano a creare esperienze per questi tipi di dispositivi XR.
AI Glasses

Uno dei modi per comunicare con gli utenti è utilizzare la tecnologia di sintesi vocale (TTS). TTS è integrato in Android (non richiede librerie aggiuntive) e funziona anche offline. Queste caratteristiche rendono la sintesi vocale ideale per la gestione delle condizioni di errore in modalità senza display. Puoi fare riferimento alle funzionalità di sintesi vocale utilizzando la classe TextToSpeech.

Instanzia TextToSpeech

Ti consigliamo di creare un'istanza della classe TextToSpeech nel metodo onCreate() dell'attività degli occhiali AI in modo che sia disponibile per tutta la durata di Activity:

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

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

Notificare all'utente l'avvio della sintesi vocale

Per le esperienze senza display (solo audio), comunica all'utente che la tua app è stata avviata correttamente notificandolo nel metodo onStart():

override fun onStart() {
  super.onStart()

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

Punti chiave sul codice

  • TextToSpeech.QUEUE_FLUSH indica che il testo deve essere pronunciato immediatamente e qualsiasi altra espressione TTS deve essere interrotta.
  • utteranceId, in questo caso "welcome_utterance", viene utilizzato per identificare quando la lettura di questo testo è terminata. Per ulteriori informazioni, consulta la UtteranceProgressListener.

Interrompi la sintesi vocale

Se la tua app deve interrompere la sintesi vocale, chiama il metodo stop():

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

Esegui la pulizia delle risorse TTS

Devi pulire le risorse quando la tua attività viene distrutta chiamando il metodo shutdown() all'interno del metodo onDestroy() dell'attività:

override fun onDestroy() {
    super.onDestroy()

    tts?.shutdown()
}