Остановите запись, как только громкость станет ниже порога с помощью python-sounddevice - PullRequest
0 голосов
/ 29 ноября 2018

В настоящее время у меня есть некоторый код 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?

1 Ответ

0 голосов
/ 01 февраля 2019

Кажется, что библиотеки, которые делают это, называются VAD (распознавание голоса).Для python хорошим представляется py-webrtcvad .

...