Class ChromaprintFingerprinter<T>
- Namespace
- AiDotNet.Audio.Fingerprinting
- Assembly
- AiDotNet.dll
Chromaprint-style audio fingerprinter based on chroma features.
public class ChromaprintFingerprinter<T> : AudioFingerprinterBase<T>, IAudioFingerprinter<T>
Type Parameters
TThe numeric type used for calculations.
- Inheritance
-
ChromaprintFingerprinter<T>
- Implements
- Inherited Members
Remarks
This fingerprinter uses chromagram analysis similar to the Chromaprint algorithm used by AcoustID. It extracts chroma features and converts them to a compact binary representation that is robust to tempo changes and transposition.
For Beginners: Chromaprint works by analyzing the musical notes present in the audio. It groups all octaves of the same note together (C1, C2, C3 all become "C") and tracks how these change over time. This makes it good at matching different recordings of the same song.
Constructors
ChromaprintFingerprinter(ChromaprintOptions?)
Creates a new Chromaprint fingerprinter.
public ChromaprintFingerprinter(ChromaprintOptions? options = null)
Parameters
optionsChromaprintOptionsConfiguration options.
Properties
Name
Gets the name of the fingerprinting algorithm.
public override string Name { get; }
Property Value
Methods
ComputeSimilarity(AudioFingerprint<T>, AudioFingerprint<T>)
Computes similarity between two fingerprints.
public override double ComputeSimilarity(AudioFingerprint<T> fp1, AudioFingerprint<T> fp2)
Parameters
fp1AudioFingerprint<T>fp2AudioFingerprint<T>
Returns
FindMatches(AudioFingerprint<T>, AudioFingerprint<T>, int)
Finds matching segments between fingerprints.
public override IReadOnlyList<FingerprintMatch> FindMatches(AudioFingerprint<T> query, AudioFingerprint<T> reference, int minMatchLength = 10)
Parameters
queryAudioFingerprint<T>referenceAudioFingerprint<T>minMatchLengthint
Returns
Fingerprint(Tensor<T>)
Generates a fingerprint from audio tensor.
public override AudioFingerprint<T> Fingerprint(Tensor<T> audio)
Parameters
audioTensor<T>
Returns
Fingerprint(Vector<T>)
Generates a fingerprint from audio vector.
public override AudioFingerprint<T> Fingerprint(Vector<T> audio)
Parameters
audioVector<T>