Язык Wolfram Language

Вычислительное аудио

Сравнение аудио методом кодирования с линейным предиктором

Загрузим и отредактируем две аудиозаписи.

In[1]:=
Click for copyable input
alice1 = AudioResample[ AudioTrim[ Import["http://ia800503.us.archive.org/3/items/alices_adventures/\ aliceinwonderland_01_carroll.mp3"], {27, 27 + 60}], 11025]
Out[1]=
In[2]:=
Click for copyable input
alice2 = AudioResample[ AudioTrim[ Import["http://ia800306.us.archive.org/25/items/alice_wonderland_\ 0711_librivox/alice_01_carroll.mp3"], {16.5, 16.5 + 60}], 11025]
Out[2]=

Сравним аудио-файлы методом кодирования с линейным предиктором и отобразим данный анализ на графике.

In[3]:=
Click for copyable input
{lpc1, lpc2} = AudioLocalMeasurements[#, "LPC", PartitionGranularity -> {.04, .01}]["Values"] & /@ {alice1, alice2};
In[4]:=
Click for copyable input
MatrixPlot[Transpose[lpc1], Frame -> True, FrameTicks -> {None, Automatic}, DataRange -> {{0, QuantityMagnitude[Duration@alice1, "s"]}, {1, 12}}, AspectRatio -> 1/8, ImageSize -> Medium]
Out[4]=
In[5]:=
Click for copyable input
MatrixPlot[Transpose[lpc2], Frame -> True, FrameTicks -> {None, Automatic}, DataRange -> {{0, QuantityMagnitude[Duration@alice1, "s"]}, {1, 12}}, AspectRatio -> 1/8, ImageSize -> Medium]
Out[5]=

Построим матрицу расстояний для анализированных функций.

In[6]:=
Click for copyable input
MatrixPlot[DistanceMatrix[lpc1, lpc2], DataRange -> {{0, QuantityMagnitude[Duration@alice1, "s"]}, {0, QuantityMagnitude[Duration@alice2, "s"]}}, ImageSize -> 300, FrameTicks -> {Automatic, Automatic}]
Out[6]=

Родственные примеры

de en es fr ja ko pt-br zh