|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
11.06.2015, 23:02 | #1 |
Новичок
Джуниор
Регистрация: 11.06.2015
Сообщений: 1
|
C#
Здравствуйте. Нашел видеоурок в интернете как сделать голосовое управление в программе. Написал код, программа запускается, но когда я нажимаю на кнопку "разрешить голосовое управление" вышла ошибка : "Необработанное исключение типа "System.NullReferenceException" в System.Speech.dll
Дополнительные сведения: Ссылка на объект не указывает на экземпляр объекта." И выделяется строка: "recEngine.RecognizeAsync(Recognize Mode.Multiple);" Вот код: 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; using System.Threading; namespace WindowsFormsApplication97 { public partial class Form1 : Form { SpeechRecognitionEngine recEngine = new SpeechRecognitionEngine(); SpeechSynthesizer synthesizer = new SpeechSynthesizer(); public Form1() { InitializeComponent(); } private void richTextBox1_TextChanged(object sender, EventArgs e) { } private void btnEnable_Click(object sender, EventArgs e) { recEngine.RecognizeAsync(RecognizeM ode.Multiple); btnDisable.Enabled = true; } private void Form1_Load(object sender, EventArgs e) { Choices commands = new Choices(); commands.Add(new string[] { "hello", "print my name", "speak selected text" }); GrammarBuilder gBuilder = new GrammarBuilder(); gBuilder.Append(commands); Grammar grammar = new Grammar(gBuilder); recEngine.LoadGrammarAsync(grammar) ; recEngine.SetInputToDefaultAudioDev ice(); recEngine.SpeechRecognized += recEngine_SpeechRecognized; } void recEngine_SpeechRecognized(object sender, SpeechRecognizedEventArgs e) { switch (e.Result.Text) { case "say hello": synthesizer.SpeakAsync("Hello Said. How are you?"); break; case "print my name": richTextBox1.Text += "\nSaid"; break; case "speak selected text": synthesizer.SpeakAsync(richTextBox1 .SelectedText); break; } } private void btnDisable_Click(object sender, EventArgs e) { recEngine.RecognizeAsyncStop(); btnDisable.Enabled = false; } } } |