如何增加 google 演讲 api 的收听时间?
How to increase listen time in google speech api?
我已经使用 google 语音转文本 api 录制语音并将其复制到 .txt 中,但是 Google 语音 api 不会听很长时间(大约 9 秒)有什么方法可以增加这个,或者更好的 api 用于 python 可以边听边写?
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
语音识别是一个很好的库,但我也不得不与录音长度作斗争。以下是我解决该问题的方法:
将音频保存到磁盘
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
我已经使用 google 语音转文本 api 录制语音并将其复制到 .txt 中,但是 Google 语音 api 不会听很长时间(大约 9 秒)有什么方法可以增加这个,或者更好的 api 用于 python 可以边听边写?
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
语音识别是一个很好的库,但我也不得不与录音长度作斗争。以下是我解决该问题的方法:
将音频保存到磁盘
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