Остановите запись, как только громкость станет ниже порога с помощью python-sounddevice
В настоящее время у меня есть некоторый код Python, который постоянно записывает 4-секундные фрагменты аудио:
#!/usr/bin/env python3
import sounddevice as sd
fs = 16000
while True:
print('Started listening')
myrecording = sd.rec(int(4 * fs), dtype='int16', channels=1, blocking=True)
Однако вместо фиксированного 4-секундного блока я бы хотел sounddevice
записывать до тех пор, пока громкость звука не упадет ниже порогового уровня звука (т. е. когда человек с микрофоном перестал говорить), а затем снова начать прослушивание.
По сути, я хочу имитировать поведение такой команды, как sox
"s rec recording.wav silence 1 0.1 3% 1 3.0 3%
, который делает именно это.
Есть ли простой способ сделать это с sounddevice
?
0 ответов
Кажется, что библиотеки, которые делают это, называются VAD (голосовое обнаружение звука). Для python хорошим представляется py-webrtcvad.