Python 中的语音识别库总是 returns 相同的字符串

Speech Recognition Library in Python always returns same string

我正在尝试使用 Google 语音识别,我的问题是对着麦克风说了些什么,结果总是一样。

我的函数看起来像这样

def RecordAudio():
    import speech_recognition as sr

    r = sr.Recognizer()
    with sr.Microphone() as source:
        print("Say something!")
        audio = r.listen(source)

    # Speech recognition using Google Speech Recognition
    try:
        print("You said: " + r.recognize_google(audio))
    except sr.UnknownValueError:
        print("Google Speech Recognition could not understand audio")
    except sr.RequestError as e:
        print("Could not request results from Google Speech Recognition service; {0}".format(e))

    return audio

当我尝试获取数据时

data = RecordAudio()

数据总是等于这个 speech_recognition.AudioData 对象位于 0x111a8b358

但令我感到奇怪的是,当这段代码在一个文件中时,没有函数,也没有返回结果,那时候这是有效的。

例如我test.py文件

import speech_recognition as sr

r = sr.Recognizer()
with sr.Microphone() as source:
    print("Say something!")
    audio = r.listen(source)

# Speech recognition using Google Speech Recognition
try:
    print("You said: " + r.recognize_google(audio))
except sr.UnknownValueError:
    print("Google Speech Recognition could not understand audio")
except sr.RequestError as e:
    print("Could not request results from Google Speech Recognition service; {0}".format(e))

这是可行的,但第一个例子不行。

知道发生了什么吗?

我解决了。

我认为我的问题是这个函数

audio = r.listen(source)

returns AudioData 以及当我打印它时 这就是为什么它是 speech_recognition.AudioData 对象在 0x111a8b358

要识别它,我们必须 return

return r.recognize_google(audio)

它会 return 真正的字符串而不是 AudioData。

如果有人遇到同样的问题,希望对您有所帮助。