public void TestFeatureUtility()
        {
            var arraySoundSignalReader = new ArraySignalReader(new float[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 });
            var filteredSignal = new PreemphasisFilter(arraySoundSignalReader, 0.95f);

            VoiceActivitySignalReader fu = new VoiceActivitySignalReader(filteredSignal, 5);
            float[] frame1;
            float[] frame2;
            float[] frame3;
            bool isVoice;
            fu.Read( 5, 2, out frame1,out isVoice);
            fu.Read(5, 2, out frame2, out isVoice);
            fu.Read(5, 2, out frame3, out isVoice);

            var arraySoundSignalReader1 = new ArraySignalReader(new float[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 });
            var filteredSignal1 = new PreemphasisFilter(arraySoundSignalReader1, 0.95f);

            float[] frame4 = new float[5];
            float[] frame5 = new float[5];
            //float[] frame6 = new float[5];

            filteredSignal1.Read(frame4, 0, 5);
            filteredSignal1.Read(frame5, 0, 5);
        }
        public void TestPreFiltering()
        {
            var soundSignal = new TestSoundSignalReader(new float[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 });

            var preemphasisFilter = new PreemphasisFilter(soundSignal, 0.95f);
            var buffer = new float[10];
            var items = preemphasisFilter.Read(buffer, 10);
            var expected = new[] { 1.0000f, 1.0500f, 1.1000f, 1.1500f, 1.2000f, 1.2500f, 1.3000f, 1.3500f, 1.4000f, 1.45f };

            for (var index = 0; index < buffer.Length; index++)
            {
                var delta = Math.Abs(expected[index] - buffer[index]);

                Assert.IsTrue(0.01 > delta);
            }

            preemphasisFilter = new PreemphasisFilter(soundSignal, 0.95f);
            buffer = new float[3];
            var startIndex = 0;
            while (preemphasisFilter.Read(buffer, startIndex, 3))
            {
                startIndex += 3;
            }
        }