8/19/2026 at 3:55:16 PM
Two things bit me when I was choosing a voice stack, and I don't see either as an axis in your benchmarks.First: whether a model is "suitable for realtime" turned out to be a property of the transport, not of the model. I had written one TTS off as too slow based on the vendor's own guidance, then measured it again over a streaming path and got about 0.9s where the non-streaming call had taken 5s. Same model, same provider. If a benchmark is run over one transport, a model can look disqualified when it's actually fine for the way you'd ship it.
Second: non-English breakage doesn't show up in aggregate quality numbers. The speed-optimised tiers - the flash/turbo class - were fine in English and fell apart in Japanese. Not "slightly worse": confidently wrong words that changed what the sentence meant. What made that expensive is that the vendor's own docs said their turbo tier was equivalent to their flash tier. That's true in English and wasn't true in the language I was shipping in, so the documentation actively pointed me the wrong way.
Both of those mean the thing I'd actually pay a routing layer for is per-language and per-transport measurements, rather than one quality/latency/cost point per model. "Best TTS under 300ms" has a different answer in English than in Japanese, and I couldn't get that out of any vendor's published numbers.
So: are your benchmarks per-language, and do you measure over the transport people actually ship on? If yes, that's a bigger deal than the routing itself for anyone shipping outside English.
by noagogo