Как заставить C # печатать то, что вы сказали после вопроса - PullRequest
1 голос
/ 07 июня 2019

Я хочу создать программу, которая, когда я говорю «как меня зовут», будет отвечать «я не знаю, что это?»затем он слушает то, что вы говорите, и, например, если я скажу «Jhon Doe», то он скажет «Здравствуйте, Jhon Doe».

Поскольку я новичок в кодировании на C #, я попытался найти способы и сделална самом деле ничего не найти.Я удалю это, если на него уже ответили, спасибо.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Speech.Recognition;
using System.Speech.Synthesis;
namespace test
{
    public partial class Form1 : Form
    {
        SpeechSynthesizer ss = new SpeechSynthesizer();
        SpeechRecognitionEngine recEngine = new SpeechRecognitionEngine();
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            Choices commands = new Choices();
            commands.Add(new string[] { "what is my name" });
            GrammarBuilder gBuilder = new GrammarBuilder();
            gBuilder.Append(commands);
            Grammar grammar = new Grammar(gBuilder);

            recEngine.LoadGrammarAsync(grammar);
            recEngine.SetInputToDefaultAudioDevice();



            recEngine.SpeechRecognized += recEngine_SpeechRecognized;
        }

        void recEngine_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
        {
            switch (e.Result.Text)
            {
                case "what is my name":
                    richTextBox1.Text += "\nI dont know, what is it?";
                    string name = "name";//Voice recognition will turn on and then it will try to find out what you are saying and set it as name
                    richTextBox1.Text += "\nHello, " + name;
                    break;
            }
        }

        private void BtnOn_Click(object sender, EventArgs e)
        {
            recEngine.RecognizeAsync(RecognizeMode.Multiple);
            btnOff.Enabled = true;
            btnOn.Enabled = false;
        }

        private void BtnOff_Click(object sender, EventArgs e)
        {
            recEngine.RecognizeAsync(RecognizeMode.Multiple);
            btnOff.Enabled = false;
            btnOn.Enabled = true;
        }
    }
}

Я просто хочу, чтобы он вывел «Здравствуйте, [Имя, которое вы сказали]».Спасибо, любая помощь будет оценена.

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