Castwright v1.14.0 — Chinese and Japanese join the cast, and the app grows up on tablets
Quick recap for anyone new: Castwright turns a book into a full-cast audiobook — every character in its own voice, kept consistent across a series — rendered locally on your own machine. Source-available (FSL), solo project, in beta. Here’s what’s new in v1.14.0.
Chinese and Japanese are now first-class — that’s seven languages. A zh or ja manuscript is no longer turned away: it’s rostered, attributed, cast and rendered through the same pipeline as every other book, with CJK-aware analysis, honorific-tolerant attribution, and both Coqui XTTS and Qwen able to perform it. English, Russian, Spanish, French, German, Chinese, Japanese. One honest caveat: CJK attribution leans harder on the analyser model than the Latin languages do — pick a local Qwen analyser for a Chinese or Japanese book, and it holds up well; a lighter default won’t do it justice.
The companion app opens up on tablets and foldables. A proper two-pane layout — library on the left, a persistent player on the right — that keeps playing straight through a book switch or a device rotation. Phone behaviour is unchanged, and because it’s all plain Flutter it’ll be the iPad layout too when the iOS build lands.
Any chapter plays instantly over your home network. Tap a chapter you haven’t downloaded and it starts immediately, streamed over your LAN — no OS certificate install, and the pairing token never leaves the app. Off-network it falls back cleanly to download-then-play.
Analysis is local-first, and says so. The default analyser engine and model are now local — a Gemini key you keep for something else can’t silently reroute your book’s analysis to the cloud. Cloud requests, if you opt into them, are now sized to the free tier’s limits so a big chapter can’t quietly fail, and a slow local model gets waited out instead of timing out at 30 seconds.
Also:
- who’s-speaking attribution got a genuine accuracy pass — the deterministic engine no longer mis-credits the person being spoken to,
- German dialogue no longer collapses to the narrator; a first-person narrator’s lines stay with the narrator, and character gender is reliably set (which stops minor female characters folding into a male cast row).
- Local analysis can also run a few chapters concurrently now for a ~2–3× overnight batch, safe on a 6–8 GB card.
Where it’s still honest: solo project, beta; voice cloning ("your own voice") is in development; and I'd still love testers on an AMD card (supported via ROCm, but I've no AMD hardware to verify it myself) and anyone reading fiction in the newer languages.
Hear a sample: https://www.castwright.ai/#demo · Full release notes: https://github.com/dudarenok-maker/Castwright/wiki/Release-Notes-v1.14.0 · castwright.ai · Feedback or a hand: hello@castwright.ai.
![]() |
![]() |
![]() |
|---|



