From 3b483805df61031209014a01fae2044716037458 Mon Sep 17 00:00:00 2001 From: CroneKorkN Date: Sun, 1 Jun 2025 19:31:52 +0200 Subject: [PATCH] wip --- process | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/process b/process index bbb41f8..3c35ecf 100755 --- a/process +++ b/process @@ -26,6 +26,7 @@ MIN_SIGNAL_QUALITY = 1000.0 # maximum noise level (relative DB) to consider a de PLOT_PADDING_START_SECONDS = 2 # seconds (padding before and after the event in the plot) PLOT_PADDING_END_SECONDS = 3 # seconds (padding before and after the event in the plot) + def process_recording(filename): print('processing', filename) @@ -108,13 +109,19 @@ def process_recording(filename): sample_num += samples_per_block - overlapping_samples - +# write a spectrogram using the sound from start to end of the event def write_event(current_event, sound, samplerate): - # write a spectrogram using the sound from start to end of the event event_start_sample = current_event['start_sample'] - samplerate * PLOT_PADDING_START_SECONDS event_end_sample = current_event['end_sample'] + samplerate * PLOT_PADDING_END_SECONDS event_clip = sound[event_start_sample:event_end_sample] event = current_event['start_at'] - datetime.timedelta(seconds=PLOT_PADDING_START_SECONDS) + filename_prefix = current_event['start_at'].strftime('%Y-%m-%d_%H-%M-%S.%f%z') + + # write flac + flac_path = os.path.join(DETECTIONS_DIR, f"{filename_prefix}.flac") + soundfile.write(flac_path, event_clip, samplerate, format='FLAC') + + # write spectrogram plt.figure(figsize=(8, 6)) plt.specgram(event_clip, Fs=samplerate, NFFT=samplerate, noverlap=samplerate//2, cmap='inferno', vmin=-100, vmax=-10) plt.title(f"Bootshorn @{event.strftime('%Y-%m-%d %H:%M:%S')}") @@ -122,12 +129,9 @@ def write_event(current_event, sound, samplerate): plt.ylabel("Frequency (Hz)") plt.colorbar(label="Intensity (dB)") plt.ylim(50, 1000) - spectrogram_path = os.path.join(DETECTIONS_DIR, f"{current_event['start_at'].strftime('%Y-%m-%d_%H-%M-%S.%f%z')}.png") + spectrogram_path = os.path.join(DETECTIONS_DIR, f"{filename_prefix}.png") plt.savefig(spectrogram_path) plt.close() - # write flac - flac_path = os.path.join(DETECTIONS_DIR, f"{current_event['start_at'].strftime('%Y-%m-%d_%H-%M-%S.%f%z')}.flac") - soundfile.write(flac_path, event_clip, samplerate, format='FLAC') def main():