파파고 번역 API 사용하기

반응형
728x90
반응형

 

개요


온라인에서 강좌(?)를 다운 받았지만, 영어자막으로 되어있는 경우가 있습니다. 그런 경우 PC에서는 팟플레이어를 이용하면 실시간 번역을 통해 번역된 내용으로 시청할 수 있습니다. 하지만, 개인 시놀로지 나스 서버에 Plex를 이용하여 영상을 보기위해서 번역된 자막을 적용하여 보고 싶었습니다. 그래서 다양한 번역 API 중 어떻게 하면 좋을까? 고되어 찾아보게 되었습니다. 이번 포스팅은 파파고 번역 API를 이용하는 방법에 대해 알아보도록 하겠습니다. 

 

 

파파고 번역 API 사용자 등록하기


 

 

상단 네이버 개발페이지에 접속하여 어플리케이션(Application)을 추가합니다. 

 

 

 

그리고 각각의 항목에 대해 빈공간은 아래와 같이 입력해주시면 됩니다. 

 

  • 애플리케이션 이름
  • 사용 API
  • 비로그인 오픈 API 서비스 환경

 

 

비로그인 오픈 API의 경우, 기존에 가지고 있는 블로그 도메인 등을 이용하셔도 됩니다. (넘어가네요!)

 

 

다른 블로그를 살펴보면, 비로그인 오픈 API 서비스 환경은 개인블로그, 혹은 기타 web page로 등록하면 된다고 합니다. 필수사항은 아니나,  아무런 web URL만 등록하면 바로 등록 할 수 있습니다. 

 

 

API 등록 완료 화면


 

  • 상단에는 개발할 때 필요한 ID 및 Secret가 나타나게 되고, 아래는 일일 사용량이 나오게 됩니다. 🙂

 

등록완료되면 Client ID / Client Secret 두개가 나타나게 됩니다. 이 두 정보를 이용하여 번역을 수행하게 되고,  번역 수행에 따라 API의 사용량을 확인 할 수 있습니다. 네이버 1개의 계정에 10개의 어플리케이션 생성이 가능하기때문에 총 10만개의 글자를 번역할 수 있습니다. 

이번에는 활용하는 방법에 대해 알아보도록 할까요? 

 

 

C# 기반 파파고(Papago) 번역 API 구현 예제


 

 

개발하고자하는 언어의 도구로는 Java, PHP, Node.js, Python, C#을 이용할 수 있네요!

 

웹페이지에도 위와 같이 참고표시가 되어있는데, 꼭 안보고 넘어가시는 분들이 계셔서 한번더 정리하고 넘어갑니다. ! 

상단에서 발급 받은 ID/Secret code 를 이용해야만 가능한 것으로서 이제 실제 코드를 보도록 하겠습니다. 

 

 

C# 코드

// 네이버 Papago NMT API 예제

using System;
using System.Net;
using System.Text;
using System.IO;

namespace NaverAPI_Guide{
    public class APIExamTranslate
    {
        static void Main(string[] args)
        {
            string url = "https://openapi.naver.com/v1/papago/n2mt";
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
            request.Headers.Add("X-Naver-Client-Id", "YOUR-CLIENT-ID");
            request.Headers.Add("X-Naver-Client-Secret", "YOUR-CLIENT-SECRET");
            request.Method = "POST";
            string query = "오늘 날씨는 어떻습니까?";
            byte[] byteDataParams = Encoding.UTF8.GetBytes("source=ko&target=en&text=" + query);
            request.ContentType = "application/x-www-form-urlencoded";
            request.ContentLength = byteDataParams.Length;
            Stream st = request.GetRequestStream();
            st.Write(byteDataParams, 0, byteDataParams.Length);
            st.Close();
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            Stream stream = response.GetResponseStream();
            StreamReader reader = new StreamReader(stream, Encoding.UTF8);
            string text = reader.ReadToEnd();
            stream.Close();
            response.Close();
            reader.Close();
            Console.WriteLine(text);
        }
    }}

 

상단의 코드에 발급 받은 ID/Secret코드를 입력하시면 됩니다 🙂

성공시 결과물은 다음과 같습니다. 

 

 

입력하지 않으면 아래와 같이 나타나게 됩니다. 

 

 

추가사항


 

            byte[] byteDataParams = Encoding.UTF8.GetBytes("source=ko&target=en&text=" + query);

 

만약에 (영문-> 한글) 언어 변환을 위해서는 상단의 코드의 위치를 변경하면 되겠죠? 

 

 

상단 언어감지 문서페이지에 접속하게되면, 18개의 언어를 감지해서 코드를 변환 할 수 있다 표기 되어있습니다. 

1. 한국어(ko)

2. 일본어(ja)

3. 중국어 간체(zh-CN)

4. 중국어 번체(zh-TW)

5. 힌디어(hi)

6. 영어(en)

7. 스페인어(es)

8. 프랑스어(fr)

9. 독일어(de)

10. 포르투갈어(pt)

11. 베트남어(vi)

12. 인도네시아어(id)

13. 페르시아어(fa)

14. 아랍어(ar)

15. 미얀마어(mm)

16. 태국어(th)

17. 러시아어(ru)

18. 이탈리아어(it)

19. unk: 알수없음

 

여기에 없는 다른 언어는 구글이나 다른 곳에서 지원해주는 곳을 찾아보고 하는것이 좋지 않을까하네요..!

노가다 작업을 간략하게 코드로 작성하여 번역 모듈을 만들어두면 편리할듯하네요 🙂

 

 

Reference


728x90
반응형

댓글

Designed by JB FACTORY