Text-To-Speech(android-java)输出与Google TTS输出不同

时间:2016-11-29 20:57:52

标签: java android

目前我正在开发一个涉及文字转语音的应用。我遇到的问题是语音输出与谷歌的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;
                }
            }

1 个答案:

答案 0 :(得分:1)

您传递给TTS服务的文字是德语吗?如果它是英语,那么是的,我希望它是英语,因为德语可能会发音。

TTS仅将文字转换为语音。它不会将一种语言翻译成另一种语言。要做到这一点,您可以尝试Google的翻译服务。请记住,自动翻译服务比TTS服务产生可接受的结果的可能性要小得多。显然,真正的语言到语言翻译比“一组单词到一组声音”服务更难完美。