# Video Subtitles

> 動画や音声をブラウザ内で SRT / VTT に書き起こし。Whisper large v3 turbo・Qwen3-ASR は WebGPU で GPU 上で動き、なければ CPU で。Hy-MT2 で対訳字幕も。

- URL: https://bytescope.dev/ja/video-subtitles/
- Locale: ja · Also: [en](https://bytescope.dev/en/video-subtitles.md) · [zh-Hant](https://bytescope.dev/zh-Hant/video-subtitles.md)
- Runs: ファイルはブラウザから送信されません — 処理はすべてローカルで行われます。
- Requires: Whisper (downloaded once) transcribes in any browser with WebGPU, and Whisper base also on WebAssembly, several times slower. Gemini Nano, Chrome Speech Recognition and the translation engines need Chrome 138 or newer on desktop. Not mobile browsers.
- Updated: 2026-09-08

## What it does

授業や会議の録音を、クラウドの音声認識に渡したくないことがあります。動画か音声をドロップすると、選んだ音声認識エンジンがこのタブで書き起こします。Whisper モデル——base・small・large（v3-turbo）の3種類で、一度ダウンロードすればブラウザに保存され、WebGPU でグラフィックカード上を動きます——か、Chrome 内蔵の Gemini Nano（Prompt API 経由、こちらからのダウンロードなし）のどちらかです。もう1つ、独立した翻訳の選択肢があります。一度ダウンロードして WebGPU でグラフィックカード上を動く Hy-MT2、Chrome 内蔵の Translator、Gemini Nano のいずれも端末内で動くので、同じ1回の処理で対訳字幕まで作れます。出力は `SRT`、`VTT`、またはプレーンテキストで、ダウンロード前に時刻を少し直せる表があります。形式変換は Subtitle Converter、全体のずれは Subtitle Sync が隣にあります。

### モデル

音声認識：Whisper base（軽くて速く、CPU でも動く）、Whisper small（ふだんの中間）、Whisper large v3 turbo（使えるグラフィックカードがあるなら、英語・中国語・日本語のファイルはたいていこれ）、Qwen3-ASR 0.6B（GPU がないときはたいていこれ）、Qwen3-ASR 1.7B（大きい方の Qwen3-ASR）、Confucius4-R2T2（R2T2。GPU 上で認識したそばから単語を流すモデル）、Gemini Nano（Chrome 内蔵、こちらからのダウンロードなし）、Chrome Speech Recognition（Web Speech。再生速度でしか聞けず、端末内パックがなければ音声が Google に送られる）。正確なタイムスタンプ：Qwen3-ForcedAligner 0.6B——任意、既定はオフ、約 1.85 GB。仕上がった文字起こしを単語ごと・文字ごとに音声へ合わせます。翻訳：Hy-MT2 1.8B（Tencent Hunyuan-MT 2。GPU 上で動き、使えるグラフィックカードがあれば既定）、Chrome Translator（内蔵、GPU がないときの既定）、Gemini Nano。どれもブラウザ内で動きます。Whisper・Qwen3-ASR・R2T2・Hy-MT2・ForcedAligner は WebGPU 経由でグラフィックカード上で走り、shader-f16 のない古いカード（GTX 10 シリーズなど）向けの互換 GPU ビルド、カードが対応していれば f16 を使う高速 GPU ビルドがあり、使える GPU がなければ Whisper・Qwen3-ASR・ForcedAligner は CPU（WebAssembly）で遅めに動き、R2T2 は GPU 向けのままで、翻訳は Hy-MT2 から Chrome Translator に切り替わります。一度ダウンロードすれば ByteScope の全ツールで共用です。

### どのモデルを選ぶか

ファイルを処理するなら、英語・中国語・日本語のおすすめは私たちの精度測定で決めています。使えるGPUがあればたいてい Whisper large（v3-turbo）、なければたいてい Qwen3-ASR 0.6B で、同じくらい正確なら、もうダウンロードしてあるモデルが優先されます。ダウンロードしたモデルは録音全体をこの端末が出せる最速で処理し、1回のダウンロードを ByteScope の全ツールで共用します。Whisper の3つのサイズは速さと正確さのトレードオフで、base は小さくて速く、WebGPU がなくても CPU で（ゆっくり）動きます。small はその中間、large（v3-turbo）はいちばん重いモデルで、GPU があれば base や small より正確でもあります。Gemini Nano は Chrome が提供している環境ならダウンロード不要で、音声を30秒の窓に切って一つずつモデルへ渡します。Chrome 内蔵の音声認識も一覧にありますが、カードに正直な但し書きが付きます。再生速度でしか聞けないので1時間の動画には1時間かかり、既定モードでは音声が Google のサーバーへ送られます。ダウンロードは必ず確認してから始まります。まだこの端末にないモデルは、容量・空き容量・モバイル回線かどうかを先に表示し、あなたが押してから始まります。ダウンロード、検証、メモリへの読み込み、ウォームアップの各段階に進捗が出て、「速度テスト」は内蔵の短い音声を流し、この端末なら1時間の音声にどれくらいかかるかの目安を出します。おすすめには一行の理由が付き、自分で選び直した内容は記憶されます。どのモデルを選んでも、「精密な時刻」（既定はオフ）を入れると、できあがった文字起こしに対して2つ目のローカルモデル Qwen3-ForcedAligner 0.6B が音声との位置合わせを行います。英語は単語ごと、中国語と日本語は文字ごとに音声へ合わせるので、各字幕が実際に話された位置で始まり終わり、6秒前後を超える字幕は単語の切れ目で分割されます。約1.85 GBの追加ダウンロードが1回だけ必要で（ほかのモデルと同じく必ず確認してから）、GPUがあればそこで、なければCPUでかなり遅く動きます。中国語・英語・日本語は完全対応、ヨーロッパの数言語は部分対応、韓国語は非対応です。音声と照合できなかった文は、音声認識モデルの時刻のまま残ります。

### 音がモデルに届くまで

音軌は `AudioContext` / `OfflineAudioContext` でデコードします。Web Audio は Window 限定なので、この工程は worker に出せません（コーデック自体はブラウザが専用スレッドで回します。デコードは 16 kHz を要求し、そのレートでコンテキストが作れないときは worker がリサンプルします。コンテナ内の最初の音声トラックだけをデコードします）。モノラル化とリサンプルは worker です。そのうえで音声の窓をエンジンに一つずつ渡します。長いファイルで文脈を埋めないためです。Whisper のダウンロード進捗はこのページ自身が測ったものです。Gemini Nano はこのマシンで初めて使うときに端末内モデル（しばしば数 GB）のダウンロードが走り、そちらの進捗はブラウザ自身の `downloadprogress` です。映像に字幕を焼き込むのは v1 ではやりません。ffmpeg.wasm を足す理由が、まだ検証できていないからです。

### 対訳字幕

翻訳の選択肢で翻訳先の言語を選ぶと、書き起こしの後に各 cue が端末内で訳され、対訳の `SRT` / `VTT`（原文が上か訳文が上かは選択式）か、訳文のみとして書き出されます。Hy-MT2 は一度だけダウンロード（約 1.3 GB）して WebGPU でグラフィックカード上を動く 1.8B のモデルで、使える GPU があればこれがおすすめです——こちらのブラインド比較で精度が上でした。Chrome の Translator は言語ペアごとに小さな言語パックを取る速い方で、使える GPU がないときの既定です。Gemini Nano は大きめの内蔵モデルで cue あたりは遅めです。選択肢を「翻訳なし」のままにすれば、翻訳のパイプラインは一切動きません。

### できないこと

Whisper は WebGPU か WebAssembly があればどこでも動くので、書き起こし自体は Chrome に縛られません。Gemini Nano、Chrome 内蔵の音声認識、内蔵の翻訳エンジン2つは Chrome 限定で、Firefox と Safari にはありません。翻訳の Hy-MT2 は Whisper と同じく、WebGPU のあるブラウザならどれでも動きます。Edge は Chromium ですが、このページは測ったことだけを書きます。Nano はモデルが受け付けるハードウェアも要り、`unavailable` は普通の答えであって不具合ではありません。クラウドへの逃げ道もありません——唯一の例外は Chrome 内蔵の音声認識の既定モードで、これはもともとクラウドのサービスで、カードにもそう書いてあります。書き起こしの質は、そのクリップ上で選んだモデルそのものです。抜けや時刻のずれは表で直し、全体が同じだけ遅れているなら Subtitle Sync へ渡します。

## Limits

Does not burn subtitles into the video or transcribe languages the chosen model lacks; it produces an SRT/VTT file — optionally bilingual — from a local video or audio file.

## FAQ

### 動画や音声はアップロードされますか。

されません。ただし明記された例外が1つあります。デコード、分割、Whisper や Prompt API の呼び出しはすべてこのタブです。通信があるのは、このマシンが初めてモデルを取るときだけで、録音はそのリクエストに乗りません。例外は Chrome 内蔵の音声認識の既定モードで、音声を Google のサーバーへ送ります。カードにそのバッジが付いていて、Whisper か Gemini Nano を選べば完全に避けられます。

### どのモデルを選べばいいですか。

英語・中国語・日本語なら、おすすめの印が付いたモデルを選べば大丈夫です。使えるGPUがあればたいてい Whisper large（v3-turbo）、なければたいてい Qwen3-ASR 0.6B。ただし日本語で Qwen3-ASR 1.7B をダウンロード済みなら、そちらが優先されます。測定で精度が並んだモデルが複数あるときは、この端末にすでにあるものが選ばれます。ダウンロードを省くためであって、並んだ他のモデルより正確だからではありません。ほかの言語なら Whisper small。1回のダウンロードでグラフィックカード上を動き、多くの言語で精度が良好です。この端末に WebGPU がない、あるいはファイルが短くてとにかく速く結果が欲しいなら Whisper base。CPU でも動きますが遅くなります。時間より正確さが大事なら Whisper large（v3-turbo）。ダウンロードがいちばん大きく、いちばん遅いモデルです。何もダウンロードしたくなくて Chrome が提供しているなら Gemini Nano。Chrome 内蔵の音声認識は短いファイル以外では避けてください。再生速度でしか聞けないので1時間は1時間かかり、既定モードでは音声をアップロードします。迷ったらカードの「速度テスト」を。内蔵の短い音声を流して、この端末で1時間の音声にどれくらいかかるかを答えてくれます。

### どのブラウザで書き起こしできますか。

Whisper は WebGPU のあるブラウザならどれでも書き起こせて、Whisper base は WebGPU がなくても WebAssembly 経由で CPU で動きます。Gemini Nano は音声入力つき Prompt API の Chrome が必要で、Firefox と Safari では動きません。Edge は Chromium なので動く可能性はありますが、測るまで対応表では未測定です。翻訳エンジンのうち Chrome の Translator と Gemini Nano も同じく Chrome 限定ですが、Hy-MT2 は一度ダウンロードしてグラフィックカード上で動くので、WebGPU のあるブラウザならどれでも翻訳できます。使えないブラウザでも、説明と表は残します。

### 初回だけ巨大なダウンロードが走るのはなぜ。

モデルであり、あなたのファイルではありません。Whisper モデルは、容量を確認してダウンロードを押した後にモデルの配布元から一度だけ取得され、ブラウザに保存されて ByteScope の全ツールで共用されます。「ダウンロード済みモデルの管理」で一覧と削除ができます。Gemini Nano は Chrome 自身が取ります（しばしば数 GB。ディスクと GPU／メモリの条件もあります）。パーセントは `LanguageModel.create({ monitor })` の `downloadprogress` です。以降はオフラインで書き起こせます。

### 字幕を映像に焼き込めますか。

この版ではできません。`SRT` か `VTT` をダウンロードして、編集ソフトで多重化してください。焼き込みは ffmpeg.wasm が要り、今バッチでは入れていません。

### 時刻がずれている、または一文欠けています。

表を直してください。どのモデルもスタジオ向けの ASR ではなく、チャンク単位でずれたり一行落ちたりします。大きい Whisper ほど落ちる行は少なめです。全部が同じだけ遅れているなら Subtitle Sync でシフト。ASS や SBV が要るなら Subtitle Converter です。

### 誰が話しているかのラベルは付けられますか。

実験的な機能として付けられます。書き起こしが終わったあとに「話者を区別」を押すと、声の特徴をもとに各行が「話者 1・2・3…」に分かれます。人数は自動のままでも、2〜10 人で指定しても構いません。話者の名前を一度変えれば、その人の行はすべて変わります。書き出すときに「話者名を付ける」にチェックを入れると、SRT は各行の前に `[名前] `、WebVTT は `<v 名前>` の voice タグ、TXT は続けて話した行を名前ごとにまとめて出力します。チェックを外したままなら、ファイルはこれまでとまったく同じです。できるのは声を分けることだけで、誰なのかは分かりません。二つのモデルはこのブラウザの中で動くので、この処理で音声がどこかへ送られることはありません。初回だけ 31 MB のモデル（pyannote segmentation-3.0、MIT ライセンス／WeSpeaker ResNet34-LM、CC BY 4.0）をダウンロードし、次回以降のためにブラウザに保存します。WebGPU があれば音声 1 時間あたり数分、なければ CPU で音声 10 分あたり 6 分ほどかかります。精度は過信しないでください。公開されている録音で試したところ、発話時間の 9〜26% が取りこぼされるか別の人に振り分けられました。実際の会議では、話し声が重なった箇所が誤りの 40〜46% を占め、「うん」「はい」のような短い返事はほとんど外れます。いちばん効くのは人数の読み違いで、ある録音では二人が一人にまとめられただけで 13% から 39% に悪化しました。人数を自分で指定すれば必ず良くなるわけでもなく、実在する二人が一人にまとめられることもあります。中国語は短くテンポの速いやり取りほど取りこぼしが増え、日本語は今のところ合成した会話でしか試していません。

## Related tools

- [Subtitle Converter](https://bytescope.dev/ja/subtitle-converter.md) — できた SRT や VTT を ASS、SBV、LRC に変換します。
- [Subtitle Sync](https://bytescope.dev/ja/subtitle-sync.md) — 全体が同じだけ遅れているなら、時刻をずらすか伸ばします。
