공작소굴

 이번 포스트에서는 구글 번역 라이브러리를 사용하여 자동 번역기를 만드는 과정을 살펴보겠습니다.

 이 내용은 '만들면서 배우는 파이썬과 40개의 작품들'의 09번째 프로젝트에 기반합니다.

 

라이브러리 설치

구글 번역기를 사용하기 위한 라이브러리를 설치합니다. 

pip install googletrans==4.0.0-rc1

 

[주의사항]

라이브러리는 4.0.0 버전입니다. 이전 버전을 사용할 경우 에러가 발생할 수 있습니다.

라이브러리 설치시 아래와 같은 엑세스 거부 오류가 발생할 경우,

라이브러리 설치시 발생한 엑세스 거부 에러

 

VS Code를 관리자 권한으로 다시 실행한 뒤 재시도 합니다.

VS Code를 관리자 권한으로 실행한 뒤 설치한 결과

 

여기서도 에러가 발생하였지만, 번역을 하는 데에는 문제가 없습니다. Successfully installed 문구로 라이브러리가 성공적으로 설치되었음을 확인할 수 있습니다.


한글을 영어로 번역하기

한글 문자열을 영어로 번역하는 프로그램을 만들어 보겠습니다.

# 1. 구글번역 라이브러리를 가져옵니다.
import googletrans

# 2. 번역기 객체를 생성합니다.
translator = googletrans.Translator()

# 3. 번역할 단어를 정합니다.
inStr = '안녕하세요'

# 4. 라이브러리를 사용하여 번역합니다.
outStr = translator.translate(inStr, dest = 'en', src = 'auto')

# 5. 결과를 출력합니다.
print(f"{inStr} => {outStr.text}")

 

번역하는 구문을 살펴보면,

▶ outStr = translator.translate(inStr, dest = 'en', src = 'auto')

1. 번역기 객체(translator)의 여러 함수 중 번역 함수(translate)를 사용합니다.
2. 첫 번째 인자번역할 문자열 입니다.
3. 두 번째 인자번역되어질 언어 입니다. 여기서는 영어(en)입니다.
4. 세 번째 인자번역할 문자의 언어 입니다. 여기서는 자동감지(auto)입니다.
    인자값이 없을 경우 'auto'가 default입니다.

inStr에 저장된 문자열의 언어를 감지해서 영어번역한 뒤, 결과값을 outStr에 넣어라. 

 

결과를 살펴보면, 아래와 같이 원문과 번역분이 출력됩니다.

 


영어를 한글로 번역하기

위의 예제를 해 보았으니, 영어를 한글로 번역하는 것은 쉽겠죠?

'Good morning'을 한글로 번역해 보겠습니다.

 

# 1. 구글번역 라이브러리를 가져옵니다.
import googletrans

# 2. 번역기 객체를 생성합니다.
translator = googletrans.Translator()

# 3. 번역할 단어를 정합니다.
inStr = 'Good morning'

# 4. 라이브러리를 사용하여 번역합니다.
outStr = translator.translate(inStr, dest = 'ko', src = 'en')

# 5. 결과를 출력합니다.
print(f"{inStr} => {outStr.text}")

 

어떤 부분이 바뀌었나요?

 번역할 단어(inStr)와 번역할 언어(src='en'), 번역되어질 언어(dest='ko') 가 바뀌었습니다.

 

아래와 같이 결과도 잘 나오는 것을 확인할 수 있습니다.

 


번역 가능한 언어 확인하기

이번에는 구글 번역 라이브러리에서 번역이 가능한 언어는 무엇인지 확인해 보겠습니다.

import googletrans

langs = googletrans.LANGUAGES
print(langs)

 

결과는 아래와 같이 약어와 함께 번역 가능한 언어를 표시하게 됩니다.

 

구글 번역기로 번역 가능한 언어들


자동 번역기 만들기

위의 내용들을 종합하여 자동 번역기를 만들어 보겠습니다.

 

1. 번역할 문자를 입력받고

2. 번역되어질 언어를 선택하면

3. 번역된 문자가 출력되도록 해 보겠습니다.

 

# 1. 구글번역 라이브러리를 가져옵니다.
import googletrans

# 2. 번역기 객체를 생성합니다.
translator = googletrans.Translator()

# 3. 번역할 단어를 입력받습니다.
inStr = input("\n번역할 문장을 입력해 주세요.\n")

# 4. 번역될 언어를 선택합니다.
destLang = input("\n번역되어질 언어를 입력해 주세요. 영어(en), 일본어(ja), 한국어(ko)\n")

# 5. 라이브러리를 사용하여 번역합니다.
outStr = translator.translate(inStr, dest = destLang)

# 6. 결과를 출력합니다.
print(f"\n{inStr} => {outStr.text}")

 

결과는 다음과 같습니다.

한국어 >> 일본어
영어 >> 한국어

존댓말 패치가 안되어서일까요? 살짝 어색한 감이 있습니다.

존댓말 패치가 된 구글트랜스와 약간 차이가 있네요.

 

 

마무리

이번 포스트에서는 구글번역기 라이브러리를 사용해서 자동번역기를 만들어보았습니다. 구글에서는 다양한 인공지능 라이브러리도 많이 배포하고 있어서 실시간 음성번역기를 만드는 것도 재미있을 것 같습니다.

 

이렇게 좋은 라이브러리들이 공유되고 발전되어가며 기술의 발전이 이루어지고 있는 것 같습니다. 프로그래머라고 하면 골방에 박혀서 모니터만 들여다보고 있는 꽁한 이미지일 수도 있지만, 프로그래머만큼 공유에 적극적이고 오픈된 마인드를 갖고 있는 사람들도 없다고 생각되네요. ^^

 

저 또한 꽁한 마음을 버리고 공유하는 삶을 살기를 꿈꾸며 이번 포스팅을 마치겠습니다.

읽어주셔서 감사합니다.

 

끝.

공유하기

facebook twitter kakaoTalk kakaostory naver band