AudioDistance

AudioDistance[audio1,audio2]

returns a distance measure between audio1 and audio2.

Details and Options

  • AudioDistance computes a dissimilarity measure between audio objects that may compare waveforms or other features of the signals, using different distance functions.
  • If audio1 and audio2 are of different durations, the distance is computed on the trimmed signals to the shorter duration by default.
  • The following options can be specified:
  • DistanceFunction Automaticthe distance function to use
    Masking Automaticthe audio intervals to use for comparison
    PartitionGranularity Automaticaudio partitioning specification
    SampleRate Automaticsample rate for conforming audioi
  • By default, using DistanceFunction->Automatic, the EuclideanDistance of audio waveforms is computed. Compute other measures using different distance functions or different features.
  • The following distance functions are computed from the Fourier transform of audioi:
  • "SpectralEuclidean"Euclidean applied to the power spectra (default)
    "SpectralItakuraSaito"maximum likelihood of LPC-derived spectral envelopes
    "SpectralMagnitudePhaseDistortion"the average of magnitude and phase spectral distances
    "SpectralRMSLog"Euclidean applied to the log of power spectra
    "SpectralFirstOrderDifferential"distance between first-order derivatives of power spectra
    "SpectralSecondOrderDifferential"distance between second-order derivatives of power spectra
    "Cepstral"Euclidean applied to the power cepstra
  • Additional DistanceFunction settings are also available and can work on different audio features:
  • EuclideanDistanceEuclidean distance
    SquaredEuclideanDistancesquared Euclidean distance
    NormalizedSquaredEuclideanDistancenormalized squared Euclidean distance
    RootMeanSquareroot mean square distance
    ManhattanDistanceManhattan or "city block" distance
    CosineDistanceangular cosine distance
    CorrelationDistancecorrelation coefficient distance
    WarpingDistancedynamic time warping (DTW) distance
    fan arbitrary function f
  • By default, WarpingDistance is computed from the "MFCC" features and all other distances are computed from "AudioData".
  • Using DistanceFunction->{method,FeatureExtractor->f}, a different feature extractor can be specified.
  • Possible settings for FeatureExtractor include:
  • "AudioData"audio data
    "Formants"frequencies of the formants of the signal
    "LPC"linear prediction coefficients
    "MelSpectrogram"mel-scale audio spectrogram
    "MFCC"mel-frequency cepstral coefficients vectors sequence
    "Novelty"estimated measure for significant changes
    "Spectrogram"spectrogram
  • By default, AudioDistance is computed on the trimmed signals to the shorter duration.
  • Use the Masking option to compute the distance measure on different intervals. Possible settings include:
  • Automatictrim to the shorter duration (default)
    Allpad to the longer duration
    {t1,t2}compare the signals between times t1 and t2
    {{t11,t12},{t21,t22}}t11 to t12 from audio1 compared to t21 to t22 from audio2
  • Using Masking->{{t22,t12}},{t21,t22}}, the duration of the two intervals should be the same.
  • PartitionGranularity is only used with features that work on partitioned audio, like "MFCC", and ignored otherwise.
  • By default, SampleRate->Automatic takes the highest sample rate in all audioi.

Examples

open allclose all

Basic Examples  (1)

Distance between two audio objects:

Scope  (1)

Distance of two audio signals with different lengths:

The longer signal is trimmed to the shorter duration:

Options  (13)

DistanceFunction  (6)

By default, the "SpectralEuclidean" distance is used:

Various distances are computed on the sample values of the audio signals:

Distances computed on the spectrum compare the frequency content rather than the sample values:

Phase differences of the signals do not affect the computed spectral distance:

By default, any distance measure uses the most suitable audio feature:

Most distances use "AudioData" as the default feature:

With WarpingDistance, the "MFCC" feature is used by default:

Specify a different feature:

All features other than "AudioData" are computed from the signal's short-time Fourier transform:

Masking  (4)

If two signals have different lengths, the longer is trimmed to the shorter duration:

To compare the full length of the signals, use Masking->All:

Use the Masking option to compare a specific interval of two audio objects:

As long as the duration of the intervals is the same, they can be chosen from different times:

Use MaskingAll to compare the full length of the signals:

PartitionGranularity  (2)

Use the PartitionGranularity option to control the computation of the features:

If the selected feature is "AudioData", the PartitionGranularity option is ignored:

SampleRate  (1)

By default, all audio signals are converted to the higher sample rate:

Use a specific sample rate:

Applications  (1)

Distance between different oscillators:

Visually compare the waveforms:

Wolfram Research (2018), AudioDistance, Wolfram Language function, https://reference.wolfram.com/language/ref/AudioDistance.html.

Text

Wolfram Research (2018), AudioDistance, Wolfram Language function, https://reference.wolfram.com/language/ref/AudioDistance.html.

CMS

Wolfram Language. 2018. "AudioDistance." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/AudioDistance.html.

APA

Wolfram Language. (2018). AudioDistance. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/AudioDistance.html

BibTeX

@misc{reference.wolfram_2023_audiodistance, author="Wolfram Research", title="{AudioDistance}", year="2018", howpublished="\url{https://reference.wolfram.com/language/ref/AudioDistance.html}", note=[Accessed: 18-March-2024 ]}

BibLaTeX

@online{reference.wolfram_2023_audiodistance, organization={Wolfram Research}, title={AudioDistance}, year={2018}, url={https://reference.wolfram.com/language/ref/AudioDistance.html}, note=[Accessed: 18-March-2024 ]}