구글 speech to text 파일 처리 방식

Hot Issue

MediaRecorder API와 Google STT가 모두 지원하는 오디오 포맷을 사용하는 것이 가장 좋은 해결책입니다. 현재 MediaRecorder API는 대부분의 브라우저에서 WebM 형식의 오디오를 기본적으로 지원하며, Google STT는 WEBM_OPUS 포맷을 지원합니다. 따라서 WebM 포맷을 사용하는 것이 이상적입니다.

목차

클라이언트 측 코드 변경

클라이언트 측에서 MediaRecorder를 사용하여 오디오를 녹음할 때, 특별한 포맷 변경이 필요하지 않습니다. 대부분의 브라우저에서 MediaRecorder는 기본적으로 WebM 포맷으로 오디오를 녹음합니다. 다음은 MediaRecorder를 사용하는 기본적인 예시 코드입니다:

function startRecording() {
navigator.mediaDevices.getUserMedia({ audio: true, video: false })
.then(function(stream) {
const mediaRecorder = new MediaRecorder(stream, { mimeType: ‘audio/webm’ });
mediaRecorder.start();

        const audioChunks = [];
        mediaRecorder.addEventListener("dataavailable", event => {
            audioChunks.push(event.data);
        });

        mediaRecorder.addEventListener("stop", () => {
            const audioBlob = new Blob(audioChunks, { 'type' : 'audio/webm' });
            sendAudioToSpeechToText(audioBlob);
        });

        // 녹음 시간 설정
        setTimeout(() => {
            mediaRecorder.stop();
        }, 15000);
    });

}

서버 측 PHP 코드 변경

서버 측에서는 Google STT API 요청을 보낼 때 WEBM_OPUS 포맷으로 설정해야 합니다. 다음은 수정된 PHP 코드입니다:

$data = array( “config” => array( “encoding” => “WEBM_OPUS”, “languageCode” => “en-US” ), “audio” => array(“content” => base64_encode($audio_content)) );

Your Alt Text