跳到內容

TTS 語音合成供應商總覽

為什麼 TTS 會改變你研究西洋棋的方式

Section titled “為什麼 TTS 會改變你研究西洋棋的方式”

當你在複盤一場有註解的棋局時,你的眼睛必須同時負擔兩件事。你試著追蹤棋盤上的棋子位置,同時閱讀旁邊的評論。你的目光在棋盤與註解面板之間來回跳動,每次切換視線時,你都會短暫失去對局面的掌握。你必須重新找到棋子、重新追溯變化、重新在腦中建構整個畫面。

文字轉語音完全解決了這個問題。

啟用 TTS 後,你逐步瀏覽棋局,註解會朗讀給你聽。你的視線可以一直停留在棋盤上。你看著騎士落在 f3,同時有聲音告訴你為什麼這是一步強力的展開著法。你看到兵型變化,同時評論解釋背後的戰略構想。棋盤與解說同步到來,就像一位教練坐在你對面親自指導一樣。

這在以下情境中特別有效:

  • 開局研究 —— 在觀看局面發展的同時,聆聽每步棋背後的理念
  • 對局複盤 —— 逐步回顧你自己的註解棋局,自然地吸收教訓
  • 殘局練習 —— 將注意力集中在關鍵格子上,同時讓評論引導你
  • 語言沉浸 —— 用法語、德語、西班牙語、俄語、日語、中文或韓語學習西洋棋,所有棋術用語都會正確翻譯。聽到的是「Cavalier f3, echec」而非「Knight f3, check」。用你思考的語言來學棋。
  • 無障礙使用 —— 適合聽覺學習優於閱讀的棋手,或想在離開書桌時繼續學習的人

一旦你試過,再回到無聲的註解就像看一部靜音的電影。

En Parlant~ 內建五種 TTS 供應商,從具有錄音室品質語音的雲端 API,到完全不需要網路的本機方案都有。你只需要選擇一種就能開始使用。以下按語音品質由高到低排列。

目前可用的最佳語音品質。ElevenLabs 能產生富有表現力、擬真如人的語音,帶有真實的個性 —— 有些聲音聽起來像有聲書旁白,有些像播報員。有數十種獨特聲音可供選擇。支援 34 種以上語言,包括優秀的 CJK(日語、中文、韓語)發音,以及阿拉伯語、印地語和所有主要歐洲語言。

免費方案每月提供 10,000 個字元(大約足夠 2-5 盤有註解的棋局)。付費方案起價為每月 $5,提供 30,000 個字元。設定很簡單:建立帳號、複製你的 API 金鑰、貼到 En Parlant~ 中。

需要網路連線。最適合追求語音品質的愛好者。

ElevenLabs 設定指南

品質、語言支援與性價比的最佳平衡。Google 的 WaveNet 神經網路語音在 30 種以上語言中都聽起來自然清晰 —— 包括 CJK、阿拉伯語、印地語、孟加拉語、菲律賓語、越南語,以及所有主要歐洲語言。免費額度非常慷慨 —— 每月一百萬個字元,足以涵蓋數百盤有註解的棋局。

設定大約需要 5 分鐘:建立 Google Cloud 帳號、啟用 Text-to-Speech API、產生 API 金鑰。除非超出免費額度(以西洋棋註解的用量來說非常難),否則不會產生任何費用。

需要網路連線。最適合大多數使用者。

Google Cloud 設定指南

完全在你的電腦上執行的高品質本機 AI。使用輕量的 ~25MB 神經網路模型,提供 8 種富有表現力的聲音(4 男 4 女)。品質出奇地好 —— 自然的語調、清晰的發音、真實的表現力。

代價是硬體需求:KittenTTS 使用 PyTorch 進行 CPU 推論,因此需要現代多核心處理器。在 8 核心的機器上效果很好;在較舊的筆記型電腦上可能會感到延遲。目前僅支援英語。

每段註解第一次朗讀時會有短暫的生成延遲(快速 CPU 約 1-2 秒,較慢的硬體則更久)。之後音訊會快取在記憶體中,重播時即時回放 —— 在已聽過的著法之間前後切換完全沒有延遲。你也可以從設定中在背景預先快取整盤棋局,這樣在開始學習之前每段註解都已經準備好了。

不需要網路連線。不需要 API 金鑰。最佳本機品質。

KittenTTS 設定指南

一個透過 Docker 在你的電腦上執行的開源 TTS 伺服器。所有資料都不會離開你的電腦。內建多個 TTS 引擎(Larynx、Festival、eSpeak、Coqui-TTS),光是英語就提供 75 種以上的聲音。

代價是語音品質:這些是較舊的神經網路和規則式引擎,因此輸出聽起來比 ElevenLabs 或 Google 更機械化。最適合歐洲語言(英語、德語、法語、西班牙語、俄語、荷蘭語、瑞典語、義大利語等)—— 不支援 CJK。老實說,如果你願意花時間設定本機模型,KittenTTS 能以更少的麻煩提供更好的品質。除非有大量使用者對 OpenTTS 有需求,否則我們可能會在未來的版本中將其棄用。

不需要網路連線。不需要 API 金鑰。最適合重視隱私且需要多種語音選項的使用者。

OpenTTS 設定指南

你的作業系統內建的語音合成功能。不需要安裝任何東西、不需要 API 金鑰、不需要伺服器。選擇它就能直接使用。語音品質較基本 —— 你會聽到作業系統級別 TTS 特有的機械音調 —— 但它可以在零設定的情況下立即運作。

在 Linux 上通常是 eSpeak 或 speech-dispatcher;在 macOS 上是系統語音;在 Windows 上是 SAPI。語言支援完全取決於你的作業系統安裝了哪些語音套件。

不需要網路連線。最適合快速測試。

System TTS 設定指南

供應商類型品質設定方式語言支援
ElevenLabs雲端 API卓越API 金鑰34+ 種(含 CJK)
Google Cloud雲端 API非常好(WaveNet)API 金鑰30+ 種(含 CJK)
KittenTTS本機神經網路 AI良好Python + venv僅英語
OpenTTS本機 Docker尚可Docker僅歐洲語言
System(作業系統原生)作業系統內建基本無需設定視作業系統而定

硬體注意事項: 本機供應商(KittenTTS 和 OpenTTS)在你的 CPU 上執行神經網路推論。它們需要現代多核心處理器(建議 8 核心以上)才能在沒有明顯延遲的情況下生成語音。可以把它想像成在你的電腦上多跑一個西洋棋引擎。如果你的電腦較舊或效能較低,請改用雲端供應商。

如果你想要最豐富的語音品質,請從 ElevenLabs 開始 —— 免費方案足以讓你試用。如果想要品質與免費用量的最佳平衡,Google Cloud 每月可涵蓋數百盤棋局。如果想要不依賴雲端的高品質本機 TTS,且你有現代 CPU,KittenTTS 是極佳選擇。如果想要零設定的快速測試,System TTS 可以立即使用。如果想要最大程度的隱私保護加上多種語音選項,OpenTTS 透過 Docker 在本機執行所有功能。

所有 TTS 設定都在 設定 > 聲音 中:

設定項目功能說明
Text-to-Speech所有 TTS 功能的主開關
Auto-Narrate on Move當你逐步瀏覽著法時,自動朗讀註解
TTS Provider在五種供應商之間切換
TTS Voice供應商專屬的語音選擇
TTS Language朗讀語言 —— 棋術用語會自動翻譯
TTS Volume朗讀音量
TTS Speed播放速度(0.5x 到 2x)—— 調整時無需重新生成音訊
ElevenLabs API Key你的 ElevenLabs API 金鑰(僅在使用 ElevenLabs 時顯示)
Google Cloud API Key你的 Google Cloud API 金鑰(僅在使用 Google 時顯示)
KittenTTS CPU Threads推論使用的 CPU 執行緒數(0 = 自動 / 使用所有核心)
TTS Audio Cache清除快取音訊以強制重新生成

TTS 朗讀支援眾多語言,並提供完整翻譯的西洋棋詞彙。以下是一些範例:

語言西洋棋範例
EnglishKnight f3, check. A strong developing move.
FrancaisCavalier f3, echec. Un coup de developpement fort.
EspanolCaballo f3, jaque. Un fuerte movimiento.
DeutschSpringer f3, Schach. Ein starker Entwicklungszug.
日本語ナイト f3、チェック。強い展開の手。
РусскийКонь f3, шах. Сильный развивающий ход.
中文马 f3,将军。一步控制中心的强力出子。
한국어나이트 f3, 체크. 중앙을 지배하는 강력한 전개 수.

每一個棋術用語 —— 棋子名稱、「將軍」、「將殺」、「王車易位」、「吃」、著法品質註解如「妙手」和「大錯」—— 都會以所選語言朗讀。你 PGN 檔案中的評論會按照原文朗讀,因此請用你想要聽到的語言來撰寫棋局註解。

TTS 引擎不只是照念原始文字 —— 它能理解西洋棋記譜法。在任何文字被朗讀之前,前處理步驟會將 PGN 記譜法轉換為自然語音:

PGN 中的寫法朗讀結果
Nf3”Knight f3”
Bxe6+”Bishop takes e6, check”
O-O-O”castles queenside”
e8=Q#”e8 promotes to Queen, checkmate”
Rae1”Rook a e1”(消歧義)
5.Qxd8+(在評論中)“5, Queen takes d8, check”
en prise”on preez”(法語發音)
Ra8 is hanging”Rook on a8 is hanging”
R vs R”Rook versus Rook”
6...Bf5(著法編號點號)“6, Bishop f5”(自然停頓,不念「dot」)

評論在朗讀前會經過清理:[%eval][%cal][%csl] 標籤會被移除。與 NAG 符號重複的開頭品質詞會被刪除(因此 ?? {BLUNDER. The rook hangs} 不會口吃地說出「Blunder. Blunder.」)。

每段朗讀在首次生成後都會快取在記憶體中。在棋局中前後切換著法時,會立即從快取回放 —— 無需 API 呼叫,無需重新生成延遲。你也可以在背景中預先快取整棵棋局樹,這樣播放時完全不會有停頓。

快取的鍵值為 provider:voiceId:lang:text,因此更換語音或供應商會建立獨立的快取項目。更改播放速度不會使快取失效 —— 速度調整是在客戶端的音訊元素上進行的。

設定中的 Clear Audio Cache 按鈕可讓你在編輯註解後強制重新生成。

  • 使用自動朗讀。 開啟「Auto-Narrate on Move」,然後只需用方向鍵逐步瀏覽棋局。評論會在你移動時自然到來,就像有一位教練在你肩旁指導。

  • 為你自己的對局加註解。 當你聆聽的是你自己棋局的評論時,TTS 的威力真正展現。為你的棋局加上註解,然後搭配朗讀逐步回顧。在盯著局面的同時聽到「吃那個兵看起來很誘人,但你整個王翼還在沉睡」,這種感受和閱讀完全不同。

  • 嘗試不同的速度。 有些棋手喜歡 1x 速度仔細研究,有些則偏好 1.3x 進行快速複習。速度滑桿即時調整播放速度,不會額外消耗 API 字元數。

  • 使用喇叭圖示。 著法列表中的每條評論旁都有一個小喇叭圖示。點擊它即可聆聽該條註解。

  • 切換語言來學習西洋棋詞彙。 如果你正在用第二語言學習西洋棋,將 TTS 語言設為相應語言。你會自然而然地學會像「Cavalier」(騎士)、「echec」(將軍)和「mat」(將殺)這樣的術語,只需聆聽即可。

這些指南能讓你的 PGN 註解產生最佳的語音朗讀效果。

使用標準 SAN 記譜法。前處理器會自動展開:

  • "After 7.Nf3, White controls e5" 會變成 “After 7, Knight f3, White controls e5”
  • "The Bg5 pins the knight" 會變成 “The Bishop g5 pins the knight”

NAG 符號(!??!? 等)會自動生成口語化的品質詞。不要在評論中重複它們:

  • 不好:?? {BLUNDER. A terrible move...} —— TTS 會說 “Blunder. Blunder. A terrible move”
  • 正確:?? {A terrible move...} —— TTS 會說 “Blunder. A terrible move”

標準 PGN 記譜法即可:6...Bf5。前處理器會將點號轉換為逗號以產生自然停頓,而非念出「dot dot dot」。

句號會讓 TTS 產生自然停頓。在不同概念之間使用句號:

{Doubled isolated e-pawns. The f-file is ripped open. The position is strategically won.}

[%cal ...][%csl ...] 標籤會自動從音訊中移除。你可以自由使用它們做視覺註解,不會影響朗讀。

關於重新發佈的說明,供在 En Parlant~ 基礎上進行開發的人參考:

  • ElevenLabs —— 你保留對生成音訊的所有權利(ElevenLabs Terms of Use,第 c(ii) 節)。你可以自由重新發佈。
  • Google Cloud —— 你保留對生成音訊的所有智慧財產權。無限制。
  • KittenTTS、OpenTTS、System TTS —— 對生成音訊無重新發佈限制。

En Croissant 是一個由 Francisco Salgueiro 建立的開源西洋棋學習工具。Francisco 打造了一個真正特別的東西 —— 一個免費、強大、由社群驅動的西洋棋學習平台 —— 並以 GPL-3.0 授權發佈,讓任何人都可以使用、改進和分享。這個 TTS 功能之所以存在,正是因為他的慷慨奉獻。我們感謝他所建立的基礎,也為能夠回饋貢獻而感到自豪。

TTS 外掛由 Red Shed 的 Darrell 開發,並獲得 Claude Code 的協助。五種供應商、多語言支援、跨語言翻譯的西洋棋詞彙、本機 AI 推論、依賴套件管理 —— 從原始碼建構、手動測試、用心貢獻。

這就是開源的美妙之處。有人打造了出色的東西。另一個人在此基礎上增添功能。每個人都從中受益。

我們很樂意聽到 TTS 對你的使用體驗如何。歡迎隨時提供意見、建議和回饋。

  • 想要我們尚未支援的語言? 讓我們知道 —— 我們可以快速新增語言。
  • 發現了錯誤? 告訴我們,我們會盡快修復。
  • 有其他 TTS 供應商的想法? 我們很樂意加入。
  • 只是想說功能運作正常? 這也很棒,我們很高興聽到。

GitHub 上開一個 issue,或直接聯繫 darrell@redshed.ai