目前我正在开发一个涉及文字转语音的应用。我遇到的问题是语音输出与谷歌的TTS引擎输出不一样。我没有获得我设置的语言(例如:德语),而是收到带有德语口音的英语语言输出。所以我有点混淆正在发生的事情,我尝试了多种解决方案,但它仍然没有像我预期的那样工作。以下是我的源代码。
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
String languageLocale = preferences.getString("langTest",null);
String languageDisplayName = preferences.getString("language",null);
float speed = preferences.getFloat("speed",0);
float pitch = preferences.getFloat("pitch",0);
Locale[] locales = Locale.getAvailableLocales();
for(Locale locale : locales){
if(locale.getDisplayLanguage().equals(language)){
textToSpeech.setLanguage(language);
Log.d("Check Locale", " getDisLang: " + locale.getDisplayLanguage() + " // getLang: " + locale.getLanguage() + " // language: " + language);
textToSpeech.setSpeechRate(speed);
textToSpeech.setPitch(pitch);
break;
}
}
答案 0 :(得分:1)
您传递给TTS服务的文字是德语吗?如果它是英语,那么是的,我希望它是英语,因为德语可能会发音。
TTS仅将文字转换为语音。它不会将一种语言翻译成另一种语言。要做到这一点,您可以尝试Google的翻译服务。请记住,自动翻译服务比TTS服务产生可接受的结果的可能性要小得多。显然,真正的语言到语言翻译比“一组单词到一组声音”服务更难完美。