Penso che la distinzione che stai cercando sia più simile a empirica vs teorica (al contrario di supervisionato rispetto a non supervisionato), ma potrei sbagliarmi al riguardo. In altre parole, l'ideale sarebbe avere una definizione teorica di vari generi, piuttosto che solo un mucchio di dati opachi che possono essere usati per classificare una canzone [senza alcuna reale comprensione].
Tuttavia, per la classificazione generale dei generi, probabilmente sei bloccato almeno con la formazione dagli esempi, anche se solo per creare le definizioni dei generi in primo luogo. Rispetto al tuo esempio, considera la frequenza con cui le persone discuteranno [su YouTube] se una determinata traccia è davvero dubstep (ad esempio qualsiasi traccia che è più doppiata e meno traballante , anche se il genere è iniziato senza alcuna vera oscillazione). Le persone definiscono i generi nel tempo attraverso esempi, quindi è ragionevole aspettarsi che algoritmi che replicano quel comportamento richiederebbero anche alcuni esempi. Il modo in cui le persone descrivono i generi è quasi come un vettore di funzionalità comunque - fanno un elenco di domande sulla canzone (ad es. è più trasandato o traballante? Ha molti sub bassi? Quanto dura? Qual è il tempo? C'è una voce? ecc.).
Naturalmente, potresti essere in grado di scegliere un elenco di funzionalità che forniscono anche una comprensione intuitiva del genere. Una funzionalità come "Gamma dinamica" è qualcosa che una persona può anche rilevare a orecchio, ma qualcosa come "Time Domain Zero Crossings" non sarebbe molto intuitiva, anche se funziona bene per la classificazione. Il seguente documento presenta alcune funzionalità che potrebbero essere interessanti per te:
George Tzanetakis, Perry R. Cook: classificazione del genere musicale dei segnali audio. Link IEEE Transactions on Speech and Audio Processing 10 (5): 293-302 (2002) .
Per misurare la rugosità, la rugosità psicoacustica sarebbe un buon punto di partenza, ma potrebbe non essere sufficiente distinguere tra elettrocateteri dubstep e elettrocateteri, ad esempio. Per distinzioni più precise, una cosa da considerare è il riconoscimento del timbro . La seguente tesi ha un discreto sondaggio di tecniche:
TH Park, "Verso il riconoscimento automatico del timbro dello strumento musicale", Ph.D. tesi di laurea, Università di Princeton, New Jersey, 2004. link .
Esiste anche un modello relativo alla rugosità percettiva in Timbre, Tuning, Spectrum e Scale che viene utilizzato per costruire scale personalizzate per timbri arbitrari. L'idea è che le armoniche che sono molto vicine tra loro producono frequenze di battito che sono percepite come dissonanza. Parafrasando dalle appendici F ed E ,
Quando è uno spettro con parziali alle frequenze , la dissonanza intrinseca [assumendo ampiezze unitarie] èFf1,f2,...,fn
DF=1/2 ∑i=1n ∑j=1n d(|fi−fj|min(fi,fj))
dove
d(x)=e−3.5x−e−5.75x
è un modello della curva Plomp-Levelt .
È usato per misurare quanto sia piacevole un determinato accordo rispetto a un timbro (minimizzando la dissonanza). Non so se né la ruvidezza della varietà psicoacustica, né la dissonanza intrinseca sarebbero molto fruttuose per i tuoi scopi da soli, ma potrebbero essere utili in combinazione con altre metriche.
Probabilmente avrai più fortuna a classificare i timbri matematicamente che i generi. Ad esempio, le stringhe hanno armoniche pari e dispari, ma un clarinetto ha solo armoniche dispari (cfr. Onda a dente di sega , onda quadra ). Il dondolio di Dubstep tende a essere fatto con filtri basati su LFO (passa-basso e / o filtri formanti), quindi qualcosa come Spectral Flux (vedi [Tzanetakis], sopra) potrebbe essere un buon punto di partenza come caratteristica. Tuttavia, dubito che qualcuno abbia ancora studiato la classificazione matematica delle oscillazioni;)