Table of Contents

Class SpectrogramFingerprinter<T>

Namespace
AiDotNet.Audio.Fingerprinting
Assembly
AiDotNet.dll

Spectrogram peak-based audio fingerprinter (Shazam-style).

public class SpectrogramFingerprinter<T> : AudioFingerprinterBase<T>, IAudioFingerprinter<T>

Type Parameters

T

The numeric type used for calculations.

Inheritance
SpectrogramFingerprinter<T>
Implements
Inherited Members

Remarks

This fingerprinter uses spectral peak detection similar to the Shazam algorithm. It finds prominent peaks in the spectrogram and creates hash codes from peak pairs, providing robustness to noise and speed variations.

For Beginners: This algorithm finds the loudest frequency points in the audio (like mountain peaks on a landscape) and remembers their positions. By comparing peak patterns, it can identify songs even with background noise or slight speed changes.

Constructors

SpectrogramFingerprinter(SpectrogramFingerprintOptions?)

Creates a new spectrogram-based fingerprinter.

public SpectrogramFingerprinter(SpectrogramFingerprintOptions? options = null)

Parameters

options SpectrogramFingerprintOptions

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>