Voice input, AI answers in voice

 avatar
unknown
plain_text
a year ago
1.7 kB
16
Indexable
import speech_recognition as sr
import openai
import pyttsx3
import pyaudio

# Initialize the speech recognition
recognizer = sr.Recognizer()

# Initialize the text-to-speech engine
engine = pyttsx3.init()

# OpenAI API key (make sure to replace 'your-api-key' with your actual OpenAI API key)
openai.api_key = "sk-proj-UqE7VqIAdhwtxC9R4Sc9T3BlbkFJHeaKoV88KA3J4YAkv0ZH"

def get_speech_input():
    with sr.Microphone() as source:
        print("Speak now...")
        recognizer.adjust_for_ambient_noise(source)
        audio = recognizer.listen(source)

    try:
        text = recognizer.recognize_google(audio)
        print(f"You said: {text}")
        return text
    except sr.UnknownValueError:
        print("Sorry, I did not understand that.")
        return None
    except sr.RequestError:
        print("Could not request results; check your network connection.")
        return None

def get_chatgpt_response(prompt):
    response = openai.ChatCompletion.create(
        model="gpt-4",
        messages=[
            {"role": "system", "content": "You are a helpful assistant."},
            {"role": "user", "content": prompt}
        ],
        max_tokens=150
    )
    response_text = response.choices[0].message['content'].strip()
    print(f"ChatGPT says: {response_text}")
    return response_text

def speak_text(text):
    engine.say(text)
    engine.runAndWait()

def rap_battle():
    while True:
        # Get user input via speech
        user_input = get_speech_input()
        if user_input:
            # Get response from ChatGPT
            chatgpt_response = get_chatgpt_response(user_input)

            # Speak the response
            speak_text(chatgpt_response)

if __name__ == "__main__":
    rap_battle()
Editor is loading...
Leave a Comment