【发布时间】:2016-01-19 19:04:40
【问题描述】:
我正在尝试将文本转语音功能添加到我的应用程序中,并且在我从 Google Play 商店更新 TTS 之前它工作正常。
在 onCreate 方法中初始化 TTS 没有任何延迟。 更新后,此 TTS 需要 3-5 秒才能完成初始化。 基本上,文本转语音直到 3-5 秒后才准备好。
谁能告诉我我做错了什么?
private HashMap<String, String> TTS_ID = new HashMap<String, String>();
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
.....
.....
TextToSpeech_Initialize();
}
public void TextToSpeech_Initialize() {
TTS_ID.put(TextToSpeech.Engine.KEY_PARAM_UTTERANCE_ID, "UniqueID");
speech = new TextToSpeech(MainActivity.this, new TextToSpeech.OnInitListener() {
@Override
public void onInit(int status) {
if(status == TextToSpeech.SUCCESS) {
speech.setSpeechRate(SpeechRateValue);
speech.speak(IntroSpeech, TextToSpeech.QUEUE_FLUSH, TTS_ID);
}
}
});
}
非常感谢
【问题讨论】:
-
speak()方法将在onInit()方法完成后运行。因为,当您创建TextToSpeech实例时,您的应用程序会尝试将系统中的tts 服务与TextToSpeech.OnInitListener连接。所以我建议在onInit()方法完全完成后调用speak()方法。另外,在使用speak()选择语音之前,您应该调用setLanguage()。 -
我尝试运行 speak();在 onInit() 方法完成之后,就像你提到的那样,但它仍然给我同样的巨大延迟问题。谢谢
-
嗯.. 目标 API 是什么?是否超过 API 21?
-
Android 4.3 和 Android 5.1.1。没关系,因为它与 Google TTS 更新有关。他们在更新中添加了更多语言,但由于增加了初始化延迟而搞砸了。与苹果相比,谷歌的表现令人沮丧!
-
看来这是更新的问题。检查 TTS 设置中的“收听样本”,看看它是否也出现在那里。
标签: android text-to-speech speech-to-text google-text-to-speech