Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        // ==========================================
        //  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);
            }
        }
Exemplo n.º 3
0
        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;
        }