728x90
반응형
SMALL
import speech_recognition as sr
import pyttsx3
import openai
openai.api_key = "openai key"
# Initialize the recognizer
r = sr.Recognizer()
# Initialize the voice engine
voice_engine = pyttsx3.init()
#스피치 목소리 타입 0: K, 1: female, 2: male
voices = voice_engine.getProperty('voices')
voice_engine.setProperty('voice', voices[0].id)
voice_engine.setProperty('rate', 170)
# Function to convert text to speech
def SpeakText(user_text,command):
#음성 파일 저장
voice_engine.save_to_file(command, '/answer.mp3')
#TTS 실행
voice_engine.say(command)
voice_engine.runAndWait()
def main():
# 무한
with sr.Microphone() as source:
r.adjust_for_ambient_noise(source, duration=0.2)
while True:
try:
print('listen...')
#listens for the user's input
user_audio = r.listen(source)
# Using google to recognize audio
user_text = r.recognize_google(user_audio)
user_text = user_text.lower()
print("Did you say: ",user_text)
completion = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[
{"role": "user", "content": user_text}
]
)
#chatgpt 결과 출력
print(completion.choices[0].message.content)
SpeakText(user_text,completion.choices[0].message.content)
except sr.RequestError as e:
print("Could not request results; {0}".format(e))
except sr.UnknownValueError:
print("unknown error occurred")
if __name__ == "__main__":
main()
728x90
반응형
LIST
'IT > 파이썬(Python)' 카테고리의 다른 글
파이썬 스레드 (쓰레드, thread, threading) 병렬처리, 멀티스레드 예제 코드 (0) | 2024.05.22 |
---|---|
파이썬 tkinter 마우스 이벤트 코드 예제, 이벤트 종류, bind 함수 설명, (0) | 2024.05.20 |
파이썬 네트워크 게임 서버 클라이언트 (socket, ast, json, threading) (0) | 2023.08.25 |
파이썬 네트워크 통신 채팅 프로그램 서버 클라이언트 예제 (0) | 2023.08.25 |
파이썬 tkinter 게임 GUI 화면 장면 전환 스테이지 만들기 pack, unpack, pack_forget, protocol, destroy 함수 (0) | 2022.04.04 |