토론:Pi-ri: 두 판 사이의 차이

Ubuntu Korea Community Wiki
둘러보기로 이동 검색으로 이동
imported>강윤지
45번째 줄: 45번째 줄:


이 기술을 이용해 Google은 'Hands free'라는 모토로 확장기능을 제공하고 있다. 이는 Apple의 Siri와 같은 개념으로, 말로써 검색을 하고, 이메일을 보내는 등 좀 더 편리한 PC웹브라우징을 할 수 있다.
이 기술을 이용해 Google은 'Hands free'라는 모토로 확장기능을 제공하고 있다. 이는 Apple의 Siri와 같은 개념으로, 말로써 검색을 하고, 이메일을 보내는 등 좀 더 편리한 PC웹브라우징을 할 수 있다.
Google Voice Search Hotword(beta)로 가서 설치하고, 설정->확장 프로그램-> Google Voice Search Hotword(Beta) 0.1.1.5 사용 설정을 한다.  google.co.kr 이 아닌 google.com으로 접속하면 'OK Google'이라고 말하세요. 라는 문구를 검색어 창에서 확인할 수 있다. Apple의 Siri와 같이, Chrome브라우저에서 음성명령만으로 검색이 가능해졌으나 단, 베타버전은 한국어 지원을 하지 않았다.
Google Voice Search Hotword(beta)로 가서 설치하고, 설정->확장 프로그램-> Google Voice Search Hotword(Beta) 0.1.1.5 사용 설정을 한다.   
 
 
관련 그림은 http://storyjava.tistory.com/143를 통해 확인하시기 바랍니다.
 
google.co.kr 이 아닌 google.com으로 접속하면 'OK Google'이라고 말하세요. 라는 문구를 검색어 창에서 확인할 수 있다. Apple의 Siri와 같이, Chrome브라우저에서 음성명령만으로 검색이 가능해졌으나 단, 베타버전은 한국어 지원을 하지 않았다.
 
3. 동작 원리
 
Google Speech API는 크게 두가지 형태로 디자인 되었다.
 
 
첫째, 크롬브라우저에 음성엔진이 built-in
 
둘째, 구글서버로 음성Data를 보내고 feedback받는 형태
 
 
두개지 방법에는 각각의 장단점이 있다. 크롬브라우저 자체 내에 음성인식엔진이 내장되어 있는경우 서버를 거치지 않기때문에 속도가 빠르다. 서버를 거치게 될 경우, 내장엔진에 저장되어있는 data보다 훨씬 방대한 data가 저장되어 있기 때문에, 내장음성엔진에 비해 정확도가 더 높다.
 
 
4. Google Speech API Server 이용해보기
 
※ Google Speech API 의 사용은 개발목적과 개인사용에 한합니다. 
 
  The Speech API allows developers to access Google speech-recogintion services. It is only available for development and personal use.
 
① Chromium-dev 가입
 
Chromium-dev Community로 가셔서 회원가입을 한다. 가입하지 않으면 API설정에 Speech API 자체가 보이지 않다.
 
② Speech API 사용설정
 
Chromium-dev에 가입하였다면 Google Developers Console에서 Speech API가 보이게 된다.  STATUS를 ON으로 바꿔준다. 하루 50번으로 요청제한이 있습니다. 그러나, 요청횟수를 더 늘릴 수도 있다.
 
관련 그림은 http://storyjava.tistory.com/143를 통해 확인하시기 바랍니다.
 
④ Google서버로 요청
 
Google Speech API를 이용하려면, HTTP POST 요청을 한다. Google Speech API v2버전에서는 다음의 두가지 data형식을 인식할 수 있다. 클라이언트가 어떤 언어로 되어있든, Google서버에 요청시 아래의 형태를 맞줘야 한다.
 
 
- Data 인코딩 정보
 
 
1. FLAC
 
Flac file; 44100Hz 32bit float, exported with Audacity. Check the audio folder in this repository for some hilarious examples.
 
Channels      : 2
 
Sample Rate    : 44100
 
Precision      : 32-bit
 
Sample Encoding: 32-bit Float
 
 
2. 16-bit PCM
 
The following audio options are confirmed working for 16-bit PCM sample encoding:
 
Channels      : 1
 
Sample Rate    : 16000
 
Precision      : 16-bit
 
Sample Encoding: 16-bit Signed Integer PCM
 
 
- 요청 Header정보
 
 
1. Flac
 
Content-Type: audio/x-flac; rate=44100;
 
FLAC파일의 rate와 똑같이 맞춰줘야 한다. 일반적으로 44100Hz로 맞추지만, 다른 rate도 지원한다.
 
2. 16-bit PCM
 
Content-Type: audio/l16; rate=16000;
 
16bit signed-integer로 인코딩된 파일은 44100Hz 혹은 16000Hz를 지원한다.
 
※주의 : 오디오 캡처할때 rate와 header의 rate는 같아야 함!

2016년 4월 19일 (화) 14:53 판

음성인식 구글 API

본 내용의 출처는 다음과 같으며 모든 저작권은 http://storyjava.tistory.com/143에 있음을 알립니다. 문제가 될 시 바로 삭제하도록 하겠습니다.


1. 음성인식 개요

패턴인식(Pattern Recognition)의 한 분야인 음성인식은 오늘날(2014년 기준 작성, 현 2016년) 많이 대중화가 되어있고, 다양한 분야에서 활용되고 있다. 앞으로 서술할 내용은 음성인식에서 두각을 나타내고 있는 여러 대기업들 중 Google에서 제공하는 SST(Speech To Text)의 활용법에 대해 간단히 정리한 내용이다.

" 인식률은 사람의 성별, 사용된 마이크, 주변 잠음, 인식할 단어의 수, 얼마나 문법적으로 올바른 문장을 발화하는가 등 다양한 요소에 의해서 좌우됩니다. 따라서 인식 성능이 얼마나 나올 것인가를 결정하려면 이러한 조건들을 명확하게 알아야하고, 그 후에야 대강의 성능을 예측하여 볼 수 있습니다.

                                                                                                                                     [출처] 음성인터페이스 연구실 게시판에서 발췌


2. Google의 음성인식

  가. x-webkit-speech(HTML5 Speech Input API)
  
  2011sus Google이 자사 브라우저 Chrome 버전 11.0.696.16 Beta 버전부터 HTML5 Speech Input API Specification를 지원하였다. 이는 다른 미들웨어(Flash, ActiveX)의 도움없이 브라우저에서 마이크로부터의 input을 캡쳐해 낼 수 있으며  x-webkit-speech라는 이름으로 input태그에 아래와같이 x-webkit-speech속성만 추가하면, 음성인식 샘플테스트를 해볼 수 있다. (크롬에서만 동작)

<input x-webkit-speech="" id="mike" style="width:500px;height:100px">

테그의 속성하나만을 추가해도 음성인식이 되는 기능이지만 2014년 4 기준으로, 다른 브라우저의 지원이 부족하고, 태그의 속성으로만 사용할 수 있기에 확정성이 용이하지 못했다. 이러한 이유로 x-webkit-speech의 사용은 점점 사라져 가고 있으며, 대신 자바스크립트API인 Web Speech API가 등장하게 된다.

 나. New Approach : Web Speech API

2013년 Chrome 버전25 부터 Web Speech API Specification를 지원하게 되면서, 음성을 텍스트포멧으로 변환(Speech To Text, 이하 STT)이 순수 웹브라우저만으로 가능해 졌다.


관련 그림은 http://storyjava.tistory.com/143를 통해 확인하시기 바랍니다.


Speech Input API 스펙은 HTML5스펙이었다면, Web Speech API는, HTML5스펙에 포함된 것이 아니라 따로 독립적인 Speech API가 독립적으로 분리되어 있다.  Web Speech API 소개를 간추리면 아래와 같다.

- Full Control and Flexibility via JavaSrcipt

 1. Start / stop programmatically.
 2. One-shot(a phrase) or Continous recognition(e.g. several minumtes).
 3. Streaming with interim results (display results as you speak).
 4. Output can be processed on-the-fly, and displayed anywhere. 
 5. Enables custom handling of Audio, Sound, Speech and Error events.
 6. Configure Language.
 7. Process n-best Alternatives. 
다. 크롬브라우저 확장기능인 Google Voice Search Hotword 

이 기술을 이용해 Google은 'Hands free'라는 모토로 확장기능을 제공하고 있다. 이는 Apple의 Siri와 같은 개념으로, 말로써 검색을 하고, 이메일을 보내는 등 좀 더 편리한 PC웹브라우징을 할 수 있다. Google Voice Search Hotword(beta)로 가서 설치하고, 설정->확장 프로그램-> Google Voice Search Hotword(Beta) 0.1.1.5 사용 설정을 한다.


관련 그림은 http://storyjava.tistory.com/143를 통해 확인하시기 바랍니다.

google.co.kr 이 아닌 google.com으로 접속하면 'OK Google'이라고 말하세요. 라는 문구를 검색어 창에서 확인할 수 있다. Apple의 Siri와 같이, Chrome브라우저에서 음성명령만으로 검색이 가능해졌으나 단, 베타버전은 한국어 지원을 하지 않았다.

3. 동작 원리

Google Speech API는 크게 두가지 형태로 디자인 되었다.


첫째, 크롬브라우저에 음성엔진이 built-in

둘째, 구글서버로 음성Data를 보내고 feedback받는 형태


두개지 방법에는 각각의 장단점이 있다. 크롬브라우저 자체 내에 음성인식엔진이 내장되어 있는경우 서버를 거치지 않기때문에 속도가 빠르다. 서버를 거치게 될 경우, 내장엔진에 저장되어있는 data보다 훨씬 방대한 data가 저장되어 있기 때문에, 내장음성엔진에 비해 정확도가 더 높다.


4. Google Speech API Server 이용해보기

※ Google Speech API 의 사용은 개발목적과 개인사용에 한합니다.

  The Speech API allows developers to access Google speech-recogintion services. It is only available for development and personal use. 
① Chromium-dev 가입 

Chromium-dev Community로 가셔서 회원가입을 한다. 가입하지 않으면 API설정에 Speech API 자체가 보이지 않다.

② Speech API 사용설정

Chromium-dev에 가입하였다면 Google Developers Console에서 Speech API가 보이게 된다. STATUS를 ON으로 바꿔준다. 하루 50번으로 요청제한이 있습니다. 그러나, 요청횟수를 더 늘릴 수도 있다.

관련 그림은 http://storyjava.tistory.com/143를 통해 확인하시기 바랍니다.

④ Google서버로 요청

Google Speech API를 이용하려면, HTTP POST 요청을 한다. Google Speech API v2버전에서는 다음의 두가지 data형식을 인식할 수 있다. 클라이언트가 어떤 언어로 되어있든, Google서버에 요청시 아래의 형태를 맞줘야 한다.


- Data 인코딩 정보


1. FLAC

Flac file; 44100Hz 32bit float, exported with Audacity. Check the audio folder in this repository for some hilarious examples.

Channels  : 2

Sample Rate  : 44100

Precision  : 32-bit

Sample Encoding: 32-bit Float


2. 16-bit PCM

The following audio options are confirmed working for 16-bit PCM sample encoding:

Channels  : 1

Sample Rate  : 16000

Precision  : 16-bit

Sample Encoding: 16-bit Signed Integer PCM


- 요청 Header정보


1. Flac

Content-Type: audio/x-flac; rate=44100;

FLAC파일의 rate와 똑같이 맞춰줘야 한다. 일반적으로 44100Hz로 맞추지만, 다른 rate도 지원한다.

2. 16-bit PCM

Content-Type: audio/l16; rate=16000;

16bit signed-integer로 인코딩된 파일은 44100Hz 혹은 16000Hz를 지원한다.

※주의 : 오디오 캡처할때 rate와 header의 rate는 같아야 함!