我正在录制一个numpy数组 dt
然后用这样的代码把它写成.wav。
dt = np.int16(dt/np.max(np.abs(dt)) * 32767)
scipy.io.wavfile.write("tmp.wav", samplerate, dt)
然后我读取它并通过代码识别
import speech_recognition as sr
r = sr.Recognizer()
with sr.AudioFile("tmp.wav") as source:
audio_text = r.listen(source)
return r.recognize_google(audio_text, language = lang)
我可以不用wav从numpy数组中进行识别吗?因为这需要额外的时间
假设这是你正在使用的模块,并且根据 其文件,你可以将任何类似文件的对象传递给 AudioFile()
. 类文件对象是支持读写操作的对象。
你应该能够把wav文件的字节表示法贴到一个叫 io.BytesIO
对象,支持这些操作,并将其传递给你的语音识别模块。scipy.io.wavfile.write()
支持向这种类似文件的对象写入。
我没有软件包或任何WAV文件来测试它,但如果这样的东西能用,请告诉我。
wav_bytes = io.BytesIO()
scipy.io.wavfile.write(wav_bytes, samplerate, dt)
with sr.AudioFile(wav_bytes) as source:
...