Kokoro 最近一直刷存在感 — 它登上 Hacker News 熱榜、稱霸開源文字轉語音排行榜,創作者也不斷在問:一個能在純 CPU 上跑的 8,200 萬參數模型,真的能取代付費的 voice API 嗎?所以我們直接裝起來、在筆電上跑,並生成了你下方可以播放的樣本。這是一篇實測拆解:Kokoro 是什麼、實際聽起來如何、兩個讓我們浪費時間的安裝陷阱,以及什麼情況下用託管工具更划算。 來源:github.com/hexgrad/kokoro(Apache-2.0)。

Kokoro 是什麼?誰做的?

Kokoro 是 hexgrad 發佈的開放權重文字轉語音模型,名稱為 Kokoro-82M。重點就寫在名字裡:8,200 萬參數 — 以 2026 的標準來說非常小,小到甚至能在手機上跑 — 卻能做出自然、富有表現力的旁白。它承襲 StyleTTS 2 的技術脈絡,並以寬鬆的 Apache-2.0 授權釋出,因此商用也是真正免費。

截至 2026-07-11,主倉庫 hexgrad/kokoro 約有 7,900 個 GitHub stars。我們透過社群的 ONNX runtime 專案 thewh1teagle/kokoro-onnx(約 2,600 stars,MIT)來跑,這也是在不安裝 PyTorch 的前提下,最容易用 CPU 跑起來的方式。

我們翻了實際的權重檔後,數到內建有 54 種音色,涵蓋 9 個語言與口音群組 — 美式與英式英文、西班牙文、法文、印地文、義大利文、日文、巴西葡萄牙文,以及中文(普通話)。其中美式英文的音色明顯最成熟。

我們真的跑了(Apple M3 Pro、純 CPU)

不用 GPU、不上雲 — 就是一台搭載 M3 Pro、18 GB RAM 的 MacBook Pro。以下是最真實的實測紀錄。

安裝與權重

Python 套件幾秒就裝好:pip install kokoro-onnx soundfile。但這裡有個第一個陷阱 — pip 套件送的是程式碼,不是模型。你必須手動到 kokoro-onnx 的 GitHub releases 頁面下載兩個檔案:kokoro-v1.0.onnx(310 MB)與 voices-v1.0.bin(27 MB)。快速上手文件輕輕帶過這點,所以第一次執行會因為缺檔報錯,直到你把權重抓下來。

espeak-ng 路徑 bug(真的讓我們花時間的那個)

Kokoro 用 espeak-ng 把文字轉成音素(phonemes)。第一次合成時我們就撞到這個錯誤:

Error processing file '/Users/runner/work/espeakng-loader/.../espeak-ng-data/phontab': No such file or directory

看到 /Users/runner/work/ 這段路徑就很明顯:pip 的 espeakng-loader wheel 內建了一個 libespeak-ng,它是在 CI 編譯時把資料路徑硬編碼進去,而那個路徑在你的電腦上根本不存在。更崩潰的是:就算你設定 ESPEAK_DATA_PATH 環境變數也沒用,因為 kokoro-onnx 根本不讀它 — 它直接從內建 loader 取資料路徑。

有效的解法:安裝真正的系統版 espeak-ng,並透過 EspeakConfig 明確指定給 Kokoro:

brew install espeak-ng   # macOS; apt install espeak-ng on Linux

from kokoro_onnx import Kokoro, EspeakConfig
cfg = EspeakConfig(
    lib_path="/opt/homebrew/lib/libespeak-ng.dylib",
    data_path="/opt/homebrew/share/espeak-ng-data",
)
k = Kokoro("kokoro-v1.0.onnx", "voices-v1.0.bin", espeak_config=cfg)

做完後就能正常生成。如果你也被這個 phontab: No such file 錯誤搞過,這就是解法。

速度(實測、預熱後)

只用 CPU,模型載入大約 1.7 秒,合成速度也穩穩快於即時播放。我們把一段 22 秒的旁白段落渲染成音訊只花了 3.5 秒 — 即時系數大約 0.16×,大約比播放快 6 倍。短句通常 1 到 2 秒就回來。以這麼小的模型、在筆電上跑來說,這個吞吐量真的能上正式製作。下面是那段文字渲染出的實際波形:

在 M3 Pro CPU 上用 Kokoro 生成的 22 秒旁白段落的波形圖

我們生成的樣本(未剪輯)

下方每一段都是我們用上述的 M3 Pro CPU、用 Kokoro 直接生成的 — 純模型輸出,沒有清理、沒有後製。你可以直接播放,自己判斷音色品質。

af_sarah — 美式英文
am_michael — 美式英文
bf_emma — 英式英文
較長旁白(af_sarah、22 秒)— 也就是我們上面拿來做效能測試的那段

VisionStory 於 2026-07-11 透過 kokoro-onnx 以 Kokoro-82M 生成。注意那個關鍵差異:這是一條很乾淨的音軌 — 但它只有聲音。沒有臉、沒有嘴型、沒有螢幕上的主持人。這個缺口,就是下一節要講的重點。

誠實評測:優勢與真實限制

真的讓我們驚豔的地方:

  • 每個位元組的品質很誇張。 以 8,200 萬參數來說,美式英文音色自然、有情緒 — 接近付費 TTS,多數聽眾在短片段裡不太會覺得「怪」。
  • 真的能在 CPU 上快跑。 筆電無 GPU 也能達到 6 倍即時,這就是它的招牌賣點,而且確實做得到。
  • 真正免費且商用友善。 Apache-2.0、沒有按字元計費。大量旁白的成本優勢非常明顯。

它的短板 — 而且都很真實:

  • 沒有聲音分身。 你只能用 54 種固定預設音色,無法複製自己的聲音或客戶的聲音 — 如果這是你的需求,Kokoro 基本上走不通。
  • 英文品質仰賴 espeak-ng,這代表上面的封裝 bug,以及偶爾會把人名、品牌名或縮寫念錯。
  • 長文需要手動切段。 每次呼叫有音素長度上限,所以長腳本得自己分段再把音訊接起來。
  • 非英文音色有好有壞 — 變異明顯比主力的美式英文更大。
  • 輸出只是純 WAV。 沒有逐字時間戳、沒有 visemes — 沒辦法直接拿來做嘴型同步。
  • 它只有聲音。 沒有臉、沒有影片。要做出會說話的主持人,你必須把 Kokoro 跟另一套 lip-sync 或 avatar 系統組合起來,並自己處理時序對齊。

自架 Kokoro vs 託管工具:你該選哪個?

Kokoro 和託管的虛擬人像工具解的是同一個問題的不同半邊。Kokoro 給你的是 音色;像 VisionStory 這樣的工具給你的是 會說話的主持人 — 一次輸出聲音、臉部與嘴型同步。以下是最誠實的取捨比較。

 Kokoro(自架)VisionStory(託管)
成本免費(用你自己的硬體)訂閱 / 點數
設定pip + 330 MB 權重 + espeak-ng 修正不用 — 瀏覽器直接跑
你拿到什麼只有音軌(WAV)會說話的虛擬人像影片(音色 + 臉部 + 嘴型同步)
聲音分身不行 — 54 種預設可以 — 複製你自己的聲音
每段生成速度~0.16× 即時(CPU、數秒)數秒,託管 — 不吃本機算力
商用可以(Apache-2.0)可以(依方案)
維護你要自己修 espeak、依賴、切段不用
最適合你只需要免費音軌,而且會寫程式你要快速產出完成版說話影片

選 Kokoro,如果你只需要免費旁白、你熟悉 Python,而且你願意把臉與嘴型同步分開處理(或你根本不需要臉)。選託管工具,如果你需要能嘴型同步的主持人聲音,或你需要複製某個特定人的音色 — Kokoro 兩者都做不到。

Kokoro 給我們的啟示

真正的心得是:音色正在商品化。一個 82 MB 的模型,在筆電上就能免費做出足以拿來認真工作的旁白。如果你的產品賣點只有「我們會做文字轉語音」,那道護城河已經沒了。

更難、而且仍未被真正解決的,是聲音之後的一切:把音軌變成可信的說話臉孔 — 精準的嘴型同步、表情、頭部動作,以及整體節奏都要對得起來。那正是我們在做的層。結論不是「不要用 Kokoro」— 它確實是一個很棒的音色引擎;而是「只有聲音,只有半支影片」。如果你想要另一半,VisionStory 可以一步把照片與腳本變成具嘴型同步的說話主持人;若你需要對齊特定音色,也能複製它

常見問題

  • Kokoro TTS 可以免費商用嗎?

    可以。Kokoro 採用 Apache-2.0 授權釋出,允許商用,而且不會按字元計費。你只需要負擔自己的運算成本即可,使用一般的 CPU 也行。

  • Kokoro 可以在 Mac 上跑,或在沒有 GPU 的情況下運行嗎?

  • Kokoro 可以複製我自己的音色嗎?

  • Kokoro 可以做成會說話的虛擬人影片嗎?

  • 如何修復 Kokoro 的 espeak-ng phontab No such file 錯誤?