AudioDistance[audio1,audio2]
audio1と audio2の間の距離測度を返す.
AudioDistance[video1,video2]
video1と video2の音声トラック間の距離測度を返す.
AudioDistance
AudioDistance[audio1,audio2]
audio1と audio2の間の距離測度を返す.
AudioDistance[video1,video2]
video1と video2の音声トラック間の距離測度を返す.
詳細とオプション
- AudioDistanceは,さまざまな距離関数を使って,波形その他の特徴を比較することができる音声オブジェクト間の非類似測度を計算する.
- audio1と audio2の持続時間が異なる場合は,デフォルトで,短い方に合わせて切り取られた信号を使って計算が行われる.
- 次は指定可能なオブションである.
-
DistanceFunction Automatic 使用する距離関数 Masking Automatic 比較に使用する音声区間 PartitionGranularity Automatic 音声分割指定 SampleRate Automatic audioiを合わせるサンプルレート - デフォルトで,DistanceFunction->Automaticを使うと,音声の波形のEuclideanDistanceが計算される.他の測度は他の距離関数や特徴を使って計算される.
- audioiのフーリエ変換から次の距離関数が計算される.
-
"SpectralEuclidean" パワースペクトルに適用されるユークリッド関数(デフォルト) "SpectralItakuraSaito" LPC由来のスペクトル包絡線の最大尤度 "SpectralMagnitudePhaseDistortion" マグニチュードと位相スペクトル距離の平均 "SpectralRMSLog" パワースペクトルの対数に適用されるユークリッド関数 "SpectralFirstOrderDifferential" パワースペクトルの一次導関数間の距離 "SpectralSecondOrderDifferential" パワースペクトルの二次導関数間の距離 "Cepstral" パワーケプストラムに適用されるユークリッド関数 - DistanceFunctionのその他の設定も,さまざまな音声特性に使用することができる.
-
EuclideanDistance ユークリッド距離 SquaredEuclideanDistance 二乗ユークリッド距離 NormalizedSquaredEuclideanDistance 正規化された二乗ユークリッド距離 RootMeanSquare 二乗平均平方距離 ManhattanDistance マンハッタン(市街地)距離 CosineDistance 角余弦距離 CorrelationDistance 相関係数距離 WarpingDistance 動的タイムワーピング(DTW)距離 f 任意の関数 f - デフォルトで,WarpingDistanceは"MFCC"の特徴から計算され,その他のすべての距離は"AudioData"から計算される.
- DistanceFunction->{method,FeatureExtractor->f}を使うと別の特徴抽出器が指定できる.
- 次は,FeatureExtractorの可能な設定である.
-
"AudioData" 音声データ "Formants" 信号のフォルマント周波数 "LPC" 線形予測係数 "MelSpectrogram" メル尺度音声スペクトログラム "MFCC" メル周波数ケプストラム係数ベクトル列 "Novelty" 著しい変化の推定測度 "Spectrogram" スペクトログラム - デフォルトで,AudioDistanceは,短い方の持続時間に合わせて切り取られた信号について計算される.
- Maskingオプションを使ってさまざまな区間の距離測度を計算する.次は,使用可能な設定である.
-
Automatic 短い方の持続時間に合わせて切り取る(デフォルト) All 長い方の持続時間に合わせて充填する {t1,t2} 時点 t1から t2までの信号を比較する {{t11,t12},{t21,t22}} audio1の t11から t12までを audio2の t21から t22まで - Masking->{{t22,t12},{t21,t22}}を使うとき,2区間の持続時間は同じでなければならない.
- PartitionGranularityは,"MFCC"のように分割された音声に使える特徴のみと使うことができる.それ以外の場合には無視される.
- デフォルトで,SampleRate->Automaticは,すべての audioiの中で最も高いサンプルレートを使う.
例題
すべて開く すべて閉じる例 (1)
スコープ (2)
a = AudioGenerator["Sin", 2];
b = AudioGenerator["Triangle", 1];
AudioDistance[a, b]AudioDistance[AudioTrim[a, 1], b]AudioDistance[Video["ExampleData/fish.mp4"], Video["ExampleData/rule30.mp4"]]オプション (13)
DistanceFunction (6)
デフォルトで,"SpectralEuclidean"距離が使われる:
{a, b} = {AudioGenerator["Sin"], AudioGenerator["Triangle"]};
AudioDistance[a, b] === AudioDistance[a, b, DistanceFunction -> "SpectralEuclidean"]{a, b} = {AudioGenerator["Sin"], AudioGenerator["Triangle"]};
distances = {EuclideanDistance, SquaredEuclideanDistance, NormalizedSquaredEuclideanDistance, ManhattanDistance, CosineDistance, CorrelationDistance, RootMeanSquare};res = Table[{d, AudioDistance[a, b, DistanceFunction -> d]}, {d, distances}];
TextGrid[res, Frame -> All]スペクトルについて計算した距離は,サンプル値ではなく周波数成分を比較する:
{a, b} = {AudioGenerator["Sin"], AudioGenerator["Triangle"]};
distances = {"SpectralEuclidean", "SpectralItakuraSaito", "SpectralMagnitudePhaseDistortion", "SpectralRMSLog", "SpectralFirstOrderDifferential", "SpectralSecondOrderDifferential", "Cepstral"};res = Table[{d, AudioDistance[a, b, DistanceFunction -> d]}, {d, distances}];
TextGrid[res, Frame -> All]spectralDistances = Table[AudioDistance[AudioGenerator[{"Sin", 440, phase}], b], {phase, 0., 2Pi, .2}];
sampleDistances = Table[AudioDistance[AudioGenerator[{"Sin", 440, phase}], b, DistanceFunction -> EuclideanDistance], {phase, 0., 2Pi, .2}];ListLinePlot[Normalize /@ {spectralDistances, sampleDistances}, DataRange -> {0, 2Pi}, PlotLegends -> {"Spectral Euclidean", "Euclidean"}, AxesLabel -> {"phase", "normalized distance"}]{a, b} = {AudioGenerator["Sin"], AudioGenerator["Triangle"]};
AudioDistance[a, b, DistanceFunction -> EuclideanDistance]ほとんどの距離が"AudioData"をデフォルトの特徴として使う:
distances = {EuclideanDistance, SquaredEuclideanDistance, NormalizedSquaredEuclideanDistance, ManhattanDistance, CosineDistance, CorrelationDistance, RootMeanSquare};
Table[{d, AudioDistance[a, b, DistanceFunction -> d] == AudioDistance[a, b, DistanceFunction -> {d, FeatureExtractor -> "AudioData"}]}, {d, distances}]//TextGridWarpingDistanceでは,"MFCC"特徴がデフォルトで使われる:
{a, b} = {AudioGenerator["Sin"], AudioGenerator["Triangle"]};AudioDistance[a, b, DistanceFunction -> WarpingDistance]% == AudioDistance[a, b, DistanceFunction -> {WarpingDistance, FeatureExtractor -> "MFCC"}]{a, b} = {AudioGenerator["Sin"], AudioGenerator["Triangle"]};
AudioDistance[a, b, DistanceFunction -> {EuclideanDistance, FeatureExtractor -> "MFCC"}]"AudioData"以外の特徴はどれも,信号の短時間フーリエ変換から計算される:
features = {"AudioData", "Spectrogram", "MelSpectrogram", "MFCC", "Novelty", "Formants", "LPC"};Table[{f, AudioDistance[a, b, DistanceFunction -> {EuclideanDistance, FeatureExtractor -> f}]}, {f, features}]//TextGrid[#, Frame -> All]&Masking (4)
2つの信号の長さが異なる場合は,長い方が短い方に合わせて切り取られる:
{a, b, c} = {AudioGenerator["Sin"], AudioGenerator["Triangle"], AudioGenerator["Sin", 2]};AudioDistance[a, b]
AudioDistance[c, b]信号の長さ全体を比較する場合にはMasking->Allを使う:
AudioDistance[c, b, Masking -> All]Maskingオプションを使って2つの音声オブジェクトの特定の区間を比較する:
a = ExampleData[{"Audio", "FemaleVoice"}];
b = ExampleData[{"Audio", "MaleVoice"}];AudioDistance[a, b, Masking -> {1, 1.5}]区間の持続時間が同じ限り,それらを別の時間から選ぶことができる:
a = ExampleData[{"Audio", "FemaleVoice"}]times = Table[t, {t, 0, 3.9, .1}];
duration = .35;dist = Table[
AudioDistance[a, a, Masking -> {{0, duration}, {t, t + duration}}, DistanceFunction -> "SpectralMagnitudePhaseDistortion"], {t, times}];
ListLinePlot[dist, PlotRange -> All, DataRange -> MinMax[times]]a = ExampleData[{"Audio", "FemaleVoice"}];
b = ExampleData[{"Audio", "MaleVoice"}];AudioDistance[a, b, Masking -> All]PartitionGranularity (2)
PartitionGranularityオプションを使って特徴の計算を制御する:
a = ExampleData[{"Audio", "FemaleVoice"}];
b = ExampleData[{"Audio", "MaleVoice"}];AudioDistance[a, b, PartitionGranularity -> Quantity[46, "Milliseconds"], DistanceFunction -> {EuclideanDistance, FeatureExtractor -> "MFCC"}]AudioDistance[a, b, PartitionGranularity -> Quantity[92, "Milliseconds"], DistanceFunction -> {EuclideanDistance, FeatureExtractor -> "MFCC"}]選択された特徴が"AudioData"なら,PartitionGranularityオプションは無視される:
a = ExampleData[{"Audio", "FemaleVoice"}];
b = ExampleData[{"Audio", "MaleVoice"}];AudioDistance[a, b, PartitionGranularity -> Quantity[46, "Milliseconds"], DistanceFunction -> {EuclideanDistance, FeatureExtractor -> AudioData}]AudioDistance[a, b, PartitionGranularity -> Quantity[92, "Milliseconds"], DistanceFunction -> {EuclideanDistance, FeatureExtractor -> AudioData}]SampleRate (1)
デフォルトで,すべての音声信号がより高いサンプルレートに変換される:
AudioDistance[AudioGenerator["Sin"], AudioGenerator["Triangle", SampleRate -> 11025]]AudioDistance[AudioGenerator["Sin"], AudioResample[AudioGenerator["Triangle", SampleRate -> 11025], 44100]]AudioDistance[AudioGenerator["Sin"], AudioGenerator["Triangle", SampleRate -> 11025], SampleRate -> 11025]アプリケーション (1)
waveforms = {"Sin", "Triangle", "Sawtooth", "Square"};m = DistanceMatrix[AudioGenerator /@ waveforms, DistanceFunction -> AudioDistance];
MatrixPlot[m, FrameTicks -> {Thread[{Range[4], waveforms}]}]AudioPlot[AudioGenerator /@ waveforms, PlotRange -> .01]テキスト
Wolfram Research (2018), AudioDistance, Wolfram言語関数, https://reference.wolfram.com/language/ref/AudioDistance.html (2024年に更新).
CMS
Wolfram Language. 2018. "AudioDistance." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2024. 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_2026_audiodistance, author="Wolfram Research", title="{AudioDistance}", year="2024", howpublished="\url{https://reference.wolfram.com/language/ref/AudioDistance.html}", note=[Accessed: 19-August-2026]}
BibLaTeX
@online{reference.wolfram_2026_audiodistance, organization={Wolfram Research}, title={AudioDistance}, year={2024}, url={https://reference.wolfram.com/language/ref/AudioDistance.html}, note=[Accessed: 19-August-2026]}