mcpField
T
TrimScript

TrimScript

ローカル
github.com/SilverNineメディア・デザイン03 週間前に更新

TrimScript について

TrimScriptは、講演やポッドキャストなどの音声中心の動画を、文字起こしに沿ってローカル編集するツールです。コーディングエージェントの編集案は確認後に適用でき、元のメディアは変更せず、編集内容をJSONに保存します。

主な機能

  1. 01ローカル音声文字起こし
  2. 02文字起こしに沿った動画カット
  3. 03フィラーと無音の一括調整
  4. 04音声のクリーンアップとテキスト修正
  5. 05MP4、字幕、WAV、FCPXMLの書き出し
  6. 06確認可能なエージェント編集案

活用シーン

  1. 01講演、チュートリアル、ポッドキャスト、インタビューの編集
  2. 02フィラーや長い間の削除
  3. 03エージェントの編集案を確認してから適用

MCP 対応

TrimScriptはMCPサーバーを備え、Claude CodeやCodexなどのMCPクライアントが文字起こしを読み、削除やテキスト修正を提案できます。提案は自動適用されず、エディターで確認してから適用します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"silvernine-trimscript": {
"command": "uvx",
"args": [
"trimscript"
]
}
}
}
起動コマンドuvx trimscript

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypitrimscript0.1.0

ツール

8

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
mediastringはい
languagestringいいえ

詳細

TrimScript

ci

文字起こしを編集して、動画を編集できます。 お使いのマシン上で動作します。無料のオープンソースです。AI による編集は提案として届き、承認するかどうかはご自身で決められます。

冒頭のやり直し部分を削除し、つなぎ言葉をカットし、編集箇所を聞きながら確認して、間を短くする様子

やり直した冒頭を削除し、つなぎ言葉をカットし、Tab キーで編集箇所を切り替えながら聞き、間を短くします:48.1 秒から 27.6 秒になります。デモのトークは合成音声です。スクリプトとスライドはこのデモ用に作成し、音声は Dia で生成しています。

▶ 50 秒のデモを見る:同じ編集を行った後、Claude Code が MCP サーバーを通じてカットを提案します。

uvx trimscript open my-video.mp4

uv と ffmpeg(brew install ffmpeg、apt install ffmpeg、winget install ffmpeg)が必要です。文字起こし、編集、書き出しはお使いのマシン上で行われます。アカウントもアップロードも不要です。コーディングエージェントを接続した場合、そのエージェント(およびその背後にあるモデルサービス)が文字起こしを読み取ります。

状況:開発初期です。Apple Silicon 搭載の macOS で開発しています。CI では、macOS、Linux、Windows でプッシュのたびに一連の処理(文字起こし、削除、書き出し)を実行します。エディター自体は、これまで macOS でのみ使用されています。

できること

  • ローカルで文字起こし:whisper.cpp を使用し、「um」や「uh」を整えずにすべて残すよう指示します。現時点では英語のみ対応しています。初回実行時にモデル(約 470 MB)をダウンロードします。
  • テキストを削除すると、動画もその部分をスキップします。 単語を選択して ⌫ を押します。削除した部分は、短縮できる秒数を示す小さなラベルに折りたたまれ、ページに完成後の編集内容が表示されます。ラベルを選択して ⌫ を押すと元に戻せます。また、スイッチを 1 つ切り替えて、削除したテキストをすべて表示することもできます。プレビューでは、再生中に削除した部分がスキップされます。
  • つなぎ言葉をカットすると、すべての um と uh を一度に削除できます。間を短くすると、1 秒を超えるすべての間を少し無音部分を残して短くできます。その後 Tab キーを押すと、編集箇所を順に切り替えながら、それぞれの前後 1.5 秒を聞けます。⌫ で 1 つを元に戻し、⌘Z ですべてを元に戻せます。
  • 文字起こしにない音声では、文字の間にある、文字起こしに含まれていない音声(認識エンジンが聞き逃した音、息、単語の一部)に移動して再生できます。聞いて、どうするかを判断できます。
  • つなぎ目を微調整できます。矢印キーで 10 ms 単位で調整し、そのたびにつなぎ目をまたいで音声を確認できます。
  • 音声をクリーニング:スイッチ 1 つでノイズを除去し、音量を調整し、軽くコンプレッションをかけ、ラウドネスを -14 LUFS にします。録音の長さは変わりません。
  • 聞き間違えた単語を修正できます(E)。メディアには変更を加えません。字幕には修正後のテキストが使われます。
  • 書き出し:MP4、WAV、SRT/VTT 字幕、または FCPXML に対応しており、すべての編集ポイントを引き続き調整できる状態で Final Cut Pro や DaVinci Resolve で編集を続けられます。
  • 元のデータは失われません。 編集内容は、動画の隣に保存される読みやすい JSON ファイルです。元のファイルは変更されず、書き出しによって上書きされることもありません。

コーディングエージェントと一緒に使う

TrimScript には MCP サーバーが付属しているため、Claude Code、Codex、その他の MCP クライアントで文字起こしを読み取り、編集を提案できます。エージェントの編集が通知なしに適用されることはありません。理由とともに提案として開いているエディターに表示され、適用するかどうかはご自身で決められます。

claude mcp add trimscript -- uvx trimscript mcp

次のようなことを依頼できます。

  • 「my-video.mp4 の途中でデモをやり直しています。最初の試みを削除するよう提案してください。」
  • 「話者の製品名は Acme です。文字起こしで聞き間違えられている箇所をすべて修正してください。」

ツール:transcribe、get_transcript、suggest_removal、correct_text、list_edits、withdraw、enhance_voice、export。

同じ操作をコマンドラインから実行できます。

trimscript transcribe talk.mp4
trimscript show talk.mp4 --words      # transcript with item ids
trimscript remove talk.mp4 w120 w188 --reason "repeats the intro"
trimscript fillers talk.mp4            # remove every um and uh
trimscript pauses talk.mp4             # tighten pauses over a second
trimscript accept talk.mp4             # accept the agent's suggestions
trimscript export talk.mp4 -o talk-edit.mp4

キーボード

キー動作
ドラッグ、Shift+クリック単語を選択します
⌫選択範囲を削除します。すでに削除されている場合は元に戻します
Space編集結果を再生します
ダブルクリックその単語から再生します
Tab / Shift+Tab次/前の候補(候補がない場合は編集箇所)に移動し、その箇所をまたいで再生します
Enter / Shift+Enter選択中の候補を承認/却下します。範囲を選択すると、その中のすべての候補が承認されます
L選択範囲または削除された部分をまたいで再生します
← → / Shift+← →選択した削除部分の開始点/終了点を10 msずつ移動します
E選択範囲のテキストを修正します
⌘Z / Shift+⌘Z元に戻す/やり直す

仕組み

  • 削除される各部分は、文字起こし項目(単語、フィラー、ポーズ)の連続した区間を対象とします。削除時間は単語から算出されるため、プレビューと書き出しの結果は常に一致します。
  • 編集点は単語の中間に置かれるか、ポーズと重なる場合は少し無音を残します。音声認識では、文末の単語がその後の無音部分まで引き延ばされることがよくあります。TrimScript は単語の境界を、実際に声が終わる位置まで戻します。
  • 書き出しでは動画をフレーム単位で分割し、音声を約1ミリ秒単位で切り分けます。そのため、編集回数がいくつあっても音声が映像からずれることはありません。
  • エディター、CLI、MCP サーバーは、すべて同じプロジェクトファイルを読み書きします。どこからでも編集でき、開いているエディターには変更がリアルタイムで反映されます。エディターでの元に戻す操作は、エディター自身が行った変更のみを取り消します。

実際の講演でのテスト

38C3の単独登壇者による講演3件でテストしました。それぞれ、文字起こし、フィラーの削除、ポーズの短縮、音声クリーンアップを有効にした書き出しを行い、残った箇所を確認するため、より大きなモデル(Whisper large-v3-turbo)で書き出し結果を再度文字起こししました。

LoRa meshACE up the sleeveGoing Long
長さ32.9分40.2分36.2分
削除時間(フィラーの削除、ポーズの短縮)5.2分3.4分6.5分
書き出し後も聞こえるフィラー91131
書き出し時間と予定時間の差-0.20秒-0.16秒-0.10秒
ラウドネス-14.1 LUFS-14.3 LUFS-14.3 LUFS
文字起こし時間1.2分1.8分1.7分
  • 3件の講演全体で582個のフィラーを削除し、書き出し後も51個が聞き取れました。フィラーの数は音声認識が検出したものであり、登壇者への評価ではありません。
  • 残した単語の3.0~4.5%は、2回目の文字起こしで異なる表記になりました。その大半は編集点から離れた箇所にあり、専門用語の聞き取りが音声認識によって異なったもので、編集によって単語が切れてしまったものではありません。
  • M1 Proで測定しました。手法と生データ:spikes/e2e-real。

講演:「Building Your First LoRa Mesh Network From Scratch」(WillCrash)、「ACE up the sleeve: Hacking into Apple's new USB-C Controller」(stacksmashing)、「Going Long! Sending weird signals over long haul optical networks」(Ben Cartwright-Cox)。38C3でC3VOCが録画し、CC BY 4.0のもとmedia.ccc.deで公開されたものです。録画データはこのリポジトリに含まれておらず、改変もしていません。測定結果のみを報告しています。登壇者はTrimScriptをレビューまたは推奨していません。

対象範囲

文字起こしを通じて録音済みの音声を編集するという発想は以前からあり、研究では少なくともWhittakerとAmentoの「Semantic Speech Editing」(CHI 2004)、Berthouzoz、Li、Agrawalaの「Tools for Placing Cuts and Transitions in Interview Video」(SIGGRAPH 2012)に見られ、それ以降は多くのエディターに実装されています。TrimScriptは、講演、チュートリアル、ポッドキャスト、インタビューなど、話し言葉の録音を対象にした、小規模で独立したローカル実装です。

マルチトラックのタイムライン、画面録画、音声クローン、共同作業には対応していません。本格的なエディターが必要な場合は、FCPXMLを書き出してください。

クレジット

商標

Final Cut Pro は Apple Inc. の商標です。DaVinci Resolve は Blackmagic Design の商標です。Claude Code は Anthropic の商標です。Codex は OpenAI の商標です。これらの名称は、TrimScript が対応する製品を示す目的でのみ使用しています。TrimScript は独立したプロジェクトであり、これらの企業との提携、支援、推奨を受けていません。

ライセンス

MIT。LICENSE をご覧ください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。