この手順の価値は字幕より「検索できるようになること」
字幕を作るのが目的だと思われがちですが、実務でいちばん効くのは工程 4 です。
3 時間のインタビュー素材から使う 2 分を探すとき、いまは映像を頭出しして探します。文字起こしがあれば、テキストを検索して時刻に戻れます。 字幕を出さない案件でも、この工程だけで元が取れます。
詰まるのは上限(工程 3)
いちばん最初にぶつかるのがこれです。
Files can be up to 25 MB.
25MB です。 動画の音声としては短い部類で、長尺の収録はまず超えます。
超える場合の案内は 2 つ書かれています。
- 音声を圧縮する
- 25MB 以下に分割する。ただし文の途中で切らないこと(
avoiding mid-sentence splits to preserve context)
2 番目が重要です。 時間で機械的に等分すると、切れ目にかかった発話が両側で壊れます。「文の途中で切らない」を守るには、無音区間で切る必要があります。
つまり、分割は「25MB ごと」ではなく「無音で切って、25MB を超えない範囲でまとめる」という処理になります。ここを雑にやると、後段の精度が下がった原因が分割にあることに気づけません。
字幕を作るならモデルが決まる(工程 5)
時刻付きの出力について、公式はこう書いています。
timestamp_granularities[]はwhisper-1専用
字幕を作るなら whisper-1 を使うことになります。 新しいモデル(gpt-transcribe など)は、文字起こしとしては選択肢に入りますが、タイムスタンプが要る用途では選べません。
verbose_json と組み合わせると、**単語単位(word)とセグメント単位(segment)**の時刻が得られます。
- セグメント単位 — 字幕の 1 行に対応させやすい
- 単語単位 — カラオケ字幕や、特定の語で映像を切る用途
工程 2 の時点で工程 5 の要否を決めておく必要があります。後から「やっぱり字幕も」となると、別モデルで取り直しになります。
話者が複数いる場合
gpt-4o-transcribe-diarize が話者の識別・ラベル付けに対応しています。インタビュー、対談、会議の素材ではこちらになります。
ただし話者分離とタイムスタンプは別モデルです。 「誰がいつ何を言ったか」を両方欲しい場合、どちらを優先するかを決めるか、2 回通すことになります。ここは出典上、1 つのモデルで両立できるとは書かれていません。
この図書館の 3 ツールとの関係
音声を直接読めるのは Gemini CLI だけです(read_file がテキスト・画像・音声・PDF に対応)。Claude Code の Read は音声に対応していません(実務ファイルを読ませる)。
つまり用途が分かれます。
| やりたいこと | 使うもの |
|---|---|
| 字幕を作る(時刻が要る) | 文字起こし API(whisper-1) |
| 音声の内容を要約・確認する | Gemini CLI にそのまま渡す |
| 大量の素材をまとめて処理する | 大量ファイルを一括処理する |
素材が何十本もあるなら、1 本ずつ手で流すのではなくループにします。そのときの注意(終了コード 0 でも中身が失敗のことがある、出力形式を固定する)はそのまま当てはまります。
最後は人が通しで見る(工程 6)
この工程を削ると成果物になりません。 機械が苦手なものが決まっています。
- 固有名詞 — 人名、社名、商品名。文脈から推測できないものは高確率で外れる
- 数字 — 金額、日付、型番。聞き取れていても表記が揺れる
- 言い間違いと言い直し — 話者が直した後の形にするか、そのまま残すかは編集判断
確度 C にしているのは、この工程の型を出典で示せないからです。「どのくらい直りますか」という問いに答えられる公開データを見つけられていません。
この分野で分かっていないこと
- 国産の文字起こしサービスを調べていない。 日本語の精度は各社が自社条件で測った数字しかなく、比較できる形になっていない
- 編集ソフト側の文字起こし機能を確認できていない。 Adobe Premiere Pro のテキストベース編集を確認しようとしたが、公式ヘルプへの接続がタイムアウトして取得できなかった
- SRT / VTT への出力が公式ドキュメント上で明示されているか確認できていない。タイムスタンプは得られるが、字幕ファイル形式そのものへの言及は見つけられなかった
- 話者分離とタイムスタンプの両立が可能かどうかの記載が無い
- 実名の制作事例が 0 件(動画制作・編集の巻)