¿Puedo acceder al nivel de input del micrófono interno a través de Terminal?

Estoy interesado en usar mi vieja MacBook como un monitor de audio para bebés. Mi flujo de trabajo imaginado es establecer un umbral de ruido para el micrófono interno en la MacBook cuando el bebé se mueve o lloriquea y para usar Mensajes para enviar un post de text a mí o a mi esposa cuando se alcanza el umbral.

Cuando miro en Preferences del Sistema, puedo ver que el Input level del micrófono está captando ruido, pero ¿cómo puedo get un número cuantificable en la Terminal?

He visto en línea sobre osascript -e "get volume settings" para acceder a un valor numérico de cuán sensible debe ser el micrófono, pero no puedo encontrar la manera de acceder a qué input de input está llegando en un momento determinado .

¿Alguna idea por ahí?

  • Cambiar el foco en vista dividida
  • ¿Cómo puedo encontrar dónde se estableció una variable ambiental?
  • Arranque de imágenes
  • OS X Terminal fn + eliminar no funciona, imprime ~
  • Dentro del terminal, el command `date` da como resultado un curioso prefijo donde debería estar
  • Código de color para vi en la terminal en Mac?
  • Permita que Terminal.app pase las pulsaciones de keyboard basadas en teclas de command a progtwigs de terminal
  • Cómo crear una aplicación simple que convierte text en files m4a
  • One Solution collect form web for “¿Puedo acceder al nivel de input del micrófono interno a través de Terminal?”

    Utilizando herramientas de command-line puede hacer lo siguiente:

    • Instalar cerveza
    • Actualizar y preparar cerveza
    • Instale portaudio, ffmpeg y todas las dependencies con brew

       brew install portaudio brew install ffmpeg 
    • Instale pip descargando get-pip.py (enlace directo) y ejecutando

       sudo python ~/Downloads/get-pip.py 
    • Instalar el sonómetro

       sudo pip install soundmeter 
    • Ejecutar el medidor de sonido Para get ayuda, use el modificador -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} triggenetworking 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 el soundmeter emitirá un valor RMS . Después de definir un umbral, puede activar una acción de script de shell (que a su vez puede desencadenar un script de AppleScript) con el modificador -e.

    Ingresando el soundmeter --segment 0.1 --log viendo TV 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 input del micrófono y no el nivel de sonido de la transmisión de TV porque la installation anterior se ejecuta en un invitado de VM y la transmisión de TV en el Mac de alojamiento. Probado pero no registrado con algunos aplausos que boostá el RMS a valores por encima de 200!


    Para enviar un post después de un evento desencadenante haga lo siguiente: cambie <user_name> a su nombre de usuario abreviado de OS X y <telephone_number> a un número de teléfono apropiado a continuación:

    • Crea un directory y cámbialo a él:

       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 cambie los permissions:

       chmod 755 sendMessage.sh 
    • Ahora inicia el medidor de sonido con un command como este:

       soundmeter -t +38 -a exec -e /Users/<user_name>/.soundmeter/sendMessage.sh 

      Esto debería enviar un post a su número de teléfono (iPhone). Tenga en count que no puede enviar un iMessage a usted mismo. Enviarlo a un alias puede funcionar. Otros scripts similares (Apple) están disponibles aquí: ¿Cómo enviar un text de imessage con applescript, solo en el service proporcionado?

    Loving Apple Products like poisoning (iPhone, iPad, iMac, Macbook, iWatch).