SetInputToWaveFile - PullRequest
       22

SetInputToWaveFile

2 голосов
/ 12 января 2011

Я новичок в C # и в настоящее время работаю над проектом, который предполагает использование аудиофайла в качестве ввода и запись его в виде текста.У меня есть код, который использует system.speech.Я получил этот код от http://blog.thomascsherman.com/2009/08/getting-started-with-windows-voice-recognition/, и он компилируется, но у меня возникают проблемы во время выполнения.Как только я запускаю его, код вылетает, и консоль говорит «входной файл не найден».Я понял, что путь для входного файла, и я знаю, что файл находится в этой папке.Пожалуйста, помогите мне с этим.Я вставляю код ниже.

с использованием System;используя System.IO;использование System.Speech;использование System.Speech.Recognition;использование System.Speech.AudioFormat;

открытый класс Hello {

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!");
}


}

1 Ответ

0 голосов
/ 12 января 2011

Для начала попробуйте установить абсолютный путь (т. Е. @ "C: /my/file/is/here/hello.wav"), чтобы определить, является ли этот путь проблемой или чем-то еще.

Также обратите внимание, что для сборок Release и Debug существуют разные папки, которые иногда могут сбивать с толку. Убедитесь, что файл действительно находится в правильной папке (для проверки, если это проблема, для начала поместите hello.wav в обе папки Release и Debug).

...