public IQueryCommand WithConfigs(IFingerprintConfiguration fingerprintConfiguration, IQueryConfiguration configuration) { QueryConfiguration = configuration; FingerprintConfiguration = fingerprintConfiguration; createFingerprintMethod = () => fingerprintingMethodFromSelector().WithFingerprintConfig(fingerprintConfiguration); return(this); }
public IFingerprintCommand WithFingerprintConfig(Action <CustomFingerprintConfiguration> functor) { CustomFingerprintConfiguration customFingerprintConfiguration = new CustomFingerprintConfiguration(); FingerprintConfiguration = customFingerprintConfiguration; functor(customFingerprintConfiguration); return(this); }
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"); }
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; }
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; }
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); }
public IFingerprintCommand WithDefaultFingerprintConfig() { FingerprintConfiguration = new DefaultFingerprintConfiguration(); return(this); }
public IFingerprintCommand WithFingerprintConfig(IFingerprintConfiguration configuration) { FingerprintConfiguration = configuration; return(this); }
public IFingerprintCommand WithFingerprintConfig <T>() where T : IFingerprintConfiguration, new() { FingerprintConfiguration = new T(); return(this); }
public IUsingFingerprintServices WithFingerprintConfig <T>() where T : IFingerprintConfiguration, new() { FingerprintConfiguration = new T(); return(this); }
public IUsingFingerprintServices WithFingerprintConfig(IFingerprintConfiguration configuration) { FingerprintConfiguration = configuration; return(this); }
public IUsingFingerprintServices WithDefaultFingerprintConfig() { FingerprintConfiguration = new DefaultFingerprintConfiguration(); return(this); }
public IUsingQueryServices WithConfigs(IFingerprintConfiguration fingerprintConfiguration, IQueryConfiguration configuration) { QueryConfiguration = configuration; FingerprintConfiguration = fingerprintConfiguration; return(this); }