python - Open AI davinci 不产生任何输出(文本或音频)

标签 python pyaudio openai-api

我有以下代码:

import openai
import pyttsx3
import speech_recognition as sr
from api_key import API_KEY

openai.api_key = API_KEY

engine = 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()

当我运行该文件时,我听到...对着麦克风清晰地说话。 不再收听。 davinci 没有输出。

此外,麦克风印记是 ['LG FULL HD', 'Ari Chan's AirPods', 'Ari Chan's AirPods', 'MacBook Pro Microphone', 'MacBook Pro Speakers']。我正在使用索引 1

API key 正确且已导入。我在 Open AI 有一个帐户,可以毫无问题地使用 playground。

你看到我没看到的东西了吗?它应该工作

最佳答案

很可能你在 r.recognize_google(audio) 中遇到异常,因此它会一次又一次地强制 continue 而没有任何输出,请尝试添加类似这样的内容进行调试它:

    import traceback

    ... 

    try:
        user_input = r.recognize_google(audio)
    except:
        print(traceback.format_exc())
        continue

关于python - Open AI davinci 不产生任何输出(文本或音频),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74403541/

相关文章:

python - Openai API 继续对话

pypi - 无法从 PyPI 安装 tiktoken

python 3 - selenium - 打印从网页上抓取的文本元素

python - Python中实时网络音频流的原始numpy数组

python - 仅当模式不在转义字符串内时,re.match才返回匹配对象

python - 在 Mint 上为 Python3 安装 PyAudio 时遇到问题

python - 使用 PyAudio 进行流式传输时修改音量

chatbot - 使用 GPT-3 构建自定义聊天机器人

python - 将 np 数组从 float 转换为复数

python - 使用 pandas 根据条件替换值