【发布时间】:2022-01-26 21:36:12
【问题描述】:
我正在尝试使用树莓派对文本系统进行演讲。 VAD有很多问题。我正在使用 DeepCpeech 的 VAD 脚本。 Adafruit I2S MEMS 麦克风仅接受 32 位 PCM 音频。所以我修改了脚本以录制 32 位音频,然后将其转换为 16 位以供 DeepSpeech 处理。帧生成和对话部分如下:
for frame in frames:
if frame is not None:
if spinner: spinner.start()
#Get frame generated by PyAudio and Webrtcvad
dp_frame = np.frombuffer(frame, np.int32)
#Covert to 16-bit PCM
dp_frame=(dp_frame>>16).astype(np.int16)
#Convert speech to text
stream_context.feedAudioContent(dp_frame)
PyAudio 配置是:
'format': paInt32,
'channels': 1,
'rate': 16000,
当 VAD 启动时,即使周围没有声音,它也会始终生成非空帧。但是当我每 5 秒设置一个计时器时,它表明录制已成功完成。我认为问题在于能量(电压)会增加一些噪音,这就是麦克风无法检测到静音和结束帧生成的原因。如何解决这个问题?
【问题讨论】:
标签: python raspberry-pi speech-recognition microphone pyaudio