为什么我的Python语音识别代码在背景音频监听期间没有调用回调函数?

jvidinwx  于 2023-05-21  发布在  Python
关注(0)|答案(1)|浏览(141)

我试图听我的脚本正在运行的背景音频我有这部分代码是用于收听

def callback(recognizer, audio):
    print('go')
    # received audio data, now we'll recognize it using Google Speech Recognition
    try:
        print("fun trig")

        # for testing purposes, we're just using the default API key
        # to use another API key, use `r.recognize_google(audio, key="GOOGLE_SPEECH_RECOGNITION_API_KEY")`
        # instead of `r.recognize_google(audio)`
        print("Google Speech Recognition thinks you said " + recognizer.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))

r = sr.Recognizer()
m = sr.Microphone()
# print(sr.Microphone.list_microphone_names())
with m as source:
    r.adjust_for_ambient_noise(source)  # we only need to calibrate once, before we start listening

# start listening in the background (note that we don't have to do this inside a `with` statement)
stop_listening = r.listen_in_background(m, callback)
# `stop_listening` is now a function that, when called, stops background listening

# do some unrelated computations for 5 seconds
for _ in range(50): time.sleep(0.1)   # we're still listening even though the main thread is doing other things

# calling this function requests that the background listener stop listening
stop_listening(wait_for_stop=False)

# do some more unrelated things
while True: 
    print('gone') 
    time.sleep(0.1)

过了一会儿,我得到了“走”打印既没有去打印也没有“有趣的三角”,这意味着回调函数没有被调用

niknxzdl

niknxzdl1#

试试这个。告诉我它是否有效?

import speech_recognition as sr

def callback(recognizer, audio):

    try:     
        print("Google Speech Recognition thinks you said " + recognizer.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))

r = sr.Recognizer()
m = sr.Microphone()  

with m as source:
        r.adjust_for_ambient_noise(source)
stop_listening = r.listen_in_background(m, callback)

while True:
    input('unrelated input ...')

相关问题