小鶴音形輸入法非常好用。大部分的詞語和漢字都只需要四鍵就能精確檢索,使盲打變得可能。
純拆字的的輸入法(形碼)也能做到盲打,但是拆分邏輯都不易學,就算學會了還是需要大量的練習,因為沒有發音的直覺,所以實際使用的時候是靠反射動作輸入的。
小鶴的優秀之處,是把「音碼」和「形碼」分開:兩鍵定發音、兩鍵定寫法。這種設計讓用户可以漸進學習:先學雙拼的部分,體驗輸入速度的提升,有興趣深入再補充形碼,消滅選字的麻煩。
英文會不會也有類似的快速輸入法呢?Stenograph 的概念看起來還是很吸引人的,用特別設計的鍵盤,區分元音和副音,按音節輸入詞語。而且按鍵數居然比一般鍵盤還要少。
但研究一下輸入原理之後,就發現這個是學不來的。特殊的鍵盤設計不是單純的人體工學,而是按鍵和弦 (key chord) 能成立的基礎設備。一隻手指需要同時按下兩到四個相鄰的按鍵,所以需要按鍵接近而且觸發力度低的鍵盤。
在普通鍵盤上復現的話,拇指區的會變得相當彆扭。要連續用扭曲的姿勢用力按下五六個按鍵,這會把手搞廢掉的。
同音字是音節輸入法的噩夢,但英文的同音字實在不多,一個發音最多有三個候選詞字而已。為了區分同音字,Stenograph 的各個 theroy 設計了各自的輸入規則。大部分都沒有什麼道理,純粹是利用編碼空間消滅重碼,求快而已。
我不需要極致的速度,也不想投資外設和練習特殊指法,只是想要像小鶴輸入法一樣的確定性和節奏感而已。
在普通鍵盤上,一樣可以實現元輔音分離。Dvorak 的設計可能是和 steno keyboard 最接近的。設計哲學是把元音字母 aoeui放到左手,主要輔音字母 dhtns 放到右手。當年沒有計算機統計英文詞頻,反而能設計出更加通用的佈局。很適合轉換成 IPA 輸入法。
不過沒有多鍵並擊,就不能壓縮按鍵空間,最多只能塞下兩個分區。
stenograph 的思路是把所有按鍵分散到每一隻手指,就能一擊輸入,所以也不會考慮碼長。既然我的方案無法並擊,就應該用傳統的思路縮短編碼。
速度上可能不會有提升,但是能應該能輸入得更加穩定,不會有拼寫錯誤,知道發音就能輸入。
雖然對非母語者來説,準確的元音發音肯定比拼寫難。
輸入法定製自然是用 我慣用的 RIME(官網),以前只能按官方指南寫些簡單的配置,現在有能力借別人寫好的 schema 來用了。
把中文輸入法引擎用來輸入英文有點水土不服,不過做個 demo 是足夠的。前人的例子也很多,有用簡單的代碼和詞彙表輸入英文的 easy English 等。
我首先找了 Lapwing 詞庫來用,製作完成之後,發現有些不同的音節被壓縮到相同的按鍵了,很難反向翻譯回來。
既然這樣,倒不如乾脆從源頭的入手,先做個純粹的 IPA 輸入法,再從 stenograph theory 獲取縮短編碼的靈感。
幸好有 steno-tools (github) ,可以直接生成 stenograph 的詞庫碼表。我只需要用到映射 IPA syllable 的第一部分,魔改一下就能生成詞彙表了。
沒有特意壓縮長度,所以不需要繁複的規則。重碼只限同音字,也沒有輸入衝突和例外,直截了當地展開所有元音。Lapwing theory 裏也有不少縮短碼長的靈感,例如省略夾在輔音中間的 ə ɪ ɛ,給常見的後綴 -ment 和 -ibility 設置專門的縮寫等等。
另一部分的問題是怎麼把這些 IPA 符號分配到鍵盤上,特別是大量的元音應該怎麼分配。真正按照發音展開的話,不是只有 aoeui 五個字母的。美式英語需要 “ɔ ɑ ə i æ o ɛ u ɪ ʊ” 。右手只是空了一個 q 的位置,所以連 Dvorak 鍵位的 . , ' 都要利用起來才塞得下。
輔音的部分倒是剛好夠用,c 和 x 空了出來,可以放 θ 和 ʃ,把 ’ 的位置也用了放了 ŋ ,這樣一個輔音最多兩鍵,雖然是有更有效率的擺法,例如因為沒有了 th,sh,ch,應該把 h 移到較少用的位置,把 r 換上來,順便把 l 移到無名指能按到的位置,這些小優化自然是可以做的,但我想還是儘量不改動 Dvorak 原本的鍵位比較好,萬一把自己搞混亂就麻煩了。
只要能夠實現左右手音節分離,兩鍵定一音,什麼鍵盤排布都不重要了。
佔用了標點區,但其實標點符號是可以智能填上的吧?英文的話。