現場實錄 —— 即時中英語音翻譯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,不轉送任何一幀音訊。
每個 ephemeral token 只能用一次,必須在 60 秒內開始 session,model 與目標語言都在伺服器端鎖死。
OpenCC 把簡體轉成台灣繁體,只轉新進來的那一段,回頭改字也不會出現重複文字。句子在 。!? 與 .?! 後斷行。
逐字稿、音訊與摘要都只活在頁面記憶體;重新整理就清空,localStorage 只留 UI 偏好設定。