Important
本專案已搬遷至 https://github.com/sakiwatashi/keyinput123
此處保留的是舊版,不再更新。新位置包含行程外候選視窗(解決遊戲反作弊 強制卸載未簽章 DLL 導致遊戲崩潰的問題)、對齊微軟注音的標點鍵位,以及 滑鼠選字。請至新位置取得最新版本與安裝檔。
以 PIME 與 libchewing 為基礎、操作方式接近微軟注音的 Windows 繁體中文輸入法。 它保留逐字編輯的手感,同時使用常用詞庫與個人學習資料改善選字。
git clone https://github.com/sakiwatashi/inputmethod.git
cd inputmethod
.\install.ps1Git Bash 使用者可把最後一行改為 ./install.sh。
- 注音聲母、介音、韻母與聲調可用任意順序輸入;同類按鍵會取代舊值,不會誤接成下一句。
- 完成一個注音後自動採用第一候選,不必每字按空白鍵。單字先保留讀音字典的首選,再以台灣字頻整理後續候選,避免全域高頻的多音字誤蓋正確讀音,例如
ㄩㄣˋ固定先出「運」而不是通常讀作ㄩㄢˊ的「員」。 ↓開啟候選,每頁像微軟注音一樣顯示兩個直欄:左欄由上而下為1–5,右欄為6–0,不以英文字母選字。按→前往下一頁,或用↓依數字順序移動並在第 10 項後翻頁,最多保留 20 個實用候選。- 在句尾開啟選字時,會先列完整句修正及游標附近的 2–12 字個人/常用詞彙;把游標移進句中後,則先列游標右側的單字候選,並在同一頁保留詞語/整句候選。這樣按
1只會鎖定正在編輯的音節並自動前往下一字,不會意外確認整句;選擇詞語時仍會一次更新整個詞。 - 選過的單字會記成該讀音的第一優先,單獨輸入時先出現;可靠的整詞/整句脈絡仍可調整它,避免舊的「仙/不」偏好阻止「你先開始下一步吧」。當次在組字區親自選定的字仍會鎖定。
ㄉㄜ˙、ㄗㄨㄛˋ、ㄕˋ的台灣預設第一候選分別固定為「的、做、是」;只有使用者親自改選其他字時,個人學習才會暫時排在它前面。- 會參考 libchewing 詞庫、Rime Essay 轉製的 113,738 條臺灣正體高頻詞,以及使用者確認過的 2–12 字詞,改善「優化、樹葉、人工智慧」一類上下文選字。文字型高頻詞必須再通過整段注音驗證,避免把罕見破音字拼成讀音不符的詞,例如不會把
ㄅㄟˋ ㄑㄩㄝˋ誤判成「貝殼」。 - 「不」在
ㄅㄨˋ中優先,並內建「不要、不是」及「再見、現在、跟在」等保守的繁體中文常用規則;有歧義的「在做/再做」仍由上下文判斷。 - 組字時會持續以精確注音、保守近音判斷與離線常用詞庫更新整段第一候選,讓「優仙→優先」「部合理→不合理」以及把
ㄣ/ㄥ混淆成ㄧㄣ ㄍㄞ的「音該→應該」直接成為可見的整句首選,不必等到按Enter才暗中變字,也不必逐一列舉錯字表面形式。另有 46 條高可信用字規則處理「以經→已經」「迫不急待→迫不及待」等錯字;當次親自選定或個人詞彙鎖定的字不會被覆蓋。 - 自動組字與候選視窗共用同一份詞彙排序;若候選系統已把完整句修正排在第一,組字區會先直接採用,不必按
↓才取得正確答案,原始精確讀音句則保留在後續候選供明確改選。按↓、空白、Enter、標點、Shift 或切換輸入框前都會再次同步第一候選;Enter 只提交畫面上已採用的文字,方向鍵只用來改選其他答案。 - 整段尚未送出的文字均可編輯;候選目標位於游標右邊,選完會前往下一字。
- 在段落中間按 Backspace 刪除後,下一個注音會補進原位置,不會跳到最右邊。
- 短按
Shift切換中英文;按住Shift再按字母則暫時輸入大寫英文且不切換模式。兩種操作都會正確處理尚未完成或尚未送出的注音,不會讓英文跳到中文字前方。 - 啟用輸入法、切換輸入框或組字被強制終止時只重設內部的中英文切換,不會強制改寫應用程式的 TSF 開關;遊戲、密碼欄位或明確停用輸入法的控制項可保持關閉,避免反覆開關造成凍結。
- 完整盤點標準鍵盤的
Shift組合:數字列、?、:、+、——、,、。、『』、「」、~與|都有明確輸出;Shift+Tab、Shift+F1–F12、Ctrl+Shift與Alt+Shift仍交給應用程式或 Windows。 - 單獨注音按空白時會先依字典補上一聲:字典第一候選是中文字就直接採用,例如
ㄧ→一、ㄚ→啊/阿,而ㄙ、ㄓ也會進入司/思、之/知等中文字候選;第一候選仍是原注音時則開啟候選單,不讓尾端生僻字冒充常用字。原始注音仍保留在第一頁前四項。完整的ㄢˊ等讀音同樣保留原注音候選。沒有正在組字時,直接按大千聲調鍵3、6、4、7會輸出ˇ、ˊ、ˋ、˙;已有未提交文字時,原始注音與聲調會插入同一個可編輯組字區,不會產生 Enter 式提交。Shift+Space輸出ˉ。 - 快速重疊按鍵有實體鍵碼備援,降低漏掉前一個注音符號的機率。
- 候選依微軟注音習慣先排滿左欄
1–5,再排右欄6–0。一般安裝保留 PIME 原廠簽章 DLL,以降低遊戲與反作弊程式的載入風險;未簽章的日式原生候選外觀只提供開發者明確選用。
一般使用者只需要執行發佈資料夾中的:
Smart-Priority-Bopomofo-Setup-0.6.0.exe
從 GitHub clone 原始碼後,可在 PowerShell 執行一鍵安裝:
.\install.ps1若使用 Git Bash,也可以執行:
./install.sh兩個腳本都從自身位置尋找檔案,不依賴目前工作目錄,因此專案路徑含空白、中文或 放在其他磁碟時仍可使用。
安裝程式會要求系統管理員權限。若電腦沒有 PIME,會安裝包內已驗證數位簽章的 PIME 1.3.0;若已經有 PIME,則保留現有版本,不做降版。完成後可用 Windows 的 輸入法切換快捷鍵選擇「智慧優先注音」。 安裝程式會把智慧優先注音排在繁體中文鍵盤清單第一順位,並設成預設輸入法,讓 Alt+Shift 切回繁體中文時優先選到它。
全新安裝預設保留 PIME 原廠簽章 DLL。只有使用者明確接受遊戲/反作弊相容性風險時,
才可從原始碼執行 .\install.ps1 -EnableUnsignedNativeUi 啟用日式原生外觀。這項選擇會
保存在本機,後續一般更新及新版 EXE 都會沿用,不會默默恢復舊簽章介面;若要主動切回
原廠簽章版,執行 .\install.ps1 -DisableUnsignedNativeUi。檔案正被 TSF 使用時,切換
介面會安全排程至下次重新啟動 Windows。
若安裝程式在新電腦上首次安裝 PIME,會隱藏隨附的「新酷音」,只留下智慧優先 注音;若電腦原本已有 PIME,則不會擅自刪除使用者既有的新酷音。
解除安裝請到 Windows「設定 → 應用程式 → 已安裝的應用程式」。它只會移除
「智慧優先注音」,不移除共用的 PIME,也不刪除個人學習資料。新版候選框只會在
PIME 沒有其他輸入法模組時套用;安裝前會備份原始 PIME DLL,解除安裝時安全還原。
若 Windows 正在使用候選框 DLL,安裝仍會完成,並在下一次重新啟動 Windows 後
自動套用新介面。備份與待更新狀態統一存放於
%ProgramData%\SmartPriorityBopomofo\native-state,所以從 EXE 或 Git clone
安裝都能由解除安裝程式正確辨識。
個人資料存放在:
%APPDATA%\PinnedBopomofo\pins.json
%APPDATA%\PinnedBopomofo\phrases.json
pins.json 是單一讀音的優先字;phrases.json 是從使用者確認文字學到的詞語。
兩者都可以直接備份。寫入採原子替換;若檔案意外損壞,輸入法會把原檔改名為
*.corrupt-日期時間.json 後以空資料啟動,不會因此整個失效。
執行核心測試:
python -m unittest discover -s tests -v建立 PIME 模組覆蓋層:
.\build_pime_overlay.ps1已安裝 PIME 時,再執行實際鍵盤事件與全讀音稽核:
& 'C:\Program Files (x86)\PIME\python\python3\python.exe' .\tests\pime_adapter_smoke.py
& 'C:\Program Files (x86)\PIME\python\python3\python.exe' .\tests\pime_all_readings_audit.py建立正式安裝包(需要 NSIS 3.12):
.\build_release.ps1正式安裝包會包含解除安裝程式、SHA-256 雜湊及 PIME/libchewing 的第三方授權
聲明。安裝腳本記錄位於 %ProgramData%\SmartPriorityBopomofo。
若要交給其他 AI 修改而不是只讓別人安裝使用,請連同整份原始碼與
AI_MAINTENANCE.md 一起提供;個人學習檔可能含有私人輸入內容,不應一併分享。
輸入法只在使用者明確改選候選字或詞時,將「注音、原轉換、改選結果」
記錄在 %APPDATA%\PinnedBopomofo\feedback.json。不記錄前後句、應用程式
名稱或身分資料,也不會自動上傳。安裝後可從開始功能表的「智慧優先注音」
開啟「轉換錯誤回報工具」,逐筆編輯、移除、匯出,或在確認後建立 GitHub
回報。
候選排序固定先保留使用者明確選擇;內建來源先比較完整涵蓋的音節數,避免
「對話框」被較短的「畫框」覆蓋;涵蓋相同時才依教育部台灣字詞頻資料、
內建詞庫的順序決定。
完整句的自動組字與候選欄必須呼叫同一個排序來源;保守近音與高可信錯字修正也必須先成為可見的完整句候選,不可等到 Enter 才暗中修改。所有送出路徑只會先同步該可見預設,再提交畫面上的文字。
右側數字鍵盤的 0–9、小數點及 / * - + 永遠直接輸出對應字元,不會被解讀成注音或候選鍵;Shift+英文字母或符號會取代當前未完成音節。
Enter 修正會先由 bopomofo_core/phonetic_corrector.py 使用每個字保留下來的注音、候選字與離線常用詞庫重新解碼,並保守處理 ㄣ/ㄥ、ㄓ/ㄗ、ㄔ/ㄘ、ㄕ/ㄙ 等常見發音混淆。補充規則位於 bopomofo_core/data/common_typos.json,只保存錯字、正字及公開來源識別,不保存使用者輸入。規則參考國家教育研究院用字分析,並以教育部國語辭典核對正詞;不把「的/得/地、在/再」或合法異形詞放進無條件自動替換。