2010-07-23 217 views
2

我想寫在Visual C#/ C++,讓文字輸入用戶不同的細分一個簡單的Windows應用程序,然後按一組熱鍵聽到TTS的各種文本段在任何時間。程序應該在後臺運行時或者全屏應用程序有焦點時接受熱鍵。如何在Visual C#/ C++中實現文本 - 語音轉換(TTS)?

示例用例:用戶輸入「hello world」並將其保存爲第一個文本段,然後輸入「stack overflow」並將其另存爲第二個文本段。用戶可以切換到另一個程序,然後按CTRL-1熱鍵聽到TTS說「hello world」或CTRL-2聽到TTS說「堆棧溢出」。該程序當然應該能夠完全脫機運行(以防萬一會影響任何建議)

作爲一個旁註,我在Visual中編程方面相當新,但在C#/ C +中有足夠體面的背景,所以即使我主要在TTS部分尋求幫助,如果以前有人做過這種事情,我會接受任何形式的建議。

回答

0

在MSDN here上有一篇關於WPF中TTS的文章。

3

如果你想談論C#的使用Introp.SpeechLib.dll

E.g東西:

private void ReadText() 
     { 
      int iCounter = 0; 
      while (Convert.ToInt32(numericUpDown1.Value) > iCounter) 
      { 
       SpVoice spVoice = new SpVoice(); 
       spVoice.Speak("Hello World", SpeechVoiceSpeakFlags.SVSFPurgeBeforeSpeak); 
       spVoice.WaitUntilDone(Timeout.Infinite); 
       iCounter = iCounter + 1; 
      } 
     } 

閱讀:Speech Technologies

+0

謝謝! Interop.SpeechLib是一個很好的解決方案,使用起來非常簡單。 – birdyedwards 2010-07-23 23:53:30

1

參考System.Speech.dll。您可以實例化一個System.Speech.Synthesis.Synthesizer並致電.Speak("TEXT HERE");

+0

希臘語? – 2012-11-03 17:29:59