您可以通过文字转语音 (TTS) 技术与用户沟通。TTS 内置于 Android 中(无需其他库),即使离线也能使用。这些特性使得 TTS 非常适合在无屏幕模式下处理错误情况。您可以使用 TextToSpeech 类引用 TTS 功能。
实例化 TextToSpeech
我们建议在 AI 眼镜 activity 的 onCreate() 方法中实例化 TextToSpeech 类,以便在 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 资源
当 activity 被销毁时,您应通过在 activity 的 onDestroy() 方法中调用 shutdown() 方法来清理资源:
override fun onDestroy() {
super.onDestroy()
tts?.shutdown()
}