логика кнопок переключения системной речи - PullRequest
0 голосов
/ 29 января 2019

У меня есть кнопка ac # .net, которая должна включать и выключать распознавание речи.В основном включить и выключить прослушивание.Он является непрерывным, поэтому после активации он будет продолжать прослушивать и запускать события распознавания каждый раз, когда слышит «Привет, Apple», пока кнопка не будет нажата снова и не остановит его.Однако кажется, что он работает только один или два раза, затем он перестает распознавать «Эй, яблоко», или иногда он распознает даже после того, как я снова нажму кнопку, которая должна завершить сеанс распознавания.Логика кнопок за этим испорчена, или я пропускаю какую-то часть распознавания речи?

internal class Button1 : Button
{
    private bool isCheck = true;

    protected override void OnClick()
    {
        SpeechSynthesizer ss = new SpeechSynthesizer();
        PromptBuilder pb = new PromptBuilder();
        SpeechRecognitionEngine sre = new SpeechRecognitionEngine();
        Choices keyWords = new Choices(new string[] { "Hey Apple", "hey apple" });
        Grammar gr = new Grammar(new GrammarBuilder(keyWords));

        if (isCheck == true)
        {

            sre.RequestRecognizerUpdate();
            sre.LoadGrammar(gr);
            sre.SpeechRecognized += sre_SpeechRecognized;
            sre.SetInputToDefaultAudioDevice();
            sre.RecognizeAsync(RecognizeMode.Multiple);
            Debug.WriteLine("I'M LISTENING");
            Caption = "Listening2u";
            isCheck = false;
        }
        else
        {
            Caption = "Not Listening2u";
            sre.RecognizeAsyncCancel();
            sre.Dispose();
            Debug.WriteLine("NOT LISTENING");
            isCheck = true;
        }

    }
    async void sre_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
    {
        SoundPlayer player = new SoundPlayer(Properties.Resources.beep1);
        player.Play();
        Debug.WriteLine("recognized = " + e.Result.Text.ToString());
    }


}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...