2013-07-29 101 views
2

我正在使用Android的文本到語音默認引擎在我的應用程序,但是女性的聲音聽起來像一個超過40歲的女人,她的聲音有點機器人。更改Android的文本到語音的默認語音

我看到其他應用程序似乎使用谷歌內置的TTS,但它聽起來好多了,即年輕女性的聲音更自然。

這個「自然」的聲音也被用在Android主要的谷歌搜索例如,當你按下麥克風並提出一個問題(Siri風格),比如「誰是美國總統」時,女人的聲音會告訴你答案。

如何在代碼中實現這種聲音?

基本上這就是我在我的代碼做:

TextToSpeech tts = new TextToSpeech(this, this); 
      . 
      . 
      . 
    tts.setLanguage(Locale.US); 
    tts.speak(text, TextToSpeech.QUEUE_FLUSH, null); 
+0

你可以嘗試改變在球場上看看是否有工作了。 –

回答

1

我最終設法找到了解決方案。我只需要使用jellybean上可用的KEY_FEATURE_NETWORK_SYNTHESIS參數。默認脫機模式具有可怕的機器人聲音

+1

你能告訴我怎樣才能通過「KEY_FEATURE_NETWORK_SYNTHESIS」作爲參數? – Sourav301

+0

你能解釋一下如何使用它 –

1

不能在TextToSpeech內改變這一點。但是,您可以下載替換它的其他應用程序,但只能使用當前系統設置語言並設置音高。如果你只是想要不同的東西,你可以通過設置英國英國來獲得英國口音。 Ivona是谷歌文本到語音語音的最大替代品之一。

+0

非常感謝,但是Google Android搜索中使用的語音與我的三星設備中聽起來有什麼不同? 此外我還看到一些應用程序使用與Google相同的自然語音,並且似乎沒有下載任何外部語音數據庫(它們非常輕便)。 – GarnerK

+0

@GarnerK你能提供一個應用程序供我參考嗎?如果您可以提供參考應用程序,我可以告訴你他們在做什麼。 – ObieMD5

1

這裏是我的代碼使用KEY_FEATURE_NETWORK_SYNTHESIS PARAM:

HashMap<String, String> onlineSpeech = new HashMap<>(); 
onlineSpeech.put(TextToSpeech.Engine.KEY_FEATURE_NETWORK_SYNTHESIS, "true"); 
tts.speak(speech, TextToSpeech.QUEUE_FLUSH, onlineSpeech);