{"id":1712,"date":"2026-03-25T10:34:55","date_gmt":"2026-03-25T09:34:55","guid":{"rendered":"https:\/\/www.creatis.insa-lyon.fr\/~grenier\/?p=1712"},"modified":"2026-03-25T12:23:45","modified_gmt":"2026-03-25T11:23:45","slug":"projet-conception-dune-application-de-filtrage-audio-temps-reel-c-qt","status":"publish","type":"post","link":"https:\/\/www.creatis.insa-lyon.fr\/~grenier\/?p=1712","title":{"rendered":"Projet Conception d&#8217;une application de filtrage audio temps r\u00e9el (C++ \/ Qt)"},"content":{"rendered":"\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p><strong>Domaines :<\/strong> Programmation Orient\u00e9e Objet, Traitement du Signal Num\u00e9rique (DSP), Interfaces Graphiques, Temps R\u00e9el.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">1. Objectifs P\u00e9dagogiques<\/h3>\n\n\n\n<p>Ce projet vise \u00e0 consolider les comp\u00e9tences et m\u00e9thodes acquises en programmation orient\u00e9e objets (UML\/C++) et en programmation \u00e9v\u00e9nementielle,  par la r\u00e9alisation d&#8217;une application complexe de traitement audio. Les objectifs sp\u00e9cifiques sont :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>M\u00e9thodologie OO :<\/strong> Conception et mod\u00e9lisation UML d&#8217;une architecture orient\u00e9e objet flexible.<\/li>\n\n\n\n<li><strong>Filtrage num\u00e9rique des signaux :<\/strong> Impl\u00e9mentation de filtres num\u00e9riques (IIR d&#8217;ordre 2, passe-bande, passe-bas, passe-haut) via la transformation bilin\u00e9aire.<\/li>\n\n\n\n<li><strong>Traitement Temps R\u00e9el :<\/strong> Gestion du flux audio avec latence minimale et mise \u00e0 jour des interfaces graphiques sans blocage (utilisation de <em>Queues<\/em> ou <em>Buffers<\/em>).<\/li>\n\n\n\n<li><strong>Interface Homme-Machine (IHM) :<\/strong> Cr\u00e9ation d&#8217;une interface graphique fonctionnelle sous Qt6.10, exploitant le mod\u00e8le Signal\/Slot pour la r\u00e9activit\u00e9 utilisateur.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">2. Sp\u00e9cifications Techniques et Environnement<\/h3>\n\n\n\n<p>Le projet s&#8217;inscrit dans un environnement de d\u00e9veloppement standardis\u00e9 :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Langage :<\/strong> C++ (normes C++17 ou C++20). Utilisation des biblioth\u00e8ques standards (<code>std<\/code>).<\/li>\n\n\n\n<li><strong>Biblioth\u00e8que GUI &amp; IO :<\/strong> Qt6.10 pour la cr\u00e9ation de l&#8217;interface et la gestion des entr\u00e9es et sorties audio.<\/li>\n\n\n\n<li><strong>Outils de build :<\/strong> CMake ou Qmake (recommand\u00e9 pour d\u00e9butant), sous l&#8217;environnement de d\u00e9veloppement QtCreator.<\/li>\n\n\n\n<li><strong>Contraintes de codage :<\/strong> Respect strict des r\u00e8gles d&#8217;hygi\u00e8ne de codage, commentaires explicatifs et coh\u00e9rence entre les diagrammes UML et l&#8217;impl\u00e9mentation.<\/li>\n\n\n\n<li>L<strong>es sources du projet sont disponibles ici<\/strong> : <a href=\"https:\/\/gitlab.in2p3.fr\/thomas.grenier\/audiofilter\">https:\/\/gitlab.in2p3.fr\/thomas.grenier\/audiofilter<\/a><\/li>\n\n\n\n<li>L&#8217;\u00e9nonc\u00e9 complet est ici :  <a href=\"https:\/\/www.creatis.insa-lyon.fr\/~grenier\/wp-content\/uploads\/teaching\/Cpp\/PrjAudioFilter\/ProjetAudioFiltrage.pdf\">https:\/\/www.creatis.insa-lyon.fr\/~grenier\/wp-content\/uploads\/teaching\/Cpp\/PrjAudioFilter\/ProjetAudioFiltrage.pdf<\/a> <\/li>\n\n\n\n<li><\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">3. Description Fonctionnelle de l&#8217;Application<\/h3>\n\n\n\n<p>L&#8217;application d\u00e9velopp\u00e9e doit permettre :<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Acquisition :<\/strong> Lecture de fichiers audio (WAV, MP3) ou captation via une entr\u00e9e mat\u00e9rielle (microphone).<\/li>\n\n\n\n<li><strong>Traitement :<\/strong> Application d&#8217;un filtre param\u00e9trique passe-bande configurable. Les param\u00e8tres ajustables sont :\n<ul class=\"wp-block-list\">\n<li>La fr\u00e9quence centrale ($f_c$).<\/li>\n\n\n\n<li>Le facteur de qualit\u00e9 ($Q$), d\u00e9terminant la largeur de bande passante.<\/li>\n\n\n\n<li>Le gain en d\u00e9cibels (boost\/cut) \u00e0 la fr\u00e9quence centrale.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Sortie :<\/strong> Restitution audio (sortie mat\u00e9rielle ou \u00e9criture dans un fichier) et visualisation en temps r\u00e9el du spectre.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">4. Aspects Th\u00e9oriques et Algorithmiques<\/h3>\n\n\n\n<p>La conception du filtre repose sur le calcul des coefficients d&#8217;un IIR biquadratique. La m\u00e9thodologie recommand\u00e9e suit la trajectoire suivante :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>D\u00e9finition de la fonction de transfert continue $H(p)$ selon les sp\u00e9cifications (passe-bande, coupe-bande, etc.).<\/li>\n\n\n\n<li>Application de la <strong>transformation bilin\u00e9aire<\/strong> pour passer au domaine discret $H(z)$.<\/li>\n\n\n\n<li>Calcul des coefficients ($a_0, a_1, a_2, b_1, b_2$) en utilisant les formules standards (r\u00e9f\u00e9rences : <em>Audio EQ Cookbook<\/em>, TI SLAA447).<\/li>\n<\/ul>\n\n\n\n<p>Des extensions sont pr\u00e9vues pour explorer l&#8217;architecture logicielle :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Visualisation FFT :<\/strong> Int\u00e9gration d&#8217;une Transform\u00e9e de Fourier Rapide sur 512 \u00e9chantillons, mise \u00e0 jour dynamiquement.<\/li>\n\n\n\n<li><strong>Multi-filtrage :<\/strong> Extension de l&#8217;architecture pour supporter une cha\u00eene de filtres (Low, Low-mid, High-mid, High) ou un \u00e9galiseur param\u00e9trique multi-bandes (11 bandes fixes).<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">5. Livrables Attendus<\/h3>\n\n\n\n<p>Les livrables du projet suivants sont attendus<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Code source :<\/strong> Document\u00e9, structur\u00e9 et conforme aux normes C++17\/20.<\/li>\n\n\n\n<li><strong>Mod\u00e9lisation :<\/strong> Diagrammes de classes UML justifiant les choix d&#8217;architecture (relations h\u00e9ritage, agr\u00e9gation).<\/li>\n\n\n\n<li><strong>Application :<\/strong> Interface graphique Qt fonctionnelle permettant le r\u00e9glage des param\u00e8tres en temps r\u00e9el.<\/li>\n\n\n\n<li><strong>Rapport de synth\u00e8se (4 \u00e0 5 pages) :<\/strong>\n<ul class=\"wp-block-list\">\n<li>Justification du design objet.<\/li>\n\n\n\n<li>M\u00e9thodologie de validation des calculs et analyse exp\u00e9rimentale (r\u00e9ponse impulsionnelle, r\u00e9ponse fr\u00e9quentielle).<\/li>\n\n\n\n<li>Discussion critique sur les \u00e9carts observ\u00e9s et les limites de l&#8217;impl\u00e9mentation.<\/li>\n\n\n\n<li>Si usage de l&#8217;IA : transparence et cha\u00eenes de prompts.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">6. \u00c9valuation et Usage de l&#8217;IA G\u00e9n\u00e9rative<\/h3>\n\n\n\n<p>L&#8217;\u00e9valuation comprend une partie orale (&#8220;TP Not\u00e9&#8221;) portant sur la ma\u00eetrise du projet et des questions cibl\u00e9es sur le d\u00e9veloppement r\u00e9alis\u00e9.<br><strong>Note importante :<\/strong> L&#8217;utilisation d&#8217;outils d&#8217;IA g\u00e9n\u00e9rative est autoris\u00e9e \u00e0 titre d&#8217;aide, mais sous condition :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>L&#8217;\u00e9tudiant doit adopter une approche &#8220;socratique&#8221; (comprendre et justifier chaque \u00e9l\u00e9ment g\u00e9n\u00e9r\u00e9).<\/li>\n\n\n\n<li>L&#8217;\u00e9tudiant doit acqu\u00e9rir les comp\u00e9tences m\u00e9thodologiques de developpement et \u00eatre en mesure de justifier et reproduire l&#8217;ensemble du d\u00e9veloppement sans assistance IA.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p><em>R\u00e9f\u00e9rences techniques :<\/em><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><em>Audio EQ Cookbook : https:\/\/www.w3.org\/TR\/audio-eq-cookbook\/<\/em><\/li>\n\n\n\n<li><em>Digital Biquad Filter (Wikipedia) : https:\/\/en.wikipedia.org\/wiki\/Digital_biquad_filter<\/em><\/li>\n<\/ul>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Domaines : Programmation Orient\u00e9e Objet, Traitement du Signal Num\u00e9rique (DSP), Interfaces Graphiques, Temps R\u00e9el. 1. Objectifs P\u00e9dagogiques Ce projet vise \u00e0 consolider les comp\u00e9tences et m\u00e9thodes acquises en programmation orient\u00e9e objets (UML\/C++) et en programmation \u00e9v\u00e9nementielle, par la r\u00e9alisation d&#8217;une application complexe de traitement audio. Les objectifs sp\u00e9cifiques sont : 2. Sp\u00e9cifications Techniques et Environnement [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5,11,4],"tags":[],"class_list":["post-1712","post","type-post","status-publish","format-standard","hentry","category-computer-science","category-signal-processing","category-teaching"],"_links":{"self":[{"href":"https:\/\/www.creatis.insa-lyon.fr\/~grenier\/index.php?rest_route=\/wp\/v2\/posts\/1712","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.creatis.insa-lyon.fr\/~grenier\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.creatis.insa-lyon.fr\/~grenier\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.creatis.insa-lyon.fr\/~grenier\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.creatis.insa-lyon.fr\/~grenier\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1712"}],"version-history":[{"count":3,"href":"https:\/\/www.creatis.insa-lyon.fr\/~grenier\/index.php?rest_route=\/wp\/v2\/posts\/1712\/revisions"}],"predecessor-version":[{"id":1715,"href":"https:\/\/www.creatis.insa-lyon.fr\/~grenier\/index.php?rest_route=\/wp\/v2\/posts\/1712\/revisions\/1715"}],"wp:attachment":[{"href":"https:\/\/www.creatis.insa-lyon.fr\/~grenier\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1712"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.creatis.insa-lyon.fr\/~grenier\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1712"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.creatis.insa-lyon.fr\/~grenier\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1712"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}