Za pomocą narzędzi wiersza poleceń możesz wykonać następujące czynności:
- Zainstaluj napar
- Aktualizacja i napar doktorski
Zainstaluj portaudio, ffmpeg i wszystkie zależności za pomocą brew
brew install portaudio
brew install ffmpeg
Zainstaluj pip, pobierając plik get-pip.py (bezpośredni link) i uruchamiając
sudo python ~/Downloads/get-pip.py
Zainstaluj miernik dźwięku
sudo pip install soundmeter
Uruchom miernik dźwięku. Aby uzyskać pomoc, użyj przełącznika -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)
Samo uruchomienie soundmeter
spowoduje wyświetlenie wartości RMS . Po zdefiniowaniu progu można wywołać akcję skryptu powłoki (która sama może wywołać skrypt AppleScript) za pomocą przełącznika -e.
Wejście do soundmeter --segment 0.1 --log
oglądania telewizji internetowej (zmiany klimatu i uprawa kawy w Kolumbii - koniec ziaren Arabiki) pokaże coś takiego:
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
Tylko w celu potwierdzenia: to poziom wejściowy mikrofonu, a nie poziom dźwięku strumienia telewizyjnego, ponieważ powyższa instalacja działa na gościu VM, a strumień telewizyjny na hostującym komputerze Mac - przetestowany, ale nie zalogowany z pewnym klaskaniem, co zwiększy RMS do wartości powyżej 200!
Aby wysłać wiadomość po zdarzeniu wyzwalającym, wykonaj następujące czynności - zmień <user_name>
krótką nazwę użytkownika OS X i <telephone_number>
odpowiedni numer telefonu poniżej:
Utwórz katalog i zmień na niego:
mkdir ~/.soundmeter
cd ~/.soundmeter
Utwórz AppleScript:
nano sendMessage.applescript
z treścią:
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
Utwórz skrypt powłoki:
nano sendMessage.sh
z treścią:
#!/bin/bash
osascript /Users/<user_name>/.soundmeter/sendMessage.applescript <telephone_number> "Another Arabica bean died"
i zmień uprawnienia:
chmod 755 sendMessage.sh
Teraz uruchom miernik dźwięku za pomocą następującego polecenia:
soundmeter -t +38 -a exec -e /Users/<user_name>/.soundmeter/sendMessage.sh
To powinno wysłać wiadomość na Twój numer telefonu (iPhone). Pamiętaj, że nie możesz wysłać iMessage do siebie. Wysłanie go do aliasu może działać. Inne podobne skrypty (Apple) są dostępne tutaj: Jak wysłać tekst wiadomości za pomocą AppleScript, tylko w dostarczonej usłudze?