컴퓨터의 마이크에서 음성 데이터를 받아 모델에게 맞는 형태로 전처리하려면 WebAudio API를 잘 알고 있어야 합니다. 편리하게도 훈련된 오디오 합성곱 신경망을 로드하고 데이터 수집과 전처리를 담당하는 래퍼 클래스가 제공됩니다. 이 래퍼 클래스를 사용하려면 index.html에 다음과 같은 스크립트를 추가합니다.
<script src="https://cdn.jsdelivr.net/npm/@tensorflow-models/speech-commands"></script>
만약 오디오 데이터 입력 파이프라인의 구조에 관심이 있다면 https://github.com/tensorflow/tfjs-models깃허브 저장소에서 speech-commands/src 폴더 안의 소스 코드를 참고하세요.
코드 4-9는 브라우저에서 실시간으로 음성 단어를 인식하기 위해 래퍼 클래스를 사용하는 방법을 보여 주는 간단한 예제입니다.
음성 인식을 실제로 테스트해 보려면 컴퓨터에 마이크가 있어야 합니다(대부분의 노트북 컴퓨터는 마이크를 가지고 있습니다).32 어휘 사전에 있는 단어를 인식할 때마다 화면에 이를 출력합니다. 따라서 이 예제는 WebAudio API와 심층 합성곱 신경망을 사용한 브라우저 기반의 단어 인식 서비스입니다. 그렇다면 단어가 연결된 문장을 인식할 수 있지 않을까요? 이를 위해서는 순차 정보를 처리할 수 있는 다른 종류의 신경망 층이 필요합니다. 8장에서 이에 대한 내용을 다룹니다.