mcpField
T
tella-auto-cut

tella-auto-cut

github.com/tellahqクリエイティブ・メディア252 回インストール5 日前に更新
リポジトリ

tella-auto-cut について

Tella動画の編集で、言い間違い、フィラー、無音をカットし、編集後の文字起こしとつなぎ目を確認するスキルです。Tellaのクリップを編集する人向けで、Tella MCPツールが必要です。

主な機能

  1. 01文字起こしを使った言い間違いのカット
  2. 02フィラーと無音の除去
  3. 03先行カットで生じた間隔の調整
  4. 04重複語や残った語のつなぎ目確認
  5. 05変更内容と復元手順の報告

活用シーン

  1. 01Tellaクリップの言い間違いやフィラーの除去
  2. 02指定したペースに合わせた間の短縮
  3. 03編集による発話のつなぎ目の確認

MCP 対応

Tella MCPが必要で、タイムライン、文字起こし、クリップ編集のツールを使ってクリップを確認・編集します。クリップごとに処理するワークフローです。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/tellahq/skills --skill tella-auto-cut

インストール後、Claude Code で/tella-auto-cutを入力して読み込まれたか確認します。

同梱ファイルagents/openai.yaml

詳細

Tella の動画を自動カットする

すべてのクリップから言い間違い、フィラー、無音部分をカットしたあと、結果を読み返して、カットによって生じた問題(カットをまたいでつながった間、一度重なった単語、残った断片)を修正します。

このスキルには Tella MCP が必要です。get_timeline などのツールが見つからない場合は、先に tella スキルの接続手順に従ってください。

対象範囲

自動カットは直接実行します。カットしたあとに実行内容を報告してください。言い間違いの一覧について、事前に承認を求めないでください。ユーザーはあとから復元または調整できます。どの動画またはクリップを指しているのか判断できない場合に限り、質問してください。

画面上で何かが起きている場合も、無音が続く部分はカットします。間の長さは natural(800 ms を超える間)を標準とし、ユーザーが fast(500 ms)または faster(300 ms)を希望した場合はそれを使います。ユーザーが一部の手順だけを希望した場合(「無音部分だけ」など)は、その手順だけを実行します。ただし、最後の確認は必ず行ってください。

レイアウト、ズーム、オーバーレイ、字幕は変更しないでください。

ワークフロー

クリップごとに作業します。トランスクリプト、単語インデックス、カットはすべてクリップ単位です。get_timeline でクリップの一覧を取得します。カットする前に、それぞれのクリップに対して get_clip を呼び出し、cuts を記録して、復元方法を案内できるようにしてください。

各クリップでは、手順を一つずつ実行します。そのクリップに対する前の呼び出しが返ってから、次の手順の呼び出しを行ってください。同じクリップに対して並行して実行した呼び出しは、それぞれが確認した状態のクリップを返します。そのため、両方のカットが適用されていても、一方の結果にもう一方のカットが含まれていない場合があります。

  1. 言い間違い。 tella-remove-mistakes スキルの手順 1~3 と 5、およびそのルール ../tella-remove-mistakes/references/mistake-rules.md に従います。トランスクリプトを読み、言い間違いを見つけ、クリップごとに cut_clip_by_transcript を一度呼び出してカットします。確認手順(手順 4)は省略します。「確信が持てない場合は残す」というルールは引き続き適用されます。
  2. フィラー。 各クリップで remove_fillers を実行します。
  3. 無音部分。 選択した mode を指定して、各クリップで remove_silences を実行します。音声の解析がまだ処理中だと返された場合は、少し待ってから再試行します。再試行は数回までとします。それでも準備ができていない場合は、そのクリップの無音部分の処理を省略し、最後の確認は実行したうえで、レポートにその旨を記載してください。
  4. 最後の確認。 以下を参照してください。
  5. 報告。 クリップごとに、カットした言い間違い(時間、理由、単語)、フィラーと無音部分を削除したこと、最後の確認で修正した間やつなぎ目、カット前後のクリップの長さを報告します。復元方法(以下を参照)も伝えてください。

言い間違いの確認が必要な手順なので、最初に実行します。フィラーと無音部分の処理はどちらを先にしてもかまいません。単語インデックスは変わらず、remove_silences は元の録画をもとに処理するためです。

最終確認

remove_silences は元の録音の無音区間を検出し、クリップのカットを考慮しません。ミスやフィラーをカットすると、その前後の無音区間が続けて再生されます。それぞれはしきい値より短かったためカットされていませんが、つなげると長い無音区間になります。すべてのカットを適用した後のトランスクリプトだけが、実際に再生される内容を示します。

  1. get_transcript でトランスクリプトを読み直します(長いクリップは、ミスのスキルと同様にウィンドウ単位で確認します)。時刻は再生タイムライン上のもので、すべてのカットが適用されています。

  2. 長い無音区間をトリミングします。 隣り合う各単語の間隔は、次の単語の startTimeMs から前の単語の endTimeMs を引いて求めます。間隔がモードのしきい値(800/500/300 ms)を超えている場合は、{fromMs: previous.endTimeMs + 120, toMs: next.startTimeMs - 120} をカットします。各単語の隣に120 msの無音を残します。最初の単語の前と最後の単語の後の間隔も同様に扱い、単語の隣に120 msを残します。クリップ内のすべての範囲を、1回の cut_clip 呼び出しで送信します。範囲は呼び出し開始時点の再生タイムラインを基準に解決されるため、2回目の呼び出しでは時刻がずれてしまいます。

  3. カットのつなぎ目を修正します。 各カットをまたいで読み、カットによって残ったものを確認します。

    • カットの両側に同じ単語がある場合(「the the」):片方をカットします。
    • 2つのカットの間に、どちらの文にも属さなくなった単語が1つまたは2つ残っている場合:それらをカットします。
    • ミスのカット範囲が足りず、ミスの単語が残っている場合:それらをカットします。

    これらは単語のインデックスを指定して cut_clip_by_transcript で修正します。単語を分割したり、余分な単語を範囲に含めたりしないでください。

    カットで削除されるのは単語だけです。すでにカットされた単語はトランスクリプトに存在せず、追加のカットをしても元には戻りません。ミスのカット範囲が広すぎて、文に必要な単語まで失われた場合は、update_clip で保存済みのカットを復元し(「復元」を参照)、修正したミスの範囲で手順1~3をやり直してから、新しいトランスクリプトでもう一度最終確認を行います。

  4. リスクのあるつなぎ目を聴いて確認します。 ミスやフィラーのカット、数秒以内に複数あるカット、カットの直前で終わる単語(音が途切れている可能性があります)を確認します。明確な無音区間でのカットは、トランスクリプトを読み直し、get_audio_levels で確認するだけで十分です。get_clip_preview が返すのはURLだけです。MP4をダウンロードします(クリップの音声が含まれています)。ffmpegで、リスクのある各つなぎ目の範囲を音声に切り出し(ffmpeg -ss 2 -t 6 -i preview.mp4 -vn -ac 1 -ar 22050 -b:a 48k seam.mp3)、1つのファイルに結合して、音声ツール(Tellaエディターの describe_audio)で一度聴きます。聴いた内容とトランスクリプトが一致しない場合は、その数秒間の get_audio_levels で単語が完全かどうかを判断します。単語が不要なら単語全体をカットします。必要なら復元し、前述の手順をそのカットを単語1つ分小さくしてやり直します。ミリ秒単位でカットを調整しないでください。

最終確認は1回行います(復元が必要だったクリップは2回行います)。確認したものの、そのまま残した内容があれば報告します。

復元

1回のカットだけをきれいに元に戻すことはできません。ミスのカットは、その隣にあるフィラーや無音区間のカットと統合されます。クリップを復元するには、開始前に get_clip で保存した cuts を指定して update_clip を呼び出します。cuts はクリップのカットリスト全体を置き換えます。また、作業中に人が手作業で動画を編集している可能性があります。現在の get_clip にあるカットのうち、自分が作成しておらず、保存済みリストにも含まれていないものは残してください。cuts: [] を送信するのは、保存済みリストが空で、現在のクリップに残すカットもない場合、またはすべてのカットを削除するよう依頼された場合だけです。異なる選択でやり直すには、復元してから再度実行します。

クリップを返したカット呼び出しは成功しています。後続の結果でカットが反映されていないように見えても、再送信しないでください。カット呼び出しが失敗した場合や結果が不明な場合は、再試行する前にトランスクリプトを読み直します。カットされた単語はトランスクリプトに存在しません。cut_clip_by_transcript が見つからない単語のインデックスを報告した場合、その単語はすでにカットされています。それらの範囲を除き、残りを一度だけ送信します。確認せずにカットを繰り返さないでください。

コメント