По крайней мере, одна грамматика должна быть загружена перед выполнением распознавания.
Итак, у меня возникла проблема с моим кодом..
Программа: Visual Studio 2017 Код Языка: С#
Я постоянно получаю это всплывающее сообщение об ошибке, когда пытаюсь активировать свой код:
"Система.InvalidOperationException: 'по крайней мере одна грамматика должна быть загружена перед выполнением распознавания."
он выбирает эту часть кода:
реинжиниринг.RecognizeAsync(RecognizeMode.Множественный);
Весь код;
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; namespace Voice_Recognition { public partial class Form1 : Form { SpeechRecognitionEngine recEngine = new SpeechRecognitionEngine(); public Form1() { InitializeComponent(); } private void btnEnable_Click(object sender, EventArgs e) { recEngine.RecognizeAsync(RecognizeMode.Multiple); btnDisable.Enabled = true; } private void Form1_Load(object sender, EventArgs e) { Choices commands = new Choices(); string[] phrases = new string[] { "test", "chicken" }; Choices choiceSet = new Choices(phrases); GrammarBuilder grammarBuilder = new GrammarBuilder(choiceSet); GrammarBuilder gBuilder = new GrammarBuilder(); gBuilder.Append(commands); Grammar grammar = new Grammar(gBuilder); recEngine.LoadGrammarAsync(grammar); recEngine.SetInputToDefaultAudioDevice(); recEngine.SpeechRecognized += RecEngine_SpeechRecognized; } private void RecEngine_SpeechRecognized(object sender, SpeechRecognizedEventArgs e) { switch (e.Result.Text) { case "balance breaker": MessageBox.Show("Welsh Dragon, Balance Breaker"); break; case "balance break": richTextBox1.Text += "\nBalance Break"; break; } } private void btnDisable_Click(object sender, EventArgs e) { recEngine.RecognizeAsyncStop(); btnDisable.Enabled = false; } } }
Если вы знаете, как решить эту проблему, я был бы очень рад, потому что это код, который я действительно хочу работать, и это также один из моих первых проектов, и я действительно начинаю заниматься кодированием, хотя, когда вы застреваете вот так, это становится действительно скучно!
Что я уже пробовал:
Я пробовал следующие "решения"
c# - по крайней мере одна грамматика должна быть загружена перед выполнением распознавания - переполнение стека[^]
По крайней мере одна грамматика должна быть загружена ошибка c#[^]
Хотя ни один из них не сработал