자바스크립트와 MediaStream API를 사용한 웹에서의 실시간 자막 생성 기능 개발하기

웹에서 실시간 자막 생성 기능을 개발하는 방법은 여러 가지가 있지만, 이번 글에서는 자바스크립트와 MediaStream API를 활용하는 방법에 대해 알아보겠습니다.

목차

MediaStream API란?

MediaStream API는 웹 브라우저에서 오디오/비디오 스트림에 접근할 수 있는 JavaScript API입니다. 이를 이용하여 사용자의 마이크나 웹캠에서 스트림을 얻을 수 있습니다.

브라우저에서 마이크에 접근하기

웹페이지에서 마이크에 접근하기 위해서는 getUserMedia() 메서드를 사용합니다. 이 메서드를 호출하여 사용자의 마이크에 대한 권한을 요청하고, 스트림을 얻을 수 있습니다.

navigator.mediaDevices.getUserMedia({ audio: true })
  .then(function(stream) {
    // 스트림을 성공적으로 얻은 경우
  })
  .catch(function(err) {
    // 오류가 발생한 경우
  });

음성을 텍스트로 변환하기

마이크로부터 얻은 오디오 스트림을 텍스트로 변환하기 위해서는 음성 인식 API를 사용해야 합니다. 구글 Chrome 브라우저에서는 Web Speech API를 제공하고 있습니다. 이를 활용하여 음성을 텍스트로 변환할 수 있습니다.

const recognition = new window.webkitSpeechRecognition(); // Chrome에서만 동작합니다.

recognition.lang = 'ko-KR'; // 인식할 언어 설정
recognition.interimResults = true; // 중간 결과를 반환할지 여부

recognition.onresult = function(event) {
  const transcription = event.results[event.results.length - 1][0].transcript;
  // 변환된 텍스트 처리
}

recognition.start(); // 음성 인식 시작

실시간 자막 생성

마이크에 대한 접근권한을 얻고 음성을 텍스트로 변환하는 기능을 구현한 뒤, 이를 실시간으로 화면에 표시하여 자막을 생성할 수 있습니다. 자막은 HTML 요소를 생성하거나, 특정 영역에 동적으로 업데이트하는 방식으로 구현될 수 있습니다.

const transcriptionElement = document.getElementById('transcription');

// 실시간 자막 표시
recognition.onresult = function(event) {
  const transcription = event.results[event.results.length - 1][0].transcript;
  transcriptionElement.innerText = transcription;
}

결론

이번 글에서는 자바스크립트와 MediaStream API를 사용하여 웹에서 실시간 자막 생성 기능을 개발하는 방법에 대해 알아보았습니다. 마이크에 접근하여 오디오 스트림을 얻고, 음성 인식 API를 활용하여 텍스트로 변환한 후 화면에 실시간으로 표시하는 방식으로 자막을 생성할 수 있습니다. 이를 활용하여 온라인 회의나 웹 기반의 음성 인터페이스 등 다양한 분야에서 유용하게 활용할 수 있습니다.

관련 자료: