使用文字转语音功能处理 AI 眼镜的音频输出

适用的 XR 设备
本指南可帮助您为这些类型的 XR 设备打造体验。
AI 眼镜

您可以通过文字转语音 (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()
}