Metin okuma özelliğini kullanarak yapay zeka gözlüklerinin ses çıkışını yönetme

Geçerli XR cihazlar
Bu kılavuz, bu tür XR cihazlar için deneyimler oluşturmanıza yardımcı olur.
AI Glasses

Kullanıcılarınızla iletişim kurmanın yollarından biri, metin okuma (TTS) teknolojisini kullanmaktır. TTS, Android'e yerleştirilmiştir (ek kitaplık gerektirmez) ve çevrimdışı olarak da çalışır. Bu özellikler, TTS'yi ekransız modda hata koşullarını işlemek için ideal hale getirir. TextToSpeech sınıfını kullanarak TTS özelliklerine başvurabilirsiniz.

TextToSpeech'i başlatma

TextToSpeech sınıfını, yapay zeka gözlüğünüzün etkinliğinin onCreate() yönteminde oluşturmanızı öneririz. Böylece, Activity'ın kullanım ömrü boyunca kullanılabilir:

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

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

TTS başladığında kullanıcıyı bilgilendirme

Ekransız (yalnızca ses) deneyimlerde, kullanıcıyı onStart() yöntemiyle bilgilendirerek uygulamanızın başarıyla başlatıldığını bildirin:

override fun onStart() {
  super.onStart()

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

Kodla ilgili önemli noktalar

  • TextToSpeech.QUEUE_FLUSH, metnin hemen okunması ve diğer tüm TTS ifadelerinin kesilmesi gerektiğini gösterir.
  • Bu durumda utteranceId, "welcome_utterance", bu metnin ne zaman okunmasının tamamlandığını belirlemek için kullanılır. Daha fazla bilgi için UtteranceProgressListener sayfasına bakın.

TTS'yi kesintiye uğratma

Uygulamanızın TTS'yi kesmesi gerektiğinde stop() yöntemini çağırın:

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

TTS kaynaklarını temizleme

Etkinliğiniz yok edildiğinde, etkinliğin onDestroy() yöntemi içinde shutdown() yöntemini çağırarak kaynakları temizlemeniz gerekir:

override fun onDestroy() {
    super.onDestroy()

    tts?.shutdown()
}