Usando ferramentas de linha de comando, você pode fazer o seguinte:
- Instalar brew
- Atualização e preparo médico
Instale portaudio, ffmpeg e todas as dependências com brew
brew install portaudio
brew install ffmpeg
Instale o pip baixando get-pip.py (link direto) e executando
sudo python ~/Downloads/get-pip.py
Instalar o soundmeter
sudo pip install soundmeter
Execute o soundmeter. Para obter ajuda, use a opção -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)
Basta executar soundmeter
um valor de RMS . Depois de definir um limite, você pode acionar uma ação do shell script (que pode desencadear um script AppleScript) com a opção -e.
Entrando soundmeter --segment 0.1 --log
assistindo TV on-line (mudança climática e cafeicultura na Colômbia - o fim do feijão 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
Apenas para confirmar: esse é o nível de entrada do microfone e não o nível de som do fluxo de TV porque a instalação acima é executada em um convidado da VM e o fluxo de TV no Mac de hospedagem - testado, mas não registrado com alguns clapping que aumentará o RMS para valores acima de 200!
Para enviar uma mensagem após um evento de ativação, faça o seguinte - altere <user_name>
para o nome de usuário abreviado do OS X e <telephone_number>
para um número de telefone apropriado abaixo:
Crie um diretório e mude para ele:
mkdir ~/.soundmeter
cd ~/.soundmeter
Crie um AppleScript:
nano sendMessage.applescript
com o conteúdo:
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
Crie um script de shell:
nano sendMessage.sh
com o conteúdo:
#!/bin/bash
osascript /Users/<user_name>/.soundmeter/sendMessage.applescript <telephone_number> "Another Arabica bean died"
e mude as permissões:
chmod 755 sendMessage.sh
Agora inicie o soundmeter com um comando como este:
soundmeter -t +38 -a exec -e /Users/<user_name>/.soundmeter/sendMessage.sh
Isso deve enviar uma mensagem para o seu número de telefone (iPhone). Por favor, note que você não pode enviar um iMessage para si mesmo. Enviá-lo para um alias pode funcionar. Outros scripts semelhantes (Apple) estão disponíveis aqui: Como enviar um texto imessage com applescript, apenas no serviço fornecido?