
豪享學英文是我一個人做的扭蛋背單字網站。字庫以全民英檢官方字表與多益、雅思、托福的常考字清單為底,義項、音標與例句由 AI 依固定規則產生。發音用語音合成,再用音素辨識抽檢;情境圖在本機批次產好,再同步到正式機。
這篇記錄這些內容怎麼產生、踩過哪些坑,以及產品怎麼從 MVP(最小可行產品)改成現在的樣子。功能怎麼玩,寫在豪享學英文怎麼玩;整體架構寫在個人網站怎麼架。
豪享學英文是怎麼一步步長出來的?
豪享學英文的順序是先做後端與內容,再做畫面,最後回頭改體驗。從 2026 年 3 月開工到 10 月,主要的里程碑如下。
豪享學英文的功能演進(2026 年 3 月到 10 月)
第一個月只做後端。3 月 10 日開工時,我先寫資料模型、種子資料與整合測試;3 月 21 日,字典、抽卡、AI 產生單字內容、語音合成與 Cloudflare R2 存放都接上了。
4 月 17 日,票券制的 10 連抽、新手禮與付費方案的每日發券做好了。同一天,前端做出扭蛋介面與吉祥物,也接上了子網域的框架。
6 月中之後,豪享學英文大約三個月沒有改動。9 月 26 日我回來一次衝刺,做完第 2 波改版;隔天加入全民英檢、雅思與托福,卡池擴充到 6 個考試。
單字卡的內容怎麼產生?
一張單字卡要準備四種內容:字、文字內容、發音與情境圖。我把它們拆成一條產線,每一段用不同的工具,能批次跑的就不手動做。
單字卡的內容產線:文字、發音與圖分段產生,發音抽檢不過就回頭重產
- 字表:全民英檢用官方字表;雅思、托福用常考字清單,再人工篩選;多益和高頻字表比對。
- 文字內容:義項、中文翻譯、音標、例句與主題,交給 Azure OpenAI 依固定規則產生。
- 發音:用 Google Cloud 語音合成的美式高擬真音源,存到 R2,經 CDN 送出。
- 情境圖:先由語言模型寫情境描述,再用本機的 ComfyUI 批次產生寫實照片風格的圖。
字表的整理與匯入,用一套自己寫的 Python 工具處理。介面上的插圖也是用 ComfyUI 產生,再去背放進網站。
字表怎麼選?卡池為什麼只補不刪?
卡池只補不刪:新的字陸續加進來,已經在卡池裡的字不拿掉。9 月底一次加入 5 個新卡池,也照這條規則處理。
- 情境:豪享學英文一開始只有多益的卡池。2026 年 9 月 27 日,我要一次加入全民英檢初級、中級、中高級,以及雅思與托福的卡池。
- 問題:每個考試的字表來源不同。全民英檢有官方字表,雅思、托福用的是常考字清單,多益則要和高頻字表比對;同一個字,也常同時出現在好幾個考試裡。
- 判斷:字表之後還會再調整。如果從某個考試的卡池移除一個字,使用者已經收集的那張卡,就會從那個考試的畫面消失。
- 做法:卡池只補不刪;唯一的例外是收錯類型的修正,而且要先取得使用者同意。已經收集過的卡,換了考試也不會再抽到;全民英檢高一級的卡池,也包含低一級的字。大小寫不同算成不同的字,例如月份 May 和助動詞 may 是兩張卡。
- 結果與學到的:加入新考試時,舊的收藏不受影響。定卡池規則之前,我先想清楚哪些資料屬於使用者。
AI 怎麼產生義項與例句?
文字內容我不逐字手寫,而是交給 AI 依同一套規則產生。規則固定,卡池裡每張卡的格式才會一致。
每個字產出的欄位都一樣:義項與中文翻譯、音標、例句與主題。9 月 26 日改版時,卡片再加上常用搭配、詞形變化與片語卡;10 月初,我把全站的音標統一成 KK 音標。
AI 逐字建分類,長出幾百個近似的分類
- 情境:一開始,我讓 AI 產生每個字的內容時,順便替這個字建一個分類。
- 問題:每個字各自決定分類,結果長出幾百個意思相近、名稱不同的分類。分類太多太碎,就沒辦法拿來分群。
- 判斷:分類要能拿來分群,清單就要固定,而且由我來定,不能讓 AI 每個字各自發明。
- 做法:2026 年 9 月 26 日,我把原本的分類整併成 40 個主題,並限制 AI 只能從這份清單裡挑。
- 結果與學到的:全站卡片的主題變得一致,卡片上也能標出所屬主題。AI 適合在選項裡挑,不適合自己定義選項;會拿來分群的欄位,要先給它一份固定清單。
發音怎麼做?語音合成為什麼會吃掉第一個音?
發音用語音合成的美式高擬真音源產生,檔案存在 R2,經 CDN 送出。合成之後,我用音素辨識模型抽檢,把音檔辨識回一個個音,看念法對不對。
ə 開頭的字,第一個音被吃掉
- 情境:發音檔是用程式整批合成的,不是一個字一個字錄。
- 問題:以弱母音 ə 開頭的字,第一個音會被吃掉。例如 appointment 聽起來像 ipoint,開頭的音不見了。
- 判斷:這不是單一個字念錯,而是同一類念法的字都會出錯。一個個手動修補不完,要從合成的規則下手。
- 做法:2026 年 10 月 5 日與 8 日分兩次,調整送進語音合成的規則,整批重產發音,再用音素辨識模型檢查全部音檔。
- 結果與學到的:重產後,這類字的開頭音補回來了。語音合成出錯,常常是一整類字一起錯;找到一個,就要回頭找同一類的字。
重產之後,舊的音檔要清掉。清理程式在上版前審查被擋下,因為漏算了每日測驗存下的題目資料;後來改成加保留期,只刪確認過的清單。這次審查的經過,寫在一人開發怎麼用 AI 團隊。
情境圖為什麼在本機批次產生?
卡片好看,抽卡才有收集的感覺,所以每張單字卡都配一張寫實照片風格的情境圖。情境圖的做法是先在本機產好、再同步上線,正式機不跑產圖。
產圖服務只在本機,改成批次預產再同步
- 情境:每張卡都要有情境圖,產圖用的是我電腦上的 ComfyUI。
- 問題:ComfyUI 是跑在本機的服務,正式機上沒有。不解決的話,正式機上新加入的字永遠不會有圖。
- 判斷:字庫是有限、經過挑選的字表,不是使用者隨時新增的內容。要產哪些圖事先就知道,在本機批次預產,成本與風險都最低;雲端即時產圖,排到之後再考慮。
- 做法:語言模型先寫好情境描述,再由本機的 ComfyUI 搭配 Z-Image Turbo 模型整批產圖。產完的圖再同步到正式機。
- 結果與學到的:使用者翻卡時,圖已經準備好了,正式機也不用跑產圖。工作放在哪台機器上跑,要先確認那台機器有沒有需要的服務。
情境圖為什麼在本機產:產圖服務只在本機,批次產好再同步到正式機
2026 年 5 月 31 日,我把產圖引擎改成可以抽換,單張情境圖也能一鍵重新產生。看到不滿意的圖,只要重產那一張就好。
本機產好的圖要寫回正式機。有一次 API 路徑改版,兩個 repo 之間的約定沒對齊,圖默默寫不回去;這個坑和後來加上的跨 repo 審查,也寫在一人開發怎麼用 AI 團隊。
票券與抽卡踩過哪些坑?
票券與抽卡次數關係到使用者的權益,算錯就是少給或多給。2026 年 9 月 26 日改版時,我一起修了兩個這類的坑。
付費方案的每日發券,在正式機默默失敗
- 情境:付費方案的使用者,每天會自動補充票券。
- 問題:這個發券在正式機上全部失敗,卻沒有冒出任何錯誤。原因是程式自動命名的欄位,和手寫的資料庫查詢對不上,錯誤又被程式吞掉。
- 判斷:欄位名稱寫錯不難修,難的是失敗沒有聲音。錯誤被吞掉,就不會有人發現。
- 做法:把欄位名稱固定下來,失敗時一定留下紀錄,再加上測試把欄位名稱鎖住;之後名稱再對不上,測試會先失敗。
- 結果與學到的:自動在背景跑的工作,沒有人盯著看。這類流程的錯誤要看得到,影響權益的部分要有測試守著。
連點與重送,可能多領新手禮或多扣次數
- 情境:第一次抽卡會送新手禮,每天的免費 10 連抽也要計算次數。
- 問題:使用者連點首抽,可能領到兩次新手禮;請求被重送時,也可能重複扣掉抽卡次數。
- 判斷:多點一下、網路多送一次,都是一定會發生的事。領獎和扣次數,要能承受同一個動作來兩次。
- 做法:後端確保新手禮同一個帳號只會發一次,重送的抽卡請求也不會重複扣次數;前端的抽卡請求不再自動重送,逾時時請使用者先到圖鑑確認剩餘次數。
- 結果與學到的:寫會動到票券與次數的程式時,要先想好同一個請求來兩次的情況,不能假設使用者只會點一下。
從 MVP 變成產品,改了什麼?
功能做得出來,只是 MVP;第一次來的人找得到、看得懂,才算產品。豪享學英文的改版,從一次實際操作的體驗審查開始。
- 情境:2026 年 6 月 10 日,豪享學英文做了一次實機操作審查,用第一次來的使用者角度走一遍。
- 問題:功能都在,但不好找。主要的導覽藏在右上角的頭像選單裡,新使用者找不到收藏和扭蛋;頁面也偏單薄,幾頁的樣式重複,學習的體驗很薄。
- 判斷:問題不在缺功能,而在使用者的動線與體驗。我先寫一份 UX 藍圖,再把改版拆成三波:導覽與骨架、品牌與視覺精修、學習體驗。
- 做法:第 1 波「導覽與骨架」在 6 月 10 日完成,包含第一次使用時的選考試流程;隔天依回饋再調整導覽。第 2 波「品牌與視覺精修」在 9 月 26 日完成,同一次也加上 1~5 星的星等、40 個主題與常用搭配。第 3 波「學習體驗」還在進行,已經做好卡片的詳細面板、考試篩選與每日測驗。
- 結果與學到的:停了三個月後,我在 9 月 26、27 日一次衝刺,做完第 2 波改版與新卡池。MVP 驗證的是做不做得出來;要變成產品,還要從使用者的角度走一遍。
星等看字母數,不看難度
第 2 波加上的星等,依單字的字形決定,代表的是字形的複雜度,不是學習難度;要不要改用字頻或考試等級來分,我留到之後再決定。
9 月底到 10 月陸續補上的功能
- 6 個考試卡池:9 月 27 日加入全民英檢初級、中級、中高級,以及雅思與托福。
- 隨機卡板:10 月 5~8 日,首頁的單字卡板可以隨機打亂順序來複習。
- 已背熟清單與字母篩選:10 月 10 日上線,背熟的字可以集中查看,圖鑑也能依字母篩選。
- 訪客首頁:10 月 17 日,沒登入時由伺服器先把訪客畫面畫好,首頁也補上標題與標準網址。
豪享學英文的訪客首頁:沒登入時看到的產品介紹與登入入口(2026 年 10 月擷取)
訪客首頁改成伺服器先畫,是為了讓搜尋引擎讀得到內容。只在瀏覽器畫的頁面,搜尋引擎讀到的可能是空白;這點在個人網站怎麼架也寫過。
做豪享學英文,我學到什麼?
回頭看,豪享學英文的坑多半出在單字卡背後的內容產線。抽卡與票券的坑比較少,卻直接關係到使用者的權益。
- 規則由我定,AI 負責大量產生:欄位格式與可選的主題清單先定好,AI 只在規則裡產生內容。
- 錯誤常常成批出現:語音合成錯一個字,通常是同一類字都錯;修規則比修單字有效。
- 工作放在有服務的地方跑:產圖服務只在本機,情境圖就在本機批次產好再同步,正式機不跑產圖。
- 權益相關的流程要防重複、要有測試:發券、領獎與扣次數,要承受同一個請求來兩次,也不能默默失敗。
- 功能做完不等於產品:從使用者的角度走一遍,才看得到導覽藏在哪裡。
常見問題
Q1:一個人做背單字網站,單字內容要自己寫嗎?
不用逐字手寫。我自己選字表、定規則,義項、翻譯、音標與例句交給 AI 依規則產生;發音用語音合成,情境圖在本機批次產生。我的時間主要花在定規則、抽檢,以及修正成批出現的錯誤。
Q2:情境圖為什麼不在正式機即時產生?
因為產圖用的 ComfyUI 跑在我的電腦上,正式機上沒有。字庫是挑選過的字表,要產哪些圖事先就知道,所以我在本機整批產好,再同步到正式機。
延伸閱讀
- 豪享學英文怎麼玩?扭蛋抽卡背多益、英檢、雅思與托福單字:10 連抽、票券、單字卡、每日測驗與 6 個卡池怎麼用
- 豪享算命為什麼不用AI排盤?規則計算、引擎驗證與個資加密:用規則計算的排盤引擎怎麼做、怎麼驗證
- 一人開發怎麼用AI團隊?Claude Code分工與上版審查:上版前審查與跨 repo 檢查怎麼運作
- 個人網站怎麼架?Next.js、Go微服務、部署與發文流程:豪享學英文所在的整體架構與部署方式
留言0