Hallo,
ich wollte mir mal einen voice assistent coden, welcher chat gpt als Informationsquelle benutzt. Wenn ich aber dem voice assistent einen Befehl gebe kommt diese Fehlermeldung:
You tried to access openai.Completion, but this is no longer supported in openai>=1.0.0 - see the README at https://github.com/openai/openai-python for the API.
You can run `openai migrate` to automatically upgrade your codebase to use the 1.0.0 interface.
Alternatively, you can pin your installation to the old version, e.g. `pip install openai==0.28`
A detailed migration guide is available here: https://github.com/openai/openai-python/discussions/742
Ich habe mir die Links auch durchgelesen, werde aber davon nicht schlauer. Wäre nett wenn jeman helfen könnte :D
Code:
import speech_recognition as sr
import pyttsx3
import openai
# OpenAI API-Zugangsdaten
openai.api_key = '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'
# Initialisierung der Spracherkennung
recognizer = sr.Recognizer()
microphone = sr.Microphone()
# Initialisierung der Text-to-Speech Engine
engine = pyttsx3.init()
# Funktion zum Abhören und Verarbeiten von Befehlen
def listen_for_wake_word():
with microphone as source:
print("Warten auf das Wakeword...")
recognizer.adjust_for_ambient_noise(source)
audio = recognizer.listen(source)
try:
print("Sprache wird erkannt...")
command = recognizer.recognize_google(audio, language='de-DE')
if 'Jarvis' in command:
return True
else:
return False
except sr.UnknownValueError:
return False
# Funktion zum Verarbeiten von Befehlen
def process_question(question):
try:
response = openai.Completion.create(
engine="davinci",
prompt=question,
temperature=0.7,
max_tokens=50
)
return response.choices[0].text.strip()
except Exception as e:
return str(e)
# Funktion zum Beenden des Programms
def terminate_assistant():
engine.say("Auf Wiedersehen!")
engine.runAndWait()
exit()
# Funktion zum Abhören und Verarbeiten von Benutzerantworten
def listen_for_command():
with microphone as source:
recognizer.adjust_for_ambient_noise(source)
audio = recognizer.listen(source)
try:
print("Sprache wird erkannt...")
response = recognizer.recognize_google(audio, language='de-DE')
return response
except sr.UnknownValueError:
return None
except sr.RequestError:
return None
# Hauptprogramm
if __name__ == "__main__":
while True:
if listen_for_wake_word():
engine.say("wie kann ich dir helfen?")
engine.runAndWait()
with microphone as source:
print("Bitte stelle deine Frage")
recognizer.adjust_for_ambient_noise(source)
audio = recognizer.listen(source)
try:
print("Frage wird erkannt")
question = recognizer.recognize_google(audio, language='de-DE')
response = process_question(question)
print("Antwort:", response)
engine.say(response)
engine.runAndWait()
except sr.UnknownValueError:
engine.say("Ich habe dich nicht verstanden.")
engine.runAndWait()
except sr.RequestError:
engine.say("Es gab ein Problem mit der Spracherkennung.")
engine.runAndWait()
except Exception as e:
engine.say(str(e))
engine.runAndWait()
else:
continue
# Überprüfe auf Beendigungsbefehl
engine.say("Möchtest du fortfahren oder das Programm beenden?")
engine.runAndWait()
response = listen_for_command()
if response and 'beenden' in response.lower():
terminate_assistant()
elif response and 'fortfahren' in response.lower():
continue
else:
engine.say("Ich habe dich nicht verstanden. Möchtest du fortfahren oder das Programm beenden?")
engine.runAndWait()