Ich versuche, einzelne Vektor-Feature-Repräsentationen für Audio-Dateien für eine maschinelle Lernaufgabe (insbesondere Klassifizierung mit einem neuronalen Netz) zu erhalten. Ich habe Erfahrung in Computer Vision und Verarbeitung natürlicher Sprache, aber ich brauche Hilfe, um mit Audiodateien auf dem Laufenden zu sein.MFCC Feature Deskriptoren für Audio-Klassifizierung mit Librosa
Es gibt eine Vielzahl von Featuredeskriptoren für Audiodateien, aber MFCCs werden am häufigsten für Audioklassifizierungsaufgaben verwendet. Meine Frage ist folgende: Wie nehme ich die MFCC-Repräsentation für eine Audiodatei, die normalerweise eine Matrix (vermutlich Koeffizienten) ist, und verwandle sie in einen einzigen Merkmalsvektor? Ich verwende derzeit librosa dafür.
Ich habe eine Reihe von Audio-Dateien, aber sie alle unterscheiden sich in ihrer Form:
for filename in os.listdir('data'):
y, sr = librosa.load('data/' + filename)
print filename, librosa.feature.mfcc(y=y, sr=sr).shape
213493.ogg (20, 2375)
120093.ogg (20, 7506)
174576.ogg (20, 2482)
194439.ogg (20, 14)
107936.ogg (20, 2259)
Was ich tun würde, als ein CV Person, die diese Koeffizienten quantisiert von k-Mittel tut und dann so etwas wie scipy.cluster.vq verwenden um Vektoren mit identischer Form zu erhalten, die ich als Eingabe für mein NN verwenden kann. Würden Sie das auch im Audiokasten tun, oder gibt es andere/bessere Ansätze für dieses Problem?
Die Art, wie ich es verstehe, mfcc Features sind ein 2d-Array der Form (numFrames, numMFCCoeffiecients). Das heißt, jeder Rahmen liefert eine Liste von MFCCs. Die ceps-Variable scheint nur ein 1d-Array von Koeffizienten zu sein. Warum ist das so? Was ist der Zweck der X.append-Linie? Ich bin wirklich neugierig darauf und ich würde mich über jedes Licht freuen, das auf die Angelegenheit – SasukeIsCool