32 lines
1.1 KiB
Bash
Executable File
32 lines
1.1 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Make sox spectrogram
|
|
source /etc/birdnet/birdnet.conf
|
|
|
|
# Read the logging level from the configuration option
|
|
LOGGING_LEVEL="${LogLevel_SpectrogramViewerService}"
|
|
# If empty for some reason default to log level of error
|
|
[ -z $LOGGING_LEVEL ] && LOGGING_LEVEL='error'
|
|
# Additionally if we're at debug or info level then allow printing of script commands and variables
|
|
if [ "$LOGGING_LEVEL" == "info" ] || [ "$LOGGING_LEVEL" == "debug" ];then
|
|
# Enable printing of commands/variables etc to terminal for debugging
|
|
set -x
|
|
fi
|
|
|
|
next=0
|
|
looptime=$(( RECORDING_LENGTH * 2 / 3 ))
|
|
|
|
# Continuously loop generating a spectrogram
|
|
inotifywait -m -e close_write "$HOME/BirdNET-Pi/analyzing_now.txt" |
|
|
while read; do
|
|
now=$(date +%s)
|
|
if (( now > next )); then
|
|
analyzing_now="$(<$HOME/BirdNET-Pi/analyzing_now.txt)"
|
|
|
|
if [ -n "${analyzing_now}" ] && [ -f "${analyzing_now}" ]; then
|
|
spectrogram_png=${EXTRACTED}/spectrogram.png
|
|
sox -V1 "${analyzing_now}" -n remix 1 rate 24k spectrogram -c "${analyzing_now//$HOME\//}" -o "${spectrogram_png}"
|
|
fi
|
|
next=$(( now + looptime ))
|
|
fi
|
|
done
|