Разбираем первое слово команды в признанной речи

голоса
0

Я пытаюсь взять speechвход и конвертировать их в строку и показать его на richtext boxконтроле. Я читал об синтезе речи и распознавании голоса в нескольких статьях , где я научился получать команды через речь , однако я хочу , чтобы написать на Richtext управления коробкой после того, как моя команда Writeраспознаются. Является ли это возможным?

Вот код, если это помогает понять, что я пытаюсь достичь, и то, что я сделал до сих пор

object декларации

PromptBuilder pb = new PromptBuilder();
SpeechRecognitionEngine recognizer = new SpeechRecognitionEngine();
Choices clist = new Choices();

Код для Enablingголосового ввода

 private void btnEnableVoice_Click(object sender, EventArgs e)
    {
        btnEnableVoice.Enabled = false;
        btnDisableVoice.Enabled = true;

        /////////////Adding commands in a list of type Choices///////////////////////
        clist.Add(new string[] { Is it working, Write });
        Grammar gr = new Grammar(new GrammarBuilder(clist));

        try
        {
            recognizer.RequestRecognizerUpdate(); ///////starting engine
            recognizer.LoadGrammar(gr);
            recognizer.SpeechRecognized += new EventHandler<SpeechRecognizedEventArgs>(recognizer_SpeechRecognized);
            recognizer.SetInputToDefaultAudioDevice();
            recognizer.RecognizeAsync(RecognizeMode.Multiple);
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);

        }
    }
   void recognizer_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
    {
        switch (e.Result.Text.ToString())
        { 
            case Is it working:
                ss.SpeakAsync(Yes its working);
                break;
            case Write:
                richTextBox1.Text += ; //Speech to text input here
                break;
        }
    }
Задан 18/01/2015 в 19:24
источник пользователем
На других языках...                            


1 ответов

голоса
1

Прежде всего , необходимо построить грамматику надлежащим образом , чтобы позволить диктант, см эталонного http://msdn.microsoft.com/en-us/library/ms576565(v=vs.110).aspx :

 Choices clist = new Choices();
 clist.Add(new string[] { "Is it working", "Write" });
 GrammarBuilder bl = new GrammarBuilder(clist);
 bl.appendDictation();
 Grammar gr = new Grammar(bl);

Для разбора вам нужно что-то вроде

void recognizer_SpeechRecognized(object sender, SpeechRecognizedEventArgs e) 
     string result = e.Result.Text.ToString();
     if (result.startsWith("Write")) {
         richTextBox1.Text += result.substring(7); // Skip first 6 chars
     } else if (result.startsWith("Is it working")) {
         ss.SpeakAsync("Yes its working");
     }
}
Ответил 18/01/2015 в 20:16
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more