我目前有一些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
的rec recording.wav silence 1 0.1 3% 1 3.0 3%
之类的命令的行为,该命令正是这样做的。有没有一种简单的方法可以使用
sounddevice
做到这一点? 最佳答案
似乎将执行此操作的库称为VAD(语音音频检测)。对于python来说,一个好人似乎是py-webrtcvad。
关于python - 一旦音量低于python-sounddevice的阈值,停止记录,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53534418/