我正在使用语音识别Python库以16 the的单数从我的麦克风记录音频字节,但我想使用接受NumPy数组、光谱图和文件路径的新的Whisper库。写入文件花费的时间太长,所以我想直接将数据转换为数组,将其传递给Whisper。
发布于 2022-10-25 13:09:10
尝试librosa库
librosa.load(path, *, sr=22050, mono=True, offset=0.0, duration=None, dtype=<class 'numpy.float32'>, res_type='soxr_hq')发布于 2022-10-28 16:24:31
以下是解决您的问题的方法:
假设您的代码执行如下
with sr.Microphone(device_index=device_index, sample_rate=16000) as source:
r = sr.Recognizer()
audio = r.listen(source, timeout=None)您需要将音频数据(Recognizer.listen的输出)转换为波形格式的1
audio_data = audio.get_wav_data()可以转换为int16 2的数组。
data_s16 = np.frombuffer(audio_data, dtype=np.int16, count=len(audio_data)//2, offset=0),然后可以将其转换为float32 3.数组。
float_data = data_s16.astype(np.float32, order='C') / 32768.0然后再用耳语来处理。如果有更快的方法(可能是2和3.的组合),请告诉我。
问候
https://stackoverflow.com/questions/73981594
复制相似问题