googletrans 모듈을 사용한 파이썬 번역기를 만들어 보겠습니다.
googletrans 는 PIPY에서 개인이 오픈소스로 만들어서 배포하는 api로 보입니다.
때문에 인증없이 무료로 사용이 가능하지만 정식적인 구글의 클라우드 서비스는 아니라서 언제든지 막힐 수 있습니다.
(작년 사용하던 모듈은 올해 작동을 안합니다.)
상업용 앱 개발자는 구글 클라우드나 AWS 의 Translation 서비스의 사용을 고려해보시는게 좋을 것 같습니다. 대부분 클라우드 서비스의 사용량은 일정 한도는 무료입니다.
혹은 네이버 오픈API도 있는데요. 횟수제한이 있으니까 앞서 사용량을 잘 따져보는게 필요합니다.
googletrans는 기본적으로 위의 번역기를 파이썬에서 사용하는 api 라고 보면 됩니다.
우선 모듈을 설치합니다.
기존 예제들을 보면 pip install googletrans 를 합니다. 그런데 기존의 모듈로 사용이 안됩니다.
그래서 pip uninstall googletrans 를 한 후 알파버전으로 설치합니다.
pip install googletrans==4.0.0-rc1
예제코드는 아래와 같습니다.
import googletrans
from googletrans import Translator
# print(googletrans.LANGUAGES)
text1 = "Hello welcome to my website!"
text2 = "안녕하세요! 환영합니다."
text3 ="한글을 영어로 번역합니다"
translator = Translator()
print(translator.detect(text1))
print(translator.detect(text2))
print(translator.detect(text3))
trans1 = translator.translate(text1, src='en', dest='ja')
trans2 = translator.translate(text2, src='ko', dest='de')
trans3 = translator.translate(text3, src='ko', dest='en')
print("English to Japanese: ", trans1.text)
print("Korean to Germany: ", trans2.text)
print("Korean to English: ", trans3.text)
LANGUAGES 에는 번역가능한 언어 리스트를 딕녀서리 형으로 볼 수 있고요.
언어코드를 src 원본과 dest 타겟 으로 지정할 수 있습니다.
제대로된 결과를 얻으려면 원본과 타겟언어를 지정해주는게 좋습니다.
(번역도 하나의 인코딩 encoding 이라고 볼 수 있죠. 정확한 encoding 을 사용합니다)
detect 메소드에 언어 감지 기능이 있습니다.
translate 메소드는 객체를 생성하는데 text 속성에 번역한 문자열이 저장되어 있습니다.
번역문자열이 하나 생성될 때 언어에 따라 발음기호같은 메타데이터가 같이 생성이 되니까 활용을 할 수 있습니다.
print(translator.translate("오늘 하늘이 맑습니다", src='ko', dest='ja'))
Translated(src=ko, dest=ja, text=今日の空は晴れた, pronunciation=Kyō no sora wa hareta, extra_data="{'confiden...")
일본어나 중국어 같은 경우 영문으로 발음기호가 표시됩니다.
구글측에서 언제라도 막을 수 있기 때문에 실시간 API호출 방식으로 사용하는 것은 한계가 있을 듯 합니다.
또 한개 아이피가 너무 자주사용하면 구글에서 아이피를 블록한다는 이야기가 있습니다. 정확히 어떤 상황에서 블록되는지는 각자 경험이 다른데 어뷰징의 징조가 있으면 구글측에서 막는 것 같습니다.
상업적으로 수익을 뽑을 수 있는 규모라면 구글 클라우드에 돈을 내서 사용하는게 맞는 것 같고
이것은 구글트랜스에서 사전에 번역을 추출하는 방식으로 사용하기는 좋습니다.
예를들어 독일어나 중국어 공부앱 개발 목적으로 데이터를 추출한다면 괜찮을 것 같습니다.
또 파이썬을 사용하면 구글 트랜스로 뽑아서 AWS에서 음성합성을 하는 것도 가능합니다.
실시간 번역기로 사용할 수 있죠.
아직 100% 번역이 매끄럽지 않은 부분이 있지만 그래도 번역기 없던 시절 보다는 당연히 좋습니다.
예전에 전자사전이 학생의 필수품이던 시절이 있었는데요.
스마트폰 5G시대에 지금도 이런 전자사전을 판매한다는게 놀랍기는 합니다.
기본적으로 구글과 아마존을 사용하면 훨씬 강력한 전자사전을 스마트폰에 구현할 수 있죠.
전자사전은 저 기계안에 들어있는 메모리 용량에 의존하지만
클라우드 서비스는 기본적으로 정보의 한계가 없습니다.
크게 보면 현재의 축척된 지식뿐 아니라 미래에 발생할 지식까지 포함하는 개념입니다.
더 넓은 세상을 보기 위해 API의 사용법에 익숙할 필요가 있습니다.