public Hashes CreateFingerprintsFromAudioSamples(AudioSamples samples, FingerprintConfiguration configuration) { var spectrumFrames = spectrumService.CreateLogSpectrogram(samples, configuration.SpectrogramConfig); var hashes = CreateOriginalFingerprintsFromFrames(spectrumFrames, configuration) .AsParallel() .ToList() .Select(fingerprint => lshAlgorithm.Hash(fingerprint, configuration.HashingConfig)) .ToList(); return(new Hashes(hashes, samples.Duration, MediaType.Audio, samples.RelativeTo, new[] { samples.Origin })); }
private List <HashedFingerprint> HashFingerprints(IEnumerable <Fingerprint> fingerprints, FingerprintConfiguration configuration) { var hashedFingerprints = new ConcurrentBag <HashedFingerprint>(); Parallel.ForEach(fingerprints, (fingerprint, state, index) => { var hashedFingerprint = lshAlgorithm.Hash(fingerprint, configuration.HashingConfig, configuration.Clusters); hashedFingerprints.Add(hashedFingerprint); }); return(hashedFingerprints.ToList()); }
private List <HashedFingerprint> HashFingerprints(IEnumerable <Fingerprint> fingerprints) { var hashedFingerprints = new ConcurrentBag <HashedFingerprint>(); Parallel.ForEach( fingerprints, (fingerprint, state, index) => { var hashedFingerprint = lshAlgorithm.Hash( fingerprint, FingerprintConfiguration.HashingConfig.NumberOfLSHTables, FingerprintConfiguration.HashingConfig.NumberOfMinHashesPerTable); hashedFingerprints.Add(hashedFingerprint); }); return(hashedFingerprints.ToList()); }
private List <HashData> HashFingerprints(IEnumerable <bool[]> fingerprints) { var hashDatas = new ConcurrentBag <HashData>(); Parallel.ForEach( fingerprints, fingerprint => { var hashData = lshAlgorithm.Hash( fingerprint, FingerprintConfiguration.NumberOfLSHTables, FingerprintConfiguration.NumberOfMinHashesPerTable); hashDatas.Add(hashData); }); return(hashDatas.ToList()); }