Вот функция, которая настраивает ввод звука и грамматики et c для распознавателя речи.
private void Form1_Load(object sender, EventArgs e)
{
theTime.Start();
SpeechRecognitionEngine speechRec = new SpeechRecognitionEngine();
list.Add(File.ReadAllLines(@"H:\Alyssa Reborn\Alyssa Reborn\grammar\commands.txt"));
Grammar gr = new Grammar(new GrammarBuilder(list));
speechRec.LoadGrammar(gr);
speechRec.SpeechRecognized += speechRec_SpeechRecognized;
speechRec.SetInputToDefaultAudioDevice();
speechRec.RecognizeAsync(RecognizeMode.Multiple);
s.SelectVoiceByHints(VoiceGender.Female);
s.SelectVoice("CereVoice Jess - English (England)");
say(GreetingsFunction());
using (SpeechSynthesizer synth = new SpeechSynthesizer())
{
// Output information about all of the installed voices.
Console.WriteLine("Installed voices -");
foreach (InstalledVoice voice in synth.GetInstalledVoices())
{
VoiceInfo info = voice.VoiceInfo;
Console.WriteLine(" Voice Name: " + info.Name);
}
}
versionLabel.Text = "Version: " + versionReference.Version();
}
По прошествии X времени он решает просто прекратить прослушивание. Приложение не зависает, потому что у меня работают все анимации и кнопки. Единственный способ исправить эту проблему, который я нашел прямо сейчас, - это наличие кнопки, которая повторно запускает строку кода выше.
Вещи, которые я пытался исправить эту проблему:
После многочисленных неудачных попыток я решил посмотреть, исправит ли эта проблема каждую секунду обновление распознавателя речи, из-за этого программа СУПЕР зависала, давала сбой и принимала одну команду как две, а go - полностью бешеный. Я ожидал этого, но это была попытка сусла.
Поскольку не указано c количество времени, необходимое для его остановки (обычно от 5 до 15 минут, иногда даже дольше) Я просто поставил случайный таймер на 130 секунд, чтобы он обновил sh распознаватель речи, но, поскольку неизвестно время его выхода из строя, иногда он перезагружал речь, и снова принимал 1 команду как две с момента загрузки дважды ...
У меня совершенно нет идей и я буду признателен за любую помощь, которую я могу получить :)