Ajuda com o SAPI v5.1 SpeechRecognitionEngine sempre fornece o mesmo resultado errado com C #
Eu estava brincando com esta biblioteca SAPI v5.1. Então, eu estava testando um arquivo WAV de amostra que tenho. Faça o download daqui). De qualquer forma, o som nesse arquivo é claro e fácil. Ele contém apenas uma palavra que é o número três. Agora, quando executo o código a seguir, obtenho o número 8 ou "oito". Se eu removê-lo, recebo 7. Se tentar aleatoriamente a lista, obtenho resultados diferentes e assim por diante. Estou realmente ficando confuso e comecei a pensar que o SpeachRecognition na biblioteca SAPI não funciona ...
e qualquer forma, aqui está o que estou fazendo,
private void button1_Click(object sender, EventArgs e)
{
//Add choices to grammar.
Choices mychoices = new Choices();
mychoices.Add("one");
mychoices.Add("two");
mychoices.Add("three");
mychoices.Add("four");
mychoices.Add("five");
mychoices.Add("six");
mychoices.Add("seven");
mychoices.Add("eight");
mychoices.Add("nine");
mychoices.Add("zero");
mychoices.Add("1");
mychoices.Add("2");
mychoices.Add("3");
mychoices.Add("4");
mychoices.Add("5");
mychoices.Add("6");
mychoices.Add("7");
mychoices.Add("8");
mychoices.Add("9");
mychoices.Add("0");
Grammar myGrammar = new Grammar(new GrammarBuilder(mychoices));
//Create the engine.
SpeechRecognitionEngine reco = new SpeechRecognitionEngine();
//Read audio stream from wav file.
reco.SetInputToWaveFile("3.wav");
reco.LoadGrammar(myGrammar);
//Get the recognized value.
reco.SpeechRecognized += new EventHandler<SpeechRecognizedEventArgs>(reco_SpeechRecognized);
reco.RecognizeAsync(RecognizeMode.Multiple);
}
void reco_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
{
MessageBox.Show(e.Result.Text);
}