2011-07-04 67 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/