СОДЕРЖАНИЕ
СОДЕРЖАНИЕ.. 3
ВВЕДЕНИЕ.. 4
1 АНАЛИЗ ИСХОДНЫХ ДАННЫХ.. 5
2 ПРОГРАММНОЕ ПРОЕКТИРОВАНИЕ.. 7
3 ПРОГРАММНАЯ РЕАЛИЗАЦИЯ.. 9
3.1 Детальная реализация функциональных частей. 9
3.2 Сопроводительная документация………………………………………………...14
3.3 Анализ ПО.. 14
3.4 Тестирование ПО.. 15
ЗАКЛЮЧЕНИЕ.. 19
ЛИТЕРАТУРА.. 20
ПРИЛОЖЕНИЕ А.. 21
ПРИЛОЖЕНИЕ Б. 25
Для реализации голосового управления в классе «MicrosoftSpeechRecognition» были реализованы следующие методы: «SpeechRecognition», «speak_SpeechRecognized», «GetInstalledSoftware», «Speech», «word».
В методе «SpeechRecogrnition» объявляем экземпляр класса «SpeechRecogniseEngine» для распознавания голоса. Создаем объект распознавания, указываем русский язык. Так же устанавливаем устройство ввода – микрофон. Далее указываем функцию для обнаружения входных данных. Указываем функцию для завершения операции асинхронного распознавания. После этого указываем функцию, которая определяет, когда распознаватель получает входные данные, не соответствующие ни одной из загруженных грамматик распознавания речи. Далее указываем функцию, которая будет вызываться при распознавании фразы, считываем с файла фразы, которые надо говорить. загружаем грамматику для работы с файловым менеджером. И напоследок загружаем грамматику, не связанную с файловым менеджером.
Листинг 1 – Метод «SpeechRecogrniser»
|
public void SpeechRecognition() { try { say = new CultureInfo("ru-RU"); speak = new SpeechRecognitionEngine(say); speak.SpeechDetected += new EventHandler<SpeechDetectedEventArgs>(speach_SpeechDet); speak.RecognizeCompleted += new EventHandler<RecognizeCompletedEventArgs>(speech_Rec); speak.SpeechHypothesized += new EventHandler<SpeechHypothesizedEventArgs>(speech_SpeechHyp); speak.SpeechRecognitionRejected += new EventHandler<SpeechRecognitionRejectedEventArgs>(speech_SpeechRec); speak.SpeechRecognized += new EventHandler<SpeechRecognizedEventArgs>(speak_SpeechRecognized); speak.SetInputToDefaultAudioDevice(); speak.LoadGrammar(word1()); speak.LoadGrammar(word2()); speak.EndSilenceTimeout = new TimeSpan(0, 0, 0); speak.RecognizeAsync(RecognizeMode.Multiple); } catch (Exception exc){MessageBox.Show(exc.Message);} }
|
Метод «speak_SpeechRecognized» - выполняет соответствующее действие с выбранным приложением и записанной командной. При каждом переходе по дереву, обновляется словарь.
Листинг 2 – Метод «speak_SpeechRecognized»
|
private void speak_SpeechRecognized(object sender, SpeechRecognizedEventArgs e) {AppendLine("\t" + "Speech Recognized"); AppendLine(e.Result.Text + " (" + e.Result.Confidence + ") "); if (e.Result.Confidence < 0.1f)return; for (var i = 0; i < e.Result.Alternates.Count; ++i) {AppendLine("\t" + "Alternate: " + e.Result.Alternates[i].Text + " (" + e.Result.Alternates[i].Confidence + ")");} for (var i = 0; i < e.Result.Words.Count; i++) {AppendLine("\t" + "Word: " + e.Result.Words[i].Text + " (" + e.Result.Words[i].Confidence + ")"); if (e.Result.Words[i].Confidence < 0.1f)return;} foreach (var s in e.Result.Semantics) {var prog = (string)s.Value.Value; switch (s.Key) {case "start": Process.Start(prog); break; case "close": var p = Process.GetProcessesByName(prog); if (p.Length > 0) {p[0].Kill();}break;}}} |
Список использованной литературы:
Голосовое управление компьютером C# [Электронный ресурс]. — Режим доступа: https://windowstips.ru/golosovoe-upravlenie-kompyuterom. Дата обращения: 7.10.2017. WPF C# [Электронный ресурс]. — Режим доступа: https://ru.wikipedia.org/wiki/C_Sharp. Дата обращения: 23.10.2017. Программы аналоги [Электронный ресурс]. — Режим доступа: https://rb.ru/list/from-siri/to/ozlo. Дата обращения: 23.10.2017. Microsoft.Speech.Recognition [Электронный ресурс]. — Режим доступа: https://technet.microsoft.com/ru-ru/library/microsoft.speech.recognition. Дата обращения: 15.11.2017. UML [Электронный ресурс]. — Режим доступа: https://www.intuit.ru/studies/courses/1007/229/info. Дата обращения: 18.11.2017.

