ビルマ語映画吹き替え — エージェントスキル
映画からビルマ語吹き替え(ダブ)を構築するための、および同様のスキルを構築するための2つのエージェントスキル。
| フォルダ | 説明 |
|---|---|
subtitle-voiceover/ | スキル本体:映像/音声ファイルから、話者検出、エージェント作成のオープニングフック、編集可能な字幕ペア、自動クリーンアップを備えたビルマ語吹き替えを生成します。 |
skill-forge/ | ツール類:SKILL.md スキルの作成、検証、パッケージ化を行い、このリポジトリ自身の2つのスキルを仕様準拠に保ちます。 |
subtitle-voiceover は何をしますか?
パイプラインはエンドツーエンドでPythonスクリプト化されています。エージェントが行う仕事はただ1つ:話者タグ付きのSRTをビルマ語に翻訳すること — それに加えて、任意の1行、オープニングフックです。 パイプラインのその他の部分はモデルを動作させることはありません。
movie.mp4 ──transcribe.py──▶ transcript.json ──srt_from_transcript.py──▶ movie.en.srt
└─ detect_voices.py 各話者のピッチを測定 ──▶ voices.detected.yaml (手動マッピング不要)
└── AGENT が translation.my.json を入力 (+ hook.text) ──apply_translation.py──▶ movie.my.srt
└── render_voiceover.py ──▶ voiceover.mp3 (フィルム長のステム、音楽なし)
└── チェック、FCPXML/EDL 出力、cleanup.py
インストールするには、フォルダをエージェントのスキルディレクトリにコピーするか、パッケージ化されたアーカイブを解凍します:
cp -r subtitle-voiceover ~/.claude/skills/ # クローンから
unzip subtitle-voiceover/packages/subtitle-voiceover.skill -d ~/.claude/skills/
必要環境:python3 -m pip install --user edge-tts pyyaml、ffmpeg + ffprobe、および subtitle-voiceover/.env 内の AssemblyAI キー(ASSEMBLYAI_API_KEY=...、git管理対象外)。
映画1本を1コマンドで:
python3 scripts/run_pipeline.py night-shift.mp4 --work-dir work --config voiceover.config.yaml \
--language en --speakers-expected 2 --hook --stages python
# エージェントが work/translation.my.json を入力(各キューのテキスト + hook.text)
python3 scripts/run_pipeline.py --work-dir work --config voiceover.config.yaml --stages post
出力:voiceover.mp3(吹き替えステム、00:00:00から開始、映画の長さにパディング、音楽なし)、movie.my.srt(話者ラベル付き)と movie.my.subs.srt(通常字幕トラック)、voiceover.fcpxml / .edl / .cue-list.csv、JSON品質レポート — そしてワーキングファイルを削除した work/ ディレクトリ。編集者はステムの下に独自の楽譜を配置し、字幕はPremiere Pro、DaVinci Resolve、Final Cut Proの字幕トラックにそのままドロップできます。
ハイライト:
- 自動音声割り当て。 話者のピッチは映画自体の音声から測定されます(自己相関、Pure-Pythonフォールバック付き)— 女性キャラには
my-MM-NilarNeural、男性キャラにはmy-MM-ThihaNeuralが割り当てられます。手動でのマッピングは不要ですが、設定で特定の話者を固定することも可能です。 - タイムスタンプはスクリプトが管理。 翻訳は書き込み可能なタイムコードを一切参照しません。マージ時に元のタイムコードが再付与され、破棄せざるを得なかった編集があれば報告されます。
- オープニングフック。 最初の5〜10秒を、エージェントが作成した1行の台詞に置き換えることができます。元の会話と見分けがつかず、
references/hook-guide.mdに実例があります。 - 実行中に何も生成されません。 すべてのステージはフラグを受け取る事前作成スクリプトです。スキルには独自のテストスイート、フィクスチャ映像、および2回の完全な記録実行が
demo-film/に同梱されています。
完全なウォークスルーは subtitle-voiceover/README.md を、エージェントが読む内容は SKILL.md を参照してください。
skill-forge
スキルディレクトリの雛形を作成し、SKILL.md を公開フォーマット(name/descriptionルール、段階的開示、バンドルファイル参照、行数制限)に照らしてチェックし、シークレットを漏洩せずにスキルを配布可能な .skill アーカイブにパッケージ化します。
python3 skill-forge/scripts/validate_skill.py subtitle-voiceover --strict
python3 skill-forge/scripts/package_skill.py subtitle-voiceover --out subtitle-voiceover/packages
テスト
bash skill-forge/tests/run_tests.sh # バリデーター/パッケージャースイート(オフライン、<1秒)
cd subtitle-voiceover && bash tests/run_tests.sh # パイプラインスモークテスト(実際のedge-tts呼び出し)
両スイートはCIに組み込まれています(ci/github-actions-ci.yml — .github/workflows/ci.yml に移動して有効化。ファイルのヘッダーを参照)。パイプラインスイートはAssemblyAIキーを使用しません。フィクスチャのトランスクリプトに対して実際のスクリプトを実行します。
リポジトリ構成
subtitle-voiceover/ スキル本体(scripts/, references/, assets/, tests/, demo/, demo-film/, packages/)
skill-forge/ 検証・パッケージ化ツール(scripts/, references/, assets/, tests/, packages/)
ci/github-actions-ci.yml CI定義(.github/workflows/ci.yml に移動して有効化)
ライセンス
MIT — LICENSE を参照。