OXIM 中文輸入法框架



1. 引言

中文輸入是「中文桌面應用增進計畫」裏最重要的開發項目之一。「輸入」對於系統的重要性自不待言,任何資料要交由電腦處理之前,都必須以某種形式輸入。雖然許多較為人性化的輸入方式(例如:光學辨識以及語音辨識),也漸漸地受到注意,但是目前一般人還是以鍵盤與滑鼠為最主要的輸入媒介。

對於其他的拼音文字而言,以英文為基礎而發展出來的現行鍵盤配置,並不會在輸入時造成太大困擾。通常只要把鍵面記號更換一下,再定義一些組合鍵以包含安排不下的特殊字元,就可以完整地輸入本地的語言,而此種方式並不適用於中文這類的表意文字。由於中文的字數遠超過標準鍵盤上的鍵數,因此必須將中文字對應成多個鍵碼之後,再把經由鍵盤輸入的鍵碼組合回原來的中文字,而在系統中負責此項工作的就是「輸入法程式」。


2. OXIM 輸入法

依照輸入法程式與系統間溝通的協定不同,而曾經出現過許多的「輸入法框架」:初期是以 X 視窗系統所訂定的 XIM 協定為主,雖然此種架構本身的設計並不完善,但是它的相容性最高,又是當時惟一的輸入法架構,因此獲得多數輸入法程式的支援。爾後 Fedora 曾在其發行版本中嘗試推動 IIIMF(Internet/Intranet Input Method Framework) 框架【註】,期望能擺脫與 X 的相依性,並且執行單一的守護程式做為具備網路通透性的伺服器,卻因為缺乏支援而導致日趨沒落。接著許多大型軟體函式庫也紛紛推出各自的解決方案,像是 GTKQt 都具有適用於該函式庫的輸入模組。


【註】IIIMF 網址(http://www.openil8n.org/subgroups/im/IIIMF/


2.1 開發歷史

OX Linux 系統隨附的輸入法程式,是由 Opendesktop 所開發維護的 OXIM(Open X Input Method)。原始碼的前身來自於早期中文 GNU/Linux 使用普遍採用的 XCIN(X-Window Chinese Input),但是經過了大幅修改,不僅相容於舊有的 XIM 協定,也提供與 GTKQt 等輸入模組的介面。

檔案下載:

一、已編譯套件:
請從: ftp://ftp.opendesktop.org.tw/odp/OXIM/Distribute/ 下載。

二、原始碼:
請從: ftp://ftp.opendesktop.org.tw/odp/OXIM/Source/ 下載。

三、從 CVS Server 取得最新原始碼:

指令:cvs -z6 -d :pserver:anonymous@opendesktop.org.tw:/misc/cvs co oxim

指令:cvs -z6 -d :pserver:anonymous@opendesktop.org.tw:/misc/cvs co oxim-setup

指令:cvs -z6 -d :pserver:anonymous@opendesktop.org.tw:/misc/cvs co oxim-filters

指令:cvs -z6 -d :pserver:anonymous@opendesktop.org.tw:/misc/cvs co tegaki-oxim


2.2 安裝套件

必要的套件包括:

oxim

OXIM 主程式

oxim-setup

OXIM 設定

oxim-filters

OXIM 輸出過濾功能

libchewing

新酷音輸入引擎


附加功能的套件包括:

tegaki-oxim

tegaki

tegaki-gtk

tegaki-models

OXIM 手寫辨識

zinnia

python-zinnia

簡體字、日文字手寫辨識引擎

espeak zhspeak

語音輸出引擎


3. 基本操作


3-1 OXIM 啟動狀態


OX Linux 桌面系統在使用者登入之後,便會自動執行 OXIM。畫面的工作面板上,可以看到一個鍵盤的圖案(圖3-1),這就代表 OXIM 輸入法程式已經啟動。當您要輸入資料時,請先以鍵盤或滑鼠將輸入焦點移到目標位置上,此時的鍵盤仍然維持原來的英數輸入功能。只有當使用者按下組合鍵 [Ctrl-Space] 之後,工作區域右下角則會出現一個浮動的橫式小視窗(圖3-2)。



3-2 OXIM 狀態區


浮動視窗稱之為「狀態區」,用來顯示 OXIM 當時的狀態。最右側是一個白色方格,其中的灰色區域可能為半滿或全滿,分別代表輸入英文、數字及標點符號時,會輸出「半形」(正常)或是「全形」(與中文字同寬)的字元,而此一狀態可以利用 [Shift-Space] 來切換。視窗中央的文字代表目前所使用的輸入法規則,預設為智慧型的「新酷音」注音輸入法,輪換則是利用 [Ctrl-Shift] 組合鍵。當滑鼠移到狀態區左側虛線上方時,滑鼠游標會變為十字形箭頭。此時如果您按住滑鼠左鍵,就能將狀態區拖曳到想要的位置。


出現浮動視窗時,使用者所輸入的按鍵將會被 OXIM 攔截與分析,並且嘗試組合出相應的中文字元,再送回取得輸入焦點的目標位置上(圖3-3)。在此過程裏,輸入的鍵碼會顯示於另一個浮動的橫式小視窗之中。該視窗的名稱叫做「組字區」,表示其中的內容將會作為組字的資料。如果輸入規則沒有特別指定,空白鍵即代表輸入完成並開始組字。 OXIM 便依據輸入的鍵碼序列來搜尋對照表,並將符合的結果顯示於第三個名為「選字區」的直式浮動小視窗之中。假如搜尋結果為單一字元而沒有重碼字,該字就會直接進入目標欄位,否則使用者必須加按數字鍵(1, 2, 3, ...),以選擇正確的中文字。



3-3 OXIM 實際操作畫面


用滑鼠左鍵按一下工作面板上的輸入法圖示,就會顯示 OXIM 的功能選單(圖3-4)。選單頂端列出已經安裝的輸入規則,如果名稱顏色較淡,表示正是當時所選用的規則。要改變使用的輸入規則時,也可以直接用滑鼠點選該項名稱,或是利用名稱後方標示的組合鍵(譬如按下 [Ctrl-Alt-0] 就會快速切換到「萬國碼」輸入規則)。


萬一因為 OXIM 本身或是客戶端程式的問題,而造成輸入法程式不正常結束時,只需在終端機模擬程式中輸入:

[root@localhost ~]# oxim &

就可再次啟動輸入法程式。命令之後的「&」符號是為了將該命令放在背景中執行,不會佔據命令殼,不過該終端機模擬程式仍然必須一直保持開啟,否則 OXIM 也會跟著關閉。


3-4 OXIM 功能選單

4. 輸入法規則

有了良好的輸入法框架與輸入法程式,其實尚不足以輸入文字,因為使用者實際上是依賴「輸入法規則」來輸入特定序列的鍵碼組字。當您以鍵盤左側的 [Ctrl-Shift] 來輪換時,應該可以發現 OXIM 已經內建了「新酷音」、「中標注音」、「中標倉頡」以及「萬國碼」等四種輸入法規則:

4.1 新酷音

「新酷音」是以獨立外掛模組的方式,連接著名的「新酷音函式庫(libchewing)」【註】。考慮到本地使用者最常以注音來輸入中文,而且需要具有智慧型選字的功能,因此 OXIM 將「新酷音」做為預設的輸入規則。輸入個別的中文字時,會依照前方的字而自動從重碼字中選擇;若是不滿意自動選字的結果,也可以利用方向鍵移到該字下方再按向下鍵,就能夠手動從重碼字中選擇。當整句中文正確無誤之後,按下 [Enter] 鍵即表示完成該句輸入。


4.2 中標注音

「中標注音」採用傳統查表的方式來輸入中文,因此輸入時是以個別中文字為單位,並沒有智慧型選字的功能。對照表來源是主計處提供之「全字庫文字屬性規範」【註】,擷取注音部份資料所建立。由於該屬性經過相關單位審查,因此完全符合教育部所訂定之標準。


4.3 中標倉頡

「中標倉頡」同樣採用查表的對照方式,表格的來源也是「全字庫文字屬性規範」。輸入規則雖然基於第三代倉頡,但是因為依照標準字體拆碼,有些字的輸入碼會與傳統拆法不同。


4.4 萬國碼

「萬國碼」就是系統所用的「UNICODE」內碼【註】,因此不需要額外的對照表,而是以簡單的外掛模組實作出來。最高支援四個位元組的編碼長度,也就是八個十六進位的代碼,因此理論可以輸入所有的 UNICODE 字元。如果首字母為「#」,表示之後是以十進位的代碼輸入。


【註】新酷音:智慧型注音輸入法(http://chewing.csie.net/

【註】全字庫網站(http://www.cns11643.gov.tw/

【註】UNICODE 組織(http://www.unicode.org/


4-1 以若干中文字為例,分別列出其「中標注音」、「中標倉頡」與「萬國碼」的輸入碼。


輸入規則﹨例字

「流」

「喆」

「〇」

「堃」

「煊」

中標注音

ㄌㄧㄡˊ

ㄓㄜˊ

ㄌㄧㄥˊ

ㄎㄨㄣ

ㄒㄩㄢ

中標倉頡

水心戈女

土口土口

卜尸土

火十一一

萬國碼

6D41

5586

3007

5803

714A

4-1 OXIM 內建輸入規則例字鍵碼


4.5 其他支援規則

除了內建的輸入規則,使用者還可以自行利用檔案或經由網路匯入新的輸入規則。

    一、拆形輸入規則:倉頡、三角、四角、行列、大易、輕鬆、王碼。

    二、拆音輸入規則:注音、拼音、客語、臺語、粵語、吳語。

    三、編碼輸入規則:Big5CCCIICNS11643TelecodeUnicode


5. 特殊輸入功能

功能選單下半部則是列出了 OXIM 所提供的特殊功能以及相應的組合鍵:


5.1 輸入風格切換



[LeftShift-RightShift] 代表同時按下鍵盤左右兩側的 [Shift] 鍵,但是要在狀態區出現時才有作用。如果您以往曾經使用過 XCIN ,那麼必定對變身後的狀態區風格感到非常熟悉。


5.2 符號輸入表

[Ctrl-Alt-,] 會呼叫如圖5-1 所顯示的『符號輸入表』視窗。以滑鼠點選右側的分類,就會在左側的表格中看到「標點與標記」、「類字母與數學」、「注音符號」、「數字符號」、「表格與區塊」、「易經符號」、「希臘字母」、「日文平假名」以及「日文片假名」等各類字元,其中「易經符號」主要收錄出現於「易經」中的卦象組合。找到想要的符號之後,以滑鼠點選即可將字元送至目標輸入欄位之中。如果想自行增加特殊符號,只要修改 symbol.list 即可。


5-1 『符號輸入表』視窗


5.3 螢幕小鍵盤

『螢幕小鍵盤』必須從功能選單中點選才會出現。在這個虛擬的鍵盤上,除了原有的英文字母鍵面之外,還會依照目前的輸入規則來改變標示。圖5-2 中所顯示的螢幕小鍵盤,就包括了倉頡輸入規則的代碼。使用者可以直接利用滑鼠點選,對於不方便操作鍵盤的使用者,或是未配備鍵盤的系統而言尤其好用。如果想要自己設計小鍵盤的樣式,可以修改圖檔(defaultkeyboard.xpm)和按鈕定義檔(defaultkeyboard.conf)。



5-2 『螢幕小鍵盤』視窗


5.4 手寫辨識輸入

手寫輸入讓使用者用「畫」字來輸入中文字。只需要在輸入框中畫上字,然後在上方列表中便會顯示結果。操作時,即使不按筆畫順序寫,也會輸出可能的中文字,如果輸出的結果不正確,可以點選該字,隨即會出現相似結果選單,供使用者選擇。此外,同一個輸入框中只可以畫一個中文字,若要書寫下一個字,請畫在另一個輸入框裏。



5-3 『手寫辨識輸入』視窗

6. 輸出過濾功能

[Ctrl-Alt-\] 可以開啟 OXIM 輸出過濾功能,會在 OXIM 狀態區後方增加一個新的圖示。當使用者再按一次組合鍵時,系統會自動輪換下一個支援的輸出過濾功能。


6.1 繁簡互換

此種「打繁出簡」或是「打簡出繁」的功能,對於經常要在繁簡中文之間切換的使用者來說,就省下了改變語言設定以及學習另一種寫法的麻煩。


                 

6.2 打字測速

開啟這項功能時,當使用者輸入文字時,便會即時計算出目前輸入了多少個字、與上一個輸入的字相隔時間,以及打字速度(字╱分),並將結果顯示在面板上 OXIM 小鍵盤圖案的下方。


                 

6.3 顯示內碼

開啟這項功能時,當使用者輸入文字後,便會列出字串的 UNICODE 編碼,包括萬國碼(16)、萬國碼(10)與萬國碼(UTF-8),將結果顯示在面板上 OXIM 小鍵盤圖案的下方。


                 

6.4 語音輸出

開啟這項功能時,當使用者輸入後,OXIM 便會呼叫適當的外部程式來讀出這段文字。




6.5 相關字詞

開啟這項功能時,當使用者輸入文字時, 便會列出剛才輸入字串中最後一個字開頭的相關字詞,以供使用者選擇。例如:輸入『酷』字,便會出現相關字詞的選單,再按下 [Shift-編號] 組合鍵便能選取想要的連接詞,如果候選字超過10個以上,可以使用 [Page Up] 鍵和 [Page Down] 鍵來回切換頁面。

                 

6.6 二次組字

開啟這項功能時,使用者可以輸入要組合起來的字根,例如:以使用者偏好的規則輸入『酉』、『告』,再按下 [Shift-Z] 組合鍵便能將結果的『酷』字輸出。


                 

6.7 網路翻譯

開啟這項功能時, 使用者可以輸入要翻譯成英文的字,例如:以使用者偏好的規則輸入『輸』、『入』、『法』,再按下 [Shift-Z] 組合鍵便能輸出結果:Input Method。由於此項功能是使用 Google 線上翻譯,若不在網路連線的環境中,則會輸出原始字串。


                 


7. 設定

OXIM 的「設定」功能位於選單的最下方,以滑鼠點選之後會出現如圖7-1 的視窗。其中包含了四個分頁:


7-1 OXIM 輸入法設定』視窗『輸入法』分頁


7.1 『輸入法』分頁

『輸入法』分頁列出當時 OXIM 中已安裝的輸入法規則。清單中直接就可以用滑鼠點擊來決定,是否會出現在 [Ctrl-Shift] 的輪換之中。在清單中點選之後,右側的『預設』按鈕用來設定該輸入法是 [Ctrl-Space] 所預設呼叫的輸入規則。圖7-1 就是以此操作將預設輸入規則改為「中標倉頡」的結果。另外,『通用設定』視窗提供修改規則別名以及快速組合鍵的功能,而藉由『屬性』視窗中的選項,可以修改像是「自動出字」這類的屬性。


萬一您習慣使用的的輸入法,並未內建於 OXIM,還是可以利用分頁左下角的『安裝輸入法』來加入新的輸入規則。按下功能按鈕之後,會出現詢問表格的視窗(圖7-2)。此處的對照表可以是一個純文字檔案,內容採用 UTF-8 編碼,支援 UNICODE 的所有字元。主要依據由 XCIN 所訂定的 .cin 檔格式,並參考其他的變化版本而略作修改,以增加讀取的相容性。對照表也可以是經過處理的二進位 .tab 檔案,它們是由 oxim2tab 命令編譯 .cin 檔案所產生的。如果要手動複製的話,系統層級目錄位於 /usr/lib/oxim/tables/,而個人使用目錄則在 ~/.oxim/tables 之下。


假設您取得了「大易三碼」輸入規則的文字格式對照表 dayi3.cin,並且將它放在家目錄之下,那麼您就可以如圖7-2 所示,輸入該檔的位置與名稱。按下『確定』後,圖7-1 的清單中就會增加一個「大易三碼」的輸入規則。即使不知道去何處取得適當的對照表,只要您的 OX Linux 桌面系統能連上網際網路,OXIM 也提供您從網路安裝的選項。在『從網路安裝』分頁中(圖7-3),應該已經自動出現網路上的可用站台;任選其一並按下『連線』鈕,畫面就會出現『適用語言與輸入法名稱』。從清單中勾選需要的輸入規則之後,按下視窗右上角的『確定』鈕,就會自動幫您進行從網路安裝輸入法的程序。

          
7-2『安裝輸入法』視窗-『從本機安裝』    圖7-3『安裝輸入法』視窗-『從網路安裝』


          
7-4、圖7-5 『安裝輸入法』視窗-『從網路安裝』連線


7.2 『字型』分頁

『字型』分頁中的『偏好字型』,代表您希望 OXIM 本身所使用的字型。至於實際輸出的字型,還是取決於目標欄位所屬軟體的設定。一般而言,包含足夠的字元數目是選擇字型的條件之一,另外也要考慮字體顯示的清晰程度。請參考分頁右側的示意圖後,在左側設定各部份的字型大小。

          
7-6 OXIM 設定』視窗『字型』分頁        圖7-7 OXIM 設定』視窗『片語』分頁


7.3 『片語』分頁

『片語』是 [Alt-Shift] 再加上一個數字、字母或符號所構成的組合鍵,用來快速輸入某串預先設定好的字元。例如,預設按下 [Alt-Shift-I] 就會輸入「、」(頓號)。使用者可以直接在此分頁的清單中,填入任何字元序列。以後只要在編輯時按下特定組合鍵,就會輸出對應的片語,對於特殊符號或是常用詞句的輸入很有幫助。


7.4 『關於』分頁

『關於』分頁上則記載 OXIM 作者、網址與授權宣告。


7-8 OXIM 設定』視窗『關於』分頁


離開 OXIM 的『設定』視窗前,請記得按一下左下角的『確定』,如此才會將剛剛所做的變更,存入使用者的個人設定資料 ~/.oxim/oxim.conf 之內。同時 OXIM 也會自動讀取最新的設定值,因此您不需要重新登入就可以馬上試用。