/* * static void _recognizer_SpeechRecognitionRejected(object sender, SpeechRecognitionRejectedEventArgs e) * { * if (e.Result.Alternates.Count == 0) * { * Console.WriteLine("Perintah tidak dikenal."); * return; * } * Console.WriteLine("Perintah tidak dikenali, mungkin maksud tuan ini:"); * foreach (RecognizedPhrase r in e.Result.Alternates) * { * Console.WriteLine(" " + r.Text); * } * }*/ private static string getDeviceName(int DeviceID) { using (var data = new JONGOS_DBEntities()) { var listCommand = from c in data.Devices where c.DeviceID == DeviceID select c; foreach (var item in listCommand) { return(item.Name); } } return("unknown"); }
static void SetupRecognizer(PXCMSession session) { PXCMAudioSource.DeviceInfo dinfo = null; if (session != null) { #region Audio Source // session is a PXCMSession instance. source = session.CreateAudioSource(); // Scan and Enumerate audio devices source.ScanDevices(); for (int d = source.QueryDeviceNum() - 1; d >= 0; d--) { source.QueryDeviceInfo(d, out dinfo); // Select one and break out of the loop break; } if (dinfo != null) { // Set the active device source.SetDevice(dinfo); } #endregion #region Recognizer Instance pxcmStatus sts = session.CreateImpl <PXCMSpeechRecognition>(out sr); if (sts < pxcmStatus.PXCM_STATUS_NO_ERROR) { return; } PXCMSpeechRecognition.ProfileInfo pinfo; sr.QueryProfile(0, out pinfo); sr.SetProfile(pinfo); //sr.SetDictation(); #endregion #region Grammar Perintah = new Dictionary <string, Module>(); // sr is a PXCMSpeechRecognition instance. using (var data = new JONGOS_DBEntities()) { var listCommand = from c in data.Modules orderby c.ID select c; foreach (var item in listCommand.Distinct()) { Perintah.Add(item.VoiceCommand, item); } } List <string> cmds = new List <string>(); foreach (var cmd in Perintah.Keys) { cmds.Add(cmd); } // Build the grammar. sr.BuildGrammarFromStringList(1, cmds.ToArray(), null); // Set the active grammar. sr.SetGrammar(1); #endregion #region recognition Event // Set handler PXCMSpeechRecognition.Handler handler = new PXCMSpeechRecognition.Handler(); handler.onRecognition = OnRecognition; //handler.onAlert = OnAlert; // sr is a PXCMSpeechRecognition instance pxcmStatus stsrec = sr.StartRec(source, handler); if (stsrec < pxcmStatus.PXCM_STATUS_NO_ERROR) { Console.WriteLine("Recognizer error!"); } #endregion } }