我已经使用Google语音到文本api进行了文本语音程序的工作,该语音api记录了语音并将其复制到.txt中,但是Google语音api不会听很长时间(大约9秒),来增加它,还是在监听时可以编写的用于python的更好的api?
import time
import speech_recognition as sr
import sys
import fileinput
r=sr.Recognizer()
#tells the program to use a mic and to listen
with sr.Microphone() as source:
audio=r.listen(source)
#asking the program to try to listen
try:
spoken = r.recognize_google(audio)
print("I heard:"+spoken)
except Exception:
print ("Somthing went wrong")
#writing what was recorded by the mic into a .txt
with open("name-of-file.txt", "a") as f:
f.write("\n")
f.write(time.strftime("%H:%M:%S") + " " + time.strftime("%d/%m/%Y"))
f.write("\n")
f.write(spoken)
预期结果: 程序同时监听和写入 要么 该程序可以监听直到关闭。 实际结果: 该程序监听大约9秒钟,然后打印到.txt
答案 0 :(得分:0)
语音识别是一个非常不错的库,但是我也不得不与录音长度作斗争。解决问题的方法如下:
with sr.AudioFile('path/to/audiofile.wav') as source:
audio = r.record(source)
优点:与流式传输相比,录制到音频文件然后再向Google发送更长的块给了我更长的录音长度。
缺点:根据音频文件的大小,这可能会带来将响应时间延长到几秒钟的缺点,这在您的情况下可能无法使用。
您可能已经很清楚,更好的信噪比将带来更好的STT准确性-但是我也发现,对于语音识别库而言,对于具有良好的块大小而言,这至关重要。
仔细检查本底噪声与来源之间是否有明显区别。录制音频还可以帮助您解决此问题。有时,音频可以使用语音识别库过早切断,因为它无法清楚地检测到您正在讲话。
如果无法提高麦克风的质量或接近度,则该库中包含一个工具,该工具可以校准音频电平以实现最佳的信噪比。
要激活此功能,请代替以下行:
audio=r.listen(source)
尝试使用:
audio=r.adjust_for_ambient_noise(source)
请注意,此功能在某些情况下会增加少量延迟。在其他情况下,如果您输入嘈杂的音频,它将继续无限期收听。
with sr.AudioFile('path/to/audiofile.wav') as source:
audio = r.adjust_for_ambient_noise(source)
这是该库的绝佳指南-The Ultimate Guide To Speech Recognition With Python