Ami*_*ail 11 c# java speech-recognition audio-processing
我只是想知道在Java或C#中是否存在库或外部库中的任何构建,它允许我获取音频文件并解析它并从中提取文本.
我需要申请这样做,但我不知道从哪里可以开始.
这是一个使用C#和System.Speech的完整示例
代码可分为两个主要部分:
配置处理SpeechRecognized和SpeechHypothesized事件的SpeechRecognitionEngine对象(及其所需元素).
第1步:配置SpeechRecognitionEngine
_speechRecognitionEngine = new SpeechRecognitionEngine();
_speechRecognitionEngine.SetInputToDefaultAudioDevice();
_dictationGrammar = new DictationGrammar();
_speechRecognitionEngine.LoadGrammar(_dictationGrammar);
_speechRecognitionEngine.RecognizeAsync(RecognizeMode.Multiple);
Run Code Online (Sandbox Code Playgroud)
此时,您的对象已准备好开始从麦克风转录音频.您需要处理一些事件,以便实际访问结果.
第2步:处理SpeechRecognitionEngine事件
_speechRecognitionEngine.SpeechRecognized - = new EventHandler(SpeechRecognized); _speechRecognitionEngine.SpeechHypothesized - = new EventHandler(SpeechHypothesizing);
_speechRecognitionEngine.SpeechRecognized + = new EventHandler(SpeechRecognized); _speechRecognitionEngine.SpeechHypothesized + = new EventHandler(SpeechHypothesizing);
private void SpeechHypothesizing(object sender,SpeechHypothesizedEventArgs e){///来自引擎字符串的实时结果realTimeResults = e.Result.Text; }
private void SpeechRecognized(object sender,SpeechRecognizedEventArgs e){///来自引擎字符串finalAnswer = e.Result.Text的最终答案; }
而已.如果您想使用预先录制的.wav文件而不是麦克风,则可以使用
_speechRecognitionEngine.SetInputToWaveFile(pathToTargetWavFile);
代替
_speechRecognitionEngine.SetInputToDefaultAudioDevice();
这些课程中有许多不同的选项,值得更详细地探讨.