A TTS fork of En Croissant — The Ultimate Chess Toolkit
Documentation
·
Full TTS Guide
·
Report a Bug
En Parlant~ ("speaking" in French) adds text-to-speech narration to En Croissant, the open-source, cross-platform chess GUI. Hear moves announced as you step through games, with multi-language support and multiple TTS providers.
Everything in En Croissant, plus:
- Move narration — moves spoken aloud as you navigate through games
- Auto-narrate — TTS triggers automatically on each move
- Multiple TTS providers — ElevenLabs, Grok (xAI), Google Cloud, KittenTTS (local), OpenTTS (local), or system TTS
- Multi-language — English, French, Spanish, German, Japanese, Russian, Chinese, Korean
- Chess vocabulary — SAN notation converted to natural spoken language per locale
- Audio cache — previously synthesized moves are replayed instantly
- Store and analyze your games from lichess.org and chess.com
- Multi-engine analysis with all UCI engines
- Prepare a repertoire and train it with spaced repetition
- Simple engine and database installation and management
- Absolute or partial position search in the database
| Provider | Cost | Quality | Languages | Offline | Setup |
|---|---|---|---|---|---|
| ElevenLabs | Free tier (10K chars/mo) | Exceptional | 8 languages | No | API key |
| Grok (xAI) | $4.20 / 1M chars | Excellent | 20+ languages | No | API key |
| Google Cloud | Free tier (1M chars/mo) | Very good | 8 languages | No | API key |
| KittenTTS | Free | Good | English only | Yes | Python + model |
| System (OS Native) | Free | Passable | OS-dependent | Yes | None |
| OpenTTS | Free | Poor | European best | Yes | Docker |
Hardware note: The local providers (KittenTTS and OpenTTS) run neural inference on your CPU. They need a modern multi-core processor (8+ cores recommended) to generate speech without noticeable lag.
For a detailed comparison and full setup walkthroughs, see the TTS Guide.
KittenTTS runs a neural TTS model entirely on your machine — no cloud, no API keys, no data leaving your computer. English only, but the voice quality is genuinely good. Requires Python 3.10+ and a modern multi-core CPU.
Option A: In-app setup wizard
- Go to Settings > Sound and set TTS Provider to KittenTTS (English Only)
- A yellow "Setup Guide" alert appears if dependencies are missing
- Click the alert — the wizard walks you through installation with "Fix" buttons
Option B: Terminal
cd /path/to/en-parlant/scripts
python3 -m venv .venv
.venv/bin/pip install kittentts flask soundfile numpyThe ~25MB nano model downloads from HuggingFace automatically on first run.
Configure:
- Settings > Sound > TTS Provider → KittenTTS (English Only)
- The server starts automatically when you select the provider
- Choose a voice (8 options: 4 male, 4 female)
- Click Test to preview
Thread management: KittenTTS uses PyTorch and can consume significant CPU. If you're also running a chess engine like Stockfish, set KittenTTS CPU Threads in Settings to limit usage (e.g., half your core count). Set to 0 for automatic.
OpenTTS is a self-hosted TTS server that runs locally via Docker. 75+ voices, no API keys, nothing leaves your machine.
Start the server:
# English voices (~1.5 GB download on first run)
docker run -d -p 5500:5500 --name opentts synesthesiam/opentts:en
# All languages (larger download)
docker run -d -p 5500:5500 --name opentts synesthesiam/opentts:allConfigure:
- Settings > Sound > TTS Provider → OpenTTS (Self-Hosted)
- Confirm OpenTTS Server URL is
http://localhost:5500 - The voice dropdown populates from the server — try a larynx voice for best quality
- Click Test to preview
Manage the server:
docker stop opentts # stop
docker start opentts # restart
docker rm -f opentts # remove entirelyNote: OpenTTS works best with European languages. For Japanese, Chinese, or Korean, use Grok, Google Cloud, or ElevenLabs instead.
Google's WaveNet voices sound natural and support all 8 languages. The free tier (1M characters/month) covers hundreds of annotated games.
- Enable the Cloud Text-to-Speech API in Google Cloud Console
- Create an API key under APIs & Services > Credentials
- In En Parlant~: Settings > Sound > TTS Provider → Google Cloud
- Paste your API key and click Test
See the full walkthrough for step-by-step instructions.
High-quality AI voices at 1/10th the cost of ElevenLabs ($4.20 per 1M characters). Supports 20+ languages with 5 distinct voices.
- Create an API key at console.x.ai under API Keys
- In En Parlant~: Settings > Sound > TTS Provider → Grok (xAI)
- Paste your API key (starts with
xai-) and pick a voice - Click Test to preview
Premium AI voices with the most natural intonation. Free tier is 10K characters/month (~2-5 annotated games).
- Sign up at elevenlabs.io and copy your API key from Profile > API key
- In En Parlant~: Settings > Sound > TTS Provider → ElevenLabs
- Paste your API key — the voice dropdown populates with your available voices
- Click Test to preview
Zero setup — uses your OS built-in speech synthesis.
- Settings > Sound > TTS Provider → System (OS Native)
- Pick a voice from the dropdown and click Test
Quality varies by OS (macOS best, Linux most robotic). Good for a quick test before setting up a better provider.
Requires Node.js 22+, pnpm, and Rust. See the Tauri v2 prerequisites.
git clone https://github.com/DarrellThomas/en-parlant
cd en-parlant
pnpm install
pnpm tauri build --no-bundleThe binary will be at src-tauri/target/release/en-parlant.
To install system-wide (Linux):
sudo ./install.shThis installs the binary to /usr/bin/en-parlant, resources to /usr/lib/en-parlant/, and creates a desktop entry.
En Parlant~ is built on En Croissant by Francisco Salgueiro. The original project and community can be found at encroissant.org.
TTS narration developed by Darrell at Red Shed (darrell@redshed.ai) with Claude Code.
See CONTRIBUTING.md.
GPL-3.0 — same as upstream En Croissant.