메인 콘텐츠로 건너뛰기

Hrp.html

Hrp.js의 샘플 프로그램(hrp.html)은 브라우저에서 작동하는 애플리케이션입니다.

hrp.html 파일을 더블 클릭하여 직접 브라우저에서 열면 작동하지 않습니다. 이 파일을 웹 서버에 배치하고 https:// 또는 http://localhost/에서 열어주십시오.

hrp.html 파일을 더블 클릭하여 직접 브라우저에서 열어도 작동하지 않는 이유는 버전 1.1.9 이후의 샘플 프로그램에서는 음성 처리에 Web Audio API의 AudioWorklet을 사용하고 있어, 파일을 직접 file://로 열었을 때 이 API가 작동하지 않기 때문입니다. 파일을 직접 열어서 작동시키고 싶은 경우에는 DEPRECATED 폴더에 있는 hrp.html을 사용하십시오. 단, 이 폴더에 있는 파일은 더 이상 사용되지 않는 API인 ScriptProcessorNode를 사용하고 있어 향후 사용할 수 없게 될 가능성이 있습니다. 또한, 앞으로 ScriptProcessorNode를 사용한 샘플 프로그램은 업데이트되지 않습니다.

노트
  • 실행하려면 마이 페이지에 표시된 본인의 APPKEY 또는 サービスID 서비스 ID와 サービスパスワード 서비스 비밀번호를 가져와서 설정해야 합니다
주의
  • 사용한 음성 인식에 따라 이용 요금이 발생하므로 주의해 주십시오

준비

여기서는 Python3가 설치된 환경에서 샘플 프로그램을 작동시키는 절차를 설명합니다.

  1. 샘플 프로그램을 다운로드하고 로컬 머신의 임의의 디렉토리에 압축을 해제합니다.
  2. 압축을 해제한 디렉토리를 터미널에서 엽니다.
  3. 다음 명령어를 실행하여 HTTP 서버를 시작합니다.
python3 -m http.server --bind localhost 8081
  1. 브라우저에서 다음 주소로 접속하여 샘플 프로그램을 엽니다.

http://localhost:8081/Hrp/javascript/hrp.html

아래의 실행 예시와 같은 화면이 표시될 것입니다.

실행 예

  1. 브라우저에서 접속하면 다음과 같이 표시됩니다.
  2. [サービス ID]의 서비스 ID란에 마이 페이지의 [サービス ID]의 서비스 ID를 가져와서 입력합니다.
  3. [サービスパスワード]의 서비스 비밀번호란에 마이 페이지의 [サービスパスワード]의 서비스 비밀번호를 입력합니다.
  4. [サービス認証キーの取得] 서비스 인증키 취득 버튼을 클릭합니다.
  5. [APPKEY]에 원타임 APPKEY가 입력되었는지 확인합니다.혹은, 2~4를 하지 않고 마이 페이지에 표시되고 있는 자신의 APPKEY를 직접 입력합니다.
  6. [音声データの送信] 음성 데이터 송신 버튼을 클릭합니다.
  7. 마이크 사용 허가 대화 상자에서 [허가] 버튼을 클릭합니다.
  8. 일본어로 자유롭게 발화합니다.
  9. 페이지의 하반부에 인식 결과 텍스트와 서버로부터 전송되는 이벤트가 차례로 표시됩니다.

인코더 설정

버전 1.1.12 이후부터는 음성 데이터를 압축하는 인코더를 사용할 수 있습니다. 인코더는 세 가지 종류가 있으며, 사용하는 인코더에 따라 압축 방식이 달라집니다. 각각의 차이점과 사용 방법을 아래에 설명합니다.

인코더 종류와 압축 형식

Hrp.js에서는 다음 세 가지 인코더를 사용할 수 있습니다.

  1. encoder_opus.js
  2. encoder_opus_ogg.js
  3. encoder_adpcm.js

이들을 사용하는 조합에 따라 음성 데이터의 형식, 압축률, 인코딩의 CPU 부하 등은 다음과 같습니다.

인코더코덱컨테이너 형식비트레이트압축률CPU 부하
1만 사용Opus독자 형식24 kbps약 9.4 %다소 높음
1 & 2 사용OpusOgg 형식24 kbps약 9.4 %다소 높음
3만 사용ADPCM독자 형식64 kbps25 %매우 낮음

인코더를 사용하지 않는 경우, 음성 데이터는 압축되지 않습니다. 또한, 위의 모든 경우에서 비압축 상태와 인식 정확도에는 거의 차이가 없습니다. 처리를 수행하는 단말기의 사양이 충분하지 않거나 CPU의 여유가 부족한 경우에는 3만 사용하는 ADPCM을, 그렇지 않은 경우에는 1만 사용하는 Opus를 권장합니다.

Opus의 경우, recorder.js의 아래 부분을 수정하여 압축률을 변경할 수 있습니다. 기본값은 24kbps입니다. 극단적으로 압축하면 인식 정확도가 저하될 수 있으므로 주의하십시오.

		if (!encoder_ && recorder_.opusPacking && window.Encoder && window.Encoder.createOpusEncoder) {
encoder_ = window.Encoder.createOpusEncoder(audioSamplesPerSec_, /* bitsPerSec */ 24000, /* vbr: VBR */ 1, /* application: AUDIO */ 1, /* complexity */ 10);
}

인코더 사용 방법

hrp.html 파일의 head에 다음과 같은 기술이 있습니다.

  <script type="text/javascript" src="encoder_adpcm.js"></script>
<script type="text/javascript" src="encoder_opus.js"></script>
<script type="text/javascript" src="encoder_opus_ogg.js"></script>

사용할 인코더에 따라 이 부분에서 필요한 것만 남기고, 불필요한 부분은 삭제하십시오. 인코더를 사용하지 않을 경우, 모두 삭제하십시오.

기본적으로 세 가지 모두 기재되어 있는 경우, encoder_opus.jsencoder_opus_ogg.js가 사용됩니다. 불필요한 코드가 남아 있으면 로딩 시간이 약간 더 소요되므로, encoder_opus.jsencoder_opus_ogg.js를 사용하는 경우에도 encoder_adpcm.js의 기술은 삭제하는 것을 권장합니다.

AmiVoice Tech Blog에서 압축률에 따른 음성 인식 정확도의 변화에 대한 검증 결과를 소개하고 있으니 참고하시기 바랍니다.

【검증해 보았습니다!】 샘플링 레이트와 압축률에 따른 음성 인식 정확도의 변화는!? (일본어)