파이썬 AI라이브러리 zAI - 번역과 텍스트음성변환하기 (4/4)

목차

    2018. 10. 3. 00:00

    zAI를 이용하여 여러가지 작업들을 해 보고 있다. AI기술을 활용하기 위해 일반인이 직접 데이터를 수집하고, 알고리즘을 학습시키는 것은 거의 불가능하다. 하지만 IT회사의 API와 파이썬 라이브러리를 통해 손쉽게 사용이 가능했다. 이전까지는 주로 이미지를 가지고 텍스트를 추출하고 변환하는 작업들을 했었다.

    (참조: 파이썬 AI 라이브러리 zAI 사용기 -문자인식 (1/5) )

    오늘은 마지막으로 텍스트를 번역하고, 음성으로 변환하는 작업을 해보려고 한다. 번역API는 이미 네이버 파파고에서도 제공해주고 있어 2개를 비교해 보는 것도 재밌을 듯 하다.

    오늘은 zAI를 이용하여 번역을 해 보도록 하겠다.


    텍스트음성변환



    zAI는 번역을 위해서 구글이나 마이크로소프트의 API를 사용한다. 필자는 마이크로소프트 Azure의 API를 이용해서 번역을 해 보았다. API를 사용하기 위해서는 API KEY를 발급받아야 한다. 애져는 각각의 기능별로 별도의 API KEY를 발급받아야 한다. 번역을 위한 API는 TRANSLATION API이다. KEY를 발급받는 방법은 이전 포스팅을 참조하도록 하자.
    (참조: 마이크로소프트 애저 가입과 API KEY 발급)


    1. 번역하기

    API KEY를 발급받고 실제 적용하는 것은 몇 줄이면 가능하다. 코드가 짧고 굉장히 직관적이기 때문에 별다른 설명은 필요없을 듯 하다. 번역은 해리포트 1권에 나오는 구문 중에 하나를 해 보았다. 번역하기에 좋은 문장은 아닌 듯 하지만 결과를 비교하기에는 좋을 듯 하다.

    Harry Potter has never played a sport while flying on a broomstick. He's never worn a cloak invisibility, befriended a giant, or Dursleys.

    (번역할 문장)


    아래와 같이 몇 줄 안 되는 코드로 번역이 가능하다.

    > # coding=utf-8


    > import zAI


    > zAI.utils.set_backend_key(key_name='MICROSOFT_AZURE_TEXT_TRANSLATION_API_KEY',key_value='애져 API KEY 입력',save=True)


    > originalText="Harry Potter has never played a sport while flying on a broomstick. He's never worn a cloak invisibility, befriended a giant, or Dursleys."


    > originalText=zAI.ztext.zText(originalText)

    > translatedText = originalText.translate(targetLang='ko',backend='Microsoft')


    > translatedText.display()


    zAI를 이용해서, 정확히는 마이크로소프트의 Azure를 이용해서 번역한 결과는 아래와 같다. 

    해리포터는 빗자루에 비행 하는 동안 적 스포츠를 연주 했다. 그는 결코 망 토 투명 착용, 거 대 한, 또는 Dursleys 친 하다.

    (애져 번역 결과)


    솔직히 애져의 번역 실력은 좀 실망스럽다. 이전에 네이버 파파고API를 이용해서 번역을 한 적이 있어, 파파고로 번역해 보았다.
    (참조: 파이썬 활용 파파고 API 이용하기)

    해리포터는 빗자루를 타고 날다 스포츠를 해본 적이 없다. 그는 망토를 걸치지 않고, 거인이나 Dursley와 친구가 된 적이 없다.

    (파파고 번역 결과)


    파파고의 번역 결과가 훨씬 훌륭했다. '빗자루를 타고 날다'와 '망토를 걸치지 않고' 부분만 제외하면 뜻도 완벽하고 말도 굉장히 매끄러웠다. 이 정도면 번역을 하고 문장을 조금만 다듬으면 쓸 수 있을 듯 하다.



    2. 텍스트 음성 변환

    이제 만들어진 텍스를 가지고 음성 변환을 해 보았다. 파파고의 번역 결과가 자연스러워, 이를 음성으로 변환해 보았다. 아래와 같은 코드로 음성으로 변환했다. 쉽게 할 수 있다는 이야기는 이제 입 아프니 그만 하도록 하자.

    > text='해리포터는 빗자루를 타고 날다 스포츠를 해본 적이 없다. 그는 망토를 걸치지 않고, 거인이나 Dursley와 친구가 된 적이 없다.'

    > target_text=zAI.ztext.zText(text,lang='ko')

    > target_text.to_voice(backend='Microsoft',outputFile='speech.wav')


    위와 같이 실행하고 나면 speech.wav로 음성 파일이 저장된다. 해당 파일을 재생하면 음성 변환된 결과를 들을 수 있다. 음성으로 변환된 품질은 번역보다 낫다. 이 정도면 텍스트를 조금 수정해서 들어줄 만하지 않나 싶다. 사실 음성변환은 많은 어플들에서 제공하고 있기 때문에, 크게 메리트 있는 것 같지는 않다.


    (음성 변환 결과 확인)


    오늘은 이렇게 파이썬 AI라이브러리인 zAI를 가지고 번역과 텍스트 음성 변환을 해 보았다. 번역의 품질인 API를 제공하는 회사의 품질에 달려 있다. 한국말이라서 그런지 번역의 품질은 파파고API를 이용하는 것이 가장 좋았다. 텍스트 음성 변환의 품질은 꽤 훌륭했고, 잘 사용하면 유용할 듯 하다.


    오픈API를 사용하면 다양한 재미있는 일들을 해 볼 수 있다. 파이썬을 활용한 오픈API 사용이 궁금하다면 아래 글을 참조해보자.

    (참조: 오픈API를 활용한 사례는 어떤 것들이 있을까?)


    이 글 공유하기