mirror of
https://github.com/agresdominik/predictify.git
synced 2026-04-21 17:55:49 +00:00
Audoi analysis of tracks
This commit is contained in:
+120
-265
@@ -2,254 +2,14 @@
|
|||||||
"cells": [
|
"cells": [
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 1,
|
"execution_count": 13,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [
|
"outputs": [
|
||||||
{
|
{
|
||||||
"name": "stdout",
|
"name": "stdout",
|
||||||
"output_type": "stream",
|
"output_type": "stream",
|
||||||
"text": [
|
"text": [
|
||||||
"Processing file 1/1772...\n",
|
"Processing file 1/1772...\n"
|
||||||
"Processing file 2/1772...\n",
|
|
||||||
"Processing file 3/1772...\n",
|
|
||||||
"Processing file 4/1772...\n",
|
|
||||||
"Processing file 5/1772...\n",
|
|
||||||
"Processing file 6/1772...\n",
|
|
||||||
"Processing file 7/1772...\n",
|
|
||||||
"Processing file 8/1772...\n",
|
|
||||||
"Processing file 9/1772...\n",
|
|
||||||
"Processing file 10/1772...\n",
|
|
||||||
"Processing file 11/1772...\n",
|
|
||||||
"Processing file 12/1772...\n",
|
|
||||||
"Processing file 13/1772...\n",
|
|
||||||
"Processing file 14/1772...\n",
|
|
||||||
"Processing file 15/1772...\n",
|
|
||||||
"Processing file 16/1772...\n",
|
|
||||||
"Processing file 17/1772...\n",
|
|
||||||
"Processing file 18/1772...\n",
|
|
||||||
"Processing file 19/1772...\n",
|
|
||||||
"Processing file 20/1772...\n",
|
|
||||||
"Processing file 21/1772...\n",
|
|
||||||
"Processing file 22/1772...\n",
|
|
||||||
"Processing file 23/1772...\n",
|
|
||||||
"Processing file 24/1772...\n",
|
|
||||||
"Processing file 25/1772...\n",
|
|
||||||
"Processing file 26/1772...\n",
|
|
||||||
"Processing file 27/1772...\n",
|
|
||||||
"Processing file 28/1772...\n",
|
|
||||||
"Processing file 29/1772...\n",
|
|
||||||
"Processing file 30/1772...\n",
|
|
||||||
"Processing file 31/1772...\n",
|
|
||||||
"Processing file 32/1772...\n",
|
|
||||||
"Processing file 33/1772...\n",
|
|
||||||
"Processing file 34/1772...\n",
|
|
||||||
"Processing file 35/1772...\n",
|
|
||||||
"Processing file 36/1772...\n",
|
|
||||||
"Processing file 37/1772...\n",
|
|
||||||
"Processing file 38/1772...\n",
|
|
||||||
"Processing file 39/1772...\n",
|
|
||||||
"Processing file 40/1772...\n",
|
|
||||||
"Processing file 41/1772...\n",
|
|
||||||
"Processing file 42/1772...\n",
|
|
||||||
"Processing file 43/1772...\n",
|
|
||||||
"Processing file 44/1772...\n",
|
|
||||||
"Processing file 45/1772...\n",
|
|
||||||
"Processing file 46/1772...\n",
|
|
||||||
"Processing file 47/1772...\n",
|
|
||||||
"Processing file 48/1772...\n",
|
|
||||||
"Processing file 49/1772...\n",
|
|
||||||
"Processing file 50/1772...\n",
|
|
||||||
"Processing file 51/1772...\n",
|
|
||||||
"Processing file 52/1772...\n",
|
|
||||||
"Processing file 53/1772...\n",
|
|
||||||
"Processing file 54/1772...\n",
|
|
||||||
"Processing file 55/1772...\n",
|
|
||||||
"Processing file 56/1772...\n",
|
|
||||||
"Processing file 57/1772...\n",
|
|
||||||
"Processing file 58/1772...\n",
|
|
||||||
"Processing file 59/1772...\n",
|
|
||||||
"Processing file 60/1772...\n",
|
|
||||||
"Processing file 61/1772...\n",
|
|
||||||
"Processing file 62/1772...\n",
|
|
||||||
"Processing file 63/1772...\n",
|
|
||||||
"Processing file 64/1772...\n",
|
|
||||||
"Processing file 65/1772...\n",
|
|
||||||
"Processing file 66/1772...\n",
|
|
||||||
"Processing file 67/1772...\n",
|
|
||||||
"Processing file 68/1772...\n",
|
|
||||||
"Processing file 69/1772...\n",
|
|
||||||
"Processing file 70/1772...\n",
|
|
||||||
"Processing file 71/1772...\n",
|
|
||||||
"Processing file 72/1772...\n",
|
|
||||||
"Processing file 73/1772...\n",
|
|
||||||
"Processing file 74/1772...\n",
|
|
||||||
"Processing file 75/1772...\n",
|
|
||||||
"Processing file 76/1772...\n",
|
|
||||||
"Processing file 77/1772...\n",
|
|
||||||
"Processing file 78/1772...\n",
|
|
||||||
"Processing file 79/1772...\n",
|
|
||||||
"Processing file 80/1772...\n",
|
|
||||||
"Processing file 81/1772...\n",
|
|
||||||
"Processing file 82/1772...\n",
|
|
||||||
"Processing file 83/1772...\n",
|
|
||||||
"Processing file 84/1772...\n",
|
|
||||||
"Processing file 85/1772...\n",
|
|
||||||
"Processing file 86/1772...\n",
|
|
||||||
"Processing file 87/1772...\n",
|
|
||||||
"Processing file 88/1772...\n",
|
|
||||||
"Processing file 89/1772...\n",
|
|
||||||
"Processing file 90/1772...\n",
|
|
||||||
"Processing file 91/1772...\n",
|
|
||||||
"Processing file 92/1772...\n",
|
|
||||||
"Processing file 93/1772...\n",
|
|
||||||
"Processing file 94/1772...\n",
|
|
||||||
"Processing file 95/1772...\n",
|
|
||||||
"Processing file 96/1772...\n",
|
|
||||||
"Processing file 97/1772...\n",
|
|
||||||
"Processing file 98/1772...\n",
|
|
||||||
"Processing file 99/1772...\n",
|
|
||||||
"Processing file 100/1772...\n",
|
|
||||||
"Processing file 101/1772...\n",
|
|
||||||
"Processing file 102/1772...\n",
|
|
||||||
"Processing file 103/1772...\n",
|
|
||||||
"Processing file 104/1772...\n",
|
|
||||||
"Processing file 105/1772...\n",
|
|
||||||
"Processing file 106/1772...\n",
|
|
||||||
"Processing file 107/1772...\n",
|
|
||||||
"Processing file 108/1772...\n",
|
|
||||||
"Processing file 109/1772...\n",
|
|
||||||
"Processing file 110/1772...\n",
|
|
||||||
"Processing file 111/1772...\n",
|
|
||||||
"Processing file 112/1772...\n",
|
|
||||||
"Processing file 113/1772...\n",
|
|
||||||
"Processing file 114/1772...\n",
|
|
||||||
"Processing file 115/1772...\n",
|
|
||||||
"Processing file 116/1772...\n",
|
|
||||||
"Processing file 117/1772...\n",
|
|
||||||
"Processing file 118/1772...\n",
|
|
||||||
"Processing file 119/1772...\n",
|
|
||||||
"Processing file 120/1772...\n",
|
|
||||||
"Processing file 121/1772...\n",
|
|
||||||
"Processing file 122/1772...\n",
|
|
||||||
"Processing file 123/1772...\n",
|
|
||||||
"Processing file 124/1772...\n",
|
|
||||||
"Processing file 125/1772...\n",
|
|
||||||
"Processing file 126/1772...\n",
|
|
||||||
"Processing file 127/1772...\n",
|
|
||||||
"Processing file 128/1772...\n",
|
|
||||||
"Processing file 129/1772...\n",
|
|
||||||
"Processing file 130/1772...\n",
|
|
||||||
"Processing file 131/1772...\n",
|
|
||||||
"Processing file 132/1772...\n",
|
|
||||||
"Processing file 133/1772...\n",
|
|
||||||
"Processing file 134/1772...\n",
|
|
||||||
"Processing file 135/1772...\n",
|
|
||||||
"Processing file 136/1772...\n",
|
|
||||||
"Processing file 137/1772...\n",
|
|
||||||
"Processing file 138/1772...\n",
|
|
||||||
"Processing file 139/1772...\n",
|
|
||||||
"Processing file 140/1772...\n",
|
|
||||||
"Processing file 141/1772...\n",
|
|
||||||
"Processing file 142/1772...\n",
|
|
||||||
"Processing file 143/1772...\n",
|
|
||||||
"Processing file 144/1772...\n",
|
|
||||||
"Processing file 145/1772...\n",
|
|
||||||
"Processing file 146/1772...\n",
|
|
||||||
"Processing file 147/1772...\n",
|
|
||||||
"Processing file 148/1772...\n",
|
|
||||||
"Processing file 149/1772...\n",
|
|
||||||
"Processing file 150/1772...\n",
|
|
||||||
"Processing file 151/1772...\n",
|
|
||||||
"Processing file 152/1772...\n",
|
|
||||||
"Processing file 153/1772...\n",
|
|
||||||
"Processing file 154/1772...\n",
|
|
||||||
"Processing file 155/1772...\n",
|
|
||||||
"Processing file 156/1772...\n",
|
|
||||||
"Processing file 157/1772...\n",
|
|
||||||
"Processing file 158/1772...\n",
|
|
||||||
"Processing file 159/1772...\n",
|
|
||||||
"Processing file 160/1772...\n",
|
|
||||||
"Processing file 161/1772...\n",
|
|
||||||
"Processing file 162/1772...\n",
|
|
||||||
"Processing file 163/1772...\n",
|
|
||||||
"Processing file 164/1772...\n",
|
|
||||||
"Processing file 165/1772...\n",
|
|
||||||
"Processing file 166/1772...\n",
|
|
||||||
"Processing file 167/1772...\n",
|
|
||||||
"Processing file 168/1772...\n",
|
|
||||||
"Processing file 169/1772...\n",
|
|
||||||
"Processing file 170/1772...\n",
|
|
||||||
"Processing file 171/1772...\n",
|
|
||||||
"Processing file 172/1772...\n",
|
|
||||||
"Processing file 173/1772...\n",
|
|
||||||
"Processing file 174/1772...\n",
|
|
||||||
"Processing file 175/1772...\n",
|
|
||||||
"Processing file 176/1772...\n",
|
|
||||||
"Processing file 177/1772...\n",
|
|
||||||
"Processing file 178/1772...\n",
|
|
||||||
"Processing file 179/1772...\n",
|
|
||||||
"Processing file 180/1772...\n",
|
|
||||||
"Processing file 181/1772...\n",
|
|
||||||
"Processing file 182/1772...\n",
|
|
||||||
"Processing file 183/1772...\n",
|
|
||||||
"Processing file 184/1772...\n",
|
|
||||||
"Processing file 185/1772...\n",
|
|
||||||
"Processing file 186/1772...\n",
|
|
||||||
"Processing file 187/1772...\n",
|
|
||||||
"Processing file 188/1772...\n",
|
|
||||||
"Processing file 189/1772...\n",
|
|
||||||
"Processing file 190/1772...\n",
|
|
||||||
"Processing file 191/1772...\n",
|
|
||||||
"Processing file 192/1772...\n",
|
|
||||||
"Processing file 193/1772...\n",
|
|
||||||
"Processing file 194/1772...\n",
|
|
||||||
"Processing file 195/1772...\n",
|
|
||||||
"Processing file 196/1772...\n",
|
|
||||||
"Processing file 197/1772...\n",
|
|
||||||
"Processing file 198/1772...\n",
|
|
||||||
"Processing file 199/1772...\n",
|
|
||||||
"Processing file 200/1772...\n",
|
|
||||||
"Processing file 201/1772...\n",
|
|
||||||
"Processing file 202/1772...\n",
|
|
||||||
"Processing file 203/1772...\n",
|
|
||||||
"Processing file 204/1772...\n",
|
|
||||||
"Processing file 205/1772...\n",
|
|
||||||
"Processing file 206/1772...\n",
|
|
||||||
"Processing file 207/1772...\n",
|
|
||||||
"Processing file 208/1772...\n",
|
|
||||||
"Processing file 209/1772...\n",
|
|
||||||
"Processing file 210/1772...\n",
|
|
||||||
"Processing file 211/1772...\n",
|
|
||||||
"Processing file 212/1772...\n",
|
|
||||||
"Processing file 213/1772...\n",
|
|
||||||
"Processing file 214/1772...\n",
|
|
||||||
"Processing file 215/1772...\n",
|
|
||||||
"Processing file 216/1772...\n",
|
|
||||||
"Processing file 217/1772...\n",
|
|
||||||
"Processing file 218/1772...\n",
|
|
||||||
"Processing file 219/1772...\n",
|
|
||||||
"Processing file 220/1772...\n",
|
|
||||||
"Processing file 221/1772...\n",
|
|
||||||
"Processing file 222/1772...\n",
|
|
||||||
"Processing file 223/1772...\n",
|
|
||||||
"Processing file 224/1772...\n",
|
|
||||||
"Processing file 225/1772...\n",
|
|
||||||
"Processing file 226/1772...\n"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ename": "KeyboardInterrupt",
|
|
||||||
"evalue": "",
|
|
||||||
"output_type": "error",
|
|
||||||
"traceback": [
|
|
||||||
"\u001b[31m---------------------------------------------------------------------------\u001b[39m",
|
|
||||||
"\u001b[31mKeyboardInterrupt\u001b[39m Traceback (most recent call last)",
|
|
||||||
"\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[1]\u001b[39m\u001b[32m, line 53\u001b[39m\n\u001b[32m 51\u001b[39m file_path = os.path.join(folder_path, file)\n\u001b[32m 52\u001b[39m file_id = os.path.splitext(file)[\u001b[32m0\u001b[39m]\n\u001b[32m---> \u001b[39m\u001b[32m53\u001b[39m features = \u001b[43mextract_features_librosa\u001b[49m\u001b[43m(\u001b[49m\u001b[43mfile_path\u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 54\u001b[39m audio_features_essentia[file_id] = features\n\u001b[32m 56\u001b[39m \u001b[38;5;28mprint\u001b[39m(audio_features_essentia)\n",
|
|
||||||
"\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[1]\u001b[39m\u001b[32m, line 12\u001b[39m, in \u001b[36mextract_features_librosa\u001b[39m\u001b[34m(file_path)\u001b[39m\n\u001b[32m 10\u001b[39m mfccs = librosa.feature.mfcc(y=y, sr=sr, n_mfcc=\u001b[32m13\u001b[39m)\n\u001b[32m 11\u001b[39m chroma = librosa.feature.chroma_stft(y=y, sr=sr)\n\u001b[32m---> \u001b[39m\u001b[32m12\u001b[39m spectral_centroid = \u001b[43mlibrosa\u001b[49m\u001b[43m.\u001b[49m\u001b[43mfeature\u001b[49m\u001b[43m.\u001b[49m\u001b[43mspectral_centroid\u001b[49m\u001b[43m(\u001b[49m\u001b[43my\u001b[49m\u001b[43m=\u001b[49m\u001b[43my\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43msr\u001b[49m\u001b[43m=\u001b[49m\u001b[43msr\u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 13\u001b[39m spectral_rolloff = librosa.feature.spectral_rolloff(y=y, sr=sr)\n\u001b[32m 14\u001b[39m zero_crossings = librosa.feature.zero_crossing_rate(y)\n",
|
|
||||||
"\u001b[36mFile \u001b[39m\u001b[32m~/Projects/seb/predictify/.venv/lib/python3.11/site-packages/librosa/feature/spectral.py:186\u001b[39m, in \u001b[36mspectral_centroid\u001b[39m\u001b[34m(y, sr, S, n_fft, hop_length, freq, win_length, window, center, pad_mode)\u001b[39m\n\u001b[32m 183\u001b[39m freq = util.expand_to(freq, ndim=S.ndim, axes=-\u001b[32m2\u001b[39m)\n\u001b[32m 185\u001b[39m \u001b[38;5;66;03m# Column-normalize S\u001b[39;00m\n\u001b[32m--> \u001b[39m\u001b[32m186\u001b[39m centroid: np.ndarray = \u001b[43mnp\u001b[49m\u001b[43m.\u001b[49m\u001b[43msum\u001b[49m\u001b[43m(\u001b[49m\n\u001b[32m 187\u001b[39m \u001b[43m \u001b[49m\u001b[43mfreq\u001b[49m\u001b[43m \u001b[49m\u001b[43m*\u001b[49m\u001b[43m \u001b[49m\u001b[43mutil\u001b[49m\u001b[43m.\u001b[49m\u001b[43mnormalize\u001b[49m\u001b[43m(\u001b[49m\u001b[43mS\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mnorm\u001b[49m\u001b[43m=\u001b[49m\u001b[32;43m1\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43maxis\u001b[49m\u001b[43m=\u001b[49m\u001b[43m-\u001b[49m\u001b[32;43m2\u001b[39;49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43maxis\u001b[49m\u001b[43m=\u001b[49m\u001b[43m-\u001b[49m\u001b[32;43m2\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mkeepdims\u001b[49m\u001b[43m=\u001b[49m\u001b[38;5;28;43;01mTrue\u001b[39;49;00m\n\u001b[32m 188\u001b[39m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 189\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m centroid\n",
|
|
||||||
"\u001b[36mFile \u001b[39m\u001b[32m~/Projects/seb/predictify/.venv/lib/python3.11/site-packages/numpy/core/fromnumeric.py:2313\u001b[39m, in \u001b[36msum\u001b[39m\u001b[34m(a, axis, dtype, out, keepdims, initial, where)\u001b[39m\n\u001b[32m 2310\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m out\n\u001b[32m 2311\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m res\n\u001b[32m-> \u001b[39m\u001b[32m2313\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43m_wrapreduction\u001b[49m\u001b[43m(\u001b[49m\u001b[43ma\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mnp\u001b[49m\u001b[43m.\u001b[49m\u001b[43madd\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[33;43m'\u001b[39;49m\u001b[33;43msum\u001b[39;49m\u001b[33;43m'\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43maxis\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mdtype\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mout\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mkeepdims\u001b[49m\u001b[43m=\u001b[49m\u001b[43mkeepdims\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 2314\u001b[39m \u001b[43m \u001b[49m\u001b[43minitial\u001b[49m\u001b[43m=\u001b[49m\u001b[43minitial\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mwhere\u001b[49m\u001b[43m=\u001b[49m\u001b[43mwhere\u001b[49m\u001b[43m)\u001b[49m\n",
|
|
||||||
"\u001b[36mFile \u001b[39m\u001b[32m~/Projects/seb/predictify/.venv/lib/python3.11/site-packages/numpy/core/fromnumeric.py:88\u001b[39m, in \u001b[36m_wrapreduction\u001b[39m\u001b[34m(obj, ufunc, method, axis, dtype, out, **kwargs)\u001b[39m\n\u001b[32m 85\u001b[39m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[32m 86\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m reduction(axis=axis, out=out, **passkwargs)\n\u001b[32m---> \u001b[39m\u001b[32m88\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mufunc\u001b[49m\u001b[43m.\u001b[49m\u001b[43mreduce\u001b[49m\u001b[43m(\u001b[49m\u001b[43mobj\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43maxis\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mdtype\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mout\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43m*\u001b[49m\u001b[43m*\u001b[49m\u001b[43mpasskwargs\u001b[49m\u001b[43m)\u001b[49m\n",
|
|
||||||
"\u001b[31mKeyboardInterrupt\u001b[39m: "
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
@@ -258,43 +18,100 @@
|
|||||||
"import librosa\n",
|
"import librosa\n",
|
||||||
"import numpy as np\n",
|
"import numpy as np\n",
|
||||||
"\n",
|
"\n",
|
||||||
|
"\n",
|
||||||
|
"def summarize_feature(feature_array):\n",
|
||||||
|
" \"\"\"\n",
|
||||||
|
" feature_array shape: [num_coeffs, num_frames]\n",
|
||||||
|
" Returns: 1D numpy array containing mean, std, and median of each row.\n",
|
||||||
|
" \"\"\"\n",
|
||||||
|
" # axis=1 means we compute statistics across 'frames'\n",
|
||||||
|
" means = np.mean(feature_array, axis=1)\n",
|
||||||
|
" stds = np.std(feature_array, axis=1)\n",
|
||||||
|
" medians = np.median(feature_array, axis=1)\n",
|
||||||
|
" \n",
|
||||||
|
" # Concatenate all stats into one 1D array\n",
|
||||||
|
" return np.concatenate([means, stds, medians], axis=0) #[means, stds, medians]\n",
|
||||||
|
"\n",
|
||||||
"def extract_features_librosa(file_path):\n",
|
"def extract_features_librosa(file_path):\n",
|
||||||
|
"\n",
|
||||||
" # Load the audio file\n",
|
" # Load the audio file\n",
|
||||||
" y, sr = librosa.load(file_path, sr=None)\n",
|
" y, sr = librosa.load(file_path, sr=None)\n",
|
||||||
" \n",
|
" \n",
|
||||||
" # Extract features\n",
|
" # Extract features\n",
|
||||||
" mfccs = librosa.feature.mfcc(y=y, sr=sr, n_mfcc=13)\n",
|
" chroma_stft = librosa.feature.chroma_stft(y=y, sr=sr)\n",
|
||||||
" chroma = librosa.feature.chroma_stft(y=y, sr=sr)\n",
|
" chroma_cqt = librosa.feature.chroma_cqt(y=y, sr=sr)\n",
|
||||||
" spectral_centroid = librosa.feature.spectral_centroid(y=y, sr=sr)\n",
|
" chroma_cens = librosa.feature.chroma_cens(y=y, sr=sr)\n",
|
||||||
" spectral_rolloff = librosa.feature.spectral_rolloff(y=y, sr=sr)\n",
|
" chroma_vqt = librosa.feature.chroma_vqt(y=y, sr=sr, intervals='equal')\n",
|
||||||
" zero_crossings = librosa.feature.zero_crossing_rate(y)\n",
|
" melspectogram = librosa.feature.melspectrogram(y=y, sr=sr)\n",
|
||||||
|
" mfccs = librosa.feature.mfcc(y=y, sr=sr, n_mfcc=12) # Numer of mfccs difference?\n",
|
||||||
" rms = librosa.feature.rms(y=y)\n",
|
" rms = librosa.feature.rms(y=y)\n",
|
||||||
|
" spectral_centroid = librosa.feature.spectral_centroid(y=y, sr=sr)\n",
|
||||||
|
" spectral_bandwith = librosa.feature.spectral_bandwidth(y=y, sr=sr)\n",
|
||||||
|
" spectral_contrast = librosa.feature.spectral_contrast(y=y, sr=sr)\n",
|
||||||
|
" spectral_flatness = librosa.feature.spectral_flatness(y=y) \n",
|
||||||
|
" spectral_rolloff = librosa.feature.spectral_rolloff(y=y, sr=sr)\n",
|
||||||
|
" poly_features = librosa.feature.poly_features(y=y, sr=sr)\n",
|
||||||
|
" tonnetz = librosa.feature.tonnetz(y=y, sr=sr)\n",
|
||||||
|
" zero_crossings = librosa.feature.zero_crossing_rate(y)\n",
|
||||||
" \n",
|
" \n",
|
||||||
" # Estimate tempo and beats\n",
|
" # Estimate tempo and beats\n",
|
||||||
" tempo, beat_frames = librosa.beat.beat_track(y=y, sr=sr)\n",
|
" tempo = librosa.feature.tempo(y=y, sr=sr)\n",
|
||||||
|
" tempogram = librosa.feature.tempogram(y=y, sr=sr)\n",
|
||||||
|
" fourier_tempogram = librosa.feature.fourier_tempogram(y=y, sr=sr)\n",
|
||||||
|
" tempogram_ratio = librosa.feature.tempogram_ratio(y=y, sr=sr)\n",
|
||||||
"\n",
|
"\n",
|
||||||
" # A simple heuristic for \"danceability\"\n",
|
" track_features = np.concatenate([\n",
|
||||||
" # For example, we can assume higher tempo and consistent beats might be more danceable\n",
|
" summarize_feature(mfccs),\n",
|
||||||
" # (This is only an example and not a scientifically rigorous metric.)\n",
|
" summarize_feature(chroma_stft),\n",
|
||||||
" danceability = tempo / 200 # Normalize tempo (assume 200 BPM as an upper bound)\n",
|
" summarize_feature(chroma_cqt),\n",
|
||||||
|
" summarize_feature(chroma_cens),\n",
|
||||||
|
" summarize_feature(chroma_vqt),\n",
|
||||||
|
" summarize_feature(melspectogram),\n",
|
||||||
|
" summarize_feature(spectral_centroid),\n",
|
||||||
|
" summarize_feature(spectral_bandwith),\n",
|
||||||
|
" summarize_feature(spectral_contrast),\n",
|
||||||
|
" summarize_feature(spectral_flatness),\n",
|
||||||
|
" summarize_feature(spectral_rolloff),\n",
|
||||||
|
" summarize_feature(poly_features),\n",
|
||||||
|
" summarize_feature(tonnetz),\n",
|
||||||
|
" summarize_feature(zero_crossings),\n",
|
||||||
|
" summarize_feature(tempogram),\n",
|
||||||
|
" summarize_feature(fourier_tempogram),\n",
|
||||||
|
" summarize_feature(tempogram_ratio),\n",
|
||||||
|
" summarize_feature(rms),\n",
|
||||||
|
" tempo\n",
|
||||||
|
" ], axis=0)\n",
|
||||||
|
"\n",
|
||||||
|
" return track_features\n",
|
||||||
"\n",
|
"\n",
|
||||||
" # Aggregate features into a dictionary\n",
|
" # Aggregate features into a dictionary\n",
|
||||||
|
" \"\"\"\n",
|
||||||
" features = {\n",
|
" features = {\n",
|
||||||
" 'mfcc_mean': np.mean(mfccs, axis=1).tolist(), # Mean of each MFCC coefficient\n",
|
" 'chroma_stft': ,\n",
|
||||||
" 'mfcc_std': np.std(mfccs, axis=1).tolist(),\n",
|
" 'chroma_cqt': summarize_feature(chroma_cqt),\n",
|
||||||
" 'chroma_mean': np.mean(chroma, axis=1).tolist(),\n",
|
" 'chroma_cens': summarize_feature(chroma_cens),\n",
|
||||||
" 'spectral_centroid_mean': np.mean(spectral_centroid).item(),\n",
|
" 'chroma_vqt': summarize_feature(chroma_vqt),\n",
|
||||||
" 'spectral_rolloff_mean': np.mean(spectral_rolloff).item(),\n",
|
" 'melspectogram': summarize_feature(melspectogram),\n",
|
||||||
" 'zero_crossing_rate_mean': np.mean(zero_crossings).item(),\n",
|
" 'mfccs': ,\n",
|
||||||
" 'rms_mean': np.mean(rms).item(),\n",
|
" 'rms': summarize_feature(rms),\n",
|
||||||
|
" 'spectral_centroid': summarize_feature(spectral_centroid),\n",
|
||||||
|
" 'spectral_bandwith': summarize_feature(spectral_bandwith),\n",
|
||||||
|
" 'spectral_contrast': summarize_feature(spectral_contrast),\n",
|
||||||
|
" 'spectral_flatness': summarize_feature(spectral_flatness),\n",
|
||||||
|
" 'spectral_rolloff': summarize_feature(spectral_rolloff),\n",
|
||||||
|
" 'poly_features': summarize_feature(poly_features),\n",
|
||||||
|
" 'tonnetz': summarize_feature(tonnetz),\n",
|
||||||
|
" 'zero_crossings': summarize_feature(zero_crossings),\n",
|
||||||
" 'tempo': tempo,\n",
|
" 'tempo': tempo,\n",
|
||||||
" 'danceability': danceability,\n",
|
" 'tempogram': summarize_feature(tempogram),\n",
|
||||||
" 'beat_count': len(beat_frames)\n",
|
" 'fourier_tempogram': summarize_feature(fourier_tempogram),\n",
|
||||||
|
" 'tempogram_ratio': summarize_feature(tempogram_ratio)\n",
|
||||||
" }\n",
|
" }\n",
|
||||||
" return features\n",
|
" return features\n",
|
||||||
|
" \"\"\"\n",
|
||||||
"\n",
|
"\n",
|
||||||
"folder_path = './audio_previews'\n",
|
"folder_path = './audio_previews'\n",
|
||||||
"audio_features_essentia = {}\n",
|
"X = []\n",
|
||||||
"\n",
|
"\n",
|
||||||
"folder_len = os.listdir(folder_path)\n",
|
"folder_len = os.listdir(folder_path)\n",
|
||||||
"folder_len_num = len(folder_len)\n",
|
"folder_len_num = len(folder_len)\n",
|
||||||
@@ -307,9 +124,47 @@
|
|||||||
" file_path = os.path.join(folder_path, file)\n",
|
" file_path = os.path.join(folder_path, file)\n",
|
||||||
" file_id = os.path.splitext(file)[0]\n",
|
" file_id = os.path.splitext(file)[0]\n",
|
||||||
" features = extract_features_librosa(file_path)\n",
|
" features = extract_features_librosa(file_path)\n",
|
||||||
" audio_features_essentia[file_id] = features\n",
|
" X.append(features)\n",
|
||||||
|
" if counter == 1:\n",
|
||||||
|
" break\n",
|
||||||
|
"\n"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": 14,
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [
|
||||||
|
{
|
||||||
|
"ename": "ValueError",
|
||||||
|
"evalue": "Complex data not supported\n[array([-2.43607666e+02+0.j, 2.02283173e+02+0.j, -9.33068466e+00+0.j, ...,\n 3.39018144e-02+0.j, 1.07776299e-01+0.j, 1.20185320e+02+0.j])]\n",
|
||||||
|
"output_type": "error",
|
||||||
|
"traceback": [
|
||||||
|
"\u001b[31m---------------------------------------------------------------------------\u001b[39m",
|
||||||
|
"\u001b[31mComplexWarning\u001b[39m Traceback (most recent call last)",
|
||||||
|
"\u001b[36mFile \u001b[39m\u001b[32m~/Services/predictify/.venv/lib/python3.11/site-packages/sklearn/utils/validation.py:1055\u001b[39m, in \u001b[36mcheck_array\u001b[39m\u001b[34m(array, accept_sparse, accept_large_sparse, dtype, order, copy, force_writeable, force_all_finite, ensure_all_finite, ensure_non_negative, ensure_2d, allow_nd, ensure_min_samples, ensure_min_features, estimator, input_name)\u001b[39m\n\u001b[32m 1054\u001b[39m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[32m-> \u001b[39m\u001b[32m1055\u001b[39m array = \u001b[43m_asarray_with_order\u001b[49m\u001b[43m(\u001b[49m\u001b[43marray\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43morder\u001b[49m\u001b[43m=\u001b[49m\u001b[43morder\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mdtype\u001b[49m\u001b[43m=\u001b[49m\u001b[43mdtype\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mxp\u001b[49m\u001b[43m=\u001b[49m\u001b[43mxp\u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 1056\u001b[39m \u001b[38;5;28;01mexcept\u001b[39;00m ComplexWarning \u001b[38;5;28;01mas\u001b[39;00m complex_warning:\n",
|
||||||
|
"\u001b[36mFile \u001b[39m\u001b[32m~/Services/predictify/.venv/lib/python3.11/site-packages/sklearn/utils/_array_api.py:839\u001b[39m, in \u001b[36m_asarray_with_order\u001b[39m\u001b[34m(array, dtype, order, copy, xp, device)\u001b[39m\n\u001b[32m 838\u001b[39m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[32m--> \u001b[39m\u001b[32m839\u001b[39m array = \u001b[43mnumpy\u001b[49m\u001b[43m.\u001b[49m\u001b[43masarray\u001b[49m\u001b[43m(\u001b[49m\u001b[43marray\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43morder\u001b[49m\u001b[43m=\u001b[49m\u001b[43morder\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mdtype\u001b[49m\u001b[43m=\u001b[49m\u001b[43mdtype\u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 841\u001b[39m \u001b[38;5;66;03m# At this point array is a NumPy ndarray. We convert it to an array\u001b[39;00m\n\u001b[32m 842\u001b[39m \u001b[38;5;66;03m# container that is consistent with the input's namespace.\u001b[39;00m\n",
|
||||||
|
"\u001b[31mComplexWarning\u001b[39m: Casting complex values to real discards the imaginary part",
|
||||||
|
"\nThe above exception was the direct cause of the following exception:\n",
|
||||||
|
"\u001b[31mValueError\u001b[39m Traceback (most recent call last)",
|
||||||
|
"\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[14]\u001b[39m\u001b[32m, line 5\u001b[39m\n\u001b[32m 1\u001b[39m \u001b[38;5;28;01mfrom\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34;01msklearn\u001b[39;00m\u001b[34;01m.\u001b[39;00m\u001b[34;01mpreprocessing\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;28;01mimport\u001b[39;00m StandardScaler\n\u001b[32m 3\u001b[39m scaler = StandardScaler()\n\u001b[32m----> \u001b[39m\u001b[32m5\u001b[39m X_scaled = \u001b[43mscaler\u001b[49m\u001b[43m.\u001b[49m\u001b[43mfit_transform\u001b[49m\u001b[43m(\u001b[49m\u001b[43mX\u001b[49m\u001b[43m)\u001b[49m\n",
|
||||||
|
"\u001b[36mFile \u001b[39m\u001b[32m~/Services/predictify/.venv/lib/python3.11/site-packages/sklearn/utils/_set_output.py:319\u001b[39m, in \u001b[36m_wrap_method_output.<locals>.wrapped\u001b[39m\u001b[34m(self, X, *args, **kwargs)\u001b[39m\n\u001b[32m 317\u001b[39m \u001b[38;5;129m@wraps\u001b[39m(f)\n\u001b[32m 318\u001b[39m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34mwrapped\u001b[39m(\u001b[38;5;28mself\u001b[39m, X, *args, **kwargs):\n\u001b[32m--> \u001b[39m\u001b[32m319\u001b[39m data_to_wrap = \u001b[43mf\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mX\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43m*\u001b[49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43m*\u001b[49m\u001b[43m*\u001b[49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 320\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(data_to_wrap, \u001b[38;5;28mtuple\u001b[39m):\n\u001b[32m 321\u001b[39m \u001b[38;5;66;03m# only wrap the first output for cross decomposition\u001b[39;00m\n\u001b[32m 322\u001b[39m return_tuple = (\n\u001b[32m 323\u001b[39m _wrap_data_with_container(method, data_to_wrap[\u001b[32m0\u001b[39m], X, \u001b[38;5;28mself\u001b[39m),\n\u001b[32m 324\u001b[39m *data_to_wrap[\u001b[32m1\u001b[39m:],\n\u001b[32m 325\u001b[39m )\n",
|
||||||
|
"\u001b[36mFile \u001b[39m\u001b[32m~/Services/predictify/.venv/lib/python3.11/site-packages/sklearn/base.py:918\u001b[39m, in \u001b[36mTransformerMixin.fit_transform\u001b[39m\u001b[34m(self, X, y, **fit_params)\u001b[39m\n\u001b[32m 903\u001b[39m warnings.warn(\n\u001b[32m 904\u001b[39m (\n\u001b[32m 905\u001b[39m \u001b[33mf\u001b[39m\u001b[33m\"\u001b[39m\u001b[33mThis object (\u001b[39m\u001b[38;5;132;01m{\u001b[39;00m\u001b[38;5;28mself\u001b[39m.\u001b[34m__class__\u001b[39m.\u001b[34m__name__\u001b[39m\u001b[38;5;132;01m}\u001b[39;00m\u001b[33m) has a `transform`\u001b[39m\u001b[33m\"\u001b[39m\n\u001b[32m (...)\u001b[39m\u001b[32m 913\u001b[39m \u001b[38;5;167;01mUserWarning\u001b[39;00m,\n\u001b[32m 914\u001b[39m )\n\u001b[32m 916\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m y \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[32m 917\u001b[39m \u001b[38;5;66;03m# fit method of arity 1 (unsupervised transformation)\u001b[39;00m\n\u001b[32m--> \u001b[39m\u001b[32m918\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[43m.\u001b[49m\u001b[43mfit\u001b[49m\u001b[43m(\u001b[49m\u001b[43mX\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43m*\u001b[49m\u001b[43m*\u001b[49m\u001b[43mfit_params\u001b[49m\u001b[43m)\u001b[49m.transform(X)\n\u001b[32m 919\u001b[39m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[32m 920\u001b[39m \u001b[38;5;66;03m# fit method of arity 2 (supervised transformation)\u001b[39;00m\n\u001b[32m 921\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m.fit(X, y, **fit_params).transform(X)\n",
|
||||||
|
"\u001b[36mFile \u001b[39m\u001b[32m~/Services/predictify/.venv/lib/python3.11/site-packages/sklearn/preprocessing/_data.py:894\u001b[39m, in \u001b[36mStandardScaler.fit\u001b[39m\u001b[34m(self, X, y, sample_weight)\u001b[39m\n\u001b[32m 892\u001b[39m \u001b[38;5;66;03m# Reset internal state before fitting\u001b[39;00m\n\u001b[32m 893\u001b[39m \u001b[38;5;28mself\u001b[39m._reset()\n\u001b[32m--> \u001b[39m\u001b[32m894\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[43m.\u001b[49m\u001b[43mpartial_fit\u001b[49m\u001b[43m(\u001b[49m\u001b[43mX\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43my\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43msample_weight\u001b[49m\u001b[43m)\u001b[49m\n",
|
||||||
|
"\u001b[36mFile \u001b[39m\u001b[32m~/Services/predictify/.venv/lib/python3.11/site-packages/sklearn/base.py:1389\u001b[39m, in \u001b[36m_fit_context.<locals>.decorator.<locals>.wrapper\u001b[39m\u001b[34m(estimator, *args, **kwargs)\u001b[39m\n\u001b[32m 1382\u001b[39m estimator._validate_params()\n\u001b[32m 1384\u001b[39m \u001b[38;5;28;01mwith\u001b[39;00m config_context(\n\u001b[32m 1385\u001b[39m skip_parameter_validation=(\n\u001b[32m 1386\u001b[39m prefer_skip_nested_validation \u001b[38;5;129;01mor\u001b[39;00m global_skip_validation\n\u001b[32m 1387\u001b[39m )\n\u001b[32m 1388\u001b[39m ):\n\u001b[32m-> \u001b[39m\u001b[32m1389\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mfit_method\u001b[49m\u001b[43m(\u001b[49m\u001b[43mestimator\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43m*\u001b[49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43m*\u001b[49m\u001b[43m*\u001b[49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n",
|
||||||
|
"\u001b[36mFile \u001b[39m\u001b[32m~/Services/predictify/.venv/lib/python3.11/site-packages/sklearn/preprocessing/_data.py:930\u001b[39m, in \u001b[36mStandardScaler.partial_fit\u001b[39m\u001b[34m(self, X, y, sample_weight)\u001b[39m\n\u001b[32m 898\u001b[39m \u001b[38;5;250m\u001b[39m\u001b[33;03m\"\"\"Online computation of mean and std on X for later scaling.\u001b[39;00m\n\u001b[32m 899\u001b[39m \n\u001b[32m 900\u001b[39m \u001b[33;03mAll of X is processed as a single batch. This is intended for cases\u001b[39;00m\n\u001b[32m (...)\u001b[39m\u001b[32m 927\u001b[39m \u001b[33;03m Fitted scaler.\u001b[39;00m\n\u001b[32m 928\u001b[39m \u001b[33;03m\"\"\"\u001b[39;00m\n\u001b[32m 929\u001b[39m first_call = \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28mhasattr\u001b[39m(\u001b[38;5;28mself\u001b[39m, \u001b[33m\"\u001b[39m\u001b[33mn_samples_seen_\u001b[39m\u001b[33m\"\u001b[39m)\n\u001b[32m--> \u001b[39m\u001b[32m930\u001b[39m X = \u001b[43mvalidate_data\u001b[49m\u001b[43m(\u001b[49m\n\u001b[32m 931\u001b[39m \u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[32m 932\u001b[39m \u001b[43m \u001b[49m\u001b[43mX\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 933\u001b[39m \u001b[43m \u001b[49m\u001b[43maccept_sparse\u001b[49m\u001b[43m=\u001b[49m\u001b[43m(\u001b[49m\u001b[33;43m\"\u001b[39;49m\u001b[33;43mcsr\u001b[39;49m\u001b[33;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[33;43m\"\u001b[39;49m\u001b[33;43mcsc\u001b[39;49m\u001b[33;43m\"\u001b[39;49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 934\u001b[39m \u001b[43m \u001b[49m\u001b[43mdtype\u001b[49m\u001b[43m=\u001b[49m\u001b[43mFLOAT_DTYPES\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 935\u001b[39m \u001b[43m \u001b[49m\u001b[43mensure_all_finite\u001b[49m\u001b[43m=\u001b[49m\u001b[33;43m\"\u001b[39;49m\u001b[33;43mallow-nan\u001b[39;49m\u001b[33;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[32m 936\u001b[39m \u001b[43m \u001b[49m\u001b[43mreset\u001b[49m\u001b[43m=\u001b[49m\u001b[43mfirst_call\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 937\u001b[39m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 938\u001b[39m n_features = X.shape[\u001b[32m1\u001b[39m]\n\u001b[32m 940\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m sample_weight \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n",
|
||||||
|
"\u001b[36mFile \u001b[39m\u001b[32m~/Services/predictify/.venv/lib/python3.11/site-packages/sklearn/utils/validation.py:2944\u001b[39m, in \u001b[36mvalidate_data\u001b[39m\u001b[34m(_estimator, X, y, reset, validate_separately, skip_check_array, **check_params)\u001b[39m\n\u001b[32m 2942\u001b[39m out = X, y\n\u001b[32m 2943\u001b[39m \u001b[38;5;28;01melif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m no_val_X \u001b[38;5;129;01mand\u001b[39;00m no_val_y:\n\u001b[32m-> \u001b[39m\u001b[32m2944\u001b[39m out = \u001b[43mcheck_array\u001b[49m\u001b[43m(\u001b[49m\u001b[43mX\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43minput_name\u001b[49m\u001b[43m=\u001b[49m\u001b[33;43m\"\u001b[39;49m\u001b[33;43mX\u001b[39;49m\u001b[33;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43m*\u001b[49m\u001b[43m*\u001b[49m\u001b[43mcheck_params\u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 2945\u001b[39m \u001b[38;5;28;01melif\u001b[39;00m no_val_X \u001b[38;5;129;01mand\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m no_val_y:\n\u001b[32m 2946\u001b[39m out = _check_y(y, **check_params)\n",
|
||||||
|
"\u001b[36mFile \u001b[39m\u001b[32m~/Services/predictify/.venv/lib/python3.11/site-packages/sklearn/utils/validation.py:1057\u001b[39m, in \u001b[36mcheck_array\u001b[39m\u001b[34m(array, accept_sparse, accept_large_sparse, dtype, order, copy, force_writeable, force_all_finite, ensure_all_finite, ensure_non_negative, ensure_2d, allow_nd, ensure_min_samples, ensure_min_features, estimator, input_name)\u001b[39m\n\u001b[32m 1055\u001b[39m array = _asarray_with_order(array, order=order, dtype=dtype, xp=xp)\n\u001b[32m 1056\u001b[39m \u001b[38;5;28;01mexcept\u001b[39;00m ComplexWarning \u001b[38;5;28;01mas\u001b[39;00m complex_warning:\n\u001b[32m-> \u001b[39m\u001b[32m1057\u001b[39m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mValueError\u001b[39;00m(\n\u001b[32m 1058\u001b[39m \u001b[33m\"\u001b[39m\u001b[33mComplex data not supported\u001b[39m\u001b[38;5;130;01m\\n\u001b[39;00m\u001b[38;5;132;01m{}\u001b[39;00m\u001b[38;5;130;01m\\n\u001b[39;00m\u001b[33m\"\u001b[39m.format(array)\n\u001b[32m 1059\u001b[39m ) \u001b[38;5;28;01mfrom\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34;01mcomplex_warning\u001b[39;00m\n\u001b[32m 1061\u001b[39m \u001b[38;5;66;03m# It is possible that the np.array(..) gave no warning. This happens\u001b[39;00m\n\u001b[32m 1062\u001b[39m \u001b[38;5;66;03m# when no dtype conversion happened, for example dtype = None. The\u001b[39;00m\n\u001b[32m 1063\u001b[39m \u001b[38;5;66;03m# result is that np.array(..) produces an array of complex dtype\u001b[39;00m\n\u001b[32m 1064\u001b[39m \u001b[38;5;66;03m# and we need to catch and raise exception for such cases.\u001b[39;00m\n\u001b[32m 1065\u001b[39m _ensure_no_complex_data(array)\n",
|
||||||
|
"\u001b[31mValueError\u001b[39m: Complex data not supported\n[array([-2.43607666e+02+0.j, 2.02283173e+02+0.j, -9.33068466e+00+0.j, ...,\n 3.39018144e-02+0.j, 1.07776299e-01+0.j, 1.20185320e+02+0.j])]\n"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"source": [
|
||||||
|
"from sklearn.preprocessing import StandardScaler\n",
|
||||||
"\n",
|
"\n",
|
||||||
"print(audio_features_essentia)"
|
"scaler = StandardScaler()\n",
|
||||||
|
"\n",
|
||||||
|
"X_scaled = scaler.fit_transform(X)\n"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
@@ -329,7 +184,7 @@
|
|||||||
"name": "python",
|
"name": "python",
|
||||||
"nbconvert_exporter": "python",
|
"nbconvert_exporter": "python",
|
||||||
"pygments_lexer": "ipython3",
|
"pygments_lexer": "ipython3",
|
||||||
"version": "3.11.7"
|
"version": "3.11.2"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nbformat": 4,
|
"nbformat": 4,
|
||||||
|
|||||||
Reference in New Issue
Block a user