将音频转换为文本

Ami*_*ail 11 c# java speech-recognition audio-processing

我只是想知道在Java或C#中是否存在库或外部库中的任何构建,它允许我获取音频文件并解析它并从中提取文本.

我需要申请这样做,但我不知道从哪里可以开始.

bul*_*ous 8

这是一个使用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();

这些课程中有许多不同的选项,值得更详细地探讨.

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