ByteScope

Live Subtitles

分享分頁、勾音訊,直播就變成你看得懂的字幕,全程留在這台機器上。

檔案不會離開你的瀏覽器 — 全部在本機處理。

把正在播直播的那個分頁分享出來,記得勾「分享分頁音訊」,這一頁就會把聽到的內容打成字幕再翻成你的語言。辨識跟翻譯都在你這台機器上跑,音訊不會傳出去。

正在確認這台機器有沒有這組語言…

沒在聽

按開始,然後選正在播直播的那個分頁。

字級字級23 px
底色底色90 %

實測落後

字幕在這台機器上實際慢了多少:從每一段音訊講完,算到那行字幕出現在畫面上。這裡的數字全是量出來的,不是抄規格書。

還沒量到

目前 0 行 — 要算中位數至少要 3 行。

整場逐字稿

從按下開始之後辨識到的每一行都留著,時間軸從開始那一刻算起。直播結束就下載下來,關掉分頁就沒了。

還沒記到東西。

要匯出的內容

這頁做得到什麼、做不到什麼

  • 字幕會落後音訊 3 到 8 秒。這不是同步字幕:一句話要講完模型才聽得到全部,模型再花好幾秒才吐得出結果。
  • 口音、你一句我一句、背景配樂、直播音質差,準確度都會掉。字幕只是還不錯的猜測,不是發言記錄。
  • 需要 Chrome 內建 AI(Gemini Nano)並支援音訊輸入。第一次跑會下載模型,常常好幾 GB;硬體吃不下就會回 `unavailable`,而且沒有雲端可以退。
  • 抓進來的音訊、逐字稿、譯文都留在這個分頁。唯一的連線是 Chrome 自己去抓模型。

怎麼選音源

成敗就在這一步。Chrome 不主動給你音訊,忘了勾那個框,看起來就只像這一頁壞掉。

選擇要分享的內容 — Chrome 分頁, 分享分頁音訊選擇要分享的內容Chrome 分頁視窗整個螢幕分享分頁音訊分享
  1. 1按開始,Chrome 會跳出自己的分享視窗。
  2. 2選「Chrome 分頁」那一排,再點正在播直播的分頁。
  3. 3按分享之前先勾「分享分頁音訊」。沒勾的話送進來的是無聲。

分享分頁在每個平台都能用。視窗跟整個螢幕的音訊只有 Windows 有;macOS 跟 Linux 的分享視窗根本不會出現音訊選項,那就改分享分頁。

瀏覽器支援

每一列不是實測過,就是明講沒測。Edge 是 Chromium,很可能能跑,但沒有人在這一頁上試過。

功能ChromeEdgeFirefoxSafari
抓分頁音訊對分享的分頁呼叫 `getDisplayMedia({ audio: true })` 要拿得到音訊軌。可以部分/未測不行不行
視窗/螢幕音訊`systemAudio: "include"`。只有 Windows;其他平台的分享視窗不會給這個選項。部分/未測部分/未測不行不行
Prompt API(`LanguageModel`)網頁版 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

關於這個工具

看不懂的語言直播,是瀏覽器到現在還幫不上忙的少數場合。這一頁補上了:把直播所在的分頁分享出來,勾「分享分頁音訊」,Chrome 就把你正在聽的聲音交給這一頁。AudioWorklet 把 PCM 取出來,語音活動偵測切成一句一句,Chrome 的本機 Gemini Nano 透過 Prompt API 做辨識,Translator API 再翻成你的語言。原文加譯文兩行可以浮成 Document Picture-in-Picture 小窗,拖到影片旁邊。全程不上傳,也完全不碰任何平台的字幕軌或串流協定——聲音是從你自己的喇叭來的,跟螢幕錄影是同一套授權。

音訊怎麼進來的

分享視窗就是整個關鍵。getDisplayMedia 會給一條視訊軌和一條音訊軌,音訊一到手就立刻把視訊軌停掉,因為這一頁不需要畫面。音訊混成單聲道、重取樣到 16 kHz 寫進環形緩衝,再由一個帶遲滯的能量判斷去決定句子從哪開始、到哪結束:往前多拿 300 ms 保住第一個子音、靜音滿 700 ms 收句、講太久就在 12 秒硬切,免得一段獨白把佇列卡死。收好的句子編成 WAV 送進模型,最多只讓四段排隊;滿了就丟最舊的,因為 40 秒前那段音訊的字幕不是慢,是錯的。

落後是真的,而這一頁自己去量

字幕會落後音訊 3 到 8 秒。這不是調一調就會消失的瑕疵:一句話要講完模型才聽得到全部,模型再花好幾秒才答得出來。所以這一頁不引用任何地方的數字,而是每次都量「這段音訊講完」到「這行字幕出現」之間的差,取最近 12 次的中位數。不到三行就直說「還沒量到」,不會端一個讓人安心的零出來。如果你的機器量出 12 秒,那就是你機器的實力,頁面照實寫。

這頁不會做的事

Firefox 跟 Safari 根本不會把分享分頁的音訊交給網頁。Chrome 會,但音訊提示還要這台機器吃得下模型;unavailable 是正常回答而不是故障,沒有雲端可以退,也不會偷偷下載 Whisper。視窗和整個螢幕的音訊只有 Windows 有,其他系統的分享視窗根本沒那個選項,那就分享分頁。口音、搶話、背景配樂都會讓逐字稿變差,而爛逐字稿翻出來只會更爛。手上已經有錄好的檔,Video Subtitles 做同一件事,而且不用跟時間賽跑。

常見問題

音訊會離開我的電腦嗎?

不會。抓音訊、辨識、翻譯都在這個分頁裡跑。唯一的連線是 Chrome 自己那次模型下載,你的聲音不在裡面。

字幕為什麼慢好幾秒?

因為一句話要講完才能辨識,本機模型接著又要花好幾秒才回得出來。抓 3 到 8 秒。跑的時候這一頁會自己量落後多少並顯示中位數,你看到的是量出來的數字,不是承諾。

分頁分享了卻什麼都沒有。

多半是 Chrome 分享視窗裡的「分享分頁音訊」沒勾。沒勾的話送進來的串流沒有音訊軌,而且完全不會報錯。按停止、再按開始,這次在按分享前先勾起來。

可以抓桌面程式而不是分頁嗎?

Windows 可以:選視窗或整個螢幕,再勾音訊選項。macOS 跟 Linux 的分享視窗對那些對象根本不給音訊選項,所以只剩 Chrome 分頁這條路。頁面上的支援表寫的是你這個瀏覽器實際回報的結果。

結束之後有逐字稿嗎?

有。按下開始之後辨識到的每一行都留著,時間軸從開始那一刻算起,可以只匯出原文、只匯出譯文或兩種都要,格式選 SRT 或 TXT。關掉分頁就沒了,任何地方都不會留。