Table of Contents

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

T

The 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

options ChromaprintOptions

Configuration options.

Properties

Name

Gets the name of the fingerprinting algorithm.

public override string Name { get; }

Property Value

string

Methods

ComputeSimilarity(AudioFingerprint<T>, AudioFingerprint<T>)

Computes similarity between two fingerprints.

public override double ComputeSimilarity(AudioFingerprint<T> fp1, AudioFingerprint<T> fp2)

Parameters

fp1 AudioFingerprint<T>
fp2 AudioFingerprint<T>

Returns

double

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

query AudioFingerprint<T>
reference AudioFingerprint<T>
minMatchLength int

Returns

IReadOnlyList<FingerprintMatch>

Fingerprint(Tensor<T>)

Generates a fingerprint from audio tensor.

public override AudioFingerprint<T> Fingerprint(Tensor<T> audio)

Parameters

audio Tensor<T>

Returns

AudioFingerprint<T>

Fingerprint(Vector<T>)

Generates a fingerprint from audio vector.

public override AudioFingerprint<T> Fingerprint(Vector<T> audio)

Parameters

audio Vector<T>

Returns

AudioFingerprint<T>