Roland Badeau (roland.badeau_at_telecom-paristech.fr)
Descriptif
Le mot « attaque » désigne le début d’un évènement sonore, et par extension, l’instant correspondant ou par exemple, une note est jouée. Détecter ces attaques est un aspect fondamental nécessaire dans les applications d’inférences rythmique (tempo, métrique, mesure) et plus généralement dans l’analyse de scènes audio. La fonction de détection est le terme utilisé pour décrire un signal temporel ou les attaques sont mises en évidence sous forme de pics saillants.L’algorithme de base de ce type de détecteur est le suivant :
Détection d’enveloppe : traduit les propriétés énergétiques locales de ce dernier. La détection d’enveloppe permet d’obtenir cette information. En général obtenue à l’aide d’un filtrage passe-bas de l’énergie instantannée.
Dérivation de cette fonction enveloppe : on utilise un filtre RIF qui simule l’opérateur de dérivation. Les valeurs positives de de cette dérivée mettent en évidence les front montant d’énergie et constituent une bonne fonction de détection.
Ressources dont le module dépend
wikipédia : filterbank, spectrogram, filter, cours oasis (SI101) filtrage
compétence : savoir expliquer avec ses propres mots le principe de fonctionnement d’un détecteur d’attaque, savoir choisir les filtres (longueur, type), être capable de mettre un oeuvre un filtre numérique simple
PAN 2 : notice descriptive précise (choix de paramètres, justifications des choix, description mathématique, description informatique) contenant le pseudo-code à mettre en oeuvre, éventuellement implémenté en matlab/octave sour forme de fonction.
PAN3 :
code java commenté et structuré de manière à être lisible.
tests de la fonction d’attaque :
sur un signal avec des sons bien séparé de batterie
sur des signaux plus complexes
PAN 4 (éventuel) :
pour des signaux plus complexes : rajouter un banc de filtre (module banc de filtre)
calculer une fonction de détection dans chaque bande et fusionner l’ensemble (somme pondérée des fonctions dans chaque bande)
tester les améliorations par rapport au modèle plus simple précédent sur des cas plus complexes que vous définirez vous même.