# Projet recorder. Le but du projet est d'échanger de l'information entre deux PC en utilisant le son. Une machine génère le son (via minimodem), le joue (via audacity par exemple) puis l'autre l'écoute et décode le message. ***Recorder*** analyse le son et isole les fréquences dominantes puis les traduit en 0 ou 1. Il en sort une chaine binaire, qui est alors décodé dans le message originel. ```$ ./recorder.py -h ____ __ / __ \___ _________ _________/ /__ _____ / /_/ / _ \/ ___/ __ \/ ___/ __ / _ \/ ___/ / _, _/ __/ /__/ /_/ / / / /_/ / __/ / /_/ |_|\___/\___/\____/_/ \__,_/\___/_/ Author: Snorky Version : 0.1 usage: recorder.py [-h] [-s] [-i DEVICE_INDEX] [-r RATE] [-l LENGTH_FRAME] [-p OUTPUT_NAME] [-v] options: -h, --help show this help message and exit -s, --show_devices List of audio devices currently available for use. -i DEVICE_INDEX, --device_index DEVICE_INDEX Index of input audio device. (Default: -1) -r RATE, --rate RATE Rate config. (Default: 16000) -l LENGTH_FRAME, --length_frame LENGTH_FRAME Frame size. (Default: 512) -p OUTPUT_NAME, --output_name OUTPUT_NAME Name to file to store raw audio. (Default: recorder.wav) -v, --verbosity Increase logging. (Default: False) ``` ## Démo: ### Machine 1: ``` echo "HackThePlanet" | minimodem --tx --ascii --startbits 0 --stopbits 0.0 -f hacktheplanet.wav 8 ``` Ouvrez audacity => importer => Audio et selectionner votre fichier ### Machine 2: ``` ./recorder.py ``` Une fois le recorder.py en attente, cliquer sur lecture (machine 1) et attendre la fin de la transmission. Puis Ctrl + c. Résultat: ``` ./recorder.py -v ____ __ / __ \___ _________ _________/ /__ _____ / /_/ / _ \/ ___/ __ \/ ___/ __ / _ \/ ___/ / _, _/ __/ /__/ /_/ / / / /_/ / __/ / /_/ |_|\___/\___/\____/_/ \__,_/\___/_/ Author: Snorky Version : 0.1 Args value: show_devices: False device_index: -1 rate: 16000 length_frame: 512 output_name: recorder.wav verbosity: True Listener is running. Ctrl + c for quit. ^C Saving wav file: /home/pierre/.cache/recorder/wave/recorder.wav. ######## INFOS ######## Value recording = [ 0 0 0 ... 2094 2321 1534] Data shape: 264704 Rate: 16000 length: 16.544s Path file: recorder.wav Device Index: -1 Extracting data from wav file: ............000100101000011011000110110101100010101000010110101001100000101000110110100001100111011010100110001011100101000011....... Decoding message: ............... Message transmitted is: HackThePlanet ``` ## BUG Il arrive certaines fois que le message ne se déchiffre pas. Le problème n'est pas necore géré ... :)