|
|
@@ -0,0 +1,42 @@
|
|
|
+#!/bin/bash
|
|
|
+#from https://github.com/linuxmint/cinnamon-spices-applets/blob/master/mic-level%40zamszowy/files/mic-level%40zamszowy/rec.sh
|
|
|
+#dependances: sox alsa-utils
|
|
|
+#activer la capture avec : amixer set Capture cap (apparemment avec alsamixer ne suffit pas)
|
|
|
+
|
|
|
+set -eu
|
|
|
+
|
|
|
+logger "Demarrage script monitor_mic"
|
|
|
+
|
|
|
+envoie_xmpp () {
|
|
|
+ chaine="`hostname` [monitor_mic] : `date +%H:%M:%S` $*"
|
|
|
+ logger "Message XMPP a envoyer : $chaine"
|
|
|
+ #NEW:
|
|
|
+ xmppc -a default -m message chat manuel@servileto.net "$chaine"
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+#readonly rec_time=${1:-0.1}
|
|
|
+readonly rec_time=0.5
|
|
|
+
|
|
|
+if amixer_out=$(amixer get Capture) && ! [[ $amixer_out =~ \[on\] ]]; then
|
|
|
+ sleep "$rec_time"
|
|
|
+ echo "-1"
|
|
|
+ exit
|
|
|
+fi
|
|
|
+
|
|
|
+#RMS amplitude
|
|
|
+while [ true ] ; do
|
|
|
+ #rec -n stat trim 0 "$rec_time" 2>&1 | awk '/^Maximum amplitude/ { $3 *= 100; print $3 }'
|
|
|
+ #rec -n stat trim 0 "$rec_time"
|
|
|
+ commandoutput=$(rec -n stat trim 0 "$rec_time" 2>&1)
|
|
|
+ echo $commandoutput
|
|
|
+ echo $commandoutput | awk -F'Maximum amplitude: ?' '{print $1}'
|
|
|
+ #echo $commandoutput | awk '/^Maximum amplitude/ { $3 *= 100; print $3 }'
|
|
|
+ #echo $commandoutput | awk '/^Mean amplitude/ { $3 *= 100; print $3 }'
|
|
|
+ #echo $commandoutput | awk '/^RMS amplitude/ { $3 *= 100; print $3 }'
|
|
|
+
|
|
|
+ #rec -n stat trim 0 "$rec_time" 2>&1 | awk '/^Mean amplitude/ { $3 *= 100; print $3 }'
|
|
|
+
|
|
|
+ #envoie_xmpp "⚠ Monitor mic : bruit détecté (Niveau=$capacite_nouveau) !"
|
|
|
+ sleep 2
|
|
|
+done
|