我是 C# 新手,目前正在从事一个项目,该项目涉及我使用音频文件作为输入并将其写为文本。我有使用 system.speech 的代码。我从http://blog.thomascsherman.com/2009/08/getting-started-with-windows-voice-recognition/获得了这段代码 ,它可以编译,但我在运行时遇到了问题。一旦我运行它,代码就会崩溃,控制台会说“找不到输入文件”。我意识到输入文件的路径是什么,并且我知道该文件在该文件夹中。请帮我解决一下这个。我正在粘贴下面的代码。
使用系统;使用 System.IO;使用 System.Speech;使用 System.Speech.Recognition;使用 System.Speech.AudioFormat;
公共课你好{
public static void Main()
{
Hello hello= new Hello();
hello.doStuff();
}
private void doStuff()
{
SpeechRecognitionEngine sre = new SpeechRecognitionEngine();
sre.SpeechHypothesized += new EventHandler<SpeechHypothesizedEventArgs>(sre_SpeechHypothesized);
sre.SpeechRecognized += new EventHandler<SpeechRecognizedEventArgs>(sre_SpeechRecognized);
sre.RecognizeCompleted += new EventHandler<RecognizeCompletedEventArgs>(sre_RecognizeCompleted);
sre.AudioSignalProblemOccurred += new EventHandler<AudioSignalProblemOccurredEventArgs>(sre_AudioSignalProblemOccurred);
sre.SpeechDetected += new EventHandler<SpeechDetectedEventArgs>(sre_SpeechDetected);
sre.SpeechRecognitionRejected += new EventHandler<SpeechRecognitionRejectedEventArgs>(sre_SpeechRecognitionRejected);
DictationGrammar dg = new DictationGrammar();
sre.LoadGrammar(dg);
sre.SetInputToWaveFile("hello.wav");
sre.EndSilenceTimeout = new TimeSpan(0, 0, 2);
sre.RecognizeAsync();
}
void sre_SpeechHypothesized(object sender, SpeechHypothesizedEventArgs e)
{
Console.WriteLine(e.Result.Text);
}
void sre_AudioSignalProblemOccurred(object sender, AudioSignalProblemOccurredEventArgs e)
{
Console.WriteLine(e.AudioSignalProblem.ToString());
}
void sre_SpeechRecognitionRejected(object sender, SpeechRecognitionRejectedEventArgs e)
{
Console.WriteLine("Rejected!");
}
void sre_RecognizeCompleted(object sender, RecognizeCompletedEventArgs e)
{
Console.WriteLine("Recognition Complete!");
}
void sre_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
{
Console.WriteLine(e.Result.Text);
}
void sre_SpeechDetected(object sender, SpeechDetectedEventArgs e)
{
Console.WriteLine("Speech Detected!");
}
}