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
728x90
반응형
SMALL

tkinter 를 이용하여 메뉴 만들기 코드 입니다.

아래 이미지파일을 다운로드받고 소스코드와 같은 폴더에서 복사하여 주세요

arrow.png
0.32MB

from tkinter import *

class Menu:
    def __init__(self):
        window = Tk()
        window.title("키보드 이벤트")
        window.geometry("640x480")
        self.menu_idx = 0
        self.canvas=Canvas(window, bg ="white")
        self.canvas.pack(expand=True, fill=BOTH)
        window.bind("<KeyPress>",self.keyPressHandler)
        window.bind("<KeyRelease>",self.keyReleaseHandler)
        self.canvas.create_text(320,360,font="Times 15 italic bold",text="Menu Example")
                
        self.canvas.create_text(320,160,font="Times 15 italic bold",text="Menu 1")
        self.canvas.create_text(320,200,font="Times 15 italic bold",text="Menu 2")
        self.canvas.create_text(320,240,font="Times 15 italic bold",text="Menu 3")

        self.menustr = "Menu selection: "
        self.menu_id = self.canvas.create_text(320,320,font="Times 15 italic bold",text=self.menustr)    


        self.arrowimg = PhotoImage(file="arrow.png").subsample(20)
        self.arrow = self.canvas.create_image(250,160, image = self.arrowimg,tags="arrow")
        while True:
            #
            #
            window.after(33)
            window.update()

    def keyReleaseHandler(self, event):
        if event.keycode == 38 and self.menu_idx > 0: # up direction key
            self.menu_idx = self.menu_idx - 1
            self.canvas.move(self.arrow, 0, -40)
        if event.keycode == 40 and self.menu_idx < 2: # down direction key
            self.menu_idx = self.menu_idx + 1
            self.canvas.move(self.arrow, 0, 40)
        if event.keycode == 32:
            self.menustr = "Menu selection: " + str(self.menu_idx)
            self.canvas.itemconfigure(self.menu_id, text=self.menustr)#object 속성 수정

    def keyPressHandler(self,event):
        print(event.keycode)


Menu()

게임 사운드 코드

 

게임 사운드

from tkinter import * import pygame class GameSound: def __init__(self): window = Tk() # 윈도우 생성 window.title("게임사운드") # 제목을 설정 window.geometry("640x480") # 윈도우 크기 설정 window.resizable(0,0) self.canvas = Canvas(win

ckang.tistory.com

네트워크 채팅 코드

 

파이썬 네트워크 통신 채팅 프로그램 서버 클라이언트 예제

# 서버코드import socketimport argparseimport threadingimport timeuser_list = {}def handle_receive(client_socket, addr, user): while 1: data = client_socket.recv(1024) data = data.decode() if data == "/종료" or data == "/exit" : break print(user,data)

ckang.tistory.com

슈팅 게임 서버 클라인 언트 코드

 

파이썬 네트워크 게임 서버 클라이언트 (socket, ast, json, threading)

클라이언트 코드 입니다. from tkinter import * # tkinter에서 모든 정의를 임포트한다.import timeimport pygameimport randomimport timeimport socketimport astimport jsonimport threadingclass GameClient: def __init__(self,user,host,port):

ckang.tistory.com

 

728x90
반응형
LIST

+ Recent posts