Acrossby SZ

私人、即時語音翻譯,涵蓋 Gemini Live 支援的所有語言。按一次「開始聆聽」,原文與譯文兩欄一直往下長。

開啟 Across已上線 across.sz.ws
私人密碼,或自帶 Gemini key

International Bartender Association現場實錄 —— 即時中英語音翻譯IBA「Train the Trainer」課堂 · 高雄

互動只有一件事

選好兩種語言按下開始:左欄原文、右欄譯文;譯音可以隨時關掉,文字翻譯不中斷。

音訊不經過伺服器

麥克風 PCM 由瀏覽器直連 Gemini Live;Worker 只簽短效 token。逐字稿與音訊不落地,重新整理即消失。

字幕跟著你走

PiP 浮動字幕疊在任何 App 上;每十分鐘更新一份累積 Markdown 摘要,長對話也不迷路。

怎麼做出來的

最耗資源、跑最久的音訊從頭到尾不經過伺服器。瀏覽器直接連上 Gemini Live,Cloudflare 只負責簽 token 與寫摘要。

16kHz

麥克風輸入

24kHz

翻譯語音輸出

60秒

token 期限

~6秒

斷線緩衝

10分鐘

摘要週期

麥克風

16 kHz PCM · AudioWorklet

Gemini Live

WebSocket 直連,不經代理

逐字稿 + 24 kHz 譯音

排程無縫播放

Cloudflare Worker 從不經手音訊,只簽發單次、60 秒期限的 token,每十分鐘寫一份累積摘要。

音訊直連

麥克風 PCM 由瀏覽器經 WebSocket 直接送到 Gemini Live;Worker 只負責發 token,不轉送任何一幀音訊。

短效 token

每個 ephemeral token 只能用一次,必須在 60 秒內開始 session,model 與目標語言都在伺服器端鎖死。

台灣繁體管線

OpenCC 把簡體轉成台灣繁體,只轉新進來的那一段,回頭改字也不會出現重複文字。句子在 。!? 與 .?! 後斷行。

什麼都不存

逐字稿、音訊與摘要都只活在頁面記憶體;重新整理就清空,localStorage 只留 UI 偏好設定。