Communitygithub.com

andyluu98/VideoMotion

VieNeu-TTS로 비디오 프로젝트의 script.json에서 베트남어 음성을 생성하고, Whisper로 발음을 자동 평가하여 최상의 읽기를 유지하며 각 단어의 타임스탬프(voice.wav, words.json)를 추출합니다. /videomotion의 4단계 또는 사용자가 "음성 생성", "문장 다시 읽기", "음성 변경", "발음 수정"을 요청할 때 사용됩니다.

VideoMotion란 무엇인가요?

이 스킬은 `/videomotion` 워크플로우의 4단계에 필수적인 도구로, 비디오 프로젝트를 위해 고품질의 베트남어 음성 내레이션을 생성하도록 설계되었습니다. `script.json` 파일을 읽고, VieNeu-TTS를 사용하여 음성을 합성한 후, Whisper를 통해 생성된 오디오의 발음을 자동으로 평가합니다. 각 문장에 대해 점수를 매기고 약한 발음을 식별하여 사용자가 발음 사전(pron) 항목을 추가하거나 후보 음성 수를 늘리는 등의 방법으로 반복적으로 결과를 개선할 수 있도록 합니다. 또한 합성된 오디오(voice.wav)와 각 단어 및 장면의 타임스탬프(words.json)를 출력하여 비디오 편집 소프트웨어와의 정확한 동기화를 가능하게 합니다. 여러 베트남어 억양과 스타일(예: Ngọc Huyền, Mai Anh)을 지원하며, 결과는 script.json의 설정에 따라 사용자 정의할 수 있습니다.

지원 대상✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/andyluu98/VideoMotion/tree/HEAD/skills/vm-giong

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

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

문서

음성 생성

videomotion 스킬과 동일한 VV, PY 변수를 사용합니다.

실행

"$PY" "$VV/tools/voice/voice.py" <프로젝트> > <프로젝트>/voice.log 2>&1

스크립트가 1분 이상 걸리면 백그라운드에서 실행합니다. 로그에 VOICEDONE이 나타나면 완료입니다. 모든 생성 결과는 내용에 따라 캐시됩니다. script.json에서 문장을 수정한 후 다시 실행하면 해당 문장만 다시 생성됩니다.

결과 확인

  • 각 문장에 대해 score <id>: <점수> ok|WEAK | <Whisper가 들은 내용>이 출력됩니다.
  • 한 번 실행하는 것으로 충분합니다. 점수는 선별용일 뿐, 높은 점수를 쫓을 필요는 없습니다.
  • Whisper가 영어 이름을 잘못 들은 경우("Claude"가 "Clock"으로, "code"가 "cốt"으로) WEAK로 표시되지만 이는 읽기 오류가 아닙니다.
  • 실제 WEAK(잘못 읽음, 단어 생략, 숫자 읽기 오류)인 경우 다음 순서로 수정합니다:
    1. 베트남어 주어가 있는 문장으로 다시 작성하고, 5단어 미만의 짧은 문장이나 영어 이름으로 시작하는 문장을 피합니다.
    2. script.json의 "pron" 항목에 항목을 추가합니다(예: "MCP": "em xi pi" - 키에 대문자가 있으면 대소문자를 정확히 일치시킵니다).
    3. --candidates 4를 사용하여 다시 실행합니다.
  • 모든 프로젝트에 적용할 단어 수정은 ~/.motionfly/pron.json에 추가합니다.

음성

기본값은 Ngọc Huyền(여성, 북부)입니다. 사용 가능한 일부 음성: Ngọc Huyền, Mai Anh(뉴스), Trúc Ly, Thùy Dung(남부, 뉴스), Hải Đăng, Thiện Minh(이야기), Quang Sơn 및 Ngọc Trân(중부). 전체 25개 음성을 보려면:

"$PY" -c "from vieneu import Vieneu; [print(v[0]) for v in Vieneu().list_preset_voices()]"

script.json의 "voice" 키에 음성을 설정합니다.

출력

  • voice.wav: 48kHz 모노, 다음 간격으로 공백 포함: 시작 0.5초, 문장 사이 0.35초, | 기호 0.55초, 장면 사이 0.7초, 끝 0.8초.
  • words.json: total, scenes(각 장면의 시작 및 종료 타임스탬프), segments(각 문장, 점수, 약한 플래그), words(표시되는 각 단어의 start, end). 표시되는 단어는 pron을 통해 발음이 변경된 경우에도 스크립트에 있는 원래 문자를 유지합니다.

Individual skills in this repo

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

andyluu98/VideoMotion

Làm video tiếng Việt từ một yêu cầu, AI làm đạo diễn, không khung dựng sẵn: ý tưởng lớn, kịch bản, giọng VieNeu, phân cảnh theo lời, nhạc nền, dựng từng cảnh bằng agent Sonnet chạy song song (HyperFrames + GSAP), phụ đề, xuất MP4. Dùng khi người dùng gõ "/videomotion", "làm video", "video giải thích", "clip ngắn về X", "biến bài này thành video".

andyluu98/VideoMotion

Kiểm tra và cài đặt mọi thứ VideoMotion cần (Node.js, ffmpeg, HyperFrames, môi trường Python, giọng VieNeu, Whisper). Dùng khi người dùng mới cài plugin, gõ "/vm-cai-dat", "cài đặt video", "kiểm tra máy làm video", hoặc khi một bước làm video báo thiếu công cụ.

andyluu98/VideoMotion

Dựng hình cho dự án VideoMotion đã có giọng và phân cảnh: tải phông của style, viết màu, giao từng cảnh cho agent vm-canh chạy song song, ghép, kiểm tra kỹ thuật, render, ghép âm thanh và phụ đề. Dùng ở bước 7 của /videomotion, hoặc khi người dùng nói "dựng lại cảnh", "render", "xuất video", "sửa hình cảnh X".

andyluu98/VideoMotion

Chọn hoặc tạo nhạc nền cho dự án video, đo nhịp, rồi trộn với giọng (nhạc tự hạ khi có lời, chuẩn -14 LUFS). Dùng ở bước 6 của /videomotion, hoặc khi người dùng gửi file nhạc, nói "đổi nhạc", "nhạc sôi động hơn", "nhạc nhỏ lại".

관련 스킬