Tangent 的部落格

有關 CharaChorder 和 Forge 的筆記和文章

ℹ️ 免責聲明:本練習工具與 CharaChorder 公司沒有隸屬、關聯、授權、認可,或任何正式關聯的關係。

截圖 2025-02-19 23.15.27

連結

功能

  • 鍵盤佈局課程
    • 在一個小課程中可練習 3~4 個鍵
    • 有英文、數字和符號的課程
  • 顯示裝置佈局
    • 只會標示目前課程中的鍵
    • 打出目前的字所需要按的鍵會強調顯示
    • 能從裝置管理網頁的備份檔案中讀取自訂的裝置佈局
  • 小工具
    • 連擊計數器,會紀錄連續正確輸入的次數
    • 速度計,會顯示目前的打字速度
  • 和弦練習
    • 能從裝置管理網頁的備份檔案中讀取和弦列表
    • 能從和弦列表中選擇想練習的和弦們
    • 只會標示目前練習的和弦們的鍵
    • 目前的和弦的按鍵組合會強調顯示
  • 佈局檢視器
    • 可以檢視在不同層和修飾鍵(Shift 和 Alt Graph 鍵)下最終輸出的佈局(在所選的作業系統佈局下的實際輸出)
    • 在佈局中搜尋按鍵
    • 列印出最終輸出的佈局(或輸出為 PDF 檔)
  • 佈局記憶歌
    • 一首由 AI 生成的歌曲。能協助你記憶在預設佈局上的字母按鍵

其他相關主題

命名和主題顏色

第一個我希望這個工具要有的功能,就是能讓使用者一次只需練習 3 個字左右。(對,就是黃金三條法則) 所以關於這個專案的名字,我就從「三」開始發想,然後找到三的大寫「參」。這個字在其他情況和讀音時也有「研究、學習」的意思。

因此,這個專案最初的英文名字為 “typing-san”。 “san” 音近於中文和日文中的三,所以這個名字可以解釋成「打三個或更多個項目」。

但是這個名字對於不知道中文和日文的人太過抽象,而且也很難從這個抽象的名字中來設計工具的主題樣式。

接著,我找到一個名為參宿的星宿,所以我決定把這個專案命名為參宿中的第一顆星,即「參宿一 (Alnitak)」。「參」的一個解釋為「學習」,「宿」的一個解釋為「處所」,「一」即英文中的 One,所以「參宿一」可以被我超譯為「CharaChorder One 的學習處所」。並且因為參宿一的主星為藍超巨星,我可以用這個作為這個專案的主題色,所以這就是這個工具的主題色的由來。

設計概念

連擊計數器

連擊計數器會紀錄到目前為止連續的正確輸入次數。追求更高的連擊數是一個與輸入速度或準確率不同的挑戰。

當連擊數增加時,計數器的顏色會依照色溫恆星光譜的方式變化。而本專案的名稱「參宿ㄧ」是恆星的名稱,因此這個顏色變化方式非常符合。

速度計

速度計是將目前的速度視覺化的一個好方式。其設計是從收集與一個經典的賽車動畫,「閃電霹靂車」,有關的一些儀表板或速度計設計開始。再為了避免過於複雜的設計分散使用者的注意力,對設計進行簡化後,才成為現在的樣子。另外,甜甜圈分塊的形狀與 CC1 的佈局上的按鍵形狀相當配。

分塊和數字的顏色也根據上面提過的色溫或恆星光譜的方式變化。

佈局記憶歌

在四天前(2025 年 12 月 2 日),我看了一部影片。那是由 AI 生成的動漫哏台語歌。現在 AI 產生音樂的能力讓我相當驚訝。後來,我有個想法。是不是能用 AI 來產生一個可以協助使用者記憶預設佈局的歌曲?這一定可以上學習更加有趣。因為小時候我們也用歌曲學習了不少東西,比如字母歌、Do-Re-Mi 之歌等。

首先,我從歌詞開始著手。我製作了一張只有字母鍵的佈局圖片後,並將這張圖和提示詞「產生一個能協助我記憶這個 3D 輸入裝置的佈局的歌曲」傳給幾個大型語言模型。我最後選擇了 Kimi K2 Thinking 的結果,因為只有它有用單字把數個鍵串連在一起,比如用 “A Tall Ninja Jumps, Yes Sir!” 串起預設佈局右上的 “A-T-L-N-J-Y-S”。

接著,我將這個歌詞傳給 Suno 來產生歌曲。Suno 同時產生了幾個歌曲,我從中選了最有活力的。

最後,我將歌曲和歌詞加到 Alnitak 的佈局歌曲頁面。另外,那個頁面上也會顯示佈局圖,並會在歌曲提到對應的按鍵時顯示並點亮它們。

技術堆疊

佈局記憶歌

其他參考資料

(不採用)方向一:從天弦 41 鍵 V5 的佈局修改

Master Forge (M4G) 是 CC1 的接班人,它將不會有拇指的第三搖桿,所以不可能在 M4G 上直接使用天弦 41 鍵注音佈局。並且如果要讓所以注音符號放在主列上,要有更多「主列上的非文字鍵」要被犧牲,或者我們需要使用一整個層(如數字層或者功能鍵層)來供注音輸入用。

天弦 41 鍵 V5 來改,這就是一個可能的 M4G 注音佈局。

localhost_4200_layouts

但是如你所見,一些小指搖桿上的鍵會被注音符號佔據。這就代表 Num-shift、Shift 和鏡像鍵就會不在它原有的位置。這樣會讓這個佈局很難與英文輸入並存。

此外,在天弦 41 鍵注音佈局上,我可以只用右手拇指就能打出所有韻母(ㄦ以外),但是在 M4G 上,我將會需要另外一隻手指。

根據以上的問題,我認為目前 CC1 比較適合我的用途(英文輸入和中文注音輸入),因此除非我之後有找到更好的解法,不然我目前沒有要換成 M4G。

(採用)方向二:一鍵多用

另一個可能解法為在一些按鍵上映射多個注音符號。一些現有的注音輸入法或鍵盤佈局,如許氏鍵盤追音輸入法,也有這樣的設計來減少需要使用的按鍵數,如此可以減少使用者的手部移動距離和頻率。

但是這種設計的問題是,一個按鍵組合所對應到的候選字可能會變多。換句話說,需要選字的機會將會增加。

分析注音組合

為了決定要將哪些注音符號放在同一個鍵,我使用這個中文字典的注音組合清單,並分別計算兩兩聲母和兩兩韻母的組合重複數目。舉例來說,都有與 ㄧㄝㄧㄠㄧㄢㄧㄣㄧㄥ的組合,所以他們的組合重複數目為 6。然後我把這些數目畫成如下的列聯表。

localhost_5173_

localhost_5173_ (1)

佈局設計歷程

第一次迭代

有了各重複數目的資訊後,我就能選擇較小重疊數目的分組,把它們分別放到同個按鍵上。

我選了:

  1. ㄍ-ㄐㄎ-ㄑㄏ-ㄒㄥ-ㄦ,因為他們完全沒有任何重疊。
  2. ㄛ-ㄜ-ㄝ,因為他們只有少量的重疊 (3, 0, 1)。

因此我把佈局改為如下圖。

localhost_4200_layouts (1)

我試著將在我的 McBopomofo IME 的分叉專案下試著實作這個佈局,如果結果不錯的話,我會重新考慮是否要買 M4G。

第二次迭代 - 天弦 36 鍵 V1

在嘗試之後,McBopomofo 似乎在 ㄛ-ㄜ-ㄝ 鍵上有問題,可能是因為他們的組合有重疊,因此我再把佈局改為如下圖。

localhost_4200_layouts (2)

右鏡像鍵被換成 / 鍵。

localhost_4200_layouts (3)

經過更多測試後,似乎這個佈局和 McBopomofo 在用聲韻並擊時不太能夠正常運作,可能因為 McBopomofo 預期輸入要是正確的順序才能正確的判斷要用哪個注音組合。所以我修改這個判斷邏輯來讓它們能正常運作。我將這個佈局命名為天弦 36 鍵,以跟天弦 41 鍵做區別。

(選擇符號的規則我寫在附錄 A)

缺點

很難支援注音密碼

用天弦 41 鍵的佈局的話,我可以用額外的 OS 佈局來打注音密碼,因為一個鍵只會對應到一個注音符號。所以作一個「可以對應 CC1 的輸出到注音符號對應的密碼」的 OS 佈局是相當容易的。

但是天弦 36 鍵的話,因為一個鍵上有多個注音符號,所以會很難處理。所以我可能就用一般鍵盤來輸入,或者使用密碼管理工具。

一開始在用時容易混淆

這個佈局在一個鍵上有多個符號,最終要某個鍵擊是用哪個符號,是有一套根據所有的注音組合去判斷的規則(細節我寫在附錄 A),所以在緩衝區顯示的符號可能會在打字過程中變化。
舉例來說,當我想打 ㄐㄧ 時,我可能會先按 ㄍ/ㄐ 鍵,再按 鍵。因為選擇符號的規則的作用,在按 鍵後,緩衝區中第一個符號將會從 變成

鍵擊緩衝區內的符號
ㄍ/ㄐ
ㄐㄧ

這就是為何一開始會混淆,但是可以透過練習來習慣它。

更新

V2

經過多次測試之後,我發現 V1 佈局下,ㄩㄝ 會較難打,所以我再調整了一下佈局如下。

localhost_4200_layouts

and 鍵現在在同一個方向上,所以打 ㄩㄝ 會比較容易。我比較少用到有 ㄧㄛ 的字,所以 鍵在反方向是可以接受的。

V2.1

我可能未來需要用公司提供的筆電來工作,但是我的小麥注音輸入法會因為公司資安政策的考量而沒辦法安裝。為了能夠在 CC1 或 M4G 上使用內建的注音輸入法,我根據方法一提到的佈局以及標準注音輸入法的佈局改掉 A3 層的佈局。雖然這樣我需要用兩次鍵擊來切換中英文,(一次是切換裝置上的 A1 和 A3 層,另一個是切換作業系統上的輸入法。)這是我能想到的唯一解法。

下面兩張圖分別是那個注音佈局以及對應的 A3 層佈局。

localhost_4200_layouts
localhost_4200_layouts (1)

V2.2

為了平衡在 CC1 上點擊滑鼠時的兩手的負擔,我決定在數字層的兩個拇指第二搖桿上都放上所有的滑鼠點擊動作(滑鼠左/中/右鍵)。

底下是變更後的數字層。

localhost_4200_layouts (1)

  • ②: 數字層鎖定 / 解除鍵
  • M箭頭: 滑鼠移動
  • S箭頭: 滑鼠捲動
  • LC, MC, RC: 滑鼠左/中/右鍵
V2.3
  1. 我加回缺少的 F11 和 F12 鍵。
  2. 我發現可以用原本的 Num-shift 鍵離開數字層,所以我移除在左拇指中搖桿上的數字層鎖定/解除鍵。

(數字層)
localhost_4200_layouts

V2.4

我交換了滑鼠捲動和移動的搖桿的位置。我感覺用中指控制滑鼠移動會比用無名指好。

(數字層)

localhost_4200_layouts (5)

(不採用)方向三:在 M4G 上使用 3D 按鍵

在 CC1 上的 3D 按鍵的話,因為它需要用較多的力量,我的手指沒辦法負擔,所以我沒辦法使用它。但是如果 M4G 上的 3D 按鍵不需要那麼多的力量的話,我可能會將一些鍵,如聲調鍵,移動到 3D 按鍵上,留給其他注音符號更多的空間。但我需要等到我實際在 M4G 上試過 3D 按鍵才能知道這是否對我來說是可行的方式。

附錄

A. 天弦 36 鍵的符號選擇規則

在天弦 36 鍵佈局上,同一個鍵上的五對注音符號為:

ㄍ-ㄐㄎ-ㄑㄏ-Tㄜ-ㄝㄥ-ㄦ

輸入法需要有個規則來判斷這幾對內要選擇哪個注音符號。

ㄍ-ㄐㄎ-ㄑㄏ-Tㄜ-ㄝ 的規則

如果我們詳細觀察這四對的所有注音組合,我們會發現到:

  1. 各自的所有組合的介音只可能是
  2. 各自的所有組合的介音只可能是(無介音)

所以輸入法可以透過「當緩衝區內有時,選擇。否則選擇。」的規則來選擇符號。

ㄥ-ㄦ 的規則

ㄥ-ㄦ的規則就相對單純。因為與其他介音和聲母沒有任何組合,所以輸入法的選擇規則就是:「當緩衝區內有任何介音或聲母時,選擇。否則選擇。」