複数の言語で 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 の両方がインストールされています。