Язык Wolfram Language

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

Кластеризация аудио на основе спектральных признаков

Воспользуемся спектральными особенностями аудио, чтобы определить кластеры в списке звуковых объектов.

In[1]:=
Click for copyable input
a = ExampleData[{"Audio", "Drums"}, "Audio"]
Out[1]=

Разделим аудио запись на сегменты с границами в точках переходных процессов.

In[2]:=
Click for copyable input
samples = Select[AudioSplit[a, FindPeaks[AudioLocalMeasurements[a, "Novelty"]]["Times"]], Duration@# > Quantity[50, "ms"] &]; samples = Audio[#, Appearance -> "Minimal"] & /@ samples
Out[2]=

Отобразим полученные образцы на графике, используя их спектральный центроид и спектральное распространение.

In[3]:=
Click for copyable input
ListPlot[Partition[ AudioMeasurements[#, {"SpectralCentroid", "SpectralSpread"}, "List"] & /@ samples, 1], PlotMarkers -> (Audio[#, Appearance -> "Minimal"] & /@ samples), AxesLabel -> {Style["Centroid", Italic], Style["Spread", Italic]}, ImageSize -> Medium]
Out[3]=

Найдем похожие звуковые объекты с помощью с помощью функций "SpectralCentroid" и "SpectralSpread".

In[4]:=
Click for copyable input
FindClusters[ AudioMeasurements[#, {"SpectralCentroid", "SpectralSpread"}, "List"] & /@ samples -> samples]
Out[4]=

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

de en es fr ja ko pt-br zh