Table of Contents

Interface IAudioFingerprinter<T>

Namespace
AiDotNet.Interfaces
Assembly
AiDotNet.dll

Interface for audio fingerprinting algorithms.

public interface IAudioFingerprinter<T>

Type Parameters

T

The numeric type used for calculations.

Remarks

Audio fingerprinting creates compact representations of audio that can be used for identification and similarity matching. Different algorithms trade off between accuracy, speed, and robustness to transformations.

For Beginners: An audio fingerprint is like a "signature" for a piece of audio. Just like human fingerprints identify individuals, audio fingerprints identify songs or sound recordings. Services like Shazam use fingerprinting to identify songs from short recordings.

Properties

FingerprintLength

Gets the fingerprint length in bits or elements.

int FingerprintLength { get; }

Property Value

int

Name

Gets the name of the fingerprinting algorithm.

string Name { get; }

Property Value

string

SampleRate

Gets the expected sample rate for input audio.

int SampleRate { get; }

Property Value

int

Methods

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

Computes the similarity between two fingerprints.

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

Parameters

fp1 AudioFingerprint<T>

First fingerprint.

fp2 AudioFingerprint<T>

Second fingerprint.

Returns

double

Similarity score (0-1, higher is more similar).

FindMatches(AudioFingerprint<T>, AudioFingerprint<T>, int)

Finds matching segments between two fingerprints.

IReadOnlyList<FingerprintMatch> FindMatches(AudioFingerprint<T> query, AudioFingerprint<T> reference, int minMatchLength = 10)

Parameters

query AudioFingerprint<T>

The query fingerprint.

reference AudioFingerprint<T>

The reference fingerprint to search in.

minMatchLength int

Minimum length of matching segment.

Returns

IReadOnlyList<FingerprintMatch>

List of matching segments with time offsets.

Fingerprint(Tensor<T>)

Generates a fingerprint from audio data.

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

Parameters

audio Tensor<T>

Audio samples as a tensor (mono audio).

Returns

AudioFingerprint<T>

The audio fingerprint.

Fingerprint(Vector<T>)

Generates a fingerprint from audio data.

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

Parameters

audio Vector<T>

Audio samples as a vector (mono audio).

Returns

AudioFingerprint<T>

The audio fingerprint.