Jak włączyć i wyłączyć speech.recognizer?

0

Chciałem dodać do mojego programu funkcję włącz i wyłącz rozpoznawanie mowy.
Próbowałem użyć bool, ale nic się nie działo. Za pomoc łapka w górę.
Prosiłbym o podanie przykładu jak to zrobić.

KOD JEST NIE PEŁNY:

namespace question
{
    public partial class Form1 : Form
    {

        SpeechSynthesizer ss = new SpeechSynthesizer();

        PromptBuilder pd = new PromptBuilder();

        SpeechRecognitionEngine sre = new SpeechRecognitionEngine();

        Choices clist = new Choices();

        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            clist.Add(new string[] { "question" });

            Grammar gr = new Grammar(new GrammarBuilder(clist));
            try
            {
                sre.RequestRecognizerUpdate();
                sre.LoadGrammar(gr);
                sre.SpeechRecognized += sre_SpeechRecognizde;
                sre.SetInputToDefaultAudioDevice();
                sre.RecognizeAsync(RecognizeMode.Multiple);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Error");
            }
        }

        private void sre_SpeechRecognizde(object sender, SpeechRecognizedEventArgs e)
        {
            switch (e.Result.Text.ToString())
            {

                case "question":
                    ss.SpeakAsync("test");
                    break;
            }
        }
    }
// ...
}
1

Próbowałeś użyć

public void RecognizeAsyncStop()

Przykład z msdnu:

private void _startRecogButton_Click(object sender, EventArgs eventArgs) {
    if (_startRecogButton.Text == "Start Speech Recognition") { //Toggle Speech Recognition on
        _startRecogButton.Text = "Stop Speech Recognition";
        if (_useMultiple) {
            _recognitionEngine.RecognizeAsync(RecognizeMode.Multiple);
        } else {
            _recognitionEngine.RecognizeAsync(RecognizeMode.Single);
        }
    } else {                                                      //Toggle Speech Recognition off
        _startRecogButton.Text = "Start Speech Recognition";
        if (_friendlyStop) {
            _recognitionEngine.RecognizeAsyncStop(); //Stop after current phrase is finished.
        } else {
            _recognitionEngine.RecognizeAsyncCancel(); //Stop before current phrase is finished.
        }

    }
}

Źródło

1 użytkowników online, w tym zalogowanych: 0, gości: 1