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

时间:2017-08-14 13:27:08

标签: python speech-recognition google-speech-api

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

我的功能看起来像这样

end()

当我试图获取数据时

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

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

但令我感到奇怪的是,当这段代码在一个文件中,没有函数而没有返回结果时,这段时间就可以了。

例如我有test.py文件

data = RecordAudio()

这是有效的,但第一个例子没有。

知道发生了什么事吗?

1 个答案:

答案 0 :(得分:0)

我解决了它。

我认为我的问题是,这个功能

audio = r.listen(source)

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

要识别它,我们必须返回

return r.recognize_google(audio)

它将返回真实的字符串,而不是AudioData。

如果有人会有同样的问题,希望有所帮助。