mfb

mfb — Banc de filtre étalonnés en mels pour les amplitues spectrales.

Description

Applique un banc de filtres étalonnés en mels à un tableau contenant une suite de bins d'amplitude.

Syntaxe

kout[] mfb kin[], klow, khigh, ibands

Initialisation

ibands -- nombres de bandes dans le banc de filtres en mels. Détermine la taille du tableau de sortie.

Exécution

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).

Exemples

Voici un exemple de l'opcode mfb. Il utilise le fichier mfb.csd.

Exemple 508. 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>

Voir aussi

Vectorial opcodes, array opcodes, dct

Crédits

Auteur : Victor Lazzarini
NUI Maynooth
2016

Nouveau dans la version 6.08