top drop menu

Recent Post

화요일, 11월 20

크롬 브라우저에서 음성인식 SpeechRecognition API 구현(2)

파트1에 이어서 이번에는 좀 더 기능을 추가해 보기로 하자. 앞서 크롬 브라우저에서 음성을 인식하고 텍스트를 화면에 출력해 주는 것 까지 구현이 되었다. 여기다 한글 텍스트를 영문으로 번역하고 그 결과를 음성으로 읽어 주는 기능을 추가하자. 번역 API를 찾아 보니 몇가지 대안이 있는데 강력한 후보이 구글번역 API가 유료로 전환된듯 결제설정을 하라고 나온다. 이런…

  • 구글 Translate API
  • Microsoft Azure Translate API
  • Yandex

구글은 유료(정확하지 않음)이고 마이크로소프트는 12개월 무료인데 그후엔 유료라고 한다. 결국 선택한것은 Yadex라는 API 서비스이다. 그런데 문제는 번역 품질이 시원찮다. 일단 흐름을 파악하기 위해서 이것을 이용해 보기로 하자.


https://tech.yandex.com/translate/


위 링크에서 회원가입을 하고  API 키를 발급 받아야 한다.


function translate_yandex(txt){
             var url = "https://translate.yandex.net/api/v1.5/tr.json/translate",
             keyAPI = "your_yandex_api_key";

            var xhr = new XMLHttpRequest(),
             textAPI = txt;
             langAPI = "en";

        //     https://translate.yandex.net/api/v1.5/tr.json/translate
                  // ? key=<API key>
                  // & text=<text to translate>
                  // & lang=<translation direction>
                  // & [format=<text format>]
                  // & [options=<translation options>]
                  // & [callback=<name of the callback function>]

            data = "key="+keyAPI+"&text="+textAPI+"&lang="+langAPI;
             xhr.open("POST",url,true);
             xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");
             xhr.send(data);
             xhr.onreadystatechange = function() {
                 if (this.readyState==4 && this.status==200) {
                     var res = this.responseText;
                     console.log(res);
                     //document.querySelector('#json').innerHTML = res;
                     var json = JSON.parse(res);
                     if(json.code == 200) {
                         console.log(json.text[0]);
                         english.innerHTML = json.text[0];
                         text_to_speech(json.text[0]);

                    }
                     else {
                         console.log("Error Code: " + json.code);
                         //document.querySelector('#output').innerHTML = "Error Code: " + json.code;
                     }
                 }
             }
         }


함수를 추가하자. 앞 파트1에서 나온 음성인식 결과를 인자로 넣어서 호출해 주면 된다.


데모링크 : https://timbuktu031.github.io/voice_recogintion/


translate-3796096_640

Blogger Widget