728x90
반응형
SMALL

아래의 음성 인식과 오디오 패키지를 설치한다.

 

pip install SpeechRecognition

pip install pyaudio

 

설치된 패키지를 활용한 파이썬 코드는 아래와 같다

import speech_recognition as sr

r = sr.Recognizer()
	
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
            #text = r.recognize_google(user_audio) # 영어
            text = r.recognize_google(user_audio, language='ko-KR') # 한글

            print("Did you say: ",text)

        except sr.RequestError as e:
            print("Could not request results; {0}".format(e))

        except sr.UnknownValueError:
            print("unknown error occurred")

 

음성인식 패키지는 모두 아래와 같이 13개의 음성인식 엔진 또는 API을 지원하고 4개가 오프라인으로 동작이 가능하다.

 

Speech recognition engine/API support:

 

추가로 오프라인 음성인식중 CMU Sphinx 를 사용해보자

pip install PocketSphinx

를 추가로 설치해야됨

 

그리고 위 코드에서 인식 부분을 r.recognize_sphinx(audio) 로 수정하면 완료된다.

(참고로 한국어 인식은 지원X)

 

 

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

+ Recent posts