NTP-Timeturner/test_audioinput.py
2025-06-24 20:12:37 +01:00

36 lines
902 B
Python

#!/usr/bin/env python3
"""
test_audioinput.py
Records 2 seconds of audio from the default input device
and saves the waveform as 'waveform.png' — works headless.
"""
import numpy as np
import matplotlib
matplotlib.use('Agg') # Headless backend
import matplotlib.pyplot as plt
import sounddevice as sd
DURATION = 2 # seconds
SAMPLERATE = 48000
CHANNELS = 1
print("🔊 Recording 2 seconds from default input device...")
recording = sd.rec(int(DURATION * SAMPLERATE), samplerate=SAMPLERATE, channels=CHANNELS, dtype='float32')
sd.wait()
# Generate time axis
time_axis = np.linspace(0, DURATION, len(recording))
# Plot and save
plt.figure(figsize=(10, 4))
plt.plot(time_axis, recording, linewidth=0.5)
plt.title("Audio Input Waveform")
plt.xlabel("Time [s]")
plt.ylabel("Amplitude")
plt.grid(True)
plt.tight_layout()
plt.savefig("waveform.png")
print("✅ Waveform saved as 'waveform.png'")