feat: audio module — sounddevice recorder with WAV export

This commit is contained in:
2026-04-01 02:22:53 +02:00
parent 3976ecb52e
commit 927e75aa5e
2 changed files with 75 additions and 0 deletions
+29
View File
@@ -0,0 +1,29 @@
import numpy as np
from unittest.mock import patch, MagicMock
def test_recorder_starts_and_stops():
from audio import AudioRecorder
with patch("sounddevice.InputStream") as MockStream:
mock_stream = MagicMock()
MockStream.return_value.start = MagicMock()
MockStream.return_value.stop = MagicMock()
MockStream.return_value.close = MagicMock()
recorder = AudioRecorder(sample_rate=16000)
assert not recorder.is_recording
recorder._stream = MockStream.return_value
recorder.is_recording = True
recorder.stop()
assert not recorder.is_recording
def test_recorder_save_wav(tmp_path):
import wave
from audio import AudioRecorder
recorder = AudioRecorder(sample_rate=16000)
recorder._buffer = [np.zeros(1600, dtype=np.int16)]
out = str(tmp_path / "test.wav")
recorder.save_wav(out)
with wave.open(out) as wf:
assert wf.getframerate() == 16000
assert wf.getnchannels() == 1