public override double Detect(double[] fftSamples)
        {
            levelR1.ProcessData(fftSamples, null);
            if (levelR1.IsSpeaking)
            {
                return(1);
            }
            else
            {
                return(0);
            }
            //sum1 = sum2=sum3=sum4 = 0;

            //for (i = beg1; i <= end1; i++)
            //    sum1 += fftSamples[i];


            //for (i = beg2; i <= end2; i++)
            //   //if (sum2 < fftSamples[i])
            //        sum2 += fftSamples[i];



            //sum1= sum1 / (end1 - beg1);
            //sum2 = sum2 / (end2 - beg2);

            //if (sum2 > sum1 )
            //    return 100;



            // There is no any chance
            return(0);
        }
Пример #2
0
        // read time spectrum processor - iterface of this form
        public void ProcessData(double[] specData, double[] samples)
        {
            if (pause)
            {
                return;
            }
            //if (InvokeRequired)
            //   BeginInvoke(new SpecProcessorFunc(ArchiveData), new object[] { specData });
            //else

            if (chkNoiseReducer.Checked)
            {
                noiseReduction.ProcessData(specData, samples);
            }

            noiseAnalyser.ProcessData(specData, samples);
            IntensityAnalyser.ProcessData(specData, samples);
            // تشخیص حرف تلفظ شده از طریق داده های اسپکتروم
            if (noiseAnalyser.IsSpeaking)
            {
                detector.Detect(specData, 0, noiseAnalyser.NoiseLevel, noiseAnalyser.NoiseLevel);
            }

            ArchiveData(specData, samples);
        }
Пример #3
0
        // دریافت فرکانسهای بدست آمده از نمونه های صوتی 8192 تایی
        // جهت تشخیص زیر و بمی
        private void New8192FourierFrequencyArrived(double[] data, double[] samples)
        {
            noiseFilterSpeaking.ProcessData(data, samples);
            noiseFilterVowelChecker.ProcessData(data, samples);

            // اگر حرف صدادار تلفظ شده بود
            if (noiseFilterVowelChecker.IsSpeaking)
            {
                // اسپکتروم باید نرمال شود
                normalizerFilter.ProcessData(data, samples);
                // زیری و بمی با استفاده از اسپکتروم نرمال شده
                tempoFilter.ProcessData(data, samples);
            }
            else
            {
                // حروف صدادار وجود ندارد و باید ریست شود
                tempoFilter.Reset();
            }
        }
Пример #4
0
        // Loads data into archive
        void ArchiveData(double[] specData, double[] samples)
        {
            if (noiseAnalyser.IsSpeaking)
            {
                lblTalking.ForeColor = Color.Red;
            }
            else
            {
                lblTalking.ForeColor = Color.Gray;
            }


            GramUtils.NormalArchive.Add(specData);
            GramUtils.SampleArchive.Add(samples);
            TalkArchive.Add(noiseAnalyser.IsSpeaking);

            var roundedRow = (double[])specData.Clone();

            new SpectrumNormalizerFilter().ProcessData(roundedRow, null);
            noiseFilterVowelChecker.ProcessData(roundedRow, null);

            GramUtils.RoundedArchive.Add(roundedRow);
        }