file-transcribe について
File Transcription Skillは、プロジェクトのAIプロキシ経由でGeminiを使い、音声・動画ファイルを文字起こしするスキルです。会議、インタビュー、講義、ポッドキャストなどに対応し、話者ラベルやタイムスタンプ、言語ヒント、語彙を指定できます。
主な機能
- 01音声・動画ファイルの文字起こし
- 02録音言語の自動検出
- 03話者ラベルとタイムスタンプの追加
- 04言語ヒントと語彙の指定
- 05長時間録音の分割と結合
活用シーン
- 01会議録音のテキスト化
- 02講義やポッドキャストの文字起こし
- 03話者ラベル付きインタビュー記録の作成
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ open-kbs/ skills-file-transcribe --skill file-transcribeインストール後、Claude Code で/file-transcribeを入力して読み込まれたか確認します。
同梱ファイルtranscribe.mjs
詳細
ファイル文字起こしスキル
プロジェクトの AI プロキシを通じて、Gemini で音声または動画ファイルを文字起こしします。 API キーは不要です。チャット呼び出しと同様に、プロジェクトのクレジットからトークンごとに課金されます(最終行に消費したクレジットが表示されます)。言語は自動検出されます。1 つの録音内で複数の言語が混在していても問題ありません。
デフォルトのエンジンは gemini-flash-latest です。かぶりや聞き取りにくい箇所も保持し、語彙リストに従い、話者をラベル付けします。MODEL=gemini-3.5-transcribe にすると、Google の専用 STT モデルに切り替わります。このモデルはより低コストで単語レベルのタイムスタンプを出力しますが、複数話者の録音で聞き取りにくい箇所を黙って省略するため、明瞭な単一話者の音声にのみ使用してください。
使用する場面
- 音声ファイル(MP3、WAV、OGG、FLAC、M4A など)を文字起こしする
- 動画ファイル(MP4、MKV、MOV、AVI、WebM など)を文字起こしする
- 会議/インタビュー/講義/ポッドキャストをテキスト化する(必要に応じて発言者も記録)
コマンド
node .claude/skills/file-transcribe/transcribe.mjs <input-file> [output.txt]
(npx skills add でインストールした場合は .agents/skills/file-transcribe/ にあります。)
<input-file>— 音声または動画ファイル(必須)[output.txt]— 出力先のパス(デフォルトはtranscript.txt)
例
# Auto-detected language, clean readable text
node .claude/skills/file-transcribe/transcribe.mjs .uploads/meeting.mp3
# Who said what (Speaker 1 / Speaker 2 …) with a time per paragraph
SPEAKERS=1 TIMESTAMPS=1 node .claude/skills/file-transcribe/transcribe.mjs .uploads/interview.mp4 interview.txt
# Language hint + names/terms the model must spell right
TRANSCRIBE_LANG=bg VOCAB="Пламен,PartsHub,Kubernetes" node .claude/skills/file-transcribe/transcribe.mjs .uploads/call.ogg
# Cheap dedicated STT model with word-level timestamps (clean single-speaker audio)
MODEL=gemini-3.5-transcribe TIMESTAMPS=1 node .claude/skills/file-transcribe/transcribe.mjs .uploads/lecture.mp3
オプション(環境変数)
| 変数 | デフォルト | 説明 |
|---|---|---|
MODEL | gemini-flash-latest | または gemini-3.5-transcribe(上記を参照) |
TRANSCRIBE_LANG | 自動 | 言語のヒント:bg、en、de-DE など |
STYLE | smart | smart = 句読点と書式を整え、フィラーを削除します。verbatim = 発話されたすべての単語をそのまま記録します |
SPEAKERS | オフ | 1 → 「Speaker N:」形式の段落 |
TIMESTAMPS | オフ | 1 → 各段落の冒頭に [hh:mm:ss] を付加します。MODEL=gemini-3.5-transcribe の場合は <output>.words.json(単語ごとの開始/終了時刻)も出力します |
VOCAB | — | 正しい表記を指定する名前/用語をカンマ区切りで指定します(gemini-3.5-transcribe では SPEAKERS/TIMESTAMPS と併用できません) |
CHUNK_SECONDS | 1800 | 長時間の録音を分割する時間です。上限は 3600 です(1 回のプロキシ呼び出しは 3 分以内に完了する必要があります)。gemini-3.5-transcribe で SPEAKERS/TIMESTAMPS を使用する場合は 1800 です(1 回の呼び出しの上限)。単体でのデフォルトは 1500 です |
BATCH | 2 | 並列で処理するチャンクの数 |
仕組み
- ffmpeg で入力をモノラル 16 kHz の MP3 に変換します(動画の音声トラックも対象です)
CHUNK_SECONDSを超える録音はチャンクに分割します- 各チャンクをプレビューサーバーから配信し、選択したモデルを使ってプロキシの
/v1/audio/transcriptionsに送信します - 結果を順番につなぎ合わせ(タイムスタンプにチャンクのオフセットを加算)、書き出します
- 一時ファイルを削除します
話者ラベルはチャンクごとに付けられます。長時間の録音では、チャンク 2 の「Speaker 1」がチャンク 1 の「Speaker 1」と同じ話者である保証はありません。複数話者のファイルで話者の一貫性を保つ必要がある場合は、録音を 1 チャンク以内に収めてください(CHUNK_SECONDS は最大 3600 に設定できます)。
gemini-3.5-transcribe では、SPEAKERS/TIMESTAMPS を指定すると逐語スタイルが強制されます。finish_reason の警告で終了するチャンクは、モデルの出力上限によって途中で切れています。CHUNK_SECONDS を小さくしてください。
要件
ffmpeg(ffmpeg -versionが失敗する場合はsudo apt-get update && sudo apt-get install -y ffmpegを実行します)- ホスト型プラットフォーム(Studio コンテナーでは
SERVER_URLとKB_IDが設定済み)、または Studio 外で単体利用する場合はGEMINI_API_KEY
ワークフロー
- 入力ファイルが存在することを確認します(
.uploads/またはユーザーが指定したパス) - コマンドを実行します。最終行に消費したクレジットが表示されます
- 出力ファイルを読み込み、文字起こし結果をユーザーに提示します
- 文字起こし結果を、ユーザーが指定した場所へ移動または保存します