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

适用的 XR 设备
本指南可帮助您为以下类型的 XR 设备打造优质体验。
音频和
显示眼镜

您可以通过多种方式与用户沟通,其中一种方式是使用文本转语音 (TTS) 技术。TTS 内置于 Android 中(无需其他库),即使在离线状态下也能正常运行。这些特性使得 TTS 非常适合在无显示屏模式下处理错误情况。您可以使用 TextToSpeech 类引用 TTS 功能。

实例化 TextToSpeech

我们建议您在投影 activity's 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 的 shutdown方法中调用onDestroy方法来清理资源:

override fun onDestroy() {
    super.onDestroy()

    tts?.shutdown()
}