private static void PhraseRecognitionSystem_InvokeStatusChangedEvent(SpeechSystemStatus status) { StatusDelegate onStatusChanged = OnStatusChanged; if (onStatusChanged != null) { onStatusChanged(status); } }
private static void PhraseRecognitionSystem_InvokeStatusChangedEvent(SpeechSystemStatus status) { PhraseRecognitionSystem.StatusDelegate onStatusChanged = PhraseRecognitionSystem.OnStatusChanged; if (onStatusChanged != null) { onStatusChanged(status); } }
private void StatusHandler(SpeechSystemStatus status) { Debug.Log("SPEECH API STATUS CHANGED: " + status); if (status != SpeechSystemStatus.Running) { RebindVoiceCommands(); } }
// Update is called once per frame void Update() { // if any text has been recognized from speech, stop STT service if (dictationResult != tempString) { tempString = dictationResult; inputField.text = dictationResult; StopSpeechToText(); } // update STT status variable if (dictationRecognizer.Status != dictationRecognizerStatus) { dictationRecognizerStatus = dictationRecognizer.Status; } }
private static void PhraseRecognitionSystem_InvokeStatusChangedEvent(SpeechSystemStatus status) { PhraseRecognitionSystem.OnStatusChanged?.Invoke(status); }
// Update is called once per frame void Update() { WakeWordState = WWEList[0].GetState(); DictationState = STT.GetState(); //lasse das Mikrofon Overlay blinken, falls TTS aktiv ist /*if (DictationState.Equals(SpeechSystemStatus.Running)) { * StartCoroutine("FlashMicrophoneOverlay"); * }*/ //WakeWordStateText.text = WakeWordState.ToString(); //DictationStateText.text = DictationState.ToString(); if (WantToChangeToWakeWordDetection) { Debug.LogError("*****Sie möchten zur WakeWordEngine wechseln..."); if (DictationState.Equals(SpeechSystemStatus.Running)) { Debug.LogError("....aber der DictationMode lief noch.****"); Debug.LogError("DictationState: " + DictationState); Debug.LogErrorFormat("ASRQueue Count: {0}", ASRModeSwitchQueue.Count); } else if (DictationState.Equals(SpeechSystemStatus.Stopped)) { Debug.LogError("....und los gehts.*******"); foreach (IWakeWordEngineInterface WWE in WWEList) { WWE.StartDetection(); } WantToChangeToWakeWordDetection = false; isSwitchingASRMode = false; } else { Debug.LogErrorFormat("......_______________ERROR!!!__________...DictationState steht auf: {0}", DictationState); } } /*if(PhraseRecognitionSystem.Status.Equals(SpeechSystemStatus.Stopped) && STT.dictationRecognizer.Status.Equals(SpeechSystemStatus.Stopped)) * { * Debug.Log("------ Keine Spracherkennung aktiv. Starte WakeWordEngine"); * SwitchToWakeWordDetection("fehler erkannt"); * }*/ int i = 0; foreach (AsrSwitchDelegate command in ASRModeSwitchQueue) { Debug.LogErrorFormat("Befehl {0} befindet sich an Position {1}", command.Method.Name, i); i++; } //Falls zuletzt ausgeführter Wechsel fertig -> nehme den nächsten aus der Warteschlange und führe ihn aus if (ASRModeSwitchQueue.Count != 0) { if (!isSwitchingASRMode) { if (ASRModeSwitchQueue.Count == 1) //Bei nur einem in der Liste und keinem der gerade arbeiten kann direkt gewechselt werden { //Ignoeriere Wechsel, wenn dieser Modus bereits aktiv ist if ((ASRModeSwitchQueue.Peek().Method.Name.Equals(SwitchToSTT.Method.Name) && DictationState.Equals(SpeechSystemStatus.Stopped)) || (ASRModeSwitchQueue.Peek().Method.Name.Equals(SwitchToWWE.Method.Name) && WakeWordState.Equals(SpeechSystemStatus.Stopped))) { Debug.LogError("Haben nur einen Befehl in der Warteschlage und führen diesen aus."); ASRModeSwitchQueue.Dequeue()(); } else { Debug.LogError("Modus in den gewechselt werden soll ist bereits aktiv. -> Pop ohne Ausführung"); ASRModeSwitchQueue.Dequeue(); } } else { if (ASRModeSwitchQueue.Peek().Method.Name.Equals(SwitchToSTT.Method.Name)) { //Debug.LogError("Nehme das vordere der Warteschlage weg. **STT Befehl**"); //ASRModeSwitchQueue.Dequeue()(); AsrSwitchDelegate topFunction = ASRModeSwitchQueue.Dequeue(); if (DictationState.Equals(SpeechSystemStatus.Stopped)) //wenn zur STT gewechselt werden soll darf diese momentan nicht aktiv sein { Debug.LogError("Nehme das vordere der Warteschlage weg. **STT Befehl**"); topFunction(); //ASRModeSwitchQueue.Dequeue()(); } else { Debug.LogErrorFormat("DictationState steht auf: {0}. Ich kann daher nicht zu STT wechseln. --POP--", DictationState); } } else if (ASRModeSwitchQueue.Peek().Method.Name.Equals(SwitchToWWE.Method.Name)) //für WWE muss STT beendet sein { //Debug.LogError("Nehme das vordere der Warteschlage weg. **WWE Befehl**"); //ASRModeSwitchQueue.Dequeue()(); AsrSwitchDelegate topFunction = ASRModeSwitchQueue.Dequeue(); if (WakeWordState.Equals(SpeechSystemStatus.Stopped)) { Debug.LogError("Nehme das vordere der Warteschlage weg. **WWE Befehl**"); topFunction(); //ASRModeSwitchQueue.Dequeue()(); } else { Debug.LogErrorFormat("WakeWordState steht auf: {0}. Ich kann daher nicht zu WWE wechseln.--POP--", WakeWordState); } } else { Debug.LogErrorFormat("Konnte Methode {0} nicht ausführen, da der Gegenpart noch lief.", ASRModeSwitchQueue.Peek().Method.Name); } } } else if (isSwitchingASRMode) { Debug.LogErrorFormat("Warte mit Mode Wechsel... ein anderer wechselt noch. WWEState: {0}, STTState: {1}", WakeWordState, DictationState); } } else { //Debug.Log("Kein Wechsel beantragt."); } if (Input.GetKey(KeyCode.LeftControl) && Input.GetKeyDown(KeyCode.H)) { RefreshWakeWordDetection(); } }
private SpeechSystemStatus dictationRecognizerStatus; // variable to check if STT is active /// <summary> /// This method initilizes necessary variables with default values /// </summary> void Start() { dictationRecognizer = new DictationRecognizer(); dictationRecognizerStatus = SpeechSystemStatus.Stopped; voiceIconAnimator.enabled = false; }
void SpeechSystemStatusFn(SpeechSystemStatus status) { Debug.Log("Speech System Status: " + status); }