浏览代码

commit initial

root 10 月之前
当前提交
9a48ecf5ec
共有 2 个文件被更改,包括 60 次插入0 次删除
  1. 42 0
      monitor_mic.sh
  2. 18 0
      pa_mic.sh

+ 42 - 0
monitor_mic.sh

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

+ 18 - 0
pa_mic.sh

@@ -0,0 +1,18 @@
+#!/bin/bash
+#from https://unix.stackexchange.com/questions/685390/detecting-sound-silence-on-a-sox-pipe
+
+
+# Get your PulseAudio source monitor (edit regex to suit you)
+pulse_monitor=$(pactl list short sources | awk '$1 = /alsa.*monitor/ {print $2}')
+
+function wait_for_audio() {
+  parec --rate 1000 -d $pulse_monitor 2>/dev/null \
+  | LC_ALL=C fgrep -qm 1 .
+}
+
+while [ true ]; do
+  wait_for_audio
+  echo "Sound Detected starting @ $(date)" >> $log
+  sleep 2
+  exit
+done