Module Descripteurs audio "chromas"
PACT
Mathieu FONTAINE
mathieu.fontaine@telecom-paris.fr
2022-2023
Attentes du module
- Comprendre les chromas
- Implémentation à la main des chromas avec la librairie Python
- Application au projet PACT (pourquoi ce module est adapté etc.)
- Résultats avec la méthode implémentée + comparaison avec librosa
Livrable
- Code de votre groupe en Python avec quelques résultats.
Plan
I - Transformée de Fourier usuels
II - Chromas
I - Transformée de Fourier usuels
La transformée de Fourier discrète
Soit un signal discret $x_0,\dots,x_{N-1}$. Sa transformée de Fourier (discrète) est:
$$
X(f) = \sum_{n=0}^{N-1}x_ne^{-i\frac{2\pi f n}{N}}
$$
- On obtient une représentation fréquentielle du signal
- Complexité algorithmique : $O(N^2)$
Il existe une version édulcorée qui réduit la complexité $O(N^2)$ en $O(N\log(N))\\$ (cf. Cooley-Tukey FFT algorithm)
On emploiera la FFT dans la suite.
Transformée de Fourier à Court Terme (TFCT)
- Découpage d'un signal en plusieurs séquences
- multiplication par un fenêtrage (Pourquoi ? cf. poly OASIS)
- FFT sur chacune des séquences
On obtient un signal "temps-fréquence" $X(f,t)$
Spectrogramme de puissance
- Module au carré des coefficients
$$
S(f,t) = |X(f,t)|^2 \qquad\qquad\qquad \texttt{(Spectrogramme de Puissance)}
$$
- Pour une meilleure représentation, on calcule le log du SP.
Motivation
- La musique occidentale "classique" est bien tempérée
- Elle est notamment représentée par $12$ demi-tons
- Une telle échelle permettrait alors la reconnaissance d'accord
Procédé de base (selon FUJISHIMA91)
Transformée à $Q$ constant [selon Brown91] (1/2)
- Idée: avoir un espacement des bandes fréquentielles adaptées à l'échelle musicale
- Contrainte : résolution dépendant de la fréquence
- On souhaite un banc de filtre en $1/24^{ème}$ d'octave (un quart de ton)
- La $m^{ème}$ composante spectrale est définie par $f_m = (2^{1/24})^mf_{min}$, $f_{min}$ inférieure à la fréquence de départ
- Soit $\Delta_{f}$ la largeur de bande (ou résolution spectrale)
- Pour une fréquence $f$, on a $\Delta_{f} = (2^{1/24} - 1)f \approx 0.029 f$
- Si on veut un ratio constant entre la fréquence et la résolution on a $Q = f/\Delta_f \approx 34$
Transformée à $Q$ constant [selon Brown91] (2/2)
- Avec une fréquence d'échantillonnage $f_{ech}$, on a la longueur de fenetre suivante :
$$
N(m) = f_{ech}/\Delta_{f_m} = f_{ech}/f_mQ
$$
- La TFCT est alors changé par (où $t$ est un partitionnement; $w$ une fenêtre voir Brown91 pour les exemples):
$$X_{Q}(f,t) = \sum_{n=0}^{N(m)-1} w(k,n)x_{t}(n)e^{-i\frac{2\pi Qn}{N(m)}}
$$