Usando herramientas de línea de comandos, puedes hacer lo siguiente:
- Install brew
- Actualización y elaboración del doctor
-
Instale portaudio, ffmpeg y todas las dependencias con brew
brew install portaudio
brew install ffmpeg
-
Instale pip descargando get-pip.py (enlace directo) y ejecutando
sudo python ~/Downloads/get-pip.py
-
Instale medidor de sonido
sudo pip install soundmeter
-
Ejecutar el medidor de sonido. Para obtener ayuda use el interruptor -h:
soundmeter -h
optional arguments:
-h, --help show this help message and exit
-c, --collect collect RMS values to determine thresholds
-s SECONDS, --seconds SECONDS
time in seconds to run the meter (default forever)
-a {stop,exec-stop,exec}, --action {stop,exec-stop,exec}
triggered action
-t [+|-]THRESHOLD [NUM ...], --trigger [+|-]THRESHOLD [NUM ...]
trigger condition (threshold RMS and number of times)
-e SCRIPT, --exec SCRIPT
shell script to execute upon trigger
-d, --daemonize run the meter in the background
--log [LOGFILE] log the meter (default to ~/.soundmeter/log)
-v, --verbose verbose mode
--segment SECONDS audio segment length recorded in seconds (defaults to
0.5)
Simplemente ejecutando soundmeter
generará un valor RMS . Después de definir un umbral, puede activar una acción de script de shell (que a su vez puede activar un script de AppleScript) con el interruptor -e.
Ingresar soundmeter --segment 0.1 --log
viendo televisión en línea (cambio climático y cultivo de café en Colombia - el final de los granos de arábica) mostrará algo como:
2017-01-25 18:16:02,289 24
2017-01-25 18:16:02,665 24
2017-01-25 18:16:03,037 31
2017-01-25 18:16:03,399 3
2017-01-25 18:16:03,769 15
2017-01-25 18:16:04,142 11
2017-01-25 18:16:04,524 9
2017-01-25 18:16:04,891 7
2017-01-25 18:16:05,257 7
2017-01-25 18:16:05,632 0
2017-01-25 18:16:06,001 7
2017-01-25 18:16:06,384 0
2017-01-25 18:16:06,745 2
2017-01-25 18:16:07,113 10
2017-01-25 18:16:07,491 14
2017-01-25 18:16:07,860 6
2017-01-25 18:16:08,223 0
2017-01-25 18:16:08,609 13
2017-01-25 18:16:08,973 16
2017-01-25 18:16:09,347 7
2017-01-25 18:16:09,720 26
2017-01-25 18:16:10,091 1
2017-01-25 18:16:10,464 38 ← an Arabica bean died here
2017-01-25 18:16:10,835 13
2017-01-25 18:16:11,204 Stopped
Solo para confirmar: ese es el nivel de entrada del micrófono y no el nivel de sonido de la transmisión de TV porque la instalación anterior se ejecuta en una máquina virtual invitada y la transmisión de TV en el Mac de alojamiento - probado pero no registrado con algunos aplausos que ¡aumentará el RMS a valores por encima de 200!
Para enviar un mensaje después de un evento desencadenante, haga lo siguiente: cambie <user_name>
a su nombre de usuario corto de OS X y <telephone_number>
a un número de teléfono apropiado a continuación:
-
Cree un directorio y cámbielo:
mkdir ~/.soundmeter
cd ~/.soundmeter
-
Crea un AppleScript:
nano sendMessage.applescript
con el contenido:
on run {targetBuddyPhone, targetMessage}
tell application "Messages"
set targetService to 1st service whose service type = iMessage
set targetBuddy to buddy targetBuddyPhone of targetService
send targetMessage to targetBuddy
end tell
end run
-
Crear un script de shell:
nano sendMessage.sh
con el contenido:
#!/bin/bash
osascript /Users/<user_name>/.soundmeter/sendMessage.applescript <telephone_number> "Another Arabica bean died"
y cambia los permisos:
chmod 755 sendMessage.sh
-
Ahora inicie el medidor de sonido con un comando como este:
soundmeter -t +38 -a exec -e /Users/<user_name>/.soundmeter/sendMessage.sh
Esto debería enviar un mensaje a su número de teléfono (iPhone). Ten en cuenta que no puedes enviarte un iMessage. Enviarlo a un alias puede funcionar. Otros scripts similares (de Apple) están disponibles aquí: ¿Cómo enviar un texto de imagen con applecript, solo en el servicio proporcionado?