我目前有一些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)
然而,我希望sounddevice
录制,直到音量降至音频阈值以下(即,当拿着麦克风的人停止说话时(,然后重新开始听,而不是固定的4秒块。
从本质上讲,我想模仿像sox
的rec recording.wav silence 1 0.1 3% 1 3.0 3%
这样的命令的行为,它正是这样做的。
有没有一种简单的方法可以用sounddevice
做到这一点?
这样做的库似乎被称为VAD(语音音频检测(。对于python来说,一个好的例子似乎是py-webrtcvad。