ByteScope

Live Subtitles

タブを共有して音声にチェック。配信を自分の言語で読む、全部このマシンの中で。

ファイルはブラウザから送信されません — 処理はすべてローカルで行われます。

配信が流れているタブを共有して「タブの音声を共有」にチェックを入れると、このページが聞こえた内容に字幕を付けて翻訳します。認識も翻訳もこのマシンの中だけ。音声はどこにも送りません。

この組み合わせが端末にあるか確認中…

待機中

開始を押して、配信が流れているタブを選んでください。

文字の大きさ文字の大きさ23 px
背景背景90 %

実測の遅れ

このマシンで字幕が実際にどれだけ遅れたか。各区間の音声が終わった時刻から、その字幕が画面に出た時刻までを毎回計っています。仕様書の数字ではありません。

まだ計測していません

これまで 0 行 — 中央値には最低 3 行必要です。

セッションの記録

開始してから認識できた全文を、開始時刻を 0 とした時間軸で持っています。配信が終わったら落としてください。タブを閉じれば残りません。

まだ何も記録していません。

書き出す内容

できること・できないこと

  • 字幕は音声より 3〜8 秒遅れます。同期字幕ではありません。一文が終わらないとモデルは全部を聞けず、そこから答えが返るまでにさらに数秒かかります。
  • 訛り、かぶり声、BGM、配信音質の悪さで精度は落ちます。字幕はあくまで推測であって、発言の記録ではありません。
  • Chrome の組み込み AI(Gemini Nano)と音声入力が必要です。初回はモデルを取得します(数 GB になることも)。受け付けないハードウェアでは `unavailable` と返ります。クラウドへの逃げ道はありません。
  • 取り込んだ音声も、文字起こしも、訳文もこのタブから出ません。通信するのは Chrome 自身のモデル取得だけです。

音源の選び方

ここが成否を分けます。Chrome は頼まないと音声をくれず、チェックを忘れると「ページが壊れている」ようにしか見えません。

共有する対象 — Chrome タブ, タブの音声を共有共有する対象Chrome タブウィンドウ画面全体タブの音声を共有共有
  1. 1開始を押すと、Chrome 自身の共有ダイアログが開きます。
  2. 2「Chrome タブ」を選び、配信が流れているタブを指定します。
  3. 3共有を押す前に「タブの音声を共有」にチェック。これがないと無音で届きます。

タブ共有はどの OS でも使えます。ウィンドウや画面全体の音声は Windows だけ。macOS と Linux ではダイアログに音声の選択肢自体が出ないので、タブを共有してください。

ブラウザ対応

各行は実測か、未測定と明記したかのどちらかです。Edge は Chromium なので動く見込みですが、このページで誰も試していません。

機能ChromeEdgeFirefoxSafari
タブ音声の取り込み共有タブに対して `getDisplayMedia({ audio: true })` が音声トラックを返すこと。一部 / 未測定不可不可
ウィンドウ/画面の音声`systemAudio: "include"`。Windows のみ。他はダイアログに出ません。一部 / 未測定一部 / 未測定不可不可
Prompt API(`LanguageModel`)Web の Prompt API は Chrome 148 以降。Chrome 138 は拡張機能限定です。一部 / 未測定不可不可
音声マルチモーダル`expectedInputs: [{ type: "audio" }]` が必要です。ハードウェアやモデル未取得で unavailable と返ることもあります。一部 / 未測定不可不可
Translator API言語ペアごとの端末内モデル。無いペアは翻訳なしの字幕になります。一部 / 未測定不可不可
Document Picture-in-Picture字幕を浮かせる小窓。無い場合はページ内に出したままです。一部 / 未測定不可不可

今このブラウザ

  • getDisplayMedia
  • display audio
  • LanguageModel
  • LanguageModel audio
  • Translator
  • documentPictureInPicture
  • wakeLock

このツールについて

読めない言語の配信は、ブラウザがまだ助けてくれない数少ないものです。このページはそこを埋めます。配信が流れているタブを共有して「タブの音声を共有」にチェックを入れると、いま自分が聞いている音がそのままこのページに届きます。AudioWorklet が PCM を取り出し、発話区間検出が一文ずつに切り、Chrome の端末内 Gemini Nano が Prompt API 経由で文字起こしし、Translator API が訳します。原文と訳文の二段は Document Picture-in-Picture の小窓に浮かせて、映像の横に置けます。アップロードは一切なく、どのプラットフォームの字幕トラックにも配信プロトコルにも触りません。音はあなた自身のスピーカーから来ていて、画面録画と同じ許可の上に成り立っています。

音声がここに届くまで

共有ダイアログが仕掛けのすべてです。getDisplayMedia は映像トラックと音声トラックを返しますが、音声が手に入った時点で映像トラックは止めます。このページに画は要りません。音声はモノラル化して 16 kHz にリサンプルし、リングバッファに書き込みます。ヒステリシス付きのエネルギー判定が文の切れ目を決めます。先頭の子音を落とさないよう 300 ms 前から拾い、700 ms の無音で一文を閉じ、12 秒で強制的に切って独り語りが行列を止めないようにします。閉じた一文は WAV になってモデルへ。待てるのは最大 4 件で、溢れたときに捨てるのは古いほうです。40 秒前の音声に対する字幕は、遅いのではなく間違っているからです。

遅れは実在し、このページはそれを計る

字幕は音声より 3〜8 秒遅れます。これは詰めれば消える不具合ではありません。一文が終わらないとモデルは全部を聞けず、そこから答えが返るまでにさらに数秒かかるからです。だからこのページはどこかの数字を引用しません。各区間の音声が終わってから、その字幕が出るまでの差を毎回計り、直近 12 件の中央値を出します。3 件に満たないうちは、安心できるゼロではなく「まだ計測していません」と出します。あなたのマシンが 12 秒と出したなら、それがあなたのマシンの実力で、ページはそう表示します。

できないこと

Firefox と Safari はそもそも共有タブの音声をページに渡せません。Chrome は渡せますが、音声プロンプトにはこのマシンが受け入れるモデルも要ります。unavailable は故障ではなく通常の返事で、クラウドへの逃げ道も Whisper のダウンロードもありません。ウィンドウや画面全体の音声は Windows のみ。ほかの OS ではダイアログに音声の選択肢が出ないので、タブを共有してください。訛りやかぶり声、BGM は文字起こしを劣化させ、悪い文字起こしの訳文はさらに悪くなります。手元に録画があるなら、Video Subtitles が時計に追われずに同じ仕事をします。

よくある質問

音声はこのパソコンから出ていきますか。

出ません。取り込みも認識も翻訳もこのタブの中です。通信するのは Chrome 自身の一度きりのモデル取得だけで、そこにあなたの音声は含まれません。

字幕が数秒遅れるのはなぜですか。

一文が終わらないと文字起こしできず、端末内モデルはそこからさらに数秒かかるからです。3〜8 秒を見込んでください。動作中はページ自身が遅れを計って中央値を出すので、読んでいるのは約束ではなく実測値です。

タブを共有したのに何も起きません。

Chrome のダイアログで「タブの音声を共有」にチェックが入っていない可能性が高いです。入れないと音声トラックのないストリームが、エラーも出さずに届きます。停止して開始し直し、共有を押す前にチェックしてください。

タブではなくデスクトップアプリを取り込めますか。

Windows なら可能です。ウィンドウか画面全体を選んで音声の選択肢にチェックを入れてください。macOS と Linux ではその対象に音声の選択肢が出ないので、Chrome タブだけが道になります。実際に何が使えるかは、ページの対応表がこのブラウザから返ってきた通りに出します。

終わったあとに全文は残りますか。

残ります。開始以降に認識した全文を、開始時刻を 0 とした時間軸で保持し、原文だけ・訳文だけ・両方のいずれかを SRT か TXT で保存できます。タブを閉じれば消えます。どこにも保存していません。