我有一个应用程序应该以多种语言实现 tts。这些语言不适用于标准 PICO 引擎,所以我需要 SVOX 或类似的东西。我已经安装了 SVOX 和所需的声音,悬停我无法更改我的手机 tts 引擎(我有 android 2.1,所以没有这个选项,我也无法安装 tts 扩展应用程序,因为我的手机不兼容) .
我可能应该以某种方式以编程方式更改正在使用的引擎,但我似乎无法做到这一点。
这是我的代码:如果我使用标准声音,这可以工作,而我需要的声音不可用
public void onInit(int status) {
if (status == TextToSpeech.SUCCESS) {
Locale[] AvalLoc = Locale.getAvailableLocales();
Log.i("TTS","Available locales " + Arrays.toString(AvalLoc));
/*
JUST TRYING TO OUTPUT WHICH LANGUAGES ARE AVAILABLE
*/
for (Locale l : AvalLoc) {
int buf = tts.setLanguage(l);
if (buf == TextToSpeech.LANG_MISSING_DATA
|| buf == TextToSpeech.LANG_NOT_SUPPORTED) {
Log.i("TTS", "Language NOT available" + l.getCountry());
} else {
Log.i("TTS","Language available" + l.getCountry());
}
}
Locale loc = new Locale("ita","ITA"); /*This works, but I would need to be able to use SVOX voices instead*/
int result = tts.setLanguage(loc);
tts.setOnUtteranceCompletedListener(onUtteranceCompleted);
if (result == TextToSpeech.LANG_MISSING_DATA
|| result == TextToSpeech.LANG_NOT_SUPPORTED) {
Log.e("TTS", "This Language is not supported");
} else {
btnSpeakQuestion.setEnabled(true);
}
} else {
Log.e("TTS", "Initilization Failed!");
}
}
我安装了标准和 SVOX TTS。