【发布时间】:2015-01-10 17:00:28
【问题描述】:
我的文字转语音引擎在 android 上有一个奇怪的行为:
当我在 Galaxy S5 上测试文字转语音时,一切正常,音频播放土耳其语和德语。
在其他一些手机(例如一部 LG)上,textToSpeech 也可以工作,但以下情况除外:
- 导出应用(构建 apk)并在手机上手动安装
- 切换到土耳其语(德语始终有效!)
问题是我没有收到任何错误消息 - TTS 似乎已正常初始化。
任何提示将不胜感激!
这是我的代码:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getActionBar().setLogo(R.drawable.anne_eli_icons_pfeile_zurueck_weiss_17px);
getActionBar().setHomeButtonEnabled(true);
textToSpeech = new TextToSpeech(this, this);
}
@Override
public void onInit(int status) {
if (status == TextToSpeech.SUCCESS) {
log("onInit()");
int result = textToSpeech.setLanguage(new Locale(getTransLanguage()));
log("result:" + result);
textToSpeech.setSpeechRate(1.2f); // set speech speed rate
if (result == TextToSpeech.LANG_MISSING_DATA || result == TextToSpeech.LANG_NOT_SUPPORTED) {
Tools.showToast(this, "Language " + getTransLanguage() + " is not supported! Error code: " + result);
Intent installIntent = new Intent();
installIntent.setAction(TextToSpeech.Engine.ACTION_INSTALL_TTS_DATA);
startActivity(installIntent);
} else {
speechEnabled = true;
}
} else {
speechEnabled = false;
Tools.showToast(this, "Text to speech initialization failed!");
}
}
【问题讨论】:
-
说话有回音吗?即使语言可用并且服务已成功初始化,基于网络的 TTS 也可能在 speak() 调用中失败。
-
@alanv speak() 总是返回 "0" :/
-
您是针对自己的自定义引擎还是其他引擎进行测试?
-
自定义引擎?我使用“普通”Android TextToSpeech API:developer.android.com/reference/android/speech/tts/…
-
根据我自己的经验,请确保音量已打开。 TTS 的音量与铃声不同!在 tts 应该说话时按音量上键。
标签: android audio text-to-speech