如何给出听python语音识别库的持续时间?

The*_*oud 1 python speech-recognition google-speech-api

我正在研究 RPi 4 并让代码正常工作,但是我的语音识别对象从麦克风的收听时间非常长,几乎有 10 秒。这次我想减少。我查看了语音识别库文档,但它没有在任何地方提到该功能。

\n

Python 编辑器给我该函数的以下提示listen()

\n
\n

self:识别器,源,超时=无,phrase_time_limit =无\nsnowboy_configuration =无

\n
\n

所以我尝试调用该函数,如下所示:

\n
audio = r.listen(source,None,3)\n
Run Code Online (Sandbox Code Playgroud)\n

或者

\n
 audio = r.listen(source,3,3)\n
Run Code Online (Sandbox Code Playgroud)\n

希望它能听 3 秒钟,但事实并非如此。

\n

以下是我的代码:

\n
import speech_recognition as sr\n\nr = sr.Recognizer()\n\nspeech = sr.Microphone(2)\n\n#print(sr.Microphone.list_microphone_names())\n\nwhile 1:\n\n             with speech as source:\n                 print("say something!\xe2\x80\xa6")\n                 audio = r.adjust_for_ambient_noise(source)\n                 audio = r.listen(source,None,3)\n                 print("the audio has been recorded")\n             # Speech recognition using Google Speech Recognition\n             try:\n                 print("api is enabled")\n                 recog = r.recognize_google(audio, language = \'en-US\')\n                 # for testing purposes, we\'re just using the default API key\n                 # to use another API key, use r.recognize_google(audio)\n                 # instead of r.recognize_google(audio)\n\n                 print("You said: " + recog)\n             except sr.UnknownValueError:\n                 print("Google Speech Recognition could not understand audio")\n             except sr.RequestError as e:\n                 print("Could not request results from Google Speech Recognition service; {0}".format(e))\n
Run Code Online (Sandbox Code Playgroud)\n

如何减少聆听的时间?

\n

小智 6

尝试使用:

audio = r.listen(source, 10, 3)
Run Code Online (Sandbox Code Playgroud)

这样做的原因是因为r.listen()需要 4 个参数:

listen(
    source,
    timeout,
    phrase_time_limit,
    snowboy_configuration
)
Run Code Online (Sandbox Code Playgroud)
  1. source:

    AudioSource源音频(应在此处传递的实例)

  2. timeout:

    参数是在放弃并抛出异常timeout之前等待短语开始的最大秒数speech_recognition.WaitTimeoutError

  3. phrase_time_limit:

    在停止并返回达到时间限制之前处理的短语部分之前允许短语继续的最大秒数

通过使用:

audio = r.listen(source, 10, 3)
Run Code Online (Sandbox Code Playgroud)

您设置10timeout3本质上phrase_time_limit是告诉Python:

  1. 倾听用户 10 秒,如果没有说什么,则引发错误

  2. 3 秒后打断用户(如果他们仍在说话)