使用语音识别将音频 Blob 转换为 Python 中的文本
Converting Audio Blob to text in Python using Speech recognition
为英语道歉....
我正在构建一个聊天机器人应用程序,其中通过 HTML5 的 mediaRecorder api 在客户端记录语音并作为 Formdata 发送到 python 的 falcon 网络服务。
在 Python 方面,我需要直接将此音频 blob 转换为文本。
目前我正在将这个音频 blob 写入一个 wav 文件,然后从该文件中读取。但是,由于涉及 FileIO,此过程需要很长时间。我需要以某种方式直接使用此音频 blob 作为语音识别的输入源。
这是我试过的:
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 开发人员,所以如果这是一个愚蠢的问题,请原谅。非常感谢任何帮助..
我无法测试它,但它可以工作。
好像AudioFile
可以用file-object所以这段代码用io.BytesIO
在内存中创建file-object,把数据保存在这个文件中。这样它就不必使用磁盘。
import io
def on_post(self, req, resp):
f = req.get_param('audio_data').file
file_obj = io.BytesIO() # create file-object
file_obj.write(f.read()) # write in file-object
file_obj.seek(0) # move to beginning so it will read from beginning
mic = sr.AudioFile(file_obj) # use file-object
with mic as source:
audio = r.record(source)
result = r.recognize_google(audio_data=audio, language="en-US", show_all=True)
return result
为英语道歉....
我正在构建一个聊天机器人应用程序,其中通过 HTML5 的 mediaRecorder api 在客户端记录语音并作为 Formdata 发送到 python 的 falcon 网络服务。
在 Python 方面,我需要直接将此音频 blob 转换为文本。
目前我正在将这个音频 blob 写入一个 wav 文件,然后从该文件中读取。但是,由于涉及 FileIO,此过程需要很长时间。我需要以某种方式直接使用此音频 blob 作为语音识别的输入源。
这是我试过的:
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 开发人员,所以如果这是一个愚蠢的问题,请原谅。非常感谢任何帮助..
我无法测试它,但它可以工作。
好像AudioFile
可以用file-object所以这段代码用io.BytesIO
在内存中创建file-object,把数据保存在这个文件中。这样它就不必使用磁盘。
import io
def on_post(self, req, resp):
f = req.get_param('audio_data').file
file_obj = io.BytesIO() # create file-object
file_obj.write(f.read()) # write in file-object
file_obj.seek(0) # move to beginning so it will read from beginning
mic = sr.AudioFile(file_obj) # use file-object
with mic as source:
audio = r.record(source)
result = r.recognize_google(audio_data=audio, language="en-US", show_all=True)
return result