将音频转换为文本

12

我想知道Java或C#中是否有内置库或外部库可以解析音频文件并提取文本。

我需要制作一个这样的应用程序,但我不知道从哪里开始。


肯定不是内置的。我理解你想要扩展你的问题,询问你可以从Java或C#中使用哪些库。 - Thilo
谢谢Thilo先生,如果您知道任何能够实现我想要的功能的C#或Java外部库,如果您能告诉我,我将不胜感激。提前致谢。 - Amira Elsayed Ismail
这可能会有所帮助:http://java.sun.com/products/java-media/speech/reference/codesamples/index.html - jmj
在C#中,您可以使用语音API。请参考此链接:http://msdn.microsoft.com/zh-cn/library/ee125077%28v=VS.85%29.aspx - Vyasdev Meledath
从音频中提取文本?!你是认真的吗??? - Cipi
3
@Cipi OCR可以从图像中提取文本,现在也有很多工作正在进行将其应用于音频。只需在YouTube上查看计算机生成的闭幕字幕即可。我是指为了好笑。它们很糟糕,但OCR一开始也是这样。 - user1228
5个回答

12

8
这里是一个使用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 -= 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) { ///引擎实时结果 string realTimeResults = e.Result.Text; } private void SpeechRecognized(object sender, SpeechRecognizedEventArgs e) { ///引擎最终答案 string 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/

1
你可以使用SoX(声音处理程序的瑞士军刀)将音频文件转换为文本文件,其中数值对应于声音频率/音量。
我之前在一个项目中做过这个,但不知道确切的命令选项。
这是该项目的链接:http://sox.sourceforge.net/Main/HomePage

1
你可以查看Microsoft Speech API。我认为他们提供了一个SDK,你可以用来实现你的目标。

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接