2013-05-14 3 views
4

C'est probablement une question très stupide, mais je n'ai trouvé aucun détail. J'ai donc un enregistrement audio (fichier wav) de 3 secondes. C'est mon échantillon et il doit être classé comme [class_A] ou [class_B]. En suivant quelques tutroial sur MFCC, j'ai divisé l'échantillon en images (291 images pour être exact) et j'ai obtenu des MFCC de chaque trame.Comment utiliser les vecteurs MFCC pour classer un seul fichier audio?

Maintenant, j'ai 291 vecteurs de caractéristiques, la longueur de chaque vecteur est 13.

Ma question est; comment exactement utilisez-vous ces vecteurs avec classifier (k-NN par exemple)? J'ai 291 vecteurs qui représentent 1 échantillon. Je sais comment travailler avec 1 vecteur pour 1 échantillon, mais je ne sais pas quoi faire si j'en ai 291. Je ne pouvais pas vraiment trouver d'explication nulle part. Chacun de vos vecteurs représentera les caractéristiques spectrales de votre fichier audio, étant donné qu'il varie dans le temps.

+0

pourriez-vous fournir un lien vers la façon dont vous l'avez résolu? –

+0

pourriez-vous s'il vous plaît poster votre solution –

Répondre

4

Selon la longueur de vos cadres, vous pouvez en grouper certains (par exemple en effectuant une moyenne par dimension) pour faire correspondre la résolution avec laquelle vous voulez que le classificateur fonctionne. Par exemple, pensez à un son particulier qui pourrait avoir une enveloppe avec un temps d'attaque de 2 ms: il peut être aussi précis que vous le souhaitez avec votre quantification temporelle, donc vous pouvez a) regrouper et faire la moyenne du nombre de vecteurs MFCC cela représente 2ms; ou b) recalculer les MFCC avec la résolution temporelle souhaitée. Si vous voulez vraiment conserver une résolution aussi fine, vous pouvez concaténer les 291 vecteurs et les traiter comme un seul vecteur (de 291 x 13 dimensions), ce qui nécessitera probablement un énorme jeu de données pour l'apprentissage.

+0

J'ai généré un mfcc pour un fichier audio et il a la forme (20,5211) donc c'est 5211 vecteurs ayant chacun 20 valeurs mfcc. comment puis-je le nourrir d'un réseau de neurones? Je suis plutôt confus. –

+1

@kRazzyR Je n'ai pas utilisé de réseau neuronal. J'ai utilisé des machines à vecteurs de support. Je vous recommande de jeter un coup d'œil au tutoriel sur le réseau de neurones sk-learn [ici] (http://scikit-learn.org/stable/modules/neural_networks_supervised.h tml) – jimijazz

+0

ok merci. Je vais y jeter un coup d'oeil. –

Questions connexes