【发布时间】:2019-07-13 13:16:24
【问题描述】:
为英语道歉....
我正在构建一个聊天机器人应用程序,其中语音通过 HTML5 的 mediaRecorder api 在客户端录制,并作为 Formdata 发送到 python 的 falcon Web 服务。
在 Python 方面,我需要直接将此音频 blob 转换为文本。
目前我正在将此音频 blob 写入 wav 文件,然后从该文件中读取。但是,由于涉及 FileIO,此过程需要很长时间。我需要以某种方式直接使用这个音频块作为语音识别的输入源。
这是我尝试过的:
def on_post(self, req, resp):
open("backend.wav",'wb')
.write(req.get_param('audio_data').file.read());
mic = sr.AudioFile('backend.wav')
with mic as source:
print("Speak !!")
audio = r.record(source)
#audio = req
results = r.recognize_google(audio_data=audio, language="en-US",show_all=True)
return results;
我不是一个有经验的 Python 开发者,所以如果这是一个愚蠢的问题,请原谅。任何帮助都非常感谢..
【问题讨论】:
-
如果我没记错的话
speek_recognition仅适用于文件名,它没有直接从内存中获取的选项。它甚至不能使用类文件对象,所以它不能使用io.BytesIO在内存中创建类文件对象。但也许我错了,它是不同的模块。 -
亲爱的 Furas,似乎有一个 sr.AudioData() 函数将输入作为:“frame_data”、“sample_rate”和“sample_width”。但是,当我尝试这样做时,我得到了“mic as source: AttributeError: enter”
-
你可以用完整的错误信息(Traceback)提出这个问题
标签: python html speech-recognition