Install any skill in seconds. Free to start, no credit card required.
Get Started Free →動画用音声生成スキル。ElevenLabs TTS APIでscenes.jsonのナレーションから 音声ファイルを生成し、動画と同期可能な形式で出力する。 「ナレーション生成」「TTS」「音声追加」等で発動。
.claude/skills/minicoohei-video-audio/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-05 | ✗→✓ | ▲ Improved | -47% | 0% |
| case-01 | ✗→✓ | ▲ Improved | -52% | 0% |
| case-02 | ✗→✓ | ▲ Improved | -50% | 0% |
| case-03 | ✗→✓ | ▲ Improved | -56% | 0% |
| case-04 | ✗→✓ | ▲ Improved | -19% | 0% |
scenes.json の narration フィールドから ElevenLabs TTS で音声を生成する。
bash# 全ナレーションを結合した1ファイル生成 python skills/video-audio/scripts/generate_audio.py \ --storyboard-dir output/storyboard/YYYYMMDD_session \ --voice akari \ --output output/narration.mp3 # フレームごとに個別ファイル生成 python skills/video-audio/scripts/generate_audio.py \ --storyboard-dir output/storyboard/YYYYMMDD_session \ --voice akari \ --per-scene
| ID | 名前 | 特徴 | エイリアス | |----|------|------|-----------| | EkK6wL8GaH8IgBZTTDGJ | Akari | 明るく自然な女性 | akari | | EnLxjGl88dNO1Jv6AZk2 | Miyu | 信頼性と深みのある声 | miyu | | G3EZ8O36A0x9lmeOtr0f | Kaori | 親しみやすいフレンドリー | kaori | | PmgfHCGeS5b7sH90BOOJ | Fumi | 落ち着いた女性 | fumi | | StTDrGrPSyfaHGmzwXbj | Masa | 日本語男性 | masa | | gARvXPexe5VF3cKZBian | Mitsuki | ニュートラル | mitsuki | | YOUR_VOICE_ID | Custom Voice | カスタムボイス | custom |
| オプション | デフォルト | 説明 | |-----------|-----------|------| | --voice | akari | ボイス名またはID | | --model | eleven_multilingual_v2 | TTSモデル | | --stability | 0.5 | 安定性 (0-1) | | --similarity | 0.75 | 類似度ブースト (0-1) | | --speed | 1.0 | 再生速度 | | --per-scene | false | フレームごとに個別ファイル出力 | | --silence-gap | 0.3 | シーン間の無音(秒) | | --output | auto | 出力ファイルパス |
{storyboard_dir}/audio/narration.mp3 # 全ナレーション結合
{storyboard_dir}/audio/narration.json # タイムスタンプ情報{storyboard_dir}/audio/frame_01.mp3
{storyboard_dir}/audio/frame_02.mp3
...
{storyboard_dir}/audio/timestamps.json # 各フレームの開始・終了時刻json{ "total_duration": 18.5, "scenes": [ { "frame_number": 1, "start": 0.0, "end": 2.8, "duration": 2.8, "text": "ナレーション台本" } ] }
compose_video.py で --audio オプションに渡す:
bashpython skills/video-editor/scripts/compose_video.py \ --storyboard-dir output/storyboard/session \ --audio output/storyboard/session/audio/narration.mp3
Remotion の場合は public/audio/narration.mp3 に配置し、<Audio> コンポーネントで参照。
ELEVEN_API_KEY — ElevenLabs API キー(必須).bin/ffmpeg)| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-05 | fail→pass | 13,369 | 1,934 | -86% | 1 | 1 | 0% | 2,320 | 1,219 | -47% | 0 | 0 | — |
case-01 | fail→pass | 17,453 | 3,783 | -78% | 1 | 1 | 0% | 3,513 | 1,687 | -52% | 0 | 0 | — |
case-02 | fail→pass | 18,971 | 5,407 | -71% | 1 | 1 | 0% | 3,965 | 1,964 | -50% | 0 | 0 | — |
case-03 | fail→pass | 16,875 | 3,316 | -80% | 1 | 1 | 0% | 3,335 | 1,455 | -56% | 0 | 0 | — |
case-04 | fail→pass | 9,931 | 3,278 | -67% | 1 | 1 | 0% | 1,550 | 1,259 | -19% | 0 | 0 | — |
case-06 | fail→pass | 10,496 | 2,906 | -72% | 1 | 1 | 0% | 1,567 | 1,415 | -10% | 0 | 0 | — |
case-07 | fail→pass | 11,440 | 3,359 | -71% | 1 | 1 | 0% | 2,346 | 1,614 | -31% | 0 | 0 | — |
case-08 | fail→pass | 8,674 | 2,530 | -71% | 1 | 1 | 0% | 1,444 | 1,314 | -9% | 0 | 0 | — |
case-09 | fail→pass | 9,288 | 2,228 | -76% | 1 | 1 | 0% | 1,718 | 1,250 | -27% | 0 | 0 | — |
case-10 | fail→pass | 9,921 | 1,905 | -81% | 1 | 1 | 0% | 1,656 | 1,251 | -24% | 0 | 0 | — |
case-11 | fail→pass | 12,159 | 3,968 | -67% | 1 | 1 | 0% | 2,214 | 1,575 | -29% | 0 | 0 | — |
case-12 | fail→pass | 9,958 | 3,328 | -67% | 1 | 1 | 0% | 1,719 | 1,480 | -14% | 0 | 0 | — |
case-13 | fail→pass | 17,764 | 4,316 | -76% | 1 | 1 | 0% | 3,461 | 1,732 | -50% | 0 | 0 | — |
case-14 | pass→pass | 13,504 | 2,303 | -83% | 1 | 1 | 0% | 2,244 | 1,329 | -41% | 0 | 0 | — |
case-15 | pass→pass | 7,349 | 2,089 | -72% | 1 | 1 | 0% | 1,208 | 1,284 | +6% | 0 | 0 | — |
case-16 | fail→pass | 7,290 | 1,219 | -83% | 1 | 1 | 0% | 1,391 | 1,108 | -20% | 0 | 0 | — |
case-17 | fail→pass | 9,365 | 2,052 | -78% | 1 | 1 | 0% | 1,554 | 1,260 | -19% | 0 | 0 | — |
case-18 | fail→pass | 9,364 | 3,459 | -63% | 1 | 1 | 0% | 1,867 | 1,587 | -15% | 0 | 0 | — |
case-19 | fail→fail | 10,610 | 3,351 | -68% | 1 | 1 | 0% | 1,992 | 1,328 | -33% | 0 | 0 | — |
case-20 | pass→pass | 11,579 | 7,921 | -32% | 1 | 1 | 0% | 2,148 | 2,378 | +11% | 0 | 0 | — |
case-21 | pass→pass | 13,619 | 7,991 | -41% | 1 | 1 | 0% | 2,572 | 2,462 | -4% | 0 | 0 | — |
case-22 | pass→fail | 16,456 | 16,282 | -1% | 1 | 1 | 0% | 2,885 | 3,776 | +31% | 0 | 0 | — |
case-23 | pass→fail | 12,928 | 13,901 | +8% | 1 | 1 | 0% | 2,166 | 3,181 | +47% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 23 cases were attempted. The headline lift of +61 percentage points is the difference between those two pass rates over the 23 comparable cases. 2 cases got worse with the skill loaded, and they are included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.