Remotion 음성 해설
Remotion 컴포지션에 필요한 모든 것(장면별 오디오, 정확한 지속 시간, 시작 프레임, 자막)을 음성 해설을 기반으로 생성합니다. 장면 길이는 실제 오디오 길이에서 비롯되므로 어긋남이 없습니다.
사용 시기
- 사용자가 스크립트(Markdown, 텍스트 또는 JSON)와 Remotion 프로젝트를 가지고 있고 음성 해설을 원할 때.
- 장면이 해당 음성 해설만큼 정확히 지속되어야 하고, 자막이 음성을 단어 단위로 따라가야 할 때.
단계
-
MIRAGEA_API_KEY가 설정되어 있는지 확인하세요(절대 출력하지 마세요). 음성을 선택하세요:--voice VOICE_ID- 사용자의 Miragea 계정에 저장된 음성, 또는--ref-url https://...- 복제할 음성의 공개 클립(사용자 동의 필요), 추가로--ref-text "클립의 정확한 단어"를 사용하면 더 저렴한 1x 요금이 적용됩니다.
-
스크립트를 작성하세요. 각
## 제목(또는 빈 줄로 구분된 단락)이 하나의 장면이 됩니다:## intro 음성 실수를 가장 빠르게 수정하는 방법, Retake를 만나보세요. ## demo 올바른 단어를 입력하세요. Retake가 문장을 다시 음성화하고 이어 붙입니다. -
Remotion
public/폴더로 생성하세요:python3 scripts/narrate.py script.md --voice VOICE_ID --out public/narration --fps 30 -
컴포지션에서
public/narration/narration.json을 사용하세요(examples/Narrated.tsx참조):totalFrames를durationInFrames로, 각 장면의startFrame/durationInFrames를<Sequence>로,staticFile('narration/' + scene.file)를<Audio>로, 그리고scene.captions(RemotionCaption[]:text,startMs,endMs,timestampMs,confidence)을@remotion/captions의createTikTokStyleCaptions()와 함께 사용하여 애니메이션 자막을 만드세요. -
스크립트를 수정하고 자유롭게 다시 실행하세요: 변경되지 않은 장면은 매니페스트에서 재사용되어 비용이 들지 않습니다. 실행이 중간에 중단되면 완료된 장면은 유지되고 다음 실행에서 이어집니다.
옵션
| 플래그 | 기본값 | 의미 |
|---|---|---|
--fps | 30 | 프레임 계산용 프레임 속도 |
--pad | 0.4 | 각 장면 후 여유 시간(초) |
--captions miragea | 예 | 생성된 오디오에서 자막 시간 측정(정확, +3포인트/초) |
--captions estimate | 무료: 단어 길이로 분산 | |
--model | expressive | standard는 참조 음성을 더 가깝게 따릅니다 |
--speed | 1.0 | 0.25-4 |
2,000자를 초과하는 장면은 문장 끝에서 자동으로 분할되어 결합됩니다.
문제 해결
choose a voice->--voice또는--ref-url을 전달하세요. 참조 URL은 공개적이어야 하며, 1,024자 미만이고 직접 제공되어야 합니다(GitHub raw, S3/R2 공개 객체는 작동하지만, 서명된 리디렉션은 작동하지 않을 수 있습니다).401/402/429-> 키, 잔액, 요청 한도 문제입니다. 다시 실행하는 것은 항상 안전합니다.