Type Words 打字背單字工具:你打錯的字,明天會再回來考你

8.9k 星的開源背單字工具,把打字錯誤直接餵進 FSRS 間隔重複演算法。實測 194 本詞庫、27 萬詞條,外加免帳號全本地的真實代價與自架邊界。

用 AI 摘要這篇文章:

背單字工具這十年長得都差不多:翻卡、自評記不記得、間隔重複、每日提醒。GitHub 上 8,912 顆星的開源專案 Type Words(官方中文名:詞文記)插進這個戰場的角度很不一樣,它假設你的手指也參與記憶。整個練習用打字進行,而原始碼裡最值得看的一段邏輯是:你打錯一個單字的次數,會直接餵給排程演算法,決定這個字什麼時候回來再考你。

這個專案 2023 年 8 月開始開發,授權 GPL-3.0,到 2026 年 8 月中還有 commit 進來,維護狀態相當健康。我把官網實際打開,跟著精靈選了 CET-4 詞庫,打了兩個單字走完一輪練習。這篇要講的是它真正特別的設計,以及「免費、無帳號、資料全本地」這組承諾背後的真實代價。

Type Words 官網首頁:開源打字背單字工具的入口與功能總覽Pin
Type Words 官網首頁(typewords.cc),標榜開源免費、資料本地離線

它不問你記不記得,它看你打錯幾次

市面上的間隔重複工具(Anki 這一系)有個共同結構:翻開卡片,你自己按「記得/忘記」。Type Words 用的排程器其實同源,走的是 FSRS 這套開源間隔重複演算法(透過 ts-fsrs 函式庫實作),差別在評級的輸入來源。原始碼設定裡寫得明白:打字過程錯零次評為 Easy,錯三次以內評為 Good,錯六次以內評為 Hard,超過就評 Again 進最短複習週期。練習結束時,系統對每個出現過的單字套用這個換算,去更新它的記憶卡排程。自評的動作在打字流程裡被整個拿掉,鍵盤上每一次修正,就是評分本身。

排程參數攤開看更有意思。目標留存率設 0.9,也就是演算法以「你下次看到這個字有九成機率記得」為目標排間隔;新卡學習階段是一分鐘與十分鐘兩跳,忘掉的卡重新學習是十分鐘一跳,最長間隔拉到三萬六千五百天。這些預設值都放在設定檔裡,進階使用者可以自己調。要強調的是,以上是設計層的事實,效果層的保證本文不給:打字輸入是否真的比翻卡記得更牢,沒有對照測試能背書,我也不會假裝有。

自評有兩個老毛病,按得太快高估自己,以及評分本身累人。把評級交給打字行為,這兩個毛病同時繞開。補充一個精確的邊界:自測流程(含智能模式複習輪裡的自測階段)仍保留自我評估選項,自評結果會覆蓋錯字換算;純打字的跟打與默寫階段,評級才完全由錯字次數決定。

實際練習的長相是這樣。選定 CET-4 詞庫(2,607 個單字,介面切成每 20 個一組方便消化),練習卡一次給齊英美兩種音標、詞性釋義、三句例句附中文翻譯、常用短語、同義詞,詞庫資料連詞源都備好了,第一個字 cancel 的詞源講中世紀抄寫員打叉撤銷筆誤的故事。這一欄預設不顯示,要到設定裡打開,作者自己標註內容可能有誤。打完按空白鍵進下一個字,畫面上方隨時排著後面幾個字的預覽,輸入卡住時旁邊掛著「無法輸入」的救援連結。字卡本身就是一則完整詞典條目,想順便讀點字源學是附贈的。側邊還有學習儀表板:今日學習時長、總學習天數、總學習時長、一週打點日曆,量化自己的曲線。喜歡儀式感的人可以開鍵盤音效,音量與速度都做了細部設定,原始碼裡是一整套獨立的聲音控制層。

Type Words 單字練習畫面:音標、釋義、例句與打字輸入區Pin
CET-4 詞庫練習畫面,字卡含英美音標、例句、短語與同義詞

主要練習模式七種:智能模式跟著排程走、自由模式自訂進度,另外有自測、默寫、聽寫、隨機複習、複習幾種獨立練習,再算上單字測試與隨機單字測試兩種測驗型模式。智能模式的今日任務把新詞與到期詞分開列,另有一個隨機複習的開關可以疊加。單字發音走有道詞典的線上語音 API,英式美式可切換,載入失敗才退回瀏覽器內建語音合成;例句朗讀直接用瀏覽器語音合成,不用額外音檔。練習打錯的字自動進錯詞本,主動標記已掌握的字會在之後跳過,這套錯詞管理與 Qwerty Learner 那類打字練拼字工具相比是明顯的差異化,後者的重心在拼字準確,這裡的重心在排程與遺忘曲線。

官網寫 50+ 詞庫,實際清單有 194 個

官網的描述文字寫「內建 50+ 詞庫」,帳面上嚴重低報。我把線上詞庫清單 JSON 整份下載加總:194 本詞庫,合計 273,628 個詞條。CET-4、CET-6、考研、專四專八、IELTS、TOEFL、GRE(含 GRE 3000 與再要你命 3000)、GMAT、SAT、新概念英語、牛津 5000、麥克米倫 7000 都在列,主流考試基本全覆蓋,清單還按考試類型分了類,有推薦標記可篩選。詞庫持續在加,作者也開放社群貢獻,repo 裡放了完整的貢獻指南。

詞庫內容的豐富度值得單獨說。我實際抓了 CET-4 的主檔:4.5MB、2,607 條,每條含英美音標、同義詞、詞源、變形、相關詞、釋義。下載行為按需發生,選到哪本才抓哪本的主檔,一次學一本不會把兩百多本全塞進瀏覽器。

文章練習是另一條腿。內建新概念英語第一到第四冊共 276 課,跟打加默寫雙模式,逐句輸入配自動發音,也支援邊聽邊默寫。自己的素材用 json、xlsx 或 txt 匯入,一鍵翻譯做雙語對照,常讀的文章可以收進收藏做成個人書單。介面提供 14 種語言,繁體中文在列。

Type Words 文章練習頁:新概念英語書單與本週學習記錄Pin
文章練習頁內建新概念英語一到四冊,配每週學習打點日曆

免帳號全本地,代價是學習記錄住在瀏覽器裡

README 講得很白:專案可以完全獨立跑,資料存在本地,換裝置要手動備份。實際儲存位置是瀏覽器的 localStorage 與 IndexedDB。有個細節多數人沒注意到,練習過程錄影回放也是本地的:它用 rrweb 把你的操作錄下來存 IndexedDB,上限 10 個 session、每個一萬個事件,可以逐段重播某次練習,看自己卡在哪個字,也能把全部錄影匯出成 JSON 檔留檔。回放頁藏在網址參數裡,導覽列沒有入口,算個彩蛋級功能。這份錄影不上傳任何地方。

本地儲存的風險,作者自己最清楚,而且把防護直接做進介面。說明頁有一條警告,意思是某些瀏覽器的垃圾清理功能會連同網站資料一起清掉,幾個月的學習紀錄就沒了;設定頁留著一個給 Mac 版 360 極速瀏覽器使用者的特殊選項;執行有風險的操作前,會先跳出備份對話框,按過資料備份才放行。2026 年 8 月 16 日還有一個修這個機制的 commit 進庫。清一次瀏覽器資料就歸零,這在別的工具是理論風險,在這裡是作者花工程在防的實際事故。

備份的設計也算用心。匯出的是一個 zip 壓縮檔,裡面放著完整學習資料的 data.json,加上你自行匯入的音檔,檔名自動帶時間戳。把它丟進雲端硬碟或定期上傳,就是最簡單的保險。

跨裝置同步呢?官方沒有雲端帳號,同步走 Supabase 自備後端路線:在設定頁填入你自己的 Supabase 網址與金鑰,驗證成功後才啟用。這與 SkidHomework 自備 API 金鑰是同一種信任邊界,資料流向由你自己決定,代價是要自己架後端。多數人會停在單機使用,那就要把固定匯出當成紀律。同樣強調資料不出門的還有 Urik 開源 Android 鍵盤,它連網路權限都沒有申請,這類工具的隱私承諾最終都落在資料放哪裡這一題。

隱私面要分兩層看。repo 裡的隱私政策檔(2025 年 11 月版)仍寫著帳號註冊、收集設備資訊與 IP 等條款,那是舊服務形態留下的文件。實際程式行為是:練習內容與錯詞本不上傳,啟用自架 Supabase 同步後,學習資料才會送到你自己架的後端;但官方站每一頁都掛著三套統計腳本(51、百度統計、作者自架的 umami),開始練習時 umami 會收到詞庫名稱、學習進度與練習模式這類行為資料,單字發音也會向有道詞典的語音 API 發請求。對隱私比較講究的人,自架 Docker 版是更乾淨的選擇。

開源的是引擎,詞庫內容不在 repo 裡

GPL-3.0 授權條文全文在 repo 裡,程式可以自由修改與重散布。但 194 本詞庫的內容檔不在 repo 裡,放的是索引清單,實際詞典 JSON 在執行時從作者的內容分發網域下載。自架 Docker 版拿到同一份程式碼,詞庫照樣從作者的 CDN 拉。

這個設計有其道理,內容集中才容易修錯與更新,不用為了改一個錯字發新版本。這樣的分工劃出一條具體的邊界:程式的自由由 GPL 管,內容的權限由使用者協議管。協議第五條要求未經書面許可,不得複製、散布、鏡像本應用任何內容;第九條訂明準據法為中華人民共和國法律。想拿它的詞庫內容去做自己的產品,這條線要先看清楚,GPL 給你的自由到內容為止。

repo 裡還有一套停用的商業層痕跡:登入頁、VIP 會員等級、支付寶下單、自動續約的程式碼都在,會員資料結構也定義好了。現行建置把它整組關掉,官方站判定旗標設為否,帳號 API 回應需要授權,前台導覽也找不到登入入口。把它讀成舊商業化路線的遺跡是合理推論:現行版本全功能免費,但程式裡留著一套隨時能重新打開的骨架。

專案的人力結構也該知道。五百多次 commit 裡,497 次來自作者本人,第二位貢獻者 31 次,其餘都是個位數,開出的 issue 還有四十多個待處理。單人主導的好處是方向一致、決策快,風險是巴士係數為一,長期投入前把這點放進你的評估。

入口搬過家,照舊教學走會撲空

這個專案曾以 2study.top 為主要域名,原始碼裡仍留著舊域名宣告與一個等待遷移指令的舊站頁面。2study.top 目前已經無法連線,現在的官方入口是 typewords.cc,GitHub 與 README 都指向它,8 月 16 日剛完成新一輪部署。網路上留存的舊教學與舊連結指向的入口已經失效,查資料時留意文章日期。

部署型態比一般網頁工具多:網頁版有 PWA 與 service worker 註冊,不過攔截器是空殼、沒有實作離線快取,離線開站行不通;Docker 映像在 Docker Hub 累積 1.9 萬次拉取,docker-compose 起在 3000 埠;VS Code 擴充在市集可裝,寫 code 寫到一半切過去背十個字再切回來;微信小程式掃首頁條碼可用。想自己架一套的話,README 有個少見的警告:GitHub 的 Download ZIP 會壞,要用 git clone –depth 1,這個 repo 將近 14MB,壓縮檔路徑有地雷。

判斷:什麼人該把幾個月的練習交給它

適合的人有個共同點:每天有段時間在鍵盤前。想在工作中間穿插背單字的人、準備主流英檢的考試族、受不了廣告與強迫註冊的人,這個工具的體驗都對得上。它特別適合已經在用鍵盤型工作流的人,因為練習本身就是打字,切換成本趨近於零。

不適合的情境也明確。以手機為主要學習裝置的人,網頁在小螢幕上能用,但打字體驗完全是另一回事,小程式是獨立產品線另行評估。要多裝置無縫漫遊、又不想碰 Supabase 的人,現在的同步方案會讓你卻步。還有一種人該繞道:想知道「打字背單字有沒有科學依據」的,這題目前沒有定論,本文也只能給設計事實。

決定長期投入的話,三件事先做。進設定頁確認自動備份行為,或養成固定匯出 zip 的習慣;要換瀏覽器或跑系統清理工具之前,先手動匯出一次;打算跨裝置的人,先把 Supabase 架好再開始累積資料,半路搬家的成本比你想像的高。

免費的背單字工具滿地都是,這個專案真正下注的是一個設計假設:把打字錯誤當成記憶演算法的輸入,賭你的手指比你的自評誠實。賭對了,它會是你用得久的工具,因為評分負擔被拿掉了;就算賭錯,你的資料從頭到尾都在自己手上,匯出帶走,不欠誰。

Sliven 褚崇名
Sliven 褚崇名

每日分享科技新知、免費資源以及 WordPress、虛擬主機相關主題,任何問題歡迎在科技月球下方留言,或是發送 Email 至 [email protected] 與我聯繫。

文章: 903

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *


Share to...