ChatGPT음성인식에 해당하는 글 1

ChatGPT와 음성인식 연결 python

Study/Coding_Python|2023. 3. 16. 14:27
728x90
반응형

 

ChatGPT의 4.0 버전이 출시되고 다시한번 놀라게 된다. 

 

오늘은 ChatGPT와 음성인식을 연결해보았는데 소스 몇십줄로 간단한 구현이 되는 걸 보고 정말 깜짝 놀랐다. 

 

 

Interface까지 만들어달라했는데 기본적인 인터페이스는 만들어 주나보다.. 

 

정말 지난 뉴스에서 기자님이 게임을 만들었다고 들었는데 그게 사실일 수도 있겠다.... 

 

 

소스를 공유해본다. 

import tkinter as tk
import speech_recognition as sr
import openai
from gtts import gTTS
import os
from playsound import playsound

openai.api_key = "자신의 ChatGPT api Key를 입력해야 해요. "

def send_message():
    user_message = user_input.get()
    response = openai.Completion.create(
        engine="text-davinci-002",
        prompt=user_message,
        temperature=0.5,
        max_tokens=60
    )
    bot_message = response.choices[0].text
    bot_response.config(text=bot_message)
    tts = gTTS(text=bot_message, lang='ko')
    tts.save("output.mp3")
    playsound("output.mp3")
    os.remove("output.mp3")

def voice_input():
    r = sr.Recognizer()

    with sr.Microphone() as source:
        user_voice_input.config(text="Listening...")
        audio = r.listen(source)

    try:
        text = r.recognize_google(audio, language='ko-KR')
        user_input.delete(0, tk.END)
        user_input.insert(0, text)
        send_message()
        user_voice_input.config(text="")
    except sr.UnknownValueError:
        user_voice_input.config(text="Google Speech Recognition could not understand audio")
    except sr.RequestError as e:
        user_voice_input.config(text="Could not request results from Google Speech Recognition service; {0}".format(e))

root = tk.Tk()
root.geometry("400x400")
root.title("ChatGPT Voice Chatbot")

# User input
user_input = tk.Entry(root, width=50)
user_input.pack(pady=20)

# Send button
send_button = tk.Button(root, text="Send", command=send_message)
send_button.pack()

# Bot response
bot_response = tk.Label(root, text="")
bot_response.pack(pady=20)

# Voice input button
voice_input_button = tk.Button(root, text="Voice Input", command=voice_input)
voice_input_button.pack()

# Voice input status
user_voice_input = tk.Label(root, text="")
user_voice_input.pack(pady=20)

root.mainloop()

 

 

이걸 업그레이드 하면 대화할 수 있는 심심이 같은 프로그램을 만들 수 있지 않을까 싶은데?

 

위에 소스 만드는데 10초 걸린거 같아요.. ㅠㅠ

728x90
반응형

댓글()