AI 음성 더빙 · Voice-over with edge-tts
문장별 합성 → 묵음 제거 → 48 kHz WAV → durations.json. 이후 자막 및 장면 길이가 실제 음성 길이에 맞춰 정렬되므로 더 이상 '소리와 화면이 맞지 않는' 문제가 발생하지 않습니다.
ecommerce-video-skills의 일부 · 스크립트:
scripts/tts_edge.py(의존성:edge-tts+ ffmpeg)
입력 Inputs
- 내레이션 대본 (한 줄에 한 문장, 또는
storyboard.json의line필드) - 언어/음성 선호도 (남성/여성, 밝음/차분함), 속도
- 환경:
pip install edge-tts, ffmpeg, Microsoft TTS 서비스에 접근 가능한 네트워크
단계 Steps
-
'읽기 좋은' 내레이션 대본으로 개작 (규칙 참조), 각 문장 8–20자.
-
음성 선택 (
python scripts/tts_edge.py --list zh-CN으로 전체 목록 확인):장면 추천 음성 활기찬 추천 (남성) zh-CN-YunxiNeural친근한 추천 (여성) zh-CN-XiaoxiaoNeural/zh-CN-XiaoyiNeural열정적인 판촉 zh-CN-YunjianNeural전문적인 설명 zh-CN-YunyangNeural대만 / 홍콩 zh-TW-HsiaoChenNeural/zh-HK-HiuMaanNeural영어 en-US-AndrewNeural·en-US-AvaNeural·en-US-EmmaNeural -
합성:
pip install edge-tts # 한 문장 미리 듣기 python scripts/tts_edge.py "더운 여름에 얼음물을 들고 나가면 정오가 되기 전에 미지근해지지 않나요?" --voice zh-CN-YunxiNeural --rate "+10%" -o out/hook.wav # 전체 스토리보드 (각 컷 한 문장 → build/tts/l00.wav … + durations.json) python scripts/tts_edge.py --storyboard storyboard.json --outdir build/tts -
미리 2문장 들어보고 배치 실행: 속도
+5%~+15%가 라이브 커머스 내레이션에 가장 적합합니다.+20%를 초과하면 서두르는 느낌이 들 수 있습니다. -
ffmpeg-auto-assemble(자동으로 이 스크립트를 호출함) 또는 편집 소프트웨어에 전달합니다.
내레이션 대본 개작 규칙 Script rules
- 숫자는 '읽는 방식'으로 작성:
2核8G→两核八G;24h→二十四小时; 모델명 문자 사이에 공백 추가A I. 자막에는 원래 표기법을 유지할 수 있습니다 (sub필드). - 한 문장에는 한 가지 사실만 말합니다. 쉼표는 숨을 고르는 지점이며, 문장 끝은 마침표/물음표를 사용하여 억양을 떨어뜨립니다.
- 문어체 표현 제거: "본 제품은…" → "이 컵은…".
- 영어 브랜드명이 잘못 읽히는 경우, 발음 표기나 유사 발음을
line에 작성하고sub에는 올바른 철자를 유지합니다.
프롬프트 템플릿 Prompt template
아래의 세일즈 카피를 TTS 낭독에 적합한 내레이션 대본으로 개작하세요: 각 문장 8–20자, 한 문장에 한 가지 사실, 구어체;
숫자와 알파벳은 읽는 방식으로 작성; 또한 '자막 버전' 열을 하나 더 출력하여 원래 표기법을 유지하고 **굵게**로 키워드 1개를 표시하세요.
원문에 없는 판매 포인트나 데이터를 추가하지 마세요. 원문: {…}
체크리스트 Checklist
- 먼저 2문장을 미리 들어 음성/속도 확인
- 숫자, 영어, 브랜드명 발음이 올바른지 확인
-
durations.json이 생성되었으며, 총 길이가 목표와 일치하는지 확인 - 상업적 사용 전 플랫폼과 지역의 AI 음성 라벨링 요구 사항 확인 (예: 'AI 생성' 라벨 필요 시)
자주 묻는 문제와 해결 방법 Failure fixes
| 문제 | 해결 방법 |
|---|---|
edge-tts failed / 시간 초과 | 네트워크 문제, 스크립트가 3번 재시도합니다. 네트워크 변경 또는 잠시 후 재시도. 오프라인 시 assemble.py --tts none으로 먼저 영상 미리보기 |
| 발음 오류 | line에 유사 발음/발음 표기 작성, sub에는 원문 유지 |
| 문장 사이의 멈춤이 너무 김 | 앞뒤 묵음 자동 제거 완료. storyboard의 pad 조정 (기본값 0.25초) |
| 목소리가 너무 평탄함 | YunjianNeural/XiaoyiNeural로 변경; --pitch "+5Hz"; 문장 끝에 물음표/느낌표 사용 |
| 실제 사람 목소리 필요 | edge-tts는 합성음입니다. 높은 요구 사항의 경우 실제 녹음을 사용하고, 파이프라인은 그대로 사용 가능 (녹음 파일을 build/tts/lXX.wav에 배치) |
edge-tts는 커뮤니티에서 유지 관리합니다 (rany2/edge-tts, LGPL-3.0). Microsoft 온라인 서비스를 호출합니다. 이 저장소는 이를 종속성으로만 설치하며, 해당 코드를 포함하지 않습니다.