c# 음성 인식 프로그램 명령 실행 소스
Program2014. 1. 2. 02:31
이 프로그램 소스는 윈도우 SAPI Library를 활용한 음성인식 소스로써, 간단히 grammer 파일에 명령 워드(word)를 통해서 실행된 명령어를 해석하여 TTS answer 및 몇몇의 정해진 프로그램을 구동하는 기능을 구현한 소스입니다.
필수 설치 프로그램 Microsoft Speech Platform - Runtime (Version 11) http://www.microsoft.com/en-us/download/details.aspx?id=27225 Microsoft Speech Platform - Software Development Kit (SDK) (Version 11) http://www.microsoft.com/en-us/download/details.aspx?id=27226 Microsoft Speech Platform - Runtime Languages (Version 11) http://www.microsoft.com/en-us/download/details.aspx?id=27224 한글 음성인식: MSSpeech_SR_ko-KR_TELE.msi 한글 TTS: MSSpeech_TTS_ko-KR_Heami.msi |
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146 using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Globalization;using System.Threading.Tasks;using System.Windows.Forms;using System.Diagnostics;using Microsoft.Speech.Recognition;using Microsoft.Speech.Synthesis;namespace SR_Test{public partial class Form1 : Form{public Form1(){InitializeComponent();initRS();initTTS();}public void initRS(){try{SpeechRecognitionEngine sre = new SpeechRecognitionEngine(new CultureInfo("ko-KR"));Grammar g = new Grammar("input.xml");sre.LoadGrammar(g);sre.SpeechRecognized += new EventHandler(sre_SpeechRecognized);sre.SetInputToDefaultAudioDevice();sre.RecognizeAsync(RecognizeMode.Multiple);}catch (Exception e){label1.Text = "init RS Error : " + e.ToString();}}SpeechSynthesizer tts;public void initTTS(){try{tts = new SpeechSynthesizer();tts.SelectVoice("Microsoft Server Speech Text to Speech Voice (ko-KR, Heami)");tts.SetOutputToDefaultAudioDevice();tts.Volume = 100;}catch(Exception e){label1.Text = "init TTS Error : " + e.ToString();}}void sre_SpeechRecognized(object sender, SpeechRecognizedEventArgs e){label1.Text = e.Result.Text;switch(e.Result.Text){case "컴퓨터":tts.SpeakAsync("네 컴퓨터입니다");break;case "안녕":tts.SpeakAsync("반갑습니다 음성인식 테스터입니다");break;case "종료":{tts.Speak("프로그램을 종료합니다");Application.Exit();break;}case "계산기":{tts.SpeakAsync("계산기를 실행합니다");doProgram("c:\\windows\\system32\\calc.exe", "");break;}case "메모장":{tts.SpeakAsync("메모장을 실행합니다");doProgram("c:\\windows\\system32\\notepad.exe", "");break;}case "콘솔":{tts.SpeakAsync("콘솔을 실행합니다");doProgram("c:\\windows\\system32\\cmd.exe", "");break;}case "그림판":{tts.SpeakAsync("그림판을 실행합니다");doProgram("c:\\windows\\system32\\mspaint.exe", "");break;}case "계산기 닫기":{tts.SpeakAsync("계산기를 종료합니다");closeProcess("calc");break;}}}// 프로세스 실행private static void doProgram(string filename, string arg){ProcessStartInfo psi;if(arg.Length != 0)psi = new ProcessStartInfo(filename, arg);elsepsi = new ProcessStartInfo(filename);Process.Start(psi);}// 프로세스 종료private static void closeProcess(string filename){Process[] myProcesses;// Returns array containing all instances of Notepad.myProcesses = Process.GetProcessesByName(filename);foreach (Process myProcess in myProcesses){myProcess.CloseMainWindow();}}}}
'Program' 카테고리의 다른 글
windiff 소스코드 비교 프로그램 (0) | 2017.04.11 |
---|---|
치트오매틱 한글 (0) | 2017.04.11 |
키보드 딜레이 속도 설정 프로그램 (0) | 2013.05.22 |
EasyDelete 1.2 - 파일 완전 삭제 프로그램 (0) | 2012.04.06 |
EasyCleaner 1.0 - 시스템 최적화 프로그램 (0) | 2012.03.06 |