Пример #1
0
        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 }));
        }
Пример #2
0
        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());
        }
Пример #3
0
        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());
        }
Пример #4
0
        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());
        }