2011-07-04 95 views
4

我試圖設計一個使用C#語言的文本編輯器,併爲普通文件特徵實現語音識別,這是否可以實現。 如果我重複之前詢問過的問題,我非常抱歉。 我只想知道是否有方法將語音轉換爲使用C#的文本。 你的幫助真的很有價值。 等待回覆。 在此先感謝。使用C語言對文本進行語音識別

+1

歡迎SharpSphinx A C#版本堆棧溢出。截至目前它並不那麼準確。請閱讀[無論發生什麼語音識別?](http://www.codinghorror.com/blog/2010/06/whatever-happened-to-voice-recognition.html) – naveen

回答

0

還有iSpeech API,它可以用於語音識別作爲網絡服務。

2

下面是使用C#和System.Speech用於從語音轉換成文本

的代碼可以被劃分爲兩個主要部分的完整例如:

配置SpeechRecognitionEngine對象(及其所需的元件) 處理SpeechRecognized和SpeechHypothesized事件。

步驟1:配置SpeechRecognitionEngine

_speechRecognitionEngine = new SpeechRecognitionEngine(); 
_speechRecognitionEngine.SetInputToDefaultAudioDevice(); 
_dictationGrammar = new DictationGrammar(); 
_speechRecognitionEngine.LoadGrammar(_dictationGrammar); 
_speechRecognitionEngine.RecognizeAsync(RecognizeMode.Multiple); 

在這一點上你的對象是準備開始從麥克風錄製音頻。您需要處理一些事件,以便實際訪問結果。

步驟2:處理所述SpeechRecognitionEngine活動

_speechRecognitionEngine.SpeechRecognized - =新的EventHandler(SpeechRecognized); _speechRecognitionEngine.SpeechHypothesized - = new EventHandler(SpeechHypothesizing);

_speechRecognitionEngine.SpeechRecognized + = new EventHandler(SpeechRecognized); _speechRecognitionEngine.SpeechHypothesized + = new EventHandler(SpeechHypothesizing);從發動機 串realTimeResults = e.Result.Text

私人無效SpeechHypothesizing(對象發件人, SpeechHypothesizedEventArgs E){ ///實時結果; }

私人無效SpeechRecognized(對象發件人,SpeechRecognizedEventArgs e)從發動機串finalAnswer = e.Result.Text { ///最終答案; }

就是這樣。如果您想使用預先錄製的.wav文件而不是麥克風,您可以使用

_speechRecognitionEngine。SetInputToWaveFile(pathToTargetWavFile);

代替

_speechRecognitionEngine.SetInputToDefaultAudioDevice();

在這些類中有一堆不同的選項,它們值得探索更多細節。

http://ellismis.com/2012/03/17/converting-or-transcribing-audio-to-text-using-c-and-net-system-speech/