مدیریت خروجی صدا برای عینک‌های هوش مصنوعی با استفاده از تبدیل متن به گفتار

دستگاه‌های XR قابل اجرا
این راهنما به شما کمک می‌کند تا برای این نوع دستگاه‌های XR تجربه ایجاد کنید.
عینک هوش مصنوعی

یکی از راه‌هایی که می‌توانید با کاربران خود ارتباط برقرار کنید، استفاده از فناوری تبدیل متن به گفتار (TTS) است. TTS در اندروید تعبیه شده است (نیازی به کتابخانه‌های اضافی ندارد) و حتی در حالت آفلاین نیز کار می‌کند. این ویژگی‌ها، TTS را برای مدیریت شرایط خطا در حالت بدون نمایشگر ایده‌آل می‌کند. می‌توانید با استفاده از کلاس TextToSpeech به ویژگی‌های TTS مراجعه کنید.

نمونه‌سازی TextToSpeech

توصیه می‌کنیم کلاس TextToSpeech را در متد onCreate() مربوط به اکتیویتی عینک هوش مصنوعی خود نمونه‌سازی کنید تا در طول عمر 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()
}