ByteScope

Live Subtitles

Share the tab, tick Share tab audio, and read the stream in your language — all on this machine.

Your files never leave your browser — all processing is local.

Share the tab a stream is playing in, tick “Share tab audio”, and this page captions and translates what it hears. Recognition and translation both run on this machine; the audio is never uploaded.

Checking whether this device has that language pair…

Not listening

Press Start and pick the tab the stream is playing in.

Text sizeText size23 px
BackdropBackdrop90 %

Measured lag

How far behind the audio the captions actually landed on THIS machine, measured from the end of each segment's audio to the moment its caption appeared. Nothing here is a claim from a spec sheet.

not measured yet

0 caption(s) so far — a median needs at least 3.

Session transcript

Everything recognised since Start, with times counted from the start of the session. Download it when the stream ends — nothing is kept after you close the tab.

Nothing recorded yet.

Include

What this does and does not do

  • Captions run 3–8 seconds behind the audio. This is not a synchronised subtitle track: a sentence has to finish before the model can hear all of it, and the model then takes seconds to answer.
  • Accuracy drops with accents, crosstalk, background music and poor stream audio. Treat a caption as a good guess, never as a record of what was said.
  • Needs Chrome's built-in AI with audio input (Gemini Nano). The first run on a machine downloads the model — often several gigabytes — and hardware that cannot take it reports `unavailable`. There is no cloud fallback.
  • The captured audio, the transcript and the translation stay in this tab. The only network request is Chrome's own model download.

Picking the source

The one step that decides whether this works. Chrome's picker gives you audio only if you ask for it, and forgetting the checkbox looks exactly like a page that is broken.

Choose what to share — Chrome Tab, Share tab audioChoose what to shareChrome TabWindowEntire ScreenShare tab audioShare
  1. 1Press Start. Chrome opens its own share picker.
  2. 2Choose the “Chrome Tab” row, then the tab the stream is playing in.
  3. 3Tick “Share tab audio” before you press Share. Without it the stream arrives silent.

Tab sharing works on every platform. Window and whole-screen audio is Windows-only — on macOS and Linux the picker simply has no audio option there, so share a tab instead.

Browser support

Every row is either measured here or marked untested. Edge is Chromium and probably works, but nobody has run this page on it.

FeatureChromeEdgeFirefoxSafari
Tab audio capture`getDisplayMedia({ audio: true })` returning an audio track for a shared tab.YesPartial / untestedNoNo
Window / screen audio`systemAudio: "include"`. Windows only; the picker omits it elsewhere.Partial / untestedPartial / untestedNoNo
Prompt API (`LanguageModel`)Web Prompt API from Chrome 148. Chrome 138 is extensions only.YesPartial / untestedNoNo
Multimodal audio promptNeeds `expectedInputs: [{ type: "audio" }]`. This machine can still answer unavailable, for hardware reasons or a pending download.YesPartial / untestedNoNo
Translator APIPer-pair on-device models. A missing pair means captions without translation.YesPartial / untestedNoNo
Document Picture-in-PictureThe floating caption window. Without it the captions stay in the page.YesPartial / untestedNoNo

This browser, right now

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

About this tool

A stream in a language you do not read is the one thing a browser still cannot help with. This page can: share the tab it is playing in, tick "Share tab audio", and Chrome hands this page the sound you are already listening to. An AudioWorklet taps the PCM, a voice-activity detector cuts it into sentences, Chrome's on-device Gemini Nano transcribes each one through the Prompt API, and the Translator API turns it into your language. Both lines go on a caption bar you can float over the video in a Document Picture-in-Picture window. Nothing is uploaded, and no platform's caption track or stream protocol is touched — the audio comes from your own speakers, under the same permission a screen recording uses.

How the audio gets here

The share picker is the whole trick. getDisplayMedia returns a video track and an audio track; the video track is stopped the moment the audio is in hand, because this page has no use for pixels. The audio is downmixed, resampled to 16 kHz and written into a ring buffer, and an energy gate with hysteresis decides where sentences begin and end — 300 ms of pre-roll so the first consonant survives, 700 ms of silence to close a sentence, a hard cut at 12 s so a monologue cannot stall the queue. Each closed sentence becomes a WAV and goes to the model. At most four wait their turn: when the queue overflows the OLDEST is dropped, because a caption for audio from 40 seconds ago is not late, it is wrong.

The lag is real, and this page measures it

Captions land 3 to 8 seconds behind the audio. That is not a bug to be tuned away: a sentence has to finish before the model can hear all of it, and the model then needs seconds to answer. So the page does not quote a number from anywhere — it times the gap between the end of each segment's audio and the moment its caption appeared, and shows the median of the last twelve. Under three captions it says not measured yet rather than a reassuring zero. If your machine reports 12 seconds, that is what your machine does, and the page says so.

What this will not do

Firefox and Safari cannot give a page the audio of a shared tab at all. Chrome can, but audio prompting also needs a model this machine will accept, and unavailable is a normal answer rather than a fault — there is no cloud fallback and no Whisper download. Window and whole-screen audio is Windows-only; everywhere else the picker has no audio option, so share a tab. Accents, crosstalk and background music degrade the transcript, and a translation of a bad transcript is worse still. For a recording you already have, Video Subtitles does the same work without the clock.

Frequently asked questions

Does the audio leave my computer?

No. The capture, the recognition and the translation all run in this tab. The only network request is Chrome's own one-off model download, and your audio is not part of it.

Why are the subtitles several seconds behind?

Because a sentence has to end before it can be transcribed, and the on-device model then takes seconds to answer. Expect 3 to 8 seconds. The page measures its own lag while it runs and shows the median, so you are reading a measurement rather than a promise.

I shared the tab but nothing happens.

The "Share tab audio" checkbox in Chrome's picker was probably not ticked. Without it the stream arrives with no audio track and no error at all. Press Stop, press Start, and tick it before you press Share.

Can I capture a desktop app instead of a tab?

On Windows, yes — pick the window or the whole screen and tick the audio option. On macOS and Linux the picker offers no audio for those surfaces, so the only path is a Chrome tab. The support table on the page says which of these your browser actually reported.

Do I get a transcript at the end?

Yes. Everything recognised since Start is kept with times counted from the start of the session, and downloads as SRT or TXT with the spoken lines, the translated lines, or both. Close the tab and it is gone — nothing is stored anywhere.