有可能您的操作系統只能以一個聲音出現。有幾種方法可以使用IPA(國際語音語言)和SVSFIsXML作爲您的通話中的標誌來獲得英語探測輸出......但是我猜你想要的東西不那麼複雜。
我要做的第一件事就是抓住一個英語聲音,如果你還沒有的話。 (首先檢查您的控制面板 - >語音識別 - > 文本轉換語音並查看您的語音選擇。如果它顯示「Microsoft Anna - English(United States)」,那麼您的語音已經是英文了。)
如果沒有,你將不得不再抓住另一個聲音Microsoft Speech Platform - Runtime Languages (Version 11)。我強烈建議Microsoft Server Speech Text to Speech Voice(en-US,ZiraPro)作爲英語語音。您還需要Microsoft Speech Platform - Software Development Kit (SDK) (Version 11)。
老實說,我只是把它們全部安裝好,因爲我覺得它很酷。
一旦你已經安裝了所有的東西,我發現的聲音工作是一個整潔的註冊表黑客,我發現在Voice Attack - Getting free alternate TTS voices working with Win7/8 64bit。
基本上,這需要的是你做一些字符串替換在MS語音平臺的聲音在你的註冊表,使你在你的
HKEY_LOCAL_MACHINE \ SOFTWARE \微軟\語音服務器看到\ 11.0 \聲音 HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \微軟\語音服務器\ 11.0 \聲音
登記處將在風:
HKEY_LOCAL_MACHINE \ SOFTWARE \微軟\語音\聲音 HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \微軟\語音\聲音
完成後,返回控制面板並查看您安裝的所有聲音。你應該能夠測試所有,甚至用不同的語言。如果聲音沒有播放,那麼你安裝的聲音不是正確的位(x86 vs 64)。
現在在python中,您將不得不進行SetVoice調用。我從來沒有在我的生活中用python編程,但我想象你想要的電話看起來像是speaker.SetVoice(「微軟服務器語音文本到語音語音(en-US,ZiraPro)」)。在您設置語音之後,您發出Speak呼叫時應始終使用該語音。
現在,如果你已經掌握了這一點,並在控制面板中播放的聲音,而不是在你的代碼,可能是你的程序是32位/ 64位或什麼的,然後你必須回跑,重新安裝相反的32位/ 64位語音,再次運行您的reg編輯,然後再次運行您的應用程序。
一點工作,但它會得到回報。如果你確實分發你的代碼,你必須確保你的聲音是客戶端註冊表的一部分,而搞砸這件事本身就是一件令人頭痛的事情。
你看過[SpVoice :: SetVoice](https://msdn.microsoft.com/en-us/library/ms719807(v = vs.85).aspx)嗎? –
是的,但我不知道如何使用它。我嘗試過,但據說它是C++ ...也許我不理解。 – Livio