【神編集】VADで無音カットを全自動化!AIエージェント Manus の使い方とプロンプト公開

フルタニ

こんにちは、フルタニです。放送局で番組作りをしてました。 無音カット Manus の使い方とプロンプト公開を書きます。

今日はね、編集者の寿命を縮める“無音カット地獄”から、どうやって生還するかって話をします。

トーク系の動画編集してると、だいたいこうなりますよね:

  • 「えーっと…」って考えてる間の沈黙
  • カメラ前で深呼吸してるだけの数秒
  • ちょっと噛んで言い直したところを全部カットしたい

で、タイムラインをコマ送りしながら無音の谷間を探しては、カット&削除&隙間詰め
やってること、ほぼ修行。

しかも:

  • 30分のトーク動画
  • 1時間のセミナーアーカイブ
  • 毎日投稿のYouTubeトーク

とかになってくると、

「この無音カットだけ、誰かに丸投げできないかな…」

って、本気で思いません?無音カット、マジで人力でやる時代じゃない

そこで登場するのがVAD × Manus で無音カットを“超自動化”という解決策です。

しゃべってる所だけ残す! Manus とVADで無音カット&字幕生成まで一気にやる方法

VADってなに?

VAD(Voice Activity Detection)っていうのは、

「今しゃべってるか・しゃべってないかを判定する仕組み」

だと思ってもらえればOKです。

  • 音声を細かく時間で分割して
  • その瞬間に“声っぽい音”があるかどうかを判別する
  • 声があるところだけをつなぐ → 無音カット!

これを人間の耳じゃなくて、
アルゴリズムがひたすら機械的にやってくれるイメージです。

Manusって何してくれるの?

Manus は「完全自律型AIエージェント」なので、

  • ffmpegで音声を抜き出して
  • VADでしゃべってる部分だけを検出して
  • その区間だけ動画をつなぎ直して
  • さらにそのあとに Whisper で文字起こしして
  • カット後の動画用のSRT字幕まで作る

という、編集者からしたら夢みたいな作業を
プロンプト一発で全部やらせることができます。

どんな動画で一番効くの?

① カメラに向かってひたすらしゃべる系

  • 商品レビュー
  • 雑談配信の切り抜き
  • ガジェット紹介

みたいな「しゃべりで見せる動画」は、VAD×Manusのドンピシャターゲットです。

  • 考えてる沈黙
  • 言い直しの前後
  • なんか間が悪くて気まずい数秒

こういうのを自動でゴッソリ抜いてくれるので、
タイムラインに落ちてくるのは

すでにテンポ良くなった本編だけ

という、めちゃくちゃ編集しやすい素材になります。

② セミナー・オンライン講義のアーカイブ

  • 60〜90分の講義動画
  • 勉強会のアーカイブ
  • ウェビナー録画

こういうのって、

「えーっと、ここはですね〜」
「……(スライド切り替え待ち)」

みたいな沈黙がすごく多いんですよね。

VADを使ってしゃべってるところだけを連結した版を作っておけば、

  • 視聴者にとってもテンポ良くて見やすい
  • 編集者はチャプター付けやテロップ入れに集中できる
  • そのまま教材としても使いやすくなる

と、一石三鳥くらいあります。

③ コーディング・作業実況系

画面収録しながら喋ってるやつで、

  • タイピングしてるだけの無音区間
  • しばらく考え込んでる時間

ここもVAD無音カットがめちゃ刺さります。

**しゃべってるところだけをつなげた“解説ダイジェスト版”**を自動で作れるので、

  • フル版:そのままアップ
  • 無音カット版:テンポ重視の編集版

みたいな二本立て展開も、かなり現実的になります。

Manusで「VAD無音カット+字幕生成」をやる流れ

ここからは、超初心者向け・ざっくりフローでいきます。

STEP1:元動画を用意する

  • できればマイクの音がはっきりしている動画
  • BGMは小さめだとVADの精度が上がる
  • 騒音がひどい場合は、事前に軽くノイズ除去しておくと吉

STEP2:Manusに動画をアップロード

  1. Manusで新しいエージェント or タスクを作成
  2. 「ファイルをアップロード」から、元動画をアップする
  3. 後で出す専用プロンプトを丸ごとコピペ
  4. 実行ボタンをポチ

Manusの中では、

  • ffmpegで音声を抽出
  • VADでしゃべってる区間だけを抽出
  • その区間だけで動画を再構成
  • できあがった“無音カット済み動画”から音声を取り出して文字起こし
  • SRT字幕を生成

…という作業が裏側で全部自動で走る、という感じです。

STEP3:出力されるファイルたち

うまくいくと、Manusからこんな成果物が返ってくる想定です:

  • 無音カット済みの動画ファイル(例:output_cut.mp4
  • その動画に対応した字幕ファイル(例:output_cut.srt
  • ついでに、中間データの temp.json(どこがどう切られたかのログ)

このうち、編集に使うのは

  • output_cut.mp4
  • output_cut.srt

の2つです。

STEP4:Premiere / CapCutに読み込む

Premiere Proの場合

  1. output_cut.mp4 をプロジェクトに読み込み
  2. タイムラインに乗せる
  3. メニューから
    「ファイル」→「読み込み」→ output_cut.srt を選択
  4. 字幕トラックが自動で追加されるので、
    • フォント
    • 位置
    • 影・縁取り
      を整えて完成

CapCutの場合(PC)

  1. 新規プロジェクトを作成
  2. output_cut.mp4 をタイムラインに追加
  3. 字幕のインポート機能から output_cut.srt を読み込む
  4. デザインだけ整える

この時点で、

無音は自動で消えてる

字幕のタイミングもカット後の映像にピッタリ合ってる

という、最高に編集しやすい状態になってるはずです。

一発で全部やらせるプロンプト

Manusに一発で全部やらせるプロンプトです。

「VADで無音カット → カット済み動画+SRT作成」まで全部指示しています。

## 指示
あなたは動画編集者をサポートするAIエージェントです。
これから、日本語のトークを中心とした動画に対して、
VAD(Voice Activity Detection)を使って無音カットを行い、
カット後の動画と、その動画に同期した字幕ファイル(SRT)を作成してください。

各ステップの中間結果は temp.json に保存しながら進めてください。
temp.json には少なくとも次の情報を保持してください:
- VADで検出した音声区間リスト(start, end)
- カット後の区間リスト(id, start, end)
- カット後の動画タイムラインに対応した文字起こし結果(text, start, end)
- 字幕行ごとの情報(id, text, start, end)

## 処理手順

### STEP1:動画入力・音声抽出
・添付の動画ファイルを受け取る。
・ffmpeg を使って音声ファイル(wav形式・16kHz・モノラル)を抽出する。
・抽出した音声を temp.json に "audio_path" として記録する。
・音声が正常に取得できているか確認し、取得できない場合はエラー内容を報告して処理を中断する。

### STEP2:VADによる音声区間検出
・STEP1で取得した音声ファイルに対して VAD(Voice Activity Detection)を実行する。
    - 利用可能であれば WebRTC VAD や pyannote.audio などの一般的なVADを使用する。
    - 出力は [start, end](秒単位)の音声区間の配列とする。
・次のようなルールで区間を整形する:
    - 「声あり」と判定するしきい値を適切に設定し、環境ノイズだけの区間はできるだけ除外する。
    - 非常に短い区間(例:0.3秒未満)はノイズとみなし、基本的には削除するか前後と結合する。
    - 区間同士の間隔が短い場合(例:0.2秒未満のすき間)は1つの連続した区間として結合する。
    - 各音声区間の前後に、自然なつながりのための余白(例:前後0.1〜0.2秒)を追加する。
・整形後の音声区間リストを temp.json に "vad_segments" として保存する。

### STEP3:VAD結果に基づく無音カット動画の作成
・STEP2で得た "vad_segments" をもとに、元の動画から音声がある部分だけを切り出して連結した新しい動画を作成する。
・ffmpeg の trim / concat などのフィルタを使い、以下を満たすようにする:
    - 映像と音声の同期を保ったままカットする。
    - 区間の順序は元の動画の時間順を保つ。
    - 切り出した区間を連結した1本の動画(例:output_cut.mp4)を作成する。
・カット後の動画の各区間について、元動画のタイムラインとの対応関係を temp.json に "cut_segments" として保存する。
・最終的なカット後動画ファイルのパスを temp.json に "cut_video_path" として保存する。

### STEP4:カット後動画の音声文字起こし(ASR)
・STEP3で作成したカット後の動画から、再度音声のみを抽出する(wav形式・16kHz・モノラル)。
・抽出した音声を Whisper で文字起こしする。
    - 日本語として認識するモードを使用する。
    - 可能であれば高精度モデル(例:large)を使用する。
    - 文字単位または単語/トークン単位でタイムスタンプ付きの結果を取得する。
・得られたテキストとタイムスタンプは、カット後動画のタイムラインに対応させること。
・結果を temp.json に "cut_transcript"(text, start, end の配列)として保存する。

### STEP5:字幕テキストの整形
・STEP4の "cut_transcript" 全体に対して、日本語として読みやすくするための整形を行う。
    - 利用可能であれば BudouX を使ってトークンに分割する。
    - トークン列に対して動的計画法により字幕行を最適化する。
        - 1字幕は1行とする。
        - 1テロップあたりの文字数は目安として10〜15文字程度とする。
        - 助詞や助動詞だけで行末にならないよう、意味のかたまりを優先する。
    - 文字起こし時のタイムスタンプをもとに、各字幕行の [start, end] をカット後動画の時間軸に合わせて設定する。
・整形後の字幕行ごとのデータ(id, text, start, end)を temp.json に "subtitles" として保存する。

### STEP6:セルフレビュー(VAD+字幕)
・作成した "vad_segments" と "subtitles" を確認し、次の観点でセルフレビューを行う:
    - 無音カットにより不自然なほど短いカット(例:0.5秒未満)が連続していないか?
        → 必要に応じて隣接区間を結合し、視聴体験を損なわないように調整する。
    - 会話の途中で不自然なカットが入っていないか?
        → 語の途中で切れているような場合は、前後の区間を調整する。
    - 字幕の区切りは自然か?
        → 日本語として意味が崩れていないか、1行あたり10〜15文字程度になっているかを確認する。
    - 字幕表示時間は十分か?
        → 読むのが難しいほど短い表示時間の場合は、可能な範囲で表示時間を伸ばす。

・必要であれば自動で微調整を行い、その結果を temp.json に再保存する。

### STEP7:動画ファイルとSRTファイルの出力
・STEP3で作成したカット後動画(例:output_cut.mp4)を最終成果物として出力する。
・STEP5〜6で確定した "subtitles" をもとに、標準的なSRT形式で字幕ファイルを作成する。
    - SRTは UTF-8 でエンコードすること。
    - 1つの字幕について、以下の形式で出力する:
        1) 通し番号
        2) 「hh:mm:ss,mmm --> hh:mm:ss,mmm」の形式のタイムコード(カット後動画の時間基準)
        3) 字幕テキスト(1行)
・出力したSRTファイルのパスを temp.json に "srt_path" として保存する。

## 注意点
・各ステップでエラーが発生した場合は、どのステップで何が原因かを簡潔に報告すること。
・VADによる判定が極端になりすぎないよう、無音カット後も自然な間が少し残るような設定を心がけること。
・最終的に、カット後動画とSRT字幕が互いにタイミング的に整合していることを必ず確認すること。

これをManusに貼って動かせば、

  • VADで無音カットされたテンポの良い動画
  • その動画にピッタリ合ったSRT字幕

をほぼ自動で量産できるはずです。

まとめ

いかがでしたでしょうか。“無音カット専用アシスタント”として酷使してあげてください。単純作業はManusに任せましょう。

そのうち本当に、「昔は全部手で無音探してたんだよね」って言うと、
若いクリエイターに本気で心配される時代が来ると思います。