파이썬 실습/음성인식 프로그램 만들기

파이썬 실시간 번역기(한국어->영어로 말해주는) 만들기

파기차차 2022. 11. 14. 06:50
728x90
반응형
SMALL
728x90
ㅁ 개요

 

O 프로그램 소개
 

 - 이번 프로그램은 구글에서 제공한 음성인식 API를 이용하여 실시간 자동 번역기를 만들어 보겠습니다.

예를 들어 한국어로 "안녕하세요"라고 얘기하면 프로그램이 이를 알아 듣고 번역하여 "hello"라고 영어로 번역하여 말을 합니다.

 

(본 블로그의 내용은 유튜브 동영상(

파이썬 실시간 번역기(한국어를 영어로) 만들기-1(making Real-time_Speech_Recognition_Translator_byPython_1)

파이썬 실시간 번역기(한국어를 영어로) 만들기-2(making Real-time_Speech_Recognition_Translator_byPython_2)

파이썬 실시간 번역기(한국어를 영어로) 만들기-3(making Real-time_Speech_Recognition_Translator_byPython_3)

)에서 더욱 자세히 보실 수 있습니다.)

 

 

O 완성된 프로그램 실행 화면
 

 

 - 최종 완성된 프로그램의 결과화면은 아래와 같습니다.

(1) 아래에서와 같이 프로그램을 실행시킨 후 간단하게 1)마이크에 대고 "진짜" 라고 말하면 2)영어로 "Real" 이라고 말해 줍니다.

 

 

 

 


 

O 시작전 준비 사항

 

 

 - 프로그램을 실행하기 위해서는 아래 관련된 모듈을 미리 설치해야 합니다.

 

1) pip install SpeechRecognition : 구글의 음성인식 AI 모듈
2) pip install gtts : 구글텍스트를 음성으로 변환해주는 모듈
3) pip install playsound : 음악재생 모듈
4) pip install translate : 구글 번역 API 

 

 

 


 

ㅁ 세부 내용
 
O 완성된 소스

 

import speech_recognition as sr
from gtts import gTTS
import os
import playsound
from translate import Translator

def speak(text):
    tts = gTTS(text=text, lang='ko')
    filename='voice.mp3'
    tts.save(filename) # 파일을 만들고,
    playsound.playsound(filename) # 해당 음성파일을 실행(즉, 음성을 말함)
    os.remove(filename)

def speak2(text):
    tts = gTTS(text=text, lang='en')
    filename='voice.mp3'
    tts.save(filename) # 파일을 만들고,
    playsound.playsound(filename) # 해당 음성파일을 실행(즉, 음성을 말함)
    os.remove(filename)


def get_audio():
    r = sr.Recognizer()
    with sr.Microphone() as source:
        print("say something")
        audio = r.listen(source)
        said = " "

        try:
            said = r.recognize_google(audio, language="ko-KR")
            print("Your speech thinks like: ", said)
        except Exception as e:
            print("Exception: " + str(e))
    
    return said




speak("안녕하세요. 2초 후에 한국어로 말을 하시면 영어로 번역하여 말을합니다.") 

# 1.음성입력
text=get_audio()



# 2.번역 부분(한글->영어로)
translator = Translator(from_lang="ko", to_lang="en")
translation = translator.translate(text)
print(translation)


# 3.음성 출력
speak2(translation)

 

O 소스 다운로드 및 실행
 
 
 - 소스파일 다운로드 후 cmd 또는 파워쉘 등에서 아래와 같이 실행하시기 바랍니다.
 > python 5.googleTranslator_pub.py

 

 


 
 
O 소스 분석

 

- def speak(text): 함수 부분

1.tts = gTTS(text=text, lang='ko') <-- 텍스트를 음성(한국어)로 변환
2.tts.save(filename) <-- 파일을 만들고,
3.playsound.playsound(filename) <-- 해당 음성파일을 실행(즉, 음성을 말함)
4.os.remove(filename) <-- 생성된 파일 삭제(이부분이 빠지면 퍼미션 오류 발생함)

 

- def get_audio(): 함수 부분
5.tts = gTTS(text=text, lang='en') <-- 나중에 번역 후 말을 할때는 영어로 해야 하므로 lang='en'으로 설정
6.r = sr.Recognizer() <--음성인식 객체(r) 생성
7.with sr.Microphone() as source: <-- 음성 입력 시 마이크를 사용해야 하므로 음성입력을 위해 sr.Micorphone() 구문 사용
8.print("say something") <-- 이 문장 이후 말을 하도록 이해하기 쉽게 써준 것임
9.audio = r.listen(source) <-- 말한 내용(source)을 듣고(r.listen()),  audio변수에 저장

10.said = r.recognize_google(audio, language="ko-KR") <-- 한국말로 음성을 입력(language="ko-KR"(대소문자 주의)) 하면 구글이 입력된 한국말(audio)을 한국어 텍스트로 번역
11.except Exception as e: <-- 에러 발생에 대비한 예외처리 부분

 

- 본문 내용

# 음성입력

12.text=get_audio() <-- 입력된 한국말이 한국어 텍스트로 변환

# 번역 부분(한글->영어로)
13.translator = Translator(from_lang="ko", to_lang="en") <-- 한국어 텍스트를 영문 텍스트로 변환하기 위한 부분
14.translation = translator.translate(text) <-- 번역기에 한국어 텍스트(text)를 넣으면 영문텍스트(translation)로 변환됨
# 음성 출력
15.speak2(translation) <-- 영문텍스트를 음성으로 변환

 


 

O 주요 내용

 

 

1.단순히 프로그램을 실행 시키고, 'say something' 문구가 나오면, 그때 말을 하면 영어로 번역하여 말을 해 줍니다.


 

 

 

 

 

 

 

 


 

ㅁ 정리
 
O 우리가 배운 내용
 
 - 오늘은 구글의 음성인식 API를 이용하여 파이썬으로 한국어를 영어로 실시간 번역해주는 간단한 프로그램을 만들어 보았습니다.
 
 - 오늘 우리가 배운 내용을 간단히 정리해 보면 다음과 같은 단계를 거칩니다.
 > 1. 음성입력 부분 : 한국어 음성을 -> 한글 텍스트로 변환
 > 2. 번역 부분 : 한국어 텍스트 -> 영문 텍스트로 번역
 > 3. 음성 출력 부분 : 영문 텍스트 -> 영어 음성으로 변환
 

추가적으로 영어->한국어로 번역해 주는 프로그램이나, 1개 언어가 아닌 여러개의 다양한 언어를 멀티플하게 적용해 보는 것도 생각해 볼 수 있을 것 같습니다.

 

추후 시간이 된다면 이 부분도 함께 올려보도록 하겠습니다.
 

 

 

위의 내용이 유익하셨다면, 좋아요와 구독 부탁드립니다.

 

 

감사합니다.

728x90
반응형
LIST