Audioausgabe für KI-Brillen mit Text-to-Speech verarbeiten

Anwendbare XR‑Geräte
Dieser Leitfaden hilft Ihnen dabei, Erlebnisse für diese Arten von XR-Geräten zu entwickeln.
AI Glasses

Eine Möglichkeit, mit Ihren Nutzern zu kommunizieren, ist die Sprachausgabe. TTS ist in Android integriert (es sind keine zusätzlichen Bibliotheken erforderlich) und funktioniert auch offline. Diese Eigenschaften machen TTS ideal für die Behandlung von Fehlerbedingungen im Displayless-Modus. Sie können mit der Klasse TextToSpeech auf TTS-Funktionen verweisen.

TextToSpeech instanziieren

Wir empfehlen, die TextToSpeech-Klasse in der onCreate()-Methode der Aktivität Ihrer KI-Brille zu instanziieren, damit sie für die gesamte Lebensdauer des Activity verfügbar ist:

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

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

Nutzer benachrichtigen, wenn die Sprachausgabe beginnt

Bei Anwendungen ohne Display (nur Audio) müssen Sie den Nutzer darüber informieren, dass Ihre App erfolgreich gestartet wurde. Verwenden Sie dazu die Methode onStart():

override fun onStart() {
  super.onStart()

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

Wichtige Punkte zum Code

  • TextToSpeech.QUEUE_FLUSH gibt an, dass der Text sofort gesprochen werden soll und alle anderen TTS-Äußerungen unterbrochen werden sollen.
  • Das utteranceId, in diesem Fall "welcome_utterance", wird verwendet, um zu erkennen, wann dieser Text gesprochen wurde. Weitere Informationen finden Sie unter UtteranceProgressListener.

TTS unterbrechen

Wenn Ihre App die Sprachausgabe unterbrechen muss, rufen Sie die Methode stop() auf:

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

TTS-Ressourcen bereinigen

Sie sollten Ressourcen bereinigen, wenn Ihre Aktivität zerstört wird. Rufen Sie dazu die Methode shutdown() in der Methode onDestroy() der Aktivität auf:

override fun onDestroy() {
    super.onDestroy()

    tts?.shutdown()
}