将音频转换为文本

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

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

以下是您的一些选择:

  • 微软演讲
  • Lumenvox
  • 龙自然而然地说
  • sphinx4

这是一个使用C#和System.Speech的完整示例

代码可分为两个主要部分:

配置处理SpeechRecognized和SpeechHypothesized事件的SpeechRecognitionEngine对象(及其所需元素)。

第1步:配置SpeechRecognitionEngine

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

此时,您的对象已准备好开始从麦克风转录音频。 但是,您需要处理某些事件,以便实际访问结果。

第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/

对于Java,似乎有一个来自Sun的解决方案: javax.speech.recognition

您可以使用SoX(声音处理程序的瑞士军刀)将音频文件转换为文本文件,其数值对应于声音频率/音量。

我已经完成了以前的项目,但不知道确切的命令选项。

这是该项目的链接: http : //sox.sourceforge.net/Main/HomePage

您可以查看Microsoft Speech API 。 我认为他们提供的SDK可以用于您的目标。