Communitygithub.com

andyluu98/VideoMotion

VieNeu-TTSを使用して動画プロジェクトのscript.jsonからベトナム語の音声を生成し、Whisperで発音を評価して最良の読み上げを保持し、各単語のタイムスタンプ(voice.wav、words.json)を取得します。/videomotionのステップ4、またはユーザーが「音声生成」「文の再読み上げ」「音声変更」「発音修正」を指示した際に使用します。

VideoMotion とは?

このスキルは、動画プロジェクトの `script.json` からベトナム語の音声を生成するためのツールです。VieNeu-TTS エンジンを利用して高品質な音声を合成し、Whisper モデルを使用して発音の正確さを自動評価します。生成された音声は `voice.wav`(48kHz モノラル)と `words.json` に保存され、各単語の開始・終了タイムスタンプが含まれます。発音評価の結果はスコアと WEAK フラグとして表示され、発音が弱い箇所にはスクリプトの書き換えや発音辞書(pron)の追加、候補数の増加などの修正手順が推奨されます。複数の音声(Ngọc Huyền、Mai Anh、Trúc Ly など25種類)から選択可能で、`script.json` の `"voice"` キーで切り替えられます。このスキルは `/videomotion` ワークフローの一部として、または「音声生成」「文の再読み上げ」「音声変更」「発音修正」といったユーザー発話から直接呼び出すことができ、キャッシュ機能により変更のあった文のみが再生成されるため効率的です。主に Claude Code や Cursor などの AI エージェント環境で使用されることを想定しています。

対応✓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が認識した内容> と出力されます。
  • 一度の実行で十分です。スコアは選別のためにのみ使用し、高いスコアを追い求める必要はありません。WEAK は Whisper が英語の名前を誤認識した場合("Claude" が "Clock" に、"code" が "cốt" になるなど)であり、読み上げの誤りではありません。
  • 実際の 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:48 kHz モノラル、間隔あり:先頭0.5秒、文間0.35秒、| 記号0.55秒、シーン間0.7秒、末尾0.8秒。
  • words.json:total、scenes(各シーンの開始・終了マーカー)、segments(各文、スコア、weakフラグ)、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".

関連スキル