📈 GH Trending Explorer 🎲 Surprise me

← all repos

0c-biggo / 0c-ime

git clone https://github.com/0c-biggo/0c-ime.git v0.2.2 · today

免選字的注音輸入法:在本機用 Transformer 看前文選字。支援 Linux(Fcitx5/IBus)、macOS、Windows。

+69
stars, 24h · #128
+69
stars, 7 days · #731
+69
stars, 30 days · #3,578
69
★ total · +69% this week
1
forks · 1 open issues

Star history starts 2026-10-20; the chart appears after the second daily snapshot.

LanguageGo
LicenseAGPL-3.0
Created2026-10-19 (1d ago)
Last pushtoday
Watchers0
OwnerOrganization

GitHub topics

Links

README excerpt
靈犀注音 0C 
 免選字,把話打完。 
 在你的電腦上用 Transformer 看前文選字的注音輸入法,支援 Linux、macOS 與 Windows。
 官網 ·
 下載 ·
 選字技術 ·
 操作指南 ·
 回報問題 
> **English** — 0C (靈犀注音) is a Zhuyin (Bopomofo) input method for Traditional Chinese. An on-device Transformer language model reads what you have just written and picks the right homophones, so you can type a whole sentence without stopping to choose characters. It runs entirely on your computer, and ships shells for Fcitx5, IBus, macOS InputMethodKit and Windows TSF.
## ✨ 特色
- 🧠 **Transformer 選字**:自行訓練的語言模型參考整段前文與注音判斷同音字,大多數時候不必停下來挑字。
- ⇥ **Tab 補全**:有把握才提示後續字詞,按 Tab 接受;補全只來自詞庫與個人片語,不生成新內容。
- 🔒 **全在本機**:選字、補標點與個人學習都在你的電腦上以 CPU 執行,不連網、不上傳打字內容。
- 📚 **我的詞彙**:人名、術語、英文指令加進來就排在前面,也看得到靈犀學到了什麼。
- 🔤 **中英混打、模糊音、Emoji 與顏文字**:ㄗ/ㄓ、ㄘ/ㄔ、ㄙ/ㄕ、ㄣ/ㄥ 近音放在後面備選;按 = 開 Emoji 選單。
- 🔁 **輸出簡體字、自訂選字鍵**:看繁體打字、送出時才轉簡體,可從輸入法選單一鍵切換;選字鍵可用 1–0 或 asdfghjkl;。
- ✍️ **送出時補標點**(Beta):Enter 送出時在漢字之間補上 ,。?!、;,不改動你打的字。
- 🛟 **自動退回**:模型無法啟動或回應太慢時改用統計引擎排序,打字不會卡住。
## 🎯 免選字是怎麼做到的
傳統注音輸入法靠詞庫與詞頻挑字,只看得到相鄰的一兩個詞。靈犀注音在統計引擎之上多了一層 Transformer 重排:
 [code] 
1. **列出可能的句子** 📖:依注音在詞庫找出所有可能的字詞,以 unigram/bigram 統計語言模型與 Viterbi 在詞圖上搜尋最可能的組合,打字時即時更新。
2. **Transformer 重排** 🧠:讀入剛送出、游標仍緊接其後的前文(最多 64 字)、目前的注音與每個候選,替前 8 名重新評分。attention 能同時參考整段前文,不只看緊鄰的詞。
3. **本機學習** 👤:你選過、改過的字詞記在本機個人詞庫,下次同樣的情況優先出現。
4. **有把握才補全** ⇥:後續字詞的信心夠高時才顯示 Tab 建議。
## 📈 評測:首選錯誤少約六成
在事前凍結、模型沒看過的台灣新聞測試(2026-09-24〜26,共 6,000 例,一半是困難的同音短詞)上:
| 方法 | 首選正確率 | 首選錯誤率 |
|---|---:|---:|
| 新酷音 0.11.0 | 64.2% | 35.8% |
| 小麥注音 | 67.2% | 32.8% |
| 靈犀注音(只用統計引擎) | 76.9% | 23.1% |
| **靈犀注音(Transformer 重排)** | **86.0%/86.1%** | **14.0%** |
 [code] 
測試規格、成功標準與評分程式都在讀取資料前凍結,只評一次;讀音由字典合成、答案取原文,不是真人打字紀錄。外部輸入法採對它們最有利的輸入方式、無個人詞庫。靈犀注音的兩個數字來自兩個不同的訓練種子;「只用統計引擎」也是模型無法啟動時的表現。免選字是目標而非保證:罕見人名與詞庫外的詞仍可能要手動選。
### 🧩 模型
| | 選字(`models/select/`) | 補標點(`models/punct/`) |
|---|---|---|
| 架構 | 因果 Transformer decoder:8 層、寬度 512、8 個 attention head,約 3,261 萬參數 | 雙向 Transformer encoder |
| 輸入 | 前文(最多 64 字)+注音+候選 | 送出的文字,不看前文 |
| 權重 | Funmula/0c-sequence-d512 | Funmula/0c-punct-d512 |
模型從零開始訓練,不使用通用大型語言模型的權重,採用 RoPE、GeGLU 等現代化元件。一般桌機 CPU 上選字的 P95 延遲約 7 ms(短片段)至 16 ms(長片段);兩個模型合計約 250 MB。密碼欄位、暫停學習及英數模式下不送任何文字給模型。更多數字與方法見 選字技術。
## 📥 安裝
Windows、macOS、Linux 安裝包請到官網下載:👉 0c.biggo.com/download
發行版打包請用 Releases 的 `0c-ime- .tar.xz`:內附現成字典,符合 DFSG,解壓即可建置;已配對的神經模型在另附的 `0c-ime-models- .tar.xz`。見 打包與發佈。
## 🛠️ 從原始碼建置
需要 Go 1.26 以上;測試與發佈工具使用 Python 3.11 以上。以下指令在 repo 根目錄執行,不會安裝或重啟桌面輸入法:
 [code] 
`make assets` 從同版本的 Release 取得原始碼與模型 tarball(合計約 275 MB),驗證後把現成字典放到 `assets/data/`、已配對模型放到 `models/select/` 與 `models/punct/`,和出貨內容相同;0.2.2 起 Release 附的 Source code 壓縮檔也適用。要指定版本用 `make assets RELEASE=v0.2.2`,只取字典用 `make assets MODELS=0`(約 36 MB,以統計選字運作)。
各平台外殼另需各自的工具鏈與系統函式庫:
| 平台 | 外殼 | 建置說明 |
|---|---|---|
| 🐧 Linux | Fcitx5(C++) | platforms/linux-fcitx5 |
| 🐧 Linux | IBus(Go) | platforms/linux-ibus |
| 🍎 macOS | InputMethodKit(Swift) | platforms/macos |
| 🪟 Windows | TSF(Rust) | platforms/windows |
| ⚙️ 設定程式 | Tauri | platforms/settings |
| 🧠 神經推論 | Python+ONNX Runtime | platforms/neural |
## 🗂️ 專