從個人專案到支援 108 種語言的翻譯器:我為什麼要打造 Traverba

我打造了一款完全在你手機上運行的翻譯 App。不需要雲端。不需要 API 呼叫。資料完全不離開裝置。108 種語言。支援語音、相機、螢幕翻譯,以及透過藍牙進行離線群組對話。

一切的起點,是因為我找不到自己真正需要的東西,最後卻做出了一個超出預期的作品。

問題所在

我住在香港。日常生活涉及粵語、普通話、英語,偶爾還有日語。另一半的家人說粵語。我的工作用英語。政府表格是繁體中文。附近餐廳的菜單常常是簡體中文或日文。

我試過市面上每一款翻譯工具:

Google 翻譯在有網路時表現還行,但離線品質明顯下降。而且它把粵語歸類到「中文」裡——任何說粵語的人都知道,這就像把葡萄牙語歸類成「西班牙語」一樣。兩者共用文字,但發音、語法、詞彙截然不同。

Pocketalk 售價 $323 美元,而且每次翻譯都需要網路。在香港,地鐵(MTR)有將近一半的站沒有訊號,根本用不了。

Apple 翻譯設計精美,在裝置端處理也做得不錯,但只支援約 20 種語言,沒有粵語。在一個 95% 人口都說粵語的城市,這件事足以說明大型科技公司對語言的優先排序。

iTranslate 把核心功能鎖在每年 $50 美元的付費牆後面。DeepL 甚至沒有語音或相機功能。

沒有一款工具能應付我和另一半家人吃飯時,大家隨時切換粵語、普通話和英語的場景。沒有一款能翻譯我在 WhatsApp 收到的粵語語音訊息。也沒有一款在網路不穩的地方能穩定運作。

於是我開始自己做。

第一版很糟糕

最初的原型是一個 Flutter App,只有一個 ASR 模型(Whisper,透過 sherpa-onnx 在裝置端運行)加上基本的 NMT 翻譯。只支援大約 15 種語言。語音辨識很慢。翻譯品質平庸。介面難看。

但它可以離線運作。就是這一點——我可以在沒有 WiFi 的飛機上把粵語句子翻成英文——讓我堅持了下去。

掉進架構的兔子洞

一旦你決定做裝置端 AI,就會掉進一個很深的兔子洞。

ASR(語音辨識): 沒有一個模型能搞定所有語言。最終我選擇內建三個:Parakeet(針對英語優化,隨 App 捆綁)、Whisper.cpp(廣泛多語言支援,可下載)、Qwen3-ASR(針對中日韓語優化,可下載)。App 會根據來源語言自動選擇最佳模型。

翻譯: 傳統 ML 模型涵蓋 61 個資源豐富的語言對。對於其餘 47 種語言(約魯巴語、阿姆哈拉語、寮語、緬甸語等),則由在本地運行的量化版 Gemma LLM 負責翻譯。這個突破讓支援語言數從 61 種擴展到 108 種。

相機 OCR: 採用兩套引擎。ML Kit 負責快速辨識,PaddleOCR 負責複雜文字的精細辨識。iOS 端需要手動加入特定文字的 pods,因為 Apple 預設只捆綁拉丁語模型。這個問題花了我一整天才除錯出來,因為失敗時完全沒有任何錯誤提示。

群組對話: 藍牙 mesh 網路最多可連接 7 台裝置。每支手機各自負責 ASR 和翻譯,訊息廣播到所有裝置,完全不需要伺服器協調。

記憶體管理: 這才是真正的工程挑戰。三個 ASR 模型、翻譯模型、一個 LLM 和 OCR 引擎不可能同時全部載入手機記憶體。App 有一個記憶體預算規劃器,根據使用者當前的操作動態載入或卸載模型。

幾個數字

  • 開發時間: 從第一次 commit 到上架 App Store / Play Store,約 18 個月
  • 語言數量: 108 種(61 種傳統 ML + 47 種透過 Gemma AI 支援)
  • ASR 語言: 30 種支援裝置端語音辨識
  • OCR 語言: 92 種支援相機文字辨識
  • App 大小: 基礎約 150MB,模型可額外下載
  • 定價: 免費版包含所有核心功能;進階版 $1.99 美元/月或 $19.99 美元/年,包含群組對話、檔案轉錄和會議摘要
  • 團隊規模: 1 人

做對的事

把隱私做成架構,而不是政策。 「我們不會分享您的資料」是一項政策,政策可以改變。「您的資料永遠不會離開手機,因為根本沒有伺服器」是架構,不重寫 App 就無法改變。使用者對這個差別有直覺上的理解。

把粵語當作一等公民。 大多數翻譯工具把粵語當成帶有不同口音的中文。Traverba 有專屬的粵語 ASR 模型。這一點在香港和廣東的使用者群體中引起強烈共鳴——他們早已厭倦被當作事後才想到的對象。

免費版給得慷慨。 語音翻譯、相機翻譯、螢幕翻譯和文字翻譯全部免費且無限制使用。付費牆只鎖住群組對話、檔案轉錄和會議摘要。這一點很重要,因為最需要翻譯工具的人——移民、身在陌生地方的旅行者、學生——往往沒有能力負擔高額訂閱費。

離線優先設計。 每項功能都不需要網路。網路不是降級模式,離線就是正常模式。這比「也可以離線使用」更有說服力。

做錯的事

低估了低階裝置。 開發過程都在旗艦手機上進行。第一次在 3GB RAM 的手機上測試時,一半的功能直接崩潰。記憶體管理應該是我最先做的事,而不是事後補救。

iOS 審核流程。 Apple 以未實作 App 追蹤透明度(ATT)為由拒絕了第一次提交。即使 Traverba 不追蹤使用者,AdMob SDK 仍會觸發這項要求。要在 Flutter 中正確處理 ATT 的時機(App 啟動後、廣告初始化前),費了好幾次迭代才搞定。

沒有更早上線。 我花了好幾個月在完善使用者根本沒要求的功能,然後才發布。上線後收到的回饋,和我預期的完全不同。要早點出貨、聆聽意見、不斷迭代——這道理人人都說,我還是掉進了這個陷阱。

市場機會

翻譯市場規模超過 400 億美元,並持續成長。但市場由兩個極端主導:

  1. 免費雲端 App(Google 翻譯、Apple 翻譯):對大多數人來說夠用,但犧牲了隱私和離線可靠性
  2. 昂貴的硬體裝置(Pocketalk $323、Timekettle $299、Vasco $350+):仍需要網路,解決的問題其實你的手機已經能解決

中間的空缺——一款免費或平價、具備完整裝置端處理、實際好用的 App——出乎意料地空曠。DeepL 只有文字功能。iTranslate 把核心功能鎖在付費牆後。大多數 AI 翻譯工具只有雲端版本。

裝置端 AI 已經跨過了品質門檻。模型夠好了。手機夠快了。框架(CoreML、ONNX、sherpa-onnx、LiteRT)也夠成熟了。缺少的,只是有人在這之上建起產品層。

接下來的方向

近期規劃:

  • 更多 ASR 語言。 30 種是個好的開始,但長尾語言也需要語音辨識支援。
  • 改善 LLM 翻譯。 Gemma 2B 表現不錯,但更新、更小的模型可能更好。架構支援在不更動 App 的情況下替換模型。
  • iPad 和平板優化。 App 可在平板上運作,但介面尚未針對大螢幕優化。
  • Android Vulkan 加速。 iOS 有 Metal 和 CoreML 做 GPU 推理。Android 的 GPU 加速方案(透過 whisper.cpp 的 Vulkan)還需要更多工作。

更大的願景:一個語言不再是人與人之間障礙的世界,而且打破這道障礙,不需要把你的私人對話交給科技公司的伺服器。

如果你看到了這裡,試試這款 App 吧。它是免費的。我會閱讀每一條回饋。


Traverba 現已上架 Google PlayApp Store。了解更多請前往 traverba.com。如有問題、回饋或功能建議:[email protected]