Exemple #1
0
            private void CTL(SpeexDspCtl ctl, ref float value)
            {
                var code = SpeexDspNativeMethods.speex_preprocess_ctl(_preprocessor, (int)ctl, ref value);

                if (code != 0)
                {
                    throw new InvalidOperationException(string.Format("Failed Speex CTL '{0}' Code='{1}'", ctl, code));
                }
            }
Exemple #2
0
            public void Reset()
            {
                if (_preprocessor != IntPtr.Zero)
                {
                    SpeexDspNativeMethods.speex_preprocess_state_destroy(_preprocessor);
                    _preprocessor = IntPtr.Zero;
                }

                _preprocessor = SpeexDspNativeMethods.speex_preprocess_state_init(_frameSize, _format.SampleRate);
            }
Exemple #3
0
            /// <summary>
            /// Process a frame of data captured from the microphone
            /// </summary>
            /// <param name="frame"></param>
            /// <returns>Returns true iff VAD is enabled and speech is detected</returns>
            public void Process(ArraySegment <short> frame)
            {
                if (frame.Count != _frameSize)
                {
                    throw new ArgumentException(string.Format("Incorrect frame size, expected {0} but given {1}", _frameSize, frame.Count), "frame");
                }

                using (var handle = frame.Pin())
                    SpeexDspNativeMethods.speex_preprocess_run(_preprocessor, handle.Ptr);
            }
Exemple #4
0
            private float CTL_Float(SpeexDspCtl ctl)
            {
                var result = 0f;

                var code = SpeexDspNativeMethods.speex_preprocess_ctl(_preprocessor, (int)ctl, ref result);

                if (code != 0)
                {
                    throw new InvalidOperationException(string.Format("Failed Speex CTL '{0}' Code='{1}'", ctl, code));
                }

                return(result);
            }
Exemple #5
0
            public void Dispose()
            {
                if (_disposed)
                {
                    return;
                }

                GC.SuppressFinalize(this);

                if (_preprocessor != IntPtr.Zero)
                {
                    SpeexDspNativeMethods.speex_preprocess_state_destroy(_preprocessor);
                    _preprocessor = IntPtr.Zero;
                }

                _disposed = true;
            }