Communitygithub.com

화면 녹화 음성 해설

무성 화면 녹화(제품 데모, 튜토리얼, 워크스루, 버그 재현)를 단일 명령으로 내레이션이 포함된 비디오로 변환합니다.

화면 녹화 음성 해설란 무엇인가요?

이 스킬은 무성 화면 녹화를 자동으로 분석하여 단계별 스크립트를 생성하고, AI 음성을 통해 자연스러운 내레이션을 추가합니다. 사용자가 자신의 음성을 사용하지 않고도 전문적인 음성 해설 비디오를 제작할 수 있도록 도와주며, 특히 각 문장을 화면의 동작과 정확히 동기화하는 '싱크' 작업을 자동화하는 데 특화되어 있습니다. Claude Code에서 실행 가능하며, Miragea API를 사용하여 음성을 합성합니다. 주요 기능으로는 화면 녹화에서 장면을 자동 감지하고, 각 단계에 맞는 스크립트 템플릿을 생성하며, 문장 길이가 동작보다 길 경우 자동으로 속도를 조절하거나 프레임을 정지시키는 '프리즈-싱크' 기능을 제공합니다. 또한 배경 음악 추가, 볼륨 정규화, SRT/VTT 자막 생성 및 비디오에 자막을 굽는 기능까지 지원하여 완성도 높은 내레이션 비디오를 제작할 수 있습니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/yyert123/miragea-skills/tree/HEAD/screen-recording-voiceover

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

화면 녹화 음성 해설은(는) 무엇을 하나요?

화면 녹화에 내레이션을 입힐 때 오래 걸리는 부분은 음성이 아니라 싱크입니다. 즉, 각 문장을 해당 클릭 동작과 정렬하고, 문장이 동작보다 길어지는 부분을 수정하는 작업입니다. 이 스킬은 이러한 작업을 자동으로 처리하며 내레이션이 흐트러지거나 겹치는 일이 없도록 합니다.

사용 시기

  • "이 데모/튜토리얼/화면 녹화에 음성 해설을 추가해 줘."
  • "화면을 무음으로 녹화했어요. 내레이션을 넣어 주세요." 또는 "제 목소리/억양을 사용하고 싶지 않아요."
  • "내레이션이 화면 동작과 일치하게 해 주세요."

단계

  1. MIRAGEA_API_KEY가 설정되어 있는지 확인하세요 (절대 출력하지 마십시오). 음성: 사용자의 Miragea 음성 ID를 한 번 묻거나, 사용자 음성 클립의 공개 URL과 해당 클립의 정확한 단어를 물어보세요. export MIRAGEA_VOICE_ID=...를 제안하여 다시 묻지 않도록 합니다. 사용자가 소유하거나 사용 권한이 있는 음성만 복제하세요.

  2. 단계를 찾고 스크립트 템플릿을 생성합니다:

    python3 scripts/scenes.py demo.mp4      # -> demo.frames/*.jpg, demo.frames/steps.json, demo.script.txt
    
  3. demo.frames/의 프레임을 확인하고(이미지를 읽을 수 있습니다) 각 단계에 대한 명확한 문장 하나를 demo.script.txt의 해당 타임스탬프 뒤에 작성하여 # step 주석을 대체합니다. 문장이 다음 단계 전에 맞도록 ~N words 힌트를 유지하세요. 자유롭게 단계를 병합, 이동 또는 삭제할 수 있습니다. 사용자가 자신의 스크립트를 제공한 경우, 해당 문장을 일치하는 타임스탬프에 배치하세요.

  4. 비용 없이 타이밍을 확인합니다:

    python3 scripts/voiceover.py demo.mp4 demo.script.txt --dry-run
    

    사용자가 정지 프레임을 원하지 않는 경우 will freeze로 표시된 줄을 줄이세요.

  5. 렌더링:

    python3 scripts/voiceover.py demo.mp4 demo.script.txt --voice VOICE_ID            # 자막을 파일로 생성
    python3 scripts/voiceover.py demo.mp4 demo.script.txt --burn --music bed.mp3      # 자막을 비디오에 굽기 + 배경 음악
    
  6. 출력된 JSON에서 사용자에게 경로를 알려주세요: video (내레이션이 추가된 MP4), voice_track (편집기용 WAV), srt/vtt. frozen_seconds가 0보다 크면 언급하세요.

  7. 대사를 변경하려면 스크립트를 편집하고 5단계를 다시 실행하세요. 변경되지 않은 대사는 캐시에서 무료로 가져옵니다.

스크립트 형식

[00:00] Acme에 오신 것을 환영합니다. 로그인 후 보게 되는 대시보드입니다.
[00:04] 새 프로젝트를 클릭하고, 이름을 입력한 후, 소유할 팀을 선택하세요.
[01:02.5] 이것으로 끝입니다. 프로젝트가 준비되었습니다.

허용되는 타임스탬프: [mm:ss], [h:mm:ss], mm:ss.s, 12.5s. #으로 시작하는 줄은 주석입니다.

싱크 작동 방식

  • 각 대사는 정확히 해당 타임스탬프에 시작됩니다. 다음 단계 전에 0.25초의 여유 공간이 유지됩니다.
  • 슬롯보다 긴 대사는 --max-speed(기본값 1.15배, 여전히 자연스러움)까지 속도가 빨라집니다.
  • 그래도 맞지 않으면, 비디오는 해당 단계의 마지막 프레임을 문장이 끝날 때까지 유지한 후 계속 진행됩니다. 이후 대사는 동일한 양만큼 이동하므로 싱크가 절대 깨지지 않습니다.
  • 자막은 각 대사의 실제 음성 길이(최대 2줄 x 42자)에 따라 시간이 지정됩니다.
  • 음량은 약 -16 LUFS(YouTube/웹 표준)로 정규화됩니다. 배경 음악이 제공되면 음성 아래로 음량이 낮아집니다.

옵션

플래그기본값설명
--voice ID / --ref-url URL --ref-text TEXT환경 변수저장된 Miragea 음성, 또는 공개 클립에서 복제 (정확한 텍스트 = 저렴한 1배 요율)
--modelexpressive또는 standard
--max-speed1.15프레임 정지 전 최대 속도 증가율
--burn꺼짐자막을 비디오에 굽기
--music FILE없음배경 음악, 반복 및 자동 음량 낮춤
--keep-audio꺼짐녹화 자체 사운드를 낮은 볼륨으로 음성 아래에 유지
--dry-run예상 말하기 속도로 슬롯 계획을 표시; API 호출 없음
-o FILEVIDEO.voiceover.mp4출력 경로; 원본은 수정되지 않음

비용 및 제한

음성은 Miragea에서 문자당 청구됩니다 (저장된 음성 또는 정확한 참조 텍스트 사용 시 1배; 실시간 요금은 GET https://miragea.ai/v1/capabilities 참조). 3분 데모는 일반적으로 2,000~3,000자입니다. 각 대사는 2,000자 미만이어야 합니다. 참조 클립은 Miragea의 업로드 엔드포인트가 출시될 때까지 공개 URL이어야 합니다.

문제 해결

  • 타임스탬프 없음 / 이전 줄 뒤에 있지 않음 -> 오류에 명시된 스크립트 줄을 수정하세요.
  • 음성 선택 안 됨 -> --voice를 전달하거나 MIRAGEA_VOICE_ID를 설정하세요.
  • 401 키 오류, 402 miragea.ai에서 충전, 429 기다렸다가 다시 실행 (캐시된 줄은 재청구되지 않음).
  • scenes.py에서 단계가 너무 많거나 적음 -> --threshold 0.02 (더 많음) / 0.08 (더 적음), --min-gap.

실제 스크립트, 계획 JSON 및 생성된 자막에 대해서는 examples/를 참조하세요.

Individual skills in this repo

This repo contains 3 individual skills — each has its own dedicated page.

yyert123/remotion-narration

Turn a video script into per-scene voiceover for Remotion in one command - one MP3 per scene in a saved or cloned voice, measured durations converted to durationInFrames, word-level captions in Remotion's Caption format, and an SRT. Use when building a narrated video with Remotion (or any React/code video tool), when the user asks to "add voiceover", "narrate these scenes", "sync scenes to the narration" or "add captions that follow the voice". Voice and timing by Miragea, no GPU or ElevenLabs a

yyert123/shorts-voiceover

Make a finished vertical short video (YouTube Shorts, TikTok, Instagram Reels; 1080x1920 MP4) from a plain-text script in one command, with AI voiceover in a saved or cloned voice, word-timed pop captions taken from the real speech, Ken Burns motion on images, cropped and looped B-roll clips or animated gradient backgrounds, auto-ducked background music and -14 LUFS loudness. Use when the user asks to turn a script, tips list, story or blog post into a Short/Reel/TikTok, make a faceless short wi

yyert123/video-captions

Caption any video or audio file in one command. Produces clean, readable SRT and WebVTT subtitles (whole words, 42-char lines, proper timing) and can burn them into an MP4, including big centred 1-3 word "pop" captions for TikTok, Reels and YouTube Shorts. Use when the user asks to add subtitles or captions to a video, make an SRT/VTT file, transcribe a talk or podcast into captions, or burn captions into a short-form video. English-first; speech recognition by Miragea.

관련 스킬