Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.06.2015, 23:02   #1
MadaraMan
Новичок
Джуниор
 
Регистрация: 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;
}
}
}
MadaraMan вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц