Я пытаюсь использовать распознавание речи в рабочем приложении C#, где, если пользователь говорит «нажмите 3» ИЛИ «нажмите 4», тогда этот числовой код должен быть написан на диаграмме (скажем, Метка). Я могу определить слово «пресса», который пользователь произнес, но не выше этого. Пожалуйста помоги. Ниже приведен мой пример кода:Распознавание речи с использованием пространства имен Microsoft.Speech или System.Speech
string txtSpoken = "";
string[] words = new string[10];
public Form1()
{
InitializeComponent();
SpeechRecognitionEngine _recognizer = new SpeechRecognitionEngine();
_recognizer.LoadGrammar(new Grammar(new GrammarBuilder("press")) { Name = "pressGrammar" }); // load a grammar
_recognizer.SpeechRecognized += _recognizer_SpeechRecognized;
_recognizer.SetInputToDefaultAudioDevice(); // set the input of the speech recognizer to the default audio device
_recognizer.RecognizeAsync(RecognizeMode.Multiple); // recognize speech asynchronous
// _recognizer.Recognize();
}
void _recognizer_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
{
string txt = e.Result.Text;
this.Invoke(new MethodInvoker(() =>
{
listBox1.Items.Add("I heard you say: "
+ txt);
})); // WinForm specific
if (e.Result.Text == "press") // e.Result.Text contains the recognized text
{
textBox1.Text = "3";
label1.Text += " 3 ";
// MessageBox.Show("The test was successful!");
}
txtSpoken += e.Result.Text;
MessageBox.Show(txtSpoken);
if (txt.IndexOf("press") >= 0)
{
words = txt.Split(' ');
}
}
Что такое содержимое 'txt'? – DrKoch