Obsługa wyjścia audio w okularach AI za pomocą funkcji zamiany tekstu na mowę

Odpowiednie urządzenia XR
Te wskazówki pomogą Ci tworzyć treści na te urządzenia XR.
Okulary AI

Jednym ze sposobów komunikowania się z użytkownikami jest technologia zamiany tekstu na mowę (TTS). Funkcja TTS jest wbudowana w Androida (nie wymaga dodatkowych bibliotek) i działa nawet w trybie offline. Dzięki tym cechom funkcja TTS idealnie nadaje się do obsługi błędów w trybie bez wyświetlacza. Do funkcji TTS możesz się odwoływać za pomocą klasy TextToSpeech.

Utwórz instancję TextToSpeech

Zalecamy utworzenie instancji klasy TextToSpeech w metodzie onCreate() aktywności okularów AI, aby była dostępna przez cały okres istnienia Activity:

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

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

Powiadamianie użytkownika o rozpoczęciu odczytywania tekstu

W przypadku urządzeń bez wyświetlacza (tylko dźwięk) poinformuj użytkownika o tym, że aplikacja została uruchomiona, wywołując metodę onStart():

override fun onStart() {
  super.onStart()

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

Najważniejsze informacje o kodzie

  • TextToSpeech.QUEUE_FLUSH oznacza, że tekst powinien zostać odczytany natychmiast, a wszystkie inne wypowiedzi TTS powinny zostać przerwane.
  • Symbol utteranceId, w tym przypadku "welcome_utterance", służy do określania, kiedy tekst przestaje być odczytywany. Więcej informacji znajdziesz w sekcji UtteranceProgressListener.

Przerwij TTS

Jeśli aplikacja musi przerwać odczytywanie tekstu, wywołaj metodę stop():

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

Usuwanie zasobów TTS

Gdy aktywność zostanie zniszczona, należy wyczyścić zasoby, wywołując metodę shutdown() w metodzie onDestroy() aktywności:

override fun onDestroy() {
    super.onDestroy()

    tts?.shutdown()
}