I was trying to make a basic voice recognition application but I'm stuck with an error.
When I click the Enable button I get the following error:
At least one grammar must be loaded before doing a recognition
even though I set up and loaded one.
Anybody can help me out?
This is my code:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Speech.Recognition;
namespace Voice_Recognition
{
public partial class Form1 : Form
{
SpeechRecognitionEngine recEngine = new SpeechRecognitionEngine();
public Form1()
{
InitializeComponent();
}
private void button2_Click(object sender, EventArgs e)
{
recEngine.RecognizeAsyncStop();
btnDisable.Enabled = false;
}
private void richTextBox1_TextChanged(object sender, EventArgs e)
{
Choices commands = new Choices();
commands.Add(new String[] { "Say Hello", "Print my name" });
GrammarBuilder gBuilder = new GrammarBuilder();
gBuilder.Append(commands);
Grammar grammar = new Grammar(gBuilder);
recEngine.LoadGrammar(grammar);
recEngine.SetInputToDefaultAudioDevice();
recEngine.SpeechRecognized +=new EventHandler<SpeechRecognizedEventArgs>(recEngine_SpeechRecognized);
}
private void button1_Click(object sender, EventArgs e)
{
recEngine.RecognizeAsync(RecognizeMode.Multiple);
btnDisable.Enabled = true;
}
void recEngine_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
{
switch (e.Result.Text)
{
case "Say Hello":
MessageBox.Show("Hello Andrea");
break;
case "Print my name":
richTextBox1.Text += "
Andrea";
break;
}
}
}
}
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…