Local speech synthesis on a laptop, tested against the text that fills industrial documents.

TL;DR

Tested Qwen3-TTS 1.7B (Apache 2.0) on Apple Silicon against forty German sentences full of part numbers, acronyms, dates and currency. Raw text derails: the model stops mid-identifier and reads twenty seconds of unrelated fluent German, no error. A text rewrite layer removes that completely, and what's left sits in identifiers. Polly on the same sentences, raw: zero derailments, no rules. The local voice also drifts, accent and speaker identity both, and no accuracy number catches it.

Use Amazon Polly. Local is finally good enough to consider, but it costs you stability plus a rewrite layer to maintain. Worth it only for data residency, air-gapped sites, or cost at volume.

Three of forty test sentences never got read.