4

我正在尝试使用 C# 语言设计一个文本编辑器,并为普通文件功能实现语音识别,这是否可以实现。如果我重复之前提出的问题,我感到非常抱歉。我只想知道是否有办法使用 C# 将语音转换为文本。你的帮助真的很有价值。等待回复。提前致谢。

4

5 回答 5

2

您可以使用尝试 SharpSphinx AC# 版本的 Sphinx-4 http://sourceforge.net/p/cmusphinx/discussion/sphinx4-sightings/thread/5953c635/?limit=50

于 2012-12-20T13:25:16.857 回答
2

这是一个使用 C# 和 System.Speech 将语音转换为文本的完整示例

代码可以分为2个主要部分:

配置处理 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) { ///来自引擎的实时结果 string 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-trancribing-audio-to-text-using-c-and-net-system-speech/

于 2012-02-23T21:54:41.830 回答
1

如果我没记错的话,Microsoft Speech SDK支持语音转文本。

于 2011-07-04T09:55:32.293 回答
1

然后是LumenVox 语音引擎

于 2011-07-04T10:05:12.367 回答
0

还有iSpeech API,它可以作为网络服务用于语音识别。

于 2011-07-04T10:03:31.633 回答