No description
Find a file
2026-01-08 21:30:39 +01:00
slides slides 2026-01-08 21:30:39 +01:00
src_dtmf Fixed invalid syntax 2026-01-04 22:37:05 +01:00
src_sync-sound Running our detector with audio files 2025-12-24 01:02:40 +01:00
src_testgen Fixed small typo in sine wave calculation (missing * 2) 2026-01-01 13:02:32 +01:00
.gitignore slides 2026-01-08 21:30:39 +01:00
dep_extract.sh Calling C from lustre 2025-11-18 15:54:00 +01:00
Makefile Fix build for Sel 2026-01-04 10:18:03 +01:00
README.md Small fix in README 2026-01-04 23:03:35 +01:00
shell.nix A filter bug fix, setup for checking correctness 2026-01-03 00:34:04 +01:00

Ceci est le projet de SYNC de Sélène Corbineau et Amélia Coutard-Sander.

Il consiste en un système de reconnaissance des codes DTMF écrit principalement en heptagon, avec la gestion des entrées/sorties en C. Il est accompagné d'un générateur de fichiers audio contenant des codes DTMF, pour le tester.

Pour l'utiliser, commencez par dé-commenter un des main_dtmf dans src_dtmf/hmain.ept, pour le moment seul le deuxième fonctionne bien. Ensuite, effectuez make deps && make.

Enfin, la Makefile contient quelques targets pour exécuter le programme:

  • make live exécute le programme en écoutant les sons dans le microphone de l'ordinateur, via pulseaudio.
  • make FILE=<file> with-file exécute le programme sur le fichier audio <file>, et joue simultanément l'audio.
  • make FILE=<file> with-file-log fait la même chose que with-file mais enregistre la sortie du programme dans le fichier log plutôt que de l'afficher.
  • make FILE=<file> with-file-quiet fait la même chose que with-file mais ne joue pas l'audio simultanément, et effectue donc la détection plus vite que l'audio ne se jouerait.

Si vous utilisez Nix, le fichier shell.nix contient la liste des dépendances.

Nous avons tenté deux méthodes pour extraire les fréquences présentes dans l'audio.

  • D'un côté, nous avons fait un système de filtres passe-bas et passe-haut qui découpent la bande en deux, puis ne gardent qu'un sample sur deux. En faisant un arbre de ces filtres, on extrait des bandes de fréquences de plus en plus spécifiques. Celà correspond au premier make_dtmf, et fonctionne à peu près avec les coefficients actuellement commentés.
  • De l'autre, nous avons implémenté un filtre de Goertzel, qui nous permet de récupérer, de la même manière, certaines bandes de fréquences (et seulement celles-là). Celà correspond au deuxième make_dtmf, et fonctionne assez bien, y compris quand les sons sont obtenus directement depuis le microphone.