public bool StartWebSocketServer() { WSRConfig cfg = WSRConfig.GetInstance(); int port = cfg.WebSocket; if (port < 0) { return(false); } if (cfg.WSSmooth) { filter1 = new DepthFilteredSmoothing(); } if (cfg.WSAverage) { filter2 = new DepthAveragedSmoothing(); } ImageFormat format = cfg.WSType == "png" ? ImageFormat.Png : ImageFormat.Jpeg; Sockets = new List <IWebSocketConnection>(); Server = new WebSocketServer("ws://localhost:" + port); Server.Start(socket => { socket.OnOpen = () => { cfg.logInfo("WEBSCK", "Connected to: " + socket.ConnectionInfo.ClientIpAddress); lock (Sockets) { Sockets.Add(socket); } }; socket.OnClose = () => { cfg.logInfo("WEBSCK", "Disconnected from: " + socket.ConnectionInfo.ClientIpAddress); lock (Sockets) { Sockets.Remove(socket); } }; socket.OnMessage = message => { SendWebSocket(socket, GreenScreen(message), format); }; }); return(true); }
// ========================================== // HANDLE SPEECH RECOGNITION // ========================================== public override void InitSpeechEngine() { base.InitSpeechEngine(false); try { WSRConfig cfg = WSRConfig.GetInstance(); WSRSpeechManager manager = WSRSpeechManager.GetInstance(); SpeechAudioFormatInfo format = new SpeechAudioFormatInfo(EncodingFormat.Pcm, 16000, 16, 1, 32000, 2, null); for (int i = 0; i < Sensors.Count; i++) { KinectAudioSource source = Sensors[i].Sensor.AudioSource; source.EchoCancellationMode = EchoCancellationMode.CancellationAndSuppression; source.NoiseSuppression = true; source.BeamAngleMode = BeamAngleMode.Adaptive; //set the beam to adapt to the surrounding source.AutomaticGainControlEnabled = false; if (WSRConfig.GetInstance().Echo >= 0) { source.EchoCancellationSpeakerIndex = WSRConfig.GetInstance().Echo; } String prefix = "KINECT_" + i; cfg.logInfo(prefix, "AutomaticGainControlEnabled : " + source.AutomaticGainControlEnabled); cfg.logInfo(prefix, "BeamAngle : " + source.BeamAngle); cfg.logInfo(prefix, "EchoCancellationMode : " + source.EchoCancellationMode); cfg.logInfo(prefix, "EchoCancellationSpeakerIndex : " + source.EchoCancellationSpeakerIndex); cfg.logInfo(prefix, "NoiseSuppression : " + source.NoiseSuppression); cfg.logInfo(prefix, "SoundSourceAngle : " + source.SoundSourceAngle); cfg.logInfo(prefix, "SoundSourceAngleConfidence : " + source.SoundSourceAngleConfidence); var stream = source.Start(); // streamer = new SpeechStreamer(stream); // FIXME manager.AddEngine(prefix, cfg.language, cfg.confidence, stream, format); } } catch (Exception ex) { WSRConfig.GetInstance().logError("ENGINE", "Init Kinect Engines: " + ex.Message); } }
public void Init() { cfg.logInfo("ENGINE - " + Name, "Init recognizer"); engine.SpeechRecognized += new EventHandler <SpeechRecognizedEventArgs>(recognizer_SpeechRecognized); engine.RecognizeCompleted += new EventHandler <RecognizeCompletedEventArgs>(recognizer_RecognizeCompleted); engine.AudioStateChanged += new EventHandler <AudioStateChangedEventArgs>(recognizer_AudioStateChanged); engine.SpeechHypothesized += new EventHandler <SpeechHypothesizedEventArgs>(recognizer_SpeechHypothesized); engine.SpeechDetected += new EventHandler <SpeechDetectedEventArgs>(recognizer_SpeechDetected); engine.SpeechRecognitionRejected += new EventHandler <SpeechRecognitionRejectedEventArgs>(recognizer_SpeechRecognitionRejected); engine.UpdateRecognizerSetting("CFGConfidenceRejectionThreshold", (int)(this.Confidence * 100)); engine.MaxAlternates = cfg.MaxAlternates; engine.InitialSilenceTimeout = cfg.InitialSilenceTimeout; engine.BabbleTimeout = cfg.BabbleTimeout; engine.EndSilenceTimeout = cfg.EndSilenceTimeout; engine.EndSilenceTimeoutAmbiguous = cfg.EndSilenceTimeoutAmbiguous; if (!cfg.Adaptation) { engine.UpdateRecognizerSetting("AdaptationOn", 0); } cfg.logInfo("ENGINE - " + Name, "AudioLevel: " + engine.AudioLevel); cfg.logInfo("ENGINE - " + Name, "MaxAlternates: " + engine.MaxAlternates); cfg.logInfo("ENGINE - " + Name, "BabbleTimeout: " + engine.BabbleTimeout); cfg.logInfo("ENGINE - " + Name, "InitialSilenceTimeout: " + engine.InitialSilenceTimeout); cfg.logInfo("ENGINE - " + Name, "EndSilenceTimeout: " + engine.EndSilenceTimeout); cfg.logInfo("ENGINE - " + Name, "EndSilenceTimeoutAmbiguous: " + engine.EndSilenceTimeoutAmbiguous); tracker = new PitchTracker(); tracker.SampleRate = 16000.0f; tracker.PitchDetected += OnPitchDetected; }