我用 Claude Code 從一份計畫書開始,三天做出一套免費、開源、完全離線的繁體中文語音提詞機 Textream for Windows。講稿浮在螢幕上,我講到哪,高亮就跟到哪;插話、跳過子標題、臨時改講法,它都會自己找回位置。
我只是想要一台會聽中文的提詞機
我錄 Podcast、錄影片,都會看著逐字稿講。用過一般的提詞機,你大概也有這種經驗:要嘛自己手動暫停、繼續,講錯了還得操作回到前面;要嘛設定一個捲動速度,然後整場被它追著跑。說實話,那種感覺都不太好。
後來我在 Mac 上用了開源的 Textream,它最迷人的地方是「辨識語音、跟著聲音捲動」,你講多快,它就捲多快。可惜它是照英文設計的,念中文稿時,標點、數字、英文詞常常被吃成「⋯」,而且 Windows 上根本沒有對應的版本。
我要的條件其實很單純:免費、離線、開源、支援繁體中文、會跟著我的聲音捲動,Mac 和 Windows 都能用。找了一圈,沒有一款同時做到。下面這張表,是做這套工具之前和之後的差別:
| 項目 | 原本的處境(Before) | 現在(After) |
|---|---|---|
| 講話節奏 | 手動暫停、繼續、拉回前面,不然就被固定的捲動速度追著跑 | 我講到哪,高亮跟到哪,節奏完全由我決定 |
| 平台 | Textream 只有 Mac 版,Windows 找不到同類的免費工具 | Windows 有 Textream for Windows;Mac 用我改的 繁中版 Textream |
| 中文支援 | 原版照英文設計,標點、數字被吃成「⋯」,同音字、簡體輸出都對不上 | 每個字比「讀音」,簡繁、同音字、多音字、國字數字一次吸收 |
| 語音辨識 | 雲端辨識要錢、有隱私疑慮、斷網就不能用;Whisper 一段一段辨識,延遲 1~2 秒 | sherpa-onnx 串流模型完全離線,高亮追隨延遲約 0.19 秒,CPU 約 14% |
| 講話習慣 | 我會插話、跳子標題、臨時改講法,一般提詞機一偏離就卡住 | 會自己往後找回我正在念的那一句,而且寧可慢一點,也不會跑到我前面 |
| 錄影 | 我是用一個外接提詞機,這就需要採購這個設備才有辦法用。但如果是在螢幕上是更好的。 | 浮層預設「錄影、分享畫面時看不到」,我用 Loom 實錄驗證過 |
| 取得方式 | 找不到同時免費、離線、開源又支援繁中的選擇 | 免費、MIT 開源,下載 zip 解壓縮就能用,語音模型已經包在裡面 |
我當產品負責人,Claude Code 當整個開發團隊
先說清楚,我不是完全不會寫程式,以前也寫過一些小程式。但從底層一路做到介面、這麼講究細節的軟體開發,我沒做過;把一套 Mac 軟體移植到 Windows,更是第一次。
這次的分工是這樣:每一個「要不要」「好不好」都由我決定,我是產品負責人,也是唯一的真人測試者;從底層到介面的程式,全部由 Claude Code 完成,它同時是工程師、測試員,也是文件管理員。各階段的分工如下:
| 階段 | 我做什麼 | Claude Code 做什麼 |
|---|---|---|
| 計畫(在 Mac 上) | 說清楚需求:免費、離線、繁中、要能容錯;指定不用 Whisper、不拿現成軟體來比較 | 讀 Textream 原始碼,寫成一份八十多 KB 的開發計畫書,拆成 0~8 個階段,每階段都有驗收門檻 |
| 選語音模型(整個專案的關卡) | 挑一集 Podcast 當測資、自己對麥克風念一段、試講後拍板 | 下載三個候選模型,量準確度、延遲、CPU,整理成比較表 |
| 核心邏輯 | 說明我的講話習慣(會插話、跳標題、改講法) | 用 TDD 先寫測試再寫程式,一個紅綠循環 commit 一次;再做「突變測試」,故意拿掉功能,確認測試真的會紅 |
| 介面 | 每一輪試用後提意見,前後四輪 | 改畫面;讓程式自己把畫面畫成圖來檢查,不截我的螢幕 |
| 發佈 | 決定公開、MIT 授權、要做成一般人解壓縮就能用 | 打包免安裝版、發 GitHub Release、做介紹網頁並接上 Cloudflare,推上去就自動上線 |
| Mac 版 | 在 MacBook 上真機試念 | 把 Windows 版的中文比對規則,移植回 Mac 原版的 Swift 程式碼 |
敢把這麼大的專案交給 AI 跑,靠的是三個固定規矩。
第一,專案資料夾裡有一份 AGENTS.md,寫著開發紀律,例如「不准為了讓測試通過而改測試的預期值」「commit 前測試要全綠」。每次開工,AI 都先讀它。
第二,計畫書有一張進度表,每完成一步就打勾、填日期、附一句證據(測試數字、commit 編號)。我在 Mac 寫計畫、在 Windows 開發,換電腦、換對話都接得上。
第三,回報一律用「做完了/做完了但有疑慮/資訊不夠/卡住了」四種狀態開頭,附上證據。這條是從雷蒙 AI Agent 課程的「AI 回報與驗收包」學來的。
整套提詞機的運作流程是這樣:
最關鍵的設計:不比字,比讀音
語音模型吐出來的是簡體字,還常常寫錯同音字。稿子寫「閱讀」,它聽成「阅读」;稿子寫「已經」,它聽成「以經」。如果直接比字,三個模型都只追得到講稿的 63~66%。
Claude Code 提的辦法是:兩邊都轉成「無聲調拼音」再比。多音字就存所有讀音的集合(「行」是 xing 也是 hang),有交集就算對;國字數字和阿拉伯數字也統一,「二零二六」和「2026」算同一個詞。改成這樣之後,同一集 Podcast 追到 94~95%。為了確認這不是長文碰巧對上,它還把辨識結果打亂順序再算一次,結果只剩 30~34%。
左邊是麥克風聽到的辨識原文,右邊是講稿,每個漢字比讀音,字不一樣、音對得上就算念對了。
最難的一關:高亮會比我先跑到前面
照稿念的時候,從原版移植過來的比對法追得到 100%。可是我錄 Podcast 的習慣是「看稿講」,講出來大約是文章的兩倍字數。原版的比對一偏離就再也接不回來,整集只追到 36%,高亮落後我上千字。
我跟 Claude Code 說明自己的講話習慣:會即興插一段話、會跳過不想念的子標題、會臨時改講法。它加了兩道機制。一道是「防拖走」,插話裡零星的「是」「說」不能把高亮一格一格拖走,要連續對上才算數;另一道是「找回位置」,往後找一串連續對上的字,找到就跳過去。
第一版容錯上線後,數字很漂亮,整集追到 100%。但 Claude Code 沒有只看終點,它逐句比對「高亮在哪」和「我實際念到哪」,結果抓到一次誤跳:我念子標題時說了「不一樣的地方」,被 200 字後的「有三個不一樣的地方」騙過去,高亮領先我約 30 秒。後來改成「跳得越遠,要連續對上的字越多」,問題就消失了,這個情境也寫成一條永久的測試。「最後有沒有到 100%」會掩蓋過程中的錯,驗收要看中間每一步,不能只看終點。
最後有一個取捨要我拍板:跳過時,要連續對上 4 個字還是 5 個字才跳?4 個字會快 0.3 秒,但偶爾會誤跳到我前面。我選了 5 個字。我寧可自己講得慢一點,也不要被提詞機超車,害我的語速跟著變調。
最卡的一次:連猜兩輪都錯
Mac 繁中版有讀者回報:播放中往上滾,畫面會卡住,又被拉回原處。Claude Code 第一次、第二次都提了修法,我試了都沒好。第三次我們換個做法:先不修,在程式裡加診斷紀錄,請我重現一次。紀錄一打開,真因就出來了。原來同一個字量到的位置,會隨著捲動浮動,跟前兩次猜的方向都不一樣。
更有意思的是,把這個修正移植回 Windows 版時,Windows 上量不到同樣的問題。Windows 自己的問題,是滾輪往上會被段落之間的空行卡住。同一個症狀,兩個平台、兩個真因。
三天做出第一版,從此不再被提詞機追著跑
2026 年 10 月 6 日,我在 Mac 上寫完計畫書;10 月 8 日,第一個公開版本就發佈了。之後陸續又發了幾版,現在是 0.11.0,背後有四百多個自動測試守著。
第一次用它錄音的時候,我最大的感受是自在。不用被捲動速度追著跑,講話的節奏可以隨心所欲地控制;想插一段話就插,講完它自己接回來。
選語音模型時,我拿自己的電腦(Intel i7-12700、Focusrite 麥克風)實測了三個模型,最後選 A 的 fp32 版:
| 模型 | 追到講稿的比例(照稿朗讀/Podcast 看稿講) | 追隨延遲與 CPU |
|---|---|---|
| A zipformer 中英(fp32,選用) | 98.1%/95.4% | 0.19 秒,約 14% |
| A zipformer 中英(int8) | 95.7%/93.7% | 0.18 秒,約 14%,但會口吃 |
| B paraformer 中英 | 96.3%/93.9% | 延遲量不到,約 10% |
| C zipformer 中文 | 98.1%/94.8% | 0.26 秒,約 15% |
加上容錯前後,同一集 Podcast(看稿講)的差別:
| 版本 | 最後追到 | 高亮與我的差距 |
|---|---|---|
| 原版移植 | 36.2% | 中位數 1,241 字、P90 2,424 字;差距 10 字內的句子 1/90 句 |
| 加上容錯後 | 100% | 中位數 0 字、P90 7 字;差距 10 字內的句子 83/90 句 |
浮層有三種,放在最順眼的地方就好:頂端膠囊貼著筆電鏡頭,浮動視窗可以拖到任何地方,全螢幕適合放在第二個螢幕當大字提詞。最後一張是貼講稿、選模式的主視窗。
課程學習心得與評價
以前我跟 AI 合作最常卡住的地方,就是它的回報不夠清楚,我很難判斷這件事到底做完了沒有。雷蒙的課程把回報分成四種狀態,每一種用不同的 emoji 標示,一看就一目了然,下一步該做什麼也很好判斷。
這次 Claude Code 幫我做完了所有事情,而且做得非常好。這件事改變的,是我對自己能做什麼的想像。
我覺得這門課就像打開了你的潛力。如果你沒有用、沒有做、沒有練習,你不會知道自己的潛力在哪裡。「天空才是你的天花板」,這是我在課程裡得到最大的啟發。比起學到任何知識型的東西,這個心態上的改觀,對我的幫助大得多。
留言與交流
使用 GitHub 帳號回覆作者,分享你的想法。


