我试着用raspberry pi对文本系统做一个演讲。VAD存在很多问题。我在使用DeepCpeech的VAD脚本。Adafruit I2S微机电系统麦克风只接受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秒设置一个定时器时,它会显示录音已经成功完成。我认为问题是,能量(电压)增加了一些噪音,这就是为什么麦克风不能检测到沉默和结束帧生成。如何解决这个问题?
发布于 2022-01-26 13:36:12
我搜索了DeepCpeech的VAD脚本并找到了它。这个问题与这个问题有关。webrtcvad只接受16位单声道音频,采样频率为8000、16000、32000或48000赫兹.因此,您需要将32位帧转换为16位(我是关于PyAudio输出帧)来处理webrtcvad.is_speech()。我变了,一切都很好。
https://stackoverflow.com/questions/70838837
复制相似问题