我有以下代码:
import openaiimport pyttsx3import speech_recognition as srfrom api_key import API_KEYopenai.api_key = API_KEYengine = pyttsx3.init()r = sr.Recognizer()mic = sr.Microphone(device_index=1)print(sr.Microphone.list_microphone_names())conversation = ""user_name = "Josode"while True: with mic as source: print("\nlistening... speak clearly into mic.") r.adjust_for_ambient_noise(source, duration=0.2) audio = r.listen(source) print("no longer listening.\n") try: user_input = r.recognize_google(audio) except: continue prompt = user_name + ": " + user_input + "\n Ava:" conversation += prompt response = openai.Completion.create(engine="text-davinci-002", prompt=conversation, max_tokens=100) response_str = response["choices"][0]["text"].replace("\n", "") response_str = response_str.split(user_name + ": ", 1)[0].split("Ava: ", 1)[0] conversation += response_str + "\n" print(response_str) engine.say(response_str) engine.runAndWait()
当我运行文件时,我只得到listening… speak clearly into mic.no longer listening.,没有来自davinci的输出。
此外,麦克风打印显示为 [‘LG FULL HD’, ‘Ari Chan’s AirPods’, ‘Ari Chan’s AirPods’, ‘MacBook Pro Microphone’, ‘MacBook Pro Speakers’]。我使用的是索引1
API密钥是正确的且已导入。我在Open AI有账户,并且可以在playground中无问题地使用它。
你有没有看到我没看到的地方?它应该能工作的
回答:
最有可能的是你在r.recognize_google(audio)
中遇到了异常,所以它不断地强制continue
而没有任何输出,试着添加以下内容进行调试:
import traceback ... try: user_input = r.recognize_google(audio) except: print(traceback.format_exc()) continue