Skip to content

Instantly share code, notes, and snippets.

@dmater01
Forked from Daniel-V-Richardson/assistant.py
Created February 10, 2023 21:19
Show Gist options
  • Select an option

  • Save dmater01/f9760a3d7a0bd8a7267232818c55c06c to your computer and use it in GitHub Desktop.

Select an option

Save dmater01/f9760a3d7a0bd8a7267232818c55c06c to your computer and use it in GitHub Desktop.

Revisions

  1. @Daniel-V-Richardson Daniel-V-Richardson created this gist Jan 24, 2023.
    54 changes: 54 additions & 0 deletions assistant.py
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,54 @@
    import speech_recognition as sr
    import pyttsx3
    import openai

    openai.api_key = "Your API Key"

    engine = pyttsx3.init()
    voices = engine.getProperty('voices')
    engine.setProperty('voices', voices[1].id)

    r = sr.Recognizer()
    mic = sr.Microphone(device_index=1)

    conversation = ""
    user_name = "Dan"
    bot_name = "John"

    while True:
    with mic as source:
    print("\n Listening...")
    r.adjust_for_ambient_noise(source, duration=0.2)
    audio = r.listen(source)
    print("no longer listening")

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

    prompt = user_name+":"+user_input + "\n"+bot_name+":"
    conversation += prompt

    response = openai.Completion.create(
    model="text-davinci-003",
    prompt=conversation,
    temperature=0.7,
    max_tokens=256,
    top_p=1,
    frequency_penalty=0,
    presence_penalty=0
    )

    response_str = response["choices"][0]["text"].replace("\n", "")
    response_str =response_str.split(
    user_name + ":" ,1)[0].split(bot_name+ ":",1)[0]

    conversation+= response_str +"\n"
    print(response_str)

    engine.say(response_str)
    engine.runAndWait()