Aufnahmen mithilfe von DTW vergleichen
Führen Sie den Import, Schnitt und die Vorverarbeitung von vier Tonaufnahmen des ersten Satzes von Alice in Wonderland durch.
Den kompletten Wolfram Language-Input zeigen
In[2]:=
![Click for copyable input](assets.de/use-dtw-to-compare-recordings/In_58.png)
alice = ConformAudio[
MapThread[
AudioNormalize[
AudioChannelMix[AudioTrim[AudioResample[Import[#1], 11025], #2],
1]] &, {urls, times}]]
Out[2]=
![](assets.de/use-dtw-to-compare-recordings/O_25.png)
Visualisieren Sie die Tonspuren der Signale.
In[3]:=
![Click for copyable input](assets.de/use-dtw-to-compare-recordings/In_59.png)
AudioPlot[alice, ImageSize -> Medium]
Out[3]=
![](assets.de/use-dtw-to-compare-recordings/O_26.png)
Berechnen und visualisieren Sie die MFC-Koeffizienten der Signale.
In[4]:=
![Click for copyable input](assets.de/use-dtw-to-compare-recordings/In_60.png)
mfcc = AudioLocalMeasurements[#, "MFCC",
PartitionGranularity -> {.05, .01}]["Values"] & /@ alice;
In[5]:=
![Click for copyable input](assets.de/use-dtw-to-compare-recordings/In_61.png)
Column[MatrixPlot[#, PlotTheme -> "Minimal", ImageSize -> Medium] & /@
Transpose /@ mfcc]
Out[5]=
![](assets.de/use-dtw-to-compare-recordings/O_27.png)
Berechnen Sie mit WarpingDistance die Distanz der dynamischen Zeitnormierung zwischen den Aufnahmen.
In[6]:=
![Click for copyable input](assets.de/use-dtw-to-compare-recordings/In_62.png)
DistanceMatrix[mfcc,
DistanceFunction -> WarpingDistance] // MatrixPlot
Out[6]=
![](assets.de/use-dtw-to-compare-recordings/O_28.png)
Berechnen Sie mit WarpingCorrespondence die Übereinstimmung zwischen zwei Tonaufnahmen bei dynamischer Zeitnormierung.
In[7]:=
![Click for copyable input](assets.de/use-dtw-to-compare-recordings/In_63.png)
{n, m} = WarpingCorrespondence[mfcc[[1]], mfcc[[2]]];
Den kompletten Wolfram Language-Input zeigen
Out[8]=
![](assets.de/use-dtw-to-compare-recordings/O_29.png)