Exemple #1
0
        static void Main(string[] args)
        {
            String path = @"C:\Users\PauloRenato\Documents\base_balanceada_14-02-2019";

            double[][] data = AudioFeatures.getDataFromBase(path, "");

            //double[][] data;
            //AudioFeatures.LoadData(@"C:\Projeto\autoleitura\paulorenato\AudioCSharp\Caracteristicas\4125_mfcc.txt", out data, 4125, 101); ;
            //AudioFeatures.scaleData(data);
            //double[][] trainData, testData;

            //AudioFeatures.MakeTrainTestByRef(data, 42,out trainData,out testData);
            //Train(trainData, @"C:\Projeto\autoleitura\paulorenato\AudioCSharp\Modelo\audioSVMTrain.xml");
            //Test(testData, @"C:\Projeto\autoleitura\paulorenato\AudioCSharp\Modelo\audioSVMTrain.xml");

            //Console.WriteLine(RecognizeAudio(@"C:\Users\PauloRenato\Documents\base_balanceada_14-02-2019\5\5_F_14-01-2019_21_22_23.wav",  @"C:\Projeto\autoleitura\paulorenato\AudioCSharp\Modelo\audioSVMTrain.xml"));


            //Console.ReadKey();
        }
Exemple #2
0
        static double[] FeaturesFromMFCC(double[,] mfcc_mass)
        {
            int count_frames = mfcc_mass.Length / 20;

            int features_size = 100;

            double[] features = new double[features_size];

            int feature_index = 0;

            for (int i = 0; i < 20; i++)
            {
                double   media  = 0.0;
                double   max    = Double.MinValue;
                double   min    = Double.MaxValue;
                double[] values = new double[count_frames];
                for (int k = 0; k < count_frames; k++)
                {
                    if (mfcc_mass[k, i] < min)
                    {
                        min = mfcc_mass[k, i];
                    }
                    if (mfcc_mass[k, i] > max)
                    {
                        max = mfcc_mass[k, i];
                    }
                    media    += mfcc_mass[k, i];
                    values[k] = mfcc_mass[k, i];
                }
                media = media / count_frames;
                double variance = AudioFeatures.Variance(values, media);
                double mediana  = AudioFeatures.GetMedian(values);

                features[feature_index++] = (float)mediana;
                features[feature_index++] = (float)media;
                features[feature_index++] = (float)variance;
                features[feature_index++] = (float)min;
                features[feature_index++] = (float)max;
            }
            return(features);
        }
Exemple #3
0
        static float RecognizeAudio(string path, string svmModel)
        {
            SVMAudio mySVM = new SVMAudio();

            mySVM.LoadSVMFromFile(svmModel);
            double[] y = AudioFeatures.load2(path);
            double[,] mfcc_mass = MFCC_calculating.MFCC_20_calculation(y);
            double[]            features_vector = FeaturesFromMFCC(mfcc_mass);
            int                 features_size   = 100;
            Image <Gray, float> features        = new Image <Gray, float>(features_size, 1);
            Image <Gray, float> results         = new Image <Gray, float>(1, 1);

            AudioFeatures.NormalizeFromFile(@"C:\Projeto\autoleitura\paulorenato\AudioCSharp\Modelo\scaleSVMTrain.txt", features_vector);

            for (int i = 0; i < features_size; i++)
            {
                features.Data[0, i, 0] = (float)features_vector[i];
            }

            mySVM.Predict(features, results);
            return(results.Data[0, 0, 0]);
        }