Кластеризация аудио на основе спектральных признаков
Воспользуемся спектральными особенностями аудио, чтобы определить кластеры в списке звуковых объектов.
In[1]:=

a = ExampleData[{"Audio", "Drums"}, "Audio"]
Разделим аудио запись на сегменты с границами в точках переходных процессов.
In[2]:=

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

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

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]:=

FindClusters[
AudioMeasurements[#, {"SpectralCentroid", "SpectralSpread"},
"List"] & /@ samples -> samples]
Out[4]=
