저는 C#을 처음 사용하며 오디오 파일을 입력으로 사용하여 텍스트로 쓰는 프로젝트와 관련하여 현재 작업 중입니다. system.speech를 사용하는 코드가 있습니다. http://blog.thomascsherman.com/2009/08/getting-started-with-windows-voice-recognition/ 에서이 코드를 얻었지만 컴파일 할 때 런타임에 문제가 있습니다. 실행하자마자 코드가 충돌하고 콘솔에 "입력 파일을 찾을 수 없습니다"라고 표시됩니다. 입력 파일의 경로가 무엇인지 깨달았습니다. 파일이 해당 폴더에 있다는 것을 알고 있습니다. 이걸 도와주세요. 아래 코드를 붙여 넣습니다.SetInputToWaveFile
using System; using System.IO; using System.Speech; using System.Speech.Recognition; using System.Speech.AudioFormat;
공용 클래스 안녕하세요 (@ 즉 "C : /my/file/is/here/hello.wav") 절대 경로를 설정하려고 시작하려면 {
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!");
}
}
안녕하세요, 노력했지만 작동하지 않습니다 "경로의 일부를 찾을 수 없습니다"C :/Users/Owner/Documents/Visual Studio 2010/Projects/Learning/bin/Release/hello .wav ""도와주세요. – Divs
파일을 릴리스 및 디버그 모두에 복사하고 절대 경로가없는 * (* "hello.wav") 프로그램을 실행하는 경우에도 동일한 오류가 발생합니까? –
예. 정확히 같은 오류가 발생합니다. 이유가 무엇인지 알지 못합니다. – Divs