我可以在python语音识别中用numpy数组进行识别吗?

问题描述 投票:0回答:1

我正在录制一个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数组中进行识别吗?因为这需要额外的时间

numpy speech-recognition audio-recording speech-to-text
1个回答
0
投票

假设这是你正在使用的模块,并且根据 其文件,你可以将任何类似文件的对象传递给 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:
    ...
© www.soinside.com 2019 - 2024. All rights reserved.