대본은 글자일 뿐이라 영상으로 만들려면 소리가 필요합니다. 5교시에서는 브라우저가 기본으로 가진 낭독 기능을 써서 대사가 목소리로 바뀌는 경험을 해 봅니다.
브라우저 TTS 음성 합성 및 자막 낭독
📚1단계: 주요 개념 설명
Web Speech API를 사용하여 브라우저 환경에서 대본을 낭독하는 TTS 음성을 생성한다.
대본이 목소리가 되는 순간
- 쇼츠에는 화면 자막뿐 아니라 들리는 내레이션도 필요합니다.
- TTS는 글자를 목소리로 바꾸는 기술입니다.
- 먼저 브라우저 기본 낭독 기능으로 글자가 소리로 바뀌는 경험을 해 봅니다.
🛠️2단계: 따라하기 실습
만든 대본을 눈으로만 보지 말고 귀로도 듣게 만듭니다. 브라우저에 내장된 음성 기능(Web Speech API)으로, 설치·결제 없이 대본을 한국어로 낭독하는 버튼을 붙입니다.
생성된 대본을 브라우저 음성으로 읽어줍니다.
app/page.tsx에 '낭독 듣기' 버튼을 추가해줘. 누르면 생성된 대본(각 장면의 narration을 이어서)을 브라우저 내장 음성으로 한국어(ko-KR)로 읽어줘. Web Speech API를 사용해.
- SpeechSynthesisUtterance에 읽을 문장을 담고, speechSynthesis.speak()로 소리를 냅니다. 별도 설치가 없습니다.
- .lang을 'ko-KR'로 지정해야 한국어를 자연스럽게 읽습니다.
낭독 속도를 사용자가 조절하게 합니다.
낭독 속도를 조절하는 슬라이더(0.5배~1.5배)를 추가하고, 낭독할 때 그 값을 speech의 rate로 반영해줘.
- u.rate 값을 바꾸면 말 빠르기가 달라집니다. 쇼츠는 리듬감이 중요하니 값을 바꿔가며 들어봅니다.
- u.pitch로 음 높이도 조절할 수 있습니다.
브라우저의 자동재생 제한을 이해합니다.
- 브라우저는 갑자기 나는 소리를 막기 위해, 사용자가 클릭·터치하기 전에는 소리를 재생하지 않습니다.
- 그래서 페이지가 열리자마자가 아니라 '버튼 클릭 후'에만 낭독이 됩니다 — 이건 정상 동작입니다.
우측 낭독 실습기에서 대사 텍스트를 입력하고 말하기 속도(rate)와 음높이(pitch)를 조절한 뒤 '낭독 재생' 버튼을 눌러, 한국어(ko-KR) 음성이 브라우저에서 재생되는지 확인해 보세요. 페이지 로드 직후엔 소리가 나지 않고 버튼 클릭(사용자 제스처) 후에만 재생된다는 점도 함께 체감해 봅니다.
function speakText(text) {
if (typeof window !== "undefined" && window.speechSynthesis) {
const utterance = new SpeechSynthesisUtterance(text);
utterance.lang = "ko-KR";
utterance.pitch = 1.0;
utterance.rate = 1.0; // 말 빠르기 속도 조율 가능
window.speechSynthesis.speak(utterance);
}
}💡 코딩 중 막히나요? 모범 솔루션 코드
🧩3단계: 개념 검증 퀴즈
자막 텍스트가 기계음 없이 브라우저를 통해 실시간 목소리 스피치 사운드로 재생되는지 청취 점검합니다.
Q1. 브라우저 내장 TTS(Web Speech API)로 소리를 내려면 반드시 필요한 조건은?
Q2. SpeechSynthesisUtterance로 한국어를 낭독하려면 설정하는 속성은?
아래 대사를 입력하고 속도·음높이를 조절한 뒤 낭독 재생을 눌러 브라우저 내장 음성(ko-KR)으로 직접 들어 보세요.