2014-07-02 110 views
1

我只是跟着MSDN Installation,安裝了「MSSpeech_TTS_zh-CN_HuiHui.msi」 &「MSSpeech_SR_zh-CN_TELE.msi」,並運行Sample,英文語音效果良好,但當我輸入中文時,如:使用微軟語音平臺SDK V11.0不能說中國

SpeechSynthesizer synth = new SpeechSynthesizer(); 
synth.SelectVoiceByHints(VoiceGender.Neutral); 
synth.Speak("你好"); 

它什麼都不說,什麼建議?謝謝!

+0

我無法讓中文與v11.0 SDK和惠匯安裝。除中文外,其他所有語言都適用。它什麼也沒說。任何想法對我來說? – egfconnor

回答

0

您可能想要明確地選擇語音,查看SelectVoiceByHints上的MSDN文檔,它聲明它將返回符合您的規格的第一個語音。

From Link(重點礦井)。

使用GetInstalledVoices方法和VoiceInfo類來獲取安裝的文本到語音轉換(TTS)的聲音,你可以選擇的名稱。 SpeechSynthesizer對象選擇與指定特徵匹配的第一個安裝的語音。

當應用程序調用GetInstalledVoices時,該方法將驗證它在註冊表中找到的每個語音是否滿足某些最低標準。對於驗證失敗的任何語音,GetInstalledVoices將其Enabled屬性設置爲False。應用程序無法選擇Enabled屬性爲False的語音。通常,應用程序不會設置語音的啓用屬性。

按名稱選擇音色,使用SelectVoice方法

,或者您可以使用SelectVoiceByHints方法,它的CultureInfo作爲一個參數的過載。

SpeechSynthesizer對象查找性別,年齡和文化屬性與性別,年齡和文化參數相匹配的聲音。 SpeechSynthesizer計算它找到的匹配項,並在計數等於voiceAlternate參數時返回語音。

Microsoft Windows和System.Speech API接受所有有效的語言國家代碼。要使用culture參數中指定的語言執行文本到語音轉換,必須安裝支持該語言國家代碼的語音合成引擎。 Microsoft Windows 7附帶的語音合成引擎使用以下語言 - 國家代碼:

•zh-CN。英語(美國)

•zh-CN。中國(中國)

•zh-TW。中文(臺灣)

雙字母語言代碼,如「en」也是允許的。

+1

GetInstalledVoices()只返回一個「微軟安娜」的聲音,但我仔細檢查了我已經安裝了「MSSpeech_TTS_zh-CN_HuiHui.msi」。 – Kamil

+0

我也檢查了[這個問題](http://stackoverflow.com/questions/3208617/speechsynthesizer-doesnt-get-all-installed-voices?rq = 1)但問題仍然存在,順便說一下,我是win7 64bit,vs2010 – Kamil

+1

我檢查了[本文的源代碼](http://www.codeproject.com/Articles/206033/My-PC-can-speaks- and-understand-languages-Do-yo),我發現需要使用System.Speech.Synthesis更改 ; 至 使用Microsoft.Speech.Synthesis; 然後,它運作良好。 這兩個之間的diffrenece已被討論[Here](http://stackoverflow.com/questions/17577866/microsoft-speech-synthesis-does-not-work-for-text-to-speech-but-system-speech -SY?RQ = 1)。 我會在進行更多研究後提供更多信息/再研究。謝謝! – Kamil