یکی از راههایی که میتوانید با کاربران خود ارتباط برقرار کنید، استفاده از فناوری تبدیل متن به گفتار (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()
}