как открыть мой компьютер через распознавание речи

Мне нужно написать приложение, которое использует механизм распознавания речи, целью приложения является управление ПК (клавиатура и мышь), когда пользователь говорит «открыть мой компьютер», чтобы открыть мой компьютер, или говорит что-либо, чтобы выполнить это действие, я пробовал много раз, но застрял между ними,
мой код

       {         
        SpeechRecognizer recognizer = new SpeechRecognizer();
        recognizer.Enabled = true;

        Choices folderPath= new Choices();
        folderPath.Add(new string[] { "My Computer", "My Documents", "my docs", "Sumeet", "gehi"});

        GrammarBuilder gb = new GrammarBuilder(folderPath);

        Grammar gramer = new Grammar(gb);
        recognizer.LoadGrammar(gramer);

        gramerSpeechRecognized+=new EventHandler<SpeechRecognizedEventArgs (gramer_SpeechRecognized);
    }
    void gramer_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
    {

        if (e.Result.Text == "computer" || e.Result.Text=="my computer")
        {
           string myComputerPath = Environment.GetFolderPath(Environment.SpecialFolder.MyComputer);
        System.Diagnostics.Process.Start("explorer", myComputerPath);
      //OR
        //System.Diagnostics.Process.Start("explorer", "::{20d04fe0-3aea-1069-a2d8-08002b30309d}");
        }
        else
        {
           // give output what user have said
          textBox1.Text = e.Result.Text;
         }
    }

нужна помощь!!! что делать или какие-то ошибки в моем коде???


comment
Что именно не работает??   -  person bash.d    schedule 15.08.2013
comment
Поставьте точку останова и отладьте. Доходит ли отладчик до функции gramer_SpeechRecognized? Что такое значение e.Tesult.Text?   -  person sara    schedule 15.08.2013
comment
Кроме того, перед сравнением преобразуйте e.Result.Text в нижний регистр.   -  person sara    schedule 15.08.2013
comment
Я также пробовал это, моя программа не сравнивалась, если еще условие   -  person Sumit    schedule 15.08.2013
comment
@sara e.result.text имеет строковое значение, которое мы произнесли, например, я говорю «мой компьютер», затем e.result.text=мой компьютер, и я хочу, чтобы, если он сравнивает слово/фразу, затем открывал мой компьютер, но не работал   -  person Sumit    schedule 15.08.2013
comment
Так вы говорите, что e.result.text содержит именно мой компьютер? Вы даже проникли внутрь оператора if? Мне не ясно, в чем именно проблема.   -  person Bob Claerhout    schedule 16.08.2013


Ответы (1)


да, я сделал это, теперь работаю префектом

  string resultText = e.Result.Text.ToLower();
      if (resultText == "computer")
        {
          string myComputerPath = 
            Environment.GetFolderPath(Environment.SpecialFolder.MyComputer); 
          System.Diagnostics.Process.Start("explorer", myComputerPath);
        //System.Diagnostics.Process.Start("explorer", "::{20d04fe0-3aea-1069-a2d8-08002b30309d}");
       }

но если вы все еще найдете ответ лучше, чем этот, пожалуйста, прокомментируйте здесь, спасибо, ребята

person Sumit    schedule 16.08.2013