จัดการเอาต์พุตเสียงสำหรับแว่นตา AI โดยใช้การอ่านออกเสียงข้อความ

อุปกรณ์ XR ที่ใช้ได้
คำแนะนำนี้จะช่วยให้คุณสร้างประสบการณ์การใช้งานสำหรับอุปกรณ์ XR ประเภทต่างๆ เหล่านี้ได้
แว่นตา AI

วิธีหนึ่งที่คุณใช้สื่อสารกับผู้ใช้ได้คือการใช้เทคโนโลยีการอ่านออกเสียงข้อความ (TTS) TTS มีอยู่ใน Android (ไม่จำเป็นต้องใช้ไลบรารีเพิ่มเติม) และทำงานได้แม้ในขณะออฟไลน์ ลักษณะเหล่านี้ทำให้ TTS เหมาะสม สำหรับการจัดการเงื่อนไขข้อผิดพลาดในโหมดที่ไม่มีการแสดงผล คุณอ้างอิงฟีเจอร์ TTS ได้โดยใช้คลาส TextToSpeech

สร้างอินสแตนซ์ TextToSpeech

เราขอแนะนำให้สร้างอินสแตนซ์ของคลาส TextToSpeech ในเมธอด onCreate() ของกิจกรรมแว่นตา AI เพื่อให้พร้อมใช้งานตลอดอายุการใช้งานของ Activity

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

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

แจ้งเตือนผู้ใช้เมื่อ TTS เริ่มทำงาน

สำหรับประสบการณ์การใช้งานแบบไม่มีจอแสดงผล (เสียงเท่านั้น) ให้แจ้งให้ผู้ใช้ทราบว่าแอปของคุณเปิดตัวสำเร็จแล้วโดยการแจ้งเตือนผู้ใช้ด้วยวิธี onStart() ดังนี้

override fun onStart() {
  super.onStart()

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

ประเด็นสำคัญเกี่ยวกับโค้ด

  • TextToSpeech.QUEUE_FLUSH หมายความว่าควรอ่านออกเสียงข้อความ ทันทีและควรหยุดการอ่านออกเสียงข้อความ TTS อื่นๆ
  • utteranceId ในกรณีนี้คือ "welcome_utterance" ใช้เพื่อระบุ เมื่อข้อความนี้พูดจบ ดูข้อมูลเพิ่มเติมได้ที่ UtteranceProgressListener

ขัดจังหวะ TTS

หากแอปต้องขัดจังหวะ TTS ให้เรียกใช้เมธอด stop()

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

ล้างข้อมูลทรัพยากร TTS

คุณควรล้างข้อมูลทรัพยากรเมื่อกิจกรรมถูกทำลายโดยการเรียกใช้เมธอด shutdown() ภายในเมธอด onDestroy() ของกิจกรรม

override fun onDestroy() {
    super.onDestroy()

    tts?.shutdown()
}