![]() |
||
---|---|---|
README.md | ||
recorder.py | ||
requirements.txt |
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.
____ __
/ __ \___ _________ _________/ /__ _____
/ /_/ / _ \/ ___/ __ \/ ___/ __ / _ \/ ___/
/ _, _/ __/ /__/ /_/ / / / /_/ / __/ /
/_/ |_|\___/\___/\____/_/ \__,_/\___/_/
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é ... :)