recorder/README.md
2025-06-19 15:28:27 +02:00

2.9 KiB

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 encore géré ... :)