将音频转换为文本
您可以使用SoX(声音处理程序的瑞士军刀)将音频文件转换为具有对应于声音频率/音量的数值的文本文件。
我已经完成了以前的项目,但不知道确切的命令选项。
下面是该项目的链接:http://sox.sourceforge.net/Main/HomePage
下面是使用C#和System.Speech一个完整的例子
的代码可以被分成2个主要部分:
配置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);
私人无效SpeechHypothesizing(对象发件人, SpeechHypothesizedEventArgs E){ ///实时结果从发动机 串realTimeResults = e.Result。文本; }
私人无效SpeechRecognized(对象发件人,SpeechRecognizedEventArgs e)从发动机串finalAnswer = e.Result.Text { ///最终答案; }
就是这样。如果你想使用一个预先录制的.wav文件,而不是一个麦克风,你可以使用
_speechRecognitionEngine.SetInputToWaveFile(pathToTargetWavFile);
代替
_speechRecognitionEngine.SetInputToDefaultAudioDevice();
在这些类中有一堆不同的选项,它们值得探索更多细节。
绝对不是内置的。我认为您希望将您的问题扩展到可以从Java或C#使用的库。 – Thilo 2010-10-18 10:46:23
感谢Thilo先生,好吧,如果你知道任何C#或Java的外部库可以做我想做的事情,我将不胜感激,如果你告诉我,在此先感谢 – 2010-10-18 10:56:54
这可能有助于http://java.sun.com/ products/java-media/speech/reference/codesamples/index.html – 2010-10-18 11:02:18