recorder/README.md
2025-06-18 22:21:07 +02:00

2.7 KiB

Projet recorder.

Le but du projet est d"échanger de l'infomation entre deux PC en utilisant le son.

Une machine génère le son (via minimodem), le joue et l'autre l'écoute et décode le message.

Recorder analyse le son isole les fréquences dominantes et les tradit en 0 ou 1. Il en sort un chaine binaire, qui est alors décodé dans le message original.

    ____                           __         
   / __ \___  _________  _________/ /__  _____
  / /_/ / _ \/ ___/ __ \/ ___/ __  / _ \/ ___/
 / _, _/  __/ /__/ /_/ / /  / /_/ /  __/ /    
/_/ |_|\___/\___/\____/_/   \__,_/\___/_/     

                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 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