mfb — Banc de filtre étalonnés en mels pour les amplitues spectrales.
Applique un banc de filtres étalonnés en mels à un tableau contenant une suite de bins d'amplitude.
ibands -- nombres de bandes dans le banc de filtres en mels. Détermine la taille du tableau de sortie.
kout[] -- tableau de sortie contenant les valeurs des bandes du banc de filtres en mels.
kin[] -- tableau contenant les magnitudes des bins en entrée.
klow -- fréquence la plus basse (arrondie à la fréquence centrale de bin la plus proche.
khigh -- fréquence la plus haute (arrondie à la fréquence centrale de bin la plus proche).
Voici un exemple de l'opcode mfb. Il utilise le fichier mfb.csd.
Exemple 587. Exemple de l'opcode mfb.
Voir les sections Audio en temps réel et Options de la ligne de commande pour plus d'information sur l'utilisation des options de la ligne de commande.
<CsoundSynthesizer> <CsOptions> </CsOptions> <CsInstruments> ksmps = 64 instr 1 ifftsize init 1024 ibins init ifftsize/2 kIn[] init ifftsize kcnt init 0 p3 = filelen("fox.wav") asig diskin "fox.wav" kIn shiftin asig kcnt += ksmps if kcnt == ifftsize then kFFT[] = rfft(kIn) kPows[] = pows(kFFT) kMFB[] = log(mfb(kPows,300,8000,32)) kmfcc[] = dct(kMFB) kcnt = 0 kfb = 0 while kfb < 32 do printf("mfcc[%d] = %.3f \n", kfb+1, kfb, kmfcc[kfb]) kfb += 1 od endif endin </CsInstruments> <CsScore> i1 0 1 </CsScore> </CsoundSynthesizer>