Advertisement
image28

Sound Logger

Jul 15th, 2017
183
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.15 KB | None | 0 0
  1. #!/bin/bash
  2. # Fixed issue with microphone stuttering ( changed to mono sound as per the man page )
  3. # http://stackoverflow.com/questions/2613163/monitoring-an-audio-line#_=_
  4.  
  5. noise_threshold=3
  6. storage_folder=~/Recordings
  7. raw_folder=~/Recordings/tmp
  8. split_folder=~/Recordings/split
  9. sox_raw_options="-t raw -r 48k -e signed -b 16"
  10. split_size=1048576 # 1M
  11.  
  12. mkdir -p ${raw_folder} ${split_folder}
  13.  
  14. test -a ${raw_folder}/in.raw ||  mkfifo ${raw_folder}/in.raw
  15.  
  16. # start recording and spliting in background
  17. rec ${sox_raw_options} - >${raw_folder}/in.raw 2>/dev/null &
  18. split -b ${split_size} - <${raw_folder}/in.raw ${split_folder}/piece &
  19.  
  20.  
  21. while true; do
  22.     # check each finished raw file
  23.     for raw in $(find ${split_folder} -size ${split_size}c);do
  24.     max_level="$(sox $sox_raw_options  ${raw} -n stats -s 16 2>&1|awk '/^Max\ level/ {print int($3)}')"
  25.     if [ $max_level -gt $noise_threshold ];then
  26.     if ! test -e ${storage_folder}/$(date +%F)
  27.     then
  28.         mkdir ${storage_folder}/$(date +%F);
  29.     fi
  30.         sox -c 2 ${sox_raw_options} ${raw} ${storage_folder}/$(date +%F)/recording-$(date +%FT%T).ogg;
  31.     fi
  32.     rm ${raw}
  33.     done
  34.     sleep 1
  35. done
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement