Я хочу сделать распознавание голоса, но я хочу сделать это без использования выбора команды или даже текстового файла в качестве источника команды
Я хочу сделать распознавание голоса, но я хочу сделать это без использования выбора команды или даже текстового файла в качестве источника команды. Я думаю, что мне нужно добавить словарь, но я не знаю, как это сделать. Я также хочу, чтобы мой ИИ считал от 1 до 10 или от 1 до чего-то еще.
Что я уже пробовал:
using System; using System.IO; using System.Speech.Recognition; using System.Speech.Synthesis; using System.Windows.Forms; namespace SpeechWindowsForms { public partial class Form1 : Form { SpeechRecognitionEngine _recognizer = new SpeechRecognitionEngine(); SpeechSynthesizer JARVIS = new SpeechSynthesizer(); string QEvent; string ProcWindow; double timer = 10; int count = 1; Random rnd = new Random(); public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { _recognizer.SetInputToDefaultAudioDevice(); _recognizer.LoadGrammar(new Grammar(new GrammarBuilder(new Choices(File.ReadAllLines(@"txt file location"))))); _recognizer.SpeechRecognized += new EventHandler<speechrecognizedeventargs>(_recognizer_SpeechRecognized); _recognizer.RecognizeAsync(RecognizeMode.Multiple); } void _recognizer_SpeechRecognized(object sender, SpeechRecognizedEventArgs e) { int ranNum = rnd.Next(1, 10); string speech = e.Result.Text; switch (speech) { //GREETINGS case "hello": case "hello jarvis": if (ranNum < 6) { JARVIS.Speak("Hello sir"); } else if (ranNum > 5) { JARVIS.Speak("Hi"); } break; case "goodbye": case "goodbye jarvis": case "close": case "close jarvis": JARVIS.Speak("Until next time"); Close(); break; case "jarvis": if (ranNum < 5) { QEvent = ""; JARVIS.Speak("Yes sir"); } else if (ranNum > 4) { QEvent = ""; JARVIS.Speak("Yes?"); } break; //WEBSITES case "open website": System.Diagnostics.Process.Start("url"); break; //SHELL COMMANDS case "open program": System.Diagnostics.Process.Start("file location"); JARVIS.Speak("Loading"); break; //CLOSE PROGRAMS case "close program": ProcWindow = "process name"; StopWindow(); break; //CONDITION OF DAY case "what time is it": DateTime now = DateTime.Now; string time = now.GetDateTimeFormats('t')[0]; JARVIS.Speak(time); break; case "what day is it": JARVIS.Speak(DateTime.Today.ToString("dddd")); break; case "whats the date": case "whats todays date": JARVIS.Speak(DateTime.Today.ToString("dd-MM-yyyy")); break; //OTHER COMMANDS case "go fullscreen": FormBorderStyle = FormBorderStyle.None; WindowState = FormWindowState.Maximized; TopMost = true; JARVIS.Speak("expanding"); break; case "exit fullscreen": FormBorderStyle = FormBorderStyle.Sizable; WindowState = FormWindowState.Normal; TopMost = false; break; case "switch window": SendKeys.Send("%{TAB " + count + "}"); count += 1; break; case "reset": count = 1; timer = 11; lblTimer.Visible = false; ShutdownTimer.Enabled = false; lstCommands.Visible = false; break; case "out of the way": if (WindowState == FormWindowState.Normal || WindowState == FormWindowState.Maximized) { WindowState = FormWindowState.Minimized; JARVIS.Speak("My apologies"); } break; case "come back": if (WindowState == FormWindowState.Minimized) { JARVIS.Speak("Alright?"); WindowState = FormWindowState.Normal; } break; case "show commands": string[] commands = (File.ReadAllLines(@"txt file location")); JARVIS.Speak("Very well"); lstCommands.Items.Clear(); lstCommands.SelectionMode = SelectionMode.None; lstCommands.Visible = true; foreach (string command in commands) { lstCommands.Items.Add(command); } break; case "hide listbox": lstCommands.Visible = false; break; } } } }
CHill60
Каков ваш реальный вопрос?
leo arellano
Как использовать словарь или импортировать словарь для команды, я имею в виду, что я не хочу использовать txt-файл или выбор в качестве команды
OriginalGriff
Мы более чем готовы помочь тем, кто застрял, но это не значит, что мы здесь, чтобы сделать все это для вас! Мы не можем сделать всю работу, вам либо платят за это, либо это часть ваших оценок, и было бы совсем несправедливо, если бы мы сделали все это за вас.
Поэтому нам нужно, чтобы вы сделали работу, и мы поможем вам, когда вы застряли. Это не значит, что мы дадим вам пошаговое решение, которое вы можете сдать!
Начните с объяснения, где вы находитесь в данный момент и каков следующий шаг в этом процессе. Затем расскажите нам, что вы пытались сделать, чтобы этот следующий шаг сработал, и что произошло, когда вы это сделали.
leo arellano
Лол Бру я уже застрял в этой части 😂
Но, во-первых, мне не платят за то, что lol делает такой код похожим на то, что ему платят, а во-вторых, я просто хочу импортировать словарь для команд, но не знаю, с чего мне начать.
Им кстати просто самостоятельно изучая 😁