public string AlertToString(PXCMVoiceRecognition.Alert.Label label) { switch (label) { case PXCMVoiceRecognition.Alert.Label.LABEL_SNR_LOW: return "SNR_LOW"; case PXCMVoiceRecognition.Alert.Label.LABEL_SPEECH_UNRECOGNIZABLE: return "SPEECH_UNRECOGNIZABLE"; case PXCMVoiceRecognition.Alert.Label.LABEL_VOLUME_HIGH: return "VOLUME_HIGH"; case PXCMVoiceRecognition.Alert.Label.LABEL_VOLUME_LOW: return "VOLUME_LOW"; } return "UNKNOWN"; }
public override void OnRecognized(ref PXCMVoiceRecognition.Recognition data) { if (data.label < 0) { form.PrintConsole(data.dictation); } else { form.ClearScores(); for (int i = 0; i < 4; i++) { int label = data.nBest[i].label; uint confidence = data.nBest[i].confidence; if (label < 0 || confidence == 0) continue; form.SetScore(label, confidence); } } }
public override void OnVoiceRecognitionSetup(ref PXCMVoiceRecognition.ProfileInfo pinfo) { QueryVoiceRecognition().QueryProfile(pidx, out pinfo); }
public override void OnAlert(ref PXCMVoiceRecognition.Alert data) { form.PrintStatus(form.AlertToString(data.label)); }
private static extern bool SetVoiceLanguageC(IntPtr pp, PXCMVoiceRecognition.ProfileInfo.Language language);
public bool SetVoiceLanguage(PXCMVoiceRecognition.ProfileInfo.Language language) { if (instance==IntPtr.Zero) return false; return SetVoiceLanguageC(instance,language); }
public bool QueryVoiceRecognized(out PXCMVoiceRecognition.Recognition data) { data=new PXCMVoiceRecognition.Recognition(); data.nBest=new PXCMVoiceRecognition.Recognition.NBest[4]; data.dictation=""; if (!initialized) return false; IntPtr data1=Marshal.AllocHGlobal(2112); bool sts=QueryVoiceRecognizedC(instance,data1); if (sts) { data.timeStamp=(ulong)Marshal.ReadInt64(data1,0); for (int i=0;i<4;i++) { data.nBest[i].label=Marshal.ReadInt32(data1,8+i*8); data.nBest[i].confidence=Marshal.ReadInt32(data1,8+i*8+4); } data.duration=(uint)Marshal.ReadInt32(data1,60); data.dictation=Marshal.PtrToStringUni(new IntPtr(data1.ToInt64()+64),1024).Split(new Char[]{'\0'})[0]; } Marshal.FreeHGlobal(data1); return sts; }
private string LanguageToString(PXCMVoiceRecognition.ProfileInfo.Language language) { switch (language) { case PXCMVoiceRecognition.ProfileInfo.Language.LANGUAGE_US_ENGLISH: return "US English"; case PXCMVoiceRecognition.ProfileInfo.Language.LANGUAGE_GB_ENGLISH: return "British English"; case PXCMVoiceRecognition.ProfileInfo.Language.LANGUAGE_DE_GERMAN: return "Deutsch"; case PXCMVoiceRecognition.ProfileInfo.Language.LANGUAGE_IT_ITALIAN: return "italiano"; case PXCMVoiceRecognition.ProfileInfo.Language.LANGUAGE_BR_PORTUGUESE: return "PORTUGUÊS"; case PXCMVoiceRecognition.ProfileInfo.Language.LANGUAGE_CN_CHINESE: return "中文"; case PXCMVoiceRecognition.ProfileInfo.Language.LANGUAGE_FR_FRENCH: return "Français"; case PXCMVoiceRecognition.ProfileInfo.Language.LANGUAGE_JP_JAPANESE: return "日本語"; case PXCMVoiceRecognition.ProfileInfo.Language.LANGUAGE_US_SPANISH: return "español"; } return null; }