2016-11-29 134 views
0

目前我正在開發一個涉及文本到語音的應用程序。我面臨的問題是語音輸出與谷歌的TTS引擎輸出不一樣。我沒有獲得我設置的語言(例如:德語),而是收到帶有德語口音的英語輸出。所以我有點混淆發生了什麼,我嘗試了多種解決方案,但它仍然沒有按照我的意圖工作。以下是我的源代碼。Text-To-Speech(android-java)輸出與Google 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

您傳遞給TTS服務的文本是德語嗎?如果是英語,那麼是的,我希望它是英語,因爲德語可能會發音。

TTS僅將文本轉換爲語音。它不會將一種語言翻譯成另一種語言。要做到這一點,你可以嘗試谷歌的翻譯服務。請記住,自動翻譯服務比TTS服務產生可接受的結果的可能性要小得多。顯然,一個真正的語言到語言的翻譯比一套「一組聲音」服務更難完善。

+0

是的,我正在使用英文的文本。我在這裏和那裏閱讀了一些關於翻譯服務的內容,但是我需要知道當設備沒有任何互聯網/數據連接時服務仍然能夠正常工作嗎?我想知道,以便我可以決定是跳入它還是重新考慮我的應用程序能夠做什麼。 –