Outil d'analyse de parties de jeu de plateau (type Awalé) en C++, avec visualisation SFML des statistiques en bonus.
Telecharger & tester
make && ./stone_analysis (analyse statistique de parties du jeu de plateau associe a gameofstones)
Stone Analysis est un projet Epitech (groupe, cursus avance) qui cloture la trilogie de la pierre mysterieuse en travaillant directement sur le signal audio qu'elle emet, fourni sous forme de fichier WAV PCM 16 bits monocanal echantillonne a 48 kHz. Le programme expose trois modes exclusifs en ligne de commande : --analyze IN_FILE N pour extraire les N frequences dominantes, --cypher IN_FILE OUT_FILE MESSAGE pour dissimuler un message dans le signal, et --decypher IN_FILE pour l'en extraire.
Le traitement du signal repose sur l'implementation manuelle de la transformee de Fourier discrete (DFT) pour decomposer le signal temporel en frequences, et de son inverse (IDFT) pour recomposer le signal apres modification ; toute bibliotheque de traitement audio, de FFT (comme numpy.fft) ou de steganographie est explicitement interdite. Le sujet met en garde contre le choix d'un langage a l'execution lente combine a une DFT naive en O(n^2), qui risquerait de rendre le traitement de fichiers reels trop couteux en temps.
Le mode d'analyse doit afficher les N frequences dont la magnitude spectrale est la plus elevee, triees par ordre decroissant (les frequences de meme magnitude pouvant apparaitre dans un ordre indifferent). Le mode de steganographie doit permettre de cacher puis de retrouver un message compose au minimum des chiffres, des lettres latines sans distinction de casse et de l'espace, en associant par exemple des caracteres a des frequences precises du spectre, ou via un algorithme personnel, du moment que le fichier de sortie conserve un en-tete strictement identique a l'original et reste imperceptiblement different a l'ecoute.
Le sujet insiste sur le fait que l'algorithme d'encodage ne doit pas etre trivial, ce qui exclut par exemple une simple modification brute des echantillons sans passage par le domaine frequentiel. Les pistes de bonus prolongent le sujet vers l'encodage de la table ASCII complete (avec une vigilance particuliere sur la frequence de Nyquist qui borne les frequences representables a la moitie du taux d'echantillonnage), la visualisation spectrale, l'edition sonore avancee, et l'encodage de message par transformee en ondelettes discrete (DWT) plutot que par DFT.
Projet suivant
