Exemple #1
0
 public IQueryCommand WithConfigs(IFingerprintConfiguration fingerprintConfiguration, IQueryConfiguration configuration)
 {
     QueryConfiguration       = configuration;
     FingerprintConfiguration = fingerprintConfiguration;
     createFingerprintMethod  = () => fingerprintingMethodFromSelector().WithFingerprintConfig(fingerprintConfiguration);
     return(this);
 }
Exemple #2
0
        public IFingerprintCommand WithFingerprintConfig(Action <CustomFingerprintConfiguration> functor)
        {
            CustomFingerprintConfiguration customFingerprintConfiguration = new CustomFingerprintConfiguration();

            FingerprintConfiguration = customFingerprintConfiguration;
            functor(customFingerprintConfiguration);
            return(this);
        }
Exemple #3
0
        public IUsingFingerprintServices WithFingerprintConfig(Action <CustomFingerprintConfiguration> functor)
        {
            CustomFingerprintConfiguration customFingerprintConfiguration = new CustomFingerprintConfiguration();

            FingerprintConfiguration = customFingerprintConfiguration;
            functor(customFingerprintConfiguration);
            return(this);
        }
        public int[] GenerateLogFrequenciesRanges(IFingerprintConfiguration configuration)
        {
            if (configuration.UseDynamicLogBase)
            {
                return GenerateLogFrequenciesDynamicBase(configuration);
            }

            return GenerateStaticLogFrequencies(configuration);
        }
        public int[] GenerateLogFrequenciesRanges(IFingerprintConfiguration configuration)
        {
            if (configuration.UseDynamicLogBase)
            {
                return(GenerateLogFrequenciesDynamicBase(configuration));
            }

            return(GenerateStaticLogFrequencies(configuration));
        }
 public List<bool[]> CreateFingerprints(float[] samples, IFingerprintConfiguration fingerprintConfiguration)
 {
     float[][] spectrum = spectrumService.CreateLogSpectrogram(samples, fingerprintConfiguration);
     return CreateFingerprintsFromLogSpectrum(
         spectrum,
         fingerprintConfiguration.Stride,
         fingerprintConfiguration.FingerprintLength,
         fingerprintConfiguration.Overlap,
         fingerprintConfiguration.TopWavelets);
 }
 public List <bool[]> CreateFingerprints(float[] samples, IFingerprintConfiguration fingerprintConfiguration)
 {
     float[][] spectrum = spectrumService.CreateLogSpectrogram(samples, fingerprintConfiguration);
     return(CreateFingerprintsFromLogSpectrum(
                spectrum,
                fingerprintConfiguration.Stride,
                fingerprintConfiguration.FingerprintLength,
                fingerprintConfiguration.Overlap,
                fingerprintConfiguration.TopWavelets));
 }
        private int[] GenerateLogFrequenciesDynamicBase(IFingerprintConfiguration configuration)
        {
            double logBase = Math.Exp(Math.Log((float)configuration.MaxFrequency / configuration.MinFrequency) / configuration.LogBins);
            double mincoef = (float)configuration.WdftSize / configuration.SampleRate * configuration.MinFrequency;
            int[] indexes = new int[configuration.LogBins + 1];
            for (int j = 0; j < configuration.LogBins + 1; j++)
            {
                int start = (int)((Math.Pow(logBase, j) - 1.0) * mincoef);
                indexes[j] = start + (int)mincoef;
            }

            return indexes;
        }
        private int[] GenerateLogFrequenciesDynamicBase(IFingerprintConfiguration configuration)
        {
            double logBase = Math.Exp(Math.Log((float)configuration.MaxFrequency / configuration.MinFrequency) / configuration.LogBins);
            double mincoef = (float)configuration.WdftSize / configuration.SampleRate * configuration.MinFrequency;

            int[] indexes = new int[configuration.LogBins + 1];
            for (int j = 0; j < configuration.LogBins + 1; j++)
            {
                int start = (int)((Math.Pow(logBase, j) - 1.0) * mincoef);
                indexes[j] = start + (int)mincoef;
            }

            return(indexes);
        }
        public WinDrawningTool(
            IAudioService audioService,
            IFingerprintCommandBuilder fingerprintCommandBuilder,
            ISpectrumService spectrumService)
        {
            this.audioService = audioService;
            this.fingerprintCommandBuilder = fingerprintCommandBuilder;
            fingerprintConfiguration = new DefaultFingerprintConfiguration();
            imageService = new ImageService(spectrumService, new StandardHaarWaveletDecomposition());
            this.spectrumService = spectrumService;

            InitializeComponent();
            Icon = Resources.Sound;

            _lbImageTypes.Items.Add("Single file");
            _lbImageTypes.Items.Add("Separated images");
        }
Exemple #11
0
        public WinDrawningTool(
            IAudioService audioService,
            IFingerprintCommandBuilder fingerprintCommandBuilder,
            ISpectrumService spectrumService)
        {
            this.audioService = audioService;
            this.fingerprintCommandBuilder = fingerprintCommandBuilder;
            fingerprintConfiguration       = new DefaultFingerprintConfiguration();
            imageService         = new ImageService(spectrumService, new StandardHaarWaveletDecomposition());
            this.spectrumService = spectrumService;

            InitializeComponent();
            Icon = Resources.Sound;

            _lbImageTypes.Items.Add("Single file");
            _lbImageTypes.Items.Add("Separated images");
        }
        public float[][] CreateLogSpectrogram(float[] samples, IFingerprintConfiguration configuration)
        {
            if (configuration.NormalizeSignal)
            {
                audioSamplesNormalizer.NormalizeInPlace(samples);
            }

            int width = (samples.Length - configuration.WdftSize) / configuration.Overlap; /*width of the image*/
            float[][] frames = new float[width][];
            int[] logFrequenciesIndexes = logUtility.GenerateLogFrequenciesRanges(configuration);
            for (int i = 0; i < width; i++)
            {
                float[] complexSignal = fftService.FFTForward(samples, i * configuration.Overlap, configuration.WdftSize);
                frames[i] = ExtractLogBins(complexSignal, logFrequenciesIndexes, configuration.LogBins);
            }

            return frames;
        }
Exemple #13
0
        public float[][] CreateLogSpectrogram(float[] samples, IFingerprintConfiguration configuration)
        {
            if (configuration.NormalizeSignal)
            {
                audioSamplesNormalizer.NormalizeInPlace(samples);
            }

            int width = (samples.Length - configuration.WdftSize) / configuration.Overlap; /*width of the image*/

            float[][] frames = new float[width][];
            int[]     logFrequenciesIndexes = logUtility.GenerateLogFrequenciesRanges(configuration);
            for (int i = 0; i < width; i++)
            {
                float[] complexSignal = fftService.FFTForward(samples, i * configuration.Overlap, configuration.WdftSize);
                frames[i] = ExtractLogBins(complexSignal, logFrequenciesIndexes, configuration.LogBins);
            }

            return(frames);
        }
        private int[] GenerateStaticLogFrequencies(IFingerprintConfiguration configuration)
        {
            double logMin = Math.Log(configuration.MinFrequency, configuration.LogBase);
            double logMax = Math.Log(configuration.MaxFrequency, configuration.LogBase);

            double delta = (logMax - logMin) / configuration.LogBins;

            int[] indexes = new int[configuration.LogBins + 1];
            double accDelta = 0;
            for (int i = 0; i <= configuration.LogBins; ++i)
            {
                float freq = (float)Math.Pow(configuration.LogBase, logMin + accDelta);
                accDelta += delta;

                indexes[i] = FrequencyToSpectrumIndex(freq, configuration.SampleRate, configuration.WdftSize); // Find the start index in array from which to start the summation
            }

            return indexes;
        }
Exemple #15
0
        public WinDrawningTool(
            IAudioService audioService,
            IFingerprintCommandBuilder fingerprintCommandBuilder,
            IFingerprintConfiguration fingerprintConfiguration,
            IImageService imageService,
            ISpectrumService spectrumService)
        {
            this.audioService = audioService;
            this.fingerprintCommandBuilder = fingerprintCommandBuilder;
            this.fingerprintConfiguration  = fingerprintConfiguration;
            this.imageService    = imageService;
            this.spectrumService = spectrumService;

            InitializeComponent();
            Icon = Resources.Sound;

            _lbImageTypes.Items.Add("Single file");
            _lbImageTypes.Items.Add("Separated images");
        }
        private int[] GenerateStaticLogFrequencies(IFingerprintConfiguration configuration)
        {
            double logMin = Math.Log(configuration.MinFrequency, configuration.LogBase);
            double logMax = Math.Log(configuration.MaxFrequency, configuration.LogBase);

            double delta = (logMax - logMin) / configuration.LogBins;

            int[]  indexes  = new int[configuration.LogBins + 1];
            double accDelta = 0;

            for (int i = 0; i <= configuration.LogBins; ++i)
            {
                float freq = (float)Math.Pow(configuration.LogBase, logMin + accDelta);
                accDelta += delta;

                indexes[i] = FrequencyToSpectrumIndex(freq, configuration.SampleRate, configuration.WdftSize); // Find the start index in array from which to start the summation
            }

            return(indexes);
        }
Exemple #17
0
 public IFingerprintCommand WithDefaultFingerprintConfig()
 {
     FingerprintConfiguration = new DefaultFingerprintConfiguration();
     return(this);
 }
Exemple #18
0
 public IFingerprintCommand WithFingerprintConfig(IFingerprintConfiguration configuration)
 {
     FingerprintConfiguration = configuration;
     return(this);
 }
Exemple #19
0
 public IFingerprintCommand WithFingerprintConfig <T>() where T : IFingerprintConfiguration, new()
 {
     FingerprintConfiguration = new T();
     return(this);
 }
Exemple #20
0
 public IUsingFingerprintServices WithFingerprintConfig <T>() where T : IFingerprintConfiguration, new()
 {
     FingerprintConfiguration = new T();
     return(this);
 }
Exemple #21
0
 public IUsingFingerprintServices WithFingerprintConfig(IFingerprintConfiguration configuration)
 {
     FingerprintConfiguration = configuration;
     return(this);
 }
Exemple #22
0
 public IUsingFingerprintServices WithDefaultFingerprintConfig()
 {
     FingerprintConfiguration = new DefaultFingerprintConfiguration();
     return(this);
 }
 public IUsingQueryServices WithConfigs(IFingerprintConfiguration fingerprintConfiguration, IQueryConfiguration configuration)
 {
     QueryConfiguration       = configuration;
     FingerprintConfiguration = fingerprintConfiguration;
     return(this);
 }