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)); } }
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); }
/// <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); }
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); }
public void Dispose() { if (_disposed) { return; } GC.SuppressFinalize(this); if (_preprocessor != IntPtr.Zero) { SpeexDspNativeMethods.speex_preprocess_state_destroy(_preprocessor); _preprocessor = IntPtr.Zero; } _disposed = true; }