Web Speech API란 브라우저에서 제공하는 음성 인식 인터페이스입니다.
다음은 azfoundation사이트에 Web Speech API를 활용하여 STT서비스를 구현한 방식 입니다.
활성화 및 사용방법
우선 웹 스피치 api를 활용하기 위해 선언하고, 인터페이스가 인식해야하는 언어를 설정합니다. 그다음 레코딩이 버튼을 누르면 시작이 될 수 있게 초기값을 ‘false’로 설정합니다.
(1).recognition.continuous = true
첫번째 설정은 음성 인식이 연속적으로 이루어지도록 하는 설정입니다. 기본값은 false로 설정되어 있어, 한번 음성인식을 하고나면 음성인식이 중지됩니다. 이것을 방지하기위해 값을 true로 설정했습니다.
(2).recognition.interimResults = true
두번째 설정은 음성 인식의 중간 결과를 반환하도록 하는 설정입니다. 예를들어 ‘나는 사과를 먹었다’를 인식하면 ‘나는’ + ‘사과를’ +’먹었다.’ 로 결과를 반환 해줍니다. 설정값이 false였다면 ‘나는 사과를 먹었다’로 결과를 한번에 반환해줍니다.
(3).recognition.maxAlternatives = 10000
세번째 설정은 음성인식이 이루어질때 대안의 최대 개수를 설정합니다. 대안이 많아지면 정확도도 올라갑니다. 대안으로 10000개의 단어를 분석하여 문장에 알맞은 단어로 변환하여 출력해줍니다. 예를들어 ‘행드폰이 송에 있다.’를 인식하면 문장에 알맞게 ‘핸드폰이 손에 있다’로 변환되어 출력됩니다.
다음은 레코딩을 시작 / 종료하면 값을 반환하는 메서드입니다.
레코딩을 시작할때, 초기값이었던 ‘false’를 ‘true’로 바꿔주면서 녹음이 시작됩니다.
반대로 종료시 ‘false’를 반환하여 레코딩을 종료 시킵니다.
레코딩 종료 후 음성인식이 완료된 값을 반환해 주는 메서드입니다. 해당 메서드에서 레코딩된 음성이 텍스트로 변환됩니다. 다음은 음성인식 된 값을 console 과 채팅창에서 확인한 결과입니다.
마지막으로 음성인식 실행과 종료를 컨트롤하는 메서드입니다.
두번째 이미지 753라인에서 마이크를 클릭하면 첫번째 이미지에 있는 메서드가 실행되도록 설정했습니다.
처음 클릭시 recognition.start(); 명령어를 실행하며 레코딩이 시작됩니다. 그 다음 클릭 요청이 되면
recognition.stop(); 명령어가 실행되며, 레코딩을 멈추고 텍스트를 반환합니다.
웹 스피치 api의 장점
- 비용발생이 없다.
- 텍스트 출력시 단락으로 출력되며, 동적으로 보입니다.(인공지능같은 무드를 줍니다.)
단점으로는
- 다른 STT API와 비교했을때, 퀄리티가 떨어집니다.
- 검색시 정보가 거의없습니다.