ByteScope

Live Captions

講話有字幕,看片也有:麥克風收音或分享分頁的聲音都能即時變字幕、逐句翻譯——字幕視窗浮在全螢幕簡報或影片上面。

辨識用的語音真的會傳出你的瀏覽器 — 由瀏覽器廠商的伺服器做語音轉文字。

你的語音實際上被送去哪裡

字幕運作期間,你的麥克風聲音會即時串流到 Google(Edge 則是 Microsoft)的語音辨識服務,文字再透過網路傳回來。音訊一旦送出,這個網頁沒有任何辦法把它拉回來。機密會議請照這個前提來處理。

不管走哪個路線,翻譯本來就在你自己的裝置上執行:用下載好的模型跑,字幕文字不會被傳到任何地方去翻譯。ByteScope 本身什麼都不會儲存 — 字幕只存在這個分頁的記憶體裡,關掉分頁就消失。

字幕視窗

範例播放

等待第一句話…

這是預先準備的範例,不是你的麥克風聲音。先調整好尺寸和顯示模式,確認在會場後排也看得清楚,再開始正式使用。

瀏覽器會跳出麥克風授權請求。按停止就會釋放麥克風,錄音中的圖示也會跟著消失。

浮動視窗一定要透過按鈕點擊才能打開(瀏覽器的限制)。它會浮在全螢幕投影片上方,可以拖曳移動、拉邊框調整大小。

字幕設定

要幫什麼加字幕

可以幫對著麥克風說話的人加字幕,也可以幫這台電腦正在播放的聲音加字幕 — 例如影片、直播,或另一個分頁裡的通話。選第二種的話,按下開始會跳出瀏覽器自己的分享選擇視窗。

字幕會聽這個輸入裝置的聲音。選錯不會跳出任何錯誤 — 字幕還是照樣顯示,只是聽錯麥克風而已 — 所以開始前務必確認一下。講到一半也可以隨時切換。

如果上面選的輸入是像 BlackHole、Loopback、VB-Cable 這種把系統聲音導進來的虛擬裝置,就勾選這裡。這會關閉回音消除、雜音抑制和自動增益控制 — 這些功能是針對房間裡講話的人調整的,會不知不覺把音樂、掌聲這類非人聲的聲音吃掉。

選你實際會講的語言。Chrome 沒辦法邊聽邊自動判斷語言,選錯也不會跳錯誤訊息,它只會用你選的語言生出一堆聽起來很篤定的胡言亂語。講到一半也可以隨時切換。

翻譯出來的那一行是給聽眾看的,所以字級比較大、用強調色顯示。

辨識在哪裡執行

Chrome 139 以上可以用你自己裝置上的模型來辨識。如果模型還沒下載,這個選項會維持關閉狀態 — 這樣即將開始的演講就不會被一個沒人要求的下載卡住。

正在確認這台裝置能不能自己完成語音辨識…

視窗尺寸

浮動視窗一開始的像素尺寸。之後還是可以拖邊框調整,字級也會跟著視窗大小縮放。

文字大小

100%

不動視窗大小,只放大或縮小字幕的字。在「都顯示」模式下兩行要擠同一個高度時特別有用:把視窗拉成又寬又扁,再把字放大到最後一排也讀得到。

顯示內容

翻譯

正在確認這台裝置能翻譯哪些語言…

現在沒有東西可以即時翻譯:這組語言在這台裝置上沒有模型,或是講者語言和翻譯目標語言相同。

瀏覽器支援度

這裡牽涉到四個各自獨立的瀏覽器功能。字幕本身只需要第一個,另外三個只是讓字幕變得更好、或是更保護隱私。

功能ChromeEdgeFirefoxSafari
即時字幕(Web Speech API)Safari 有內建加前綴的 API,但每講完一句就會結束連線,而且不理會連續模式,講久了會一直卡頓。音訊會被送到哪裡是下一列的問題,跟這一列無關。支援支援不支援部分支援
裝置端語音辨識(Chrome 139 以上)用你自己裝置上的模型做辨識,所以不會上傳任何音訊。哪些語言有模型會因裝置和作業系統而不同,所以這個頁面是在執行時當場確認,而不是列出固定清單。Edge 是以 Chromium 為基礎打造的,很可能也支援,但這裡沒有實際驗證過。支援部分支援不支援不支援
擷取播放中的音訊(getDisplayMedia)幫分頁、視窗或整個螢幕播放的聲音加字幕。Firefox 和 Safari 會跳出分享選擇視窗,但只會把畫面交給網頁 — 這正是這一列要說明的重點。只要這一列支援,分頁音訊就能用;原生應用程式的聲音則需要 macOS 14.2 以上搭配 Chrome 141 以上,這個頁面會在下面實際測量,而不是憑瀏覽器種類用猜的。支援部分支援不支援不支援
裝置端翻譯(Translator API)Chrome 138 以上支援。會在執行時自動偵測,沒有的話這個頁面只會提供字幕功能。支援部分支援不支援不支援
浮動視窗(Document Picture-in-Picture)Chrome 和 Edge 116 以上支援。沒有的話,字幕會留在頁面裡顯示。支援支援不支援不支援

這台裝置的擷取支援度

正在確認這台裝置能分享什麼…

這次連線

辨識用的語音真的會傳出你的瀏覽器 — 由瀏覽器廠商的伺服器做語音轉文字。

這個瀏覽器的偵測結果

  • SpeechRecognition 確認中…
  • SpeechRecognition.available 確認中…
  • getDisplayMedia 確認中…
  • Translator 確認中…
  • documentPictureInPicture 確認中…

關於這個工具

這一頁做兩件事,用同一條管線。音源選麥克風,你的演講邊講邊出字幕;音源選「這台電腦正在播的聲音」,你正在看的直播、影片或通話就有了即時字幕——最典型的就是看日文直播、想疊一行中文字幕。辨識用的是瀏覽器內建的 Web Speech API(SpeechRecognition),不用安裝、不用帳號、不用 API 金鑰,也沒有按分鐘計費;每講完一句,Chrome 內建的 Translator API 就在你的裝置上把它翻成 21 種目標語言之一。演講的話,能選麥克風在台上特別重要:真正別在你身上的領夾麥或 USB 麥克風常常不是系統預設,自己指定收音來源,才不會拿三公尺外的筆電內建麥克風做字幕。不管哪種用法,再點一下就能把字幕列彈出成 Document Picture-in-Picture 視窗——一個真正「永遠在最上層」的視窗,macOS 和 Windows 都行:簡報時浮得上全螢幕的 Google Slides、Keynote 和 PowerPoint,看片時一樣浮得上全螢幕的播放器。

把電腦正在播的聲音變成字幕

播放音訊這條路走的是瀏覽器自己的分享選擇器:按開始、選一個分頁(或視窗、或整個螢幕),然後把音訊的勾打上——最後這個勾就是關鍵。分享分頁並勾選「分享分頁音訊」是最順的路:頁面拿到的是分頁聲音的乾淨數位副本,沒有房間雜音、不經過麥克風,而且聲音全程照常播放——做字幕不會把你正在看的東西靜音。最常見的失誤就是分頁分享了、音訊忘了勾;頁面偵測得到自己收到的是無聲串流,會直接告訴你,但沒辦法幫你打勾。分頁音訊只有 Chrome 和 Edge 支援;要抓原生 App 的聲音(系統音訊),Windows 和 ChromeOS 早就可以,Mac 則要 Chrome 141 以上加 macOS 14.2 以上——因為 macOS 自己在 14.2 之前根本不讓 App 抓系統音訊;更舊的 Mac 改用分頁分享一樣能動。Firefox 和 Safari 則完全沒辦法把螢幕分享的聲音交給網頁。另外還有一條不走選擇器的路:BlackHole、Loopback 這類虛擬音訊裝置會以普通輸入的身分出現在麥克風清單裡,把系統聲音導過去,就能像選麥克風一樣選它。記得順手打開「這是播放音訊」的開關——它會關掉瀏覽器的回音消除和噪音抑制;那些是調給真人講話用的處理,不關的話會反過來吃掉你要字幕的聲音。

你的聲音實際上去了哪裡

這個網站平常都保證「什麼都不會離開你的瀏覽器」,這一頁以前是唯一的例外;從 Chrome 139 開始,這變成一個開關的選擇。預設仍然是雲端辨識:瀏覽器會把你的麥克風音訊上傳到 Google(Chrome)或 Microsoft(Edge)的伺服器處理,跟瀏覽器自家的語音輸入走同一條路——只要走這條路,上傳就跟以前一樣是事實。拿它來字幕直播的話,這件事的份量又更重:被上傳的不是你自己的聲音,是別人的——你正在看的影片、通話另一頭的人。另一條是本機辨識:頁面問 SpeechRecognition 有沒有本機模型(processLocally),裝一次語言包之後,你的聲音就完全在這台電腦上轉成文字,什麼都不會送出去。不過不是每種語言都有本機模型,能不能用還會因電腦和平台而異,所以頁面會在執行時實際檢查,直接標出你現在走的是哪一條路,不用猜。翻譯那一半本來就在本機——Chrome 138 以上下載一次模型,之後每句都在裝置上翻。也就是說,本機辨識一開,整條管線都在你的筆電上跑,這個網站平常的承諾在這一頁又真的成立了。預設維持雲端是故意的:上台前幾分鐘不該被模型下載卡住。如果內容是機密——內部規劃、客戶的數字——或者那聲音根本不是你的,開始前先把開關切過去、確認路徑標示。

為什麼講的語言要自己選

這裡沒有語言自動偵測,而且是故意的。瀏覽器的語音辨識器開始前就得知道它在聽哪種語言;瀏覽器裡沒有可靠的自動判斷方法,硬讓它猜的結果是一整排理直氣壯的亂碼字幕——它不會承認聽不懂,只會把聲音硬套進錯的語言的詞彙裡。所以講的語言是手動選擇。演講的話,這是上台前唯一值得再三確認的設定;字幕直播的話,記得要選的是「影片裡講的語言」,不是你想讀的語言——日文直播配上英文辨識,出來的是一排流暢的鬼話,不是錯誤訊息。目標語言另外從 21 種裡挑,中途也能把兩邊對調。

一個比全螢幕更上層的視窗

浮動字幕用的是 documentPictureInPicture——跟浮動影片同一套「永遠置頂」的機制,只是裡面裝的不是影片,是一整份文件。作業系統的合成器會把這個視窗一直保持在最上面,而這正是任何全螢幕應用程式做不到的事:Keynote、PowerPoint、Google Slides 再怎麼佔滿螢幕,壓不過它,全螢幕的影片播放器也一樣。這件事在兩種用法裡都吃重:簡報時,翻譯一直蓋在投影片上;看片時,就是它讓浮動字幕變成全螢幕直播上真正的字幕。需求也照實寫:Chrome 或 Edge 116 以上有字幕和浮動視窗;裝置上翻譯要 Chrome 138 以上、本機語音辨識要 Chrome 139 以上、系統音訊只在 Mac 上有門檻(Chrome 141 以上加 macOS 14.2 以上,Windows 和 ChromeOS 沒這個限制);缺哪樣就老實退回哪一步——雲端辨識、分頁分享、或純字幕——不會假裝有。Safari 和 Firefox 什麼都沒有——頁面會用支援對照表直接告訴你缺什麼,而不是安靜地壞掉。

常見問題

為什麼講的語言要自己選?不能自動偵測嗎?

因為瀏覽器裡沒有可靠的自動偵測。SpeechRecognition 開始前就必須指定語言,硬要它猜的話,它不會承認聽不懂,而是把你的聲音硬套進錯的語言,產出一整排看起來煞有其事的亂碼字幕。反正一場演講要講什麼語言,你自己最清楚——上台前手動選一次、確認一次,比一個會在台上出包的自動偵測誠實得多。

我想幫正在看的影片或直播上字幕,要怎麼做?

把音源從麥克風切成「這台電腦正在播的聲音」,瀏覽器會跳出分享選擇器。最順的走法是選影片所在的分頁、把「分享分頁音訊」打勾:頁面拿到的是乾淨的數位聲音,沒有房間雜音,而且影片照常出聲——不會被靜音。把「講的語言」設成直播講的語言、挑好翻譯目標,再把浮動視窗彈出來壓在全螢幕播放器上,就完成了。支援狀況記兩行就夠:分頁音訊只有 Chrome 和 Edge 能用;要抓原生 App 的聲音(系統音訊),Windows 和 ChromeOS 一直都行,Mac 要 Chrome 141 以上加 macOS 14.2 以上——更舊的 Mac 把直播開在分頁裡、分享那個分頁,一樣能動。Firefox 和 Safari 完全不會把螢幕分享的聲音交給網頁。

分頁分享了,字幕卻沒出來,是哪裡出錯?

八九不離十是那個音訊勾選框。瀏覽器的分享選擇器把聲音當成要另外同意的東西,「分享分頁音訊」沒打勾的話,頁面拿到的是一條完全正常、也完全無聲的串流——這是這個音源最常見的失誤。頁面偵測得到自己收到的是無聲,會直接說出來,不會讓你對著空白的字幕列發呆;但它沒辦法幫你打勾——停止分享、重新分享一次,這次把勾打上。如果選擇器裡根本沒有音訊可勾,代表你的瀏覽器和系統組合送不出那個聲音:視窗和整個螢幕的分享,能帶聲音的組合比分頁分享少;在 Mac 上,系統音訊還要 Chrome 141 以上加 macOS 14.2 以上。

我的聲音是在本機處理,還是被上傳了?

現在由你選,而且頁面會標出你目前走哪一條。預設是雲端辨識,這時音訊真的會被上傳:Chrome 送到 Google 的伺服器、Edge 送到 Microsoft 的——走這條路的時候,請把這一頁當成雲端逐字稿服務看待,因為它就是。拿來字幕直播的話更要當一回事:這時被上傳的是別人的音訊——你正在看的影片、通話另一頭的人——不只是你自己的聲音;本機辨識則能整個避開上傳。Chrome 139 之後多了一條出路:切到本機辨識,瀏覽器下載一次語言包,之後全程在你的電腦上轉文字(processLocally),什麼都不會送出去。不是每種語言都有本機模型,能不能用因電腦而異,所以頁面會在執行時檢查、把目前的路徑標出來,不讓你用猜的。翻譯則兩條路都在本機。預設維持雲端是故意的——講者不該在上台前幾分鐘被模型下載卡住;內容機密的話,開講前先切開關、看清楚標示。

翻譯模型要下載多大?每次都要重新下載嗎?

每個語言配對大約幾十 MB,第一次用到那個配對時由 Chrome 下載一次,快取在瀏覽器本身——之後的工作階段、甚至其他用到同一配對的網站,都直接沿用,不會重新下載。下載中頁面會顯示進度,模型還沒好之前就先跑純字幕。本機辨識的語言包也是下載一次就好,只有一點不同:它抓不到下載進度,頁面只能顯示「準備中」。會場的 Wi-Fi 通常靠不住,建議上台前先開一次頁面、把語言選好;要走本機路線的話,讓兩個模型都先裝完。

瀏覽器視窗怎麼可能浮在全螢幕簡報上面?

因為它不是普通視窗。Document Picture-in-Picture 視窗由瀏覽器和作業系統的合成器保持在最上層,跟浮動影片能蓋在任何東西上面是同一套機制——全螢幕的 Keynote、PowerPoint、Google Slides 也一樣,macOS 和 Windows 都適用。把它拖到字幕該在的位置、像普通視窗一樣調大小就好;麥克風和辨識留在原本的分頁裡跑,簡報搶走焦點也不影響字幕繼續動。

為什麼 Safari 和 Firefox 不能用?

致命傷是語音辨識本身。Firefox 完全沒有實作 Web Speech API 的 SpeechRecognition,連字幕的來源都沒有,到此為止。Safari 有帶前綴的 webkitSpeechRecognition,但它每講完一句就把辨識結束掉,不會連續串流——一場演講會變成不斷重啟的斷句,而不是一條字幕流。除此之外,這兩個瀏覽器也都沒有內建的 Translator API 和 Document Picture-in-Picture——就算字幕出得來,也翻不了譯、浮不上全螢幕簡報。播放音訊那條路也一樣封死:Firefox 和 Safari 都沒辦法把螢幕分享的聲音交給網頁。這一頁不會勉強裝出能動的樣子,而是顯示支援對照表,明講缺了什麼。真的要上場,用 Chrome 或 Edge 116 以上;要翻譯用 Chrome 138 以上,連語音辨識都想留在本機,就用 Chrome 139 以上。

可以只顯示翻譯、不顯示原文嗎?

可以。字幕列有顯示切換:只有原文、只有翻譯、或兩行都顯示。聽眾聽不懂你的語言時,通常就切成只有翻譯,整條字幕列都能拿來放更大的字。只有一個但書:在沒有 Translator API 的瀏覽器(Chrome 138 之前的版本)上,「只有翻譯」根本沒東西可顯示,所以會退回顯示原文字幕,而不是給你一條空白。

可以指定字幕要收哪一支麥克風嗎?

可以。頁面會列出瀏覽器看得到的所有麥克風,讓你自己挑要用哪一路收音做字幕。在台上這不是小事:真正收到你聲音的通常是領夾麥或 USB 音訊介面,而它們常常不是系統預設——放著不管,就會變成拿三公尺外的筆電內建麥克風做字幕,出來的字自然是一團糊。明確選好裝置、講一句測試、確認字幕沒問題,再讓觀眾看到。這份清單裡也會出現 BlackHole、Loopback 這類虛擬音訊裝置——把系統聲音導過去再選它,就能不走螢幕分享抓到播放音訊;選了記得打開「這是播放音訊」的開關,關掉調給真人講話用的回音消除和噪音抑制,免得它們吃掉你要字幕的聲音。