Journal

TTS scoring across speaking rates

TTS scoring across speaking rates

Most TTS benchmarks use one speaking rate: the synthesis pipeline's default output. That setting usually approximates conversational speech, around 150 to 170 words per minute. Real products, however, operate beyond that band. Podcast players default to 1.5x, accessibility tools may require slower delivery, and real-time conversational agents often answer faster than a deliberate reader. A single-speed evaluation therefore covers only one part of the conditions a model may face in production.

We evaluated the same material with the Podonos API at 0.8x, 1.0x, and 1.4x, representing slower, baseline, and faster delivery. Prosody and naturalness changed unevenly at the two extremes, and that split offered clues about the location of a model's weaknesses.

Setting up the rate comparison

We selected 40 sentences spanning declarative statements, questions, long complex sentences, and short imperative phrases. After synthesis, we changed rate with a pitch-preserving time-stretching method, specifically a phase vocoder implementation with phase locking. We did not use pitch-synchronous PSOLA, since phase vocoder artifacts at extreme settings better reflect issues users may hear with common audio libraries.

Every sentence was synthesized at 1.0x and then stretched to 0.8x and 1.4x. The Podonos API scored each version, allowing per-sentence and aggregate sub-scores to be compared. This was not intended as a definitive benchmark, but as a way to identify which dimensions respond most to rate changes and how they respond.

Faster speech at 1.4x

Prosody was the most affected sub-score at 1.4x in our test set. Naturalness declined less, partly because the time-stretching method kept audio relatively clean at that rate. The mean prosody sub-score fell from baseline, while the naturalness decrease was considerably smaller.

Faster delivery shortens the temporal cues listeners use to follow prosodic structure. Word stress depends partly on duration differences between stressed and unstressed syllables, so it becomes harder to hear as total duration contracts. Intonation contours built from sustained pitch movement are also compressed until they remain audible but too brief to register fully. The result can sound rushed and rhythmically flat despite well-preserved underlying audio quality.

Above 1.5x, naturalness begins to fall more clearly as the time-stretching method adds audible artifacts, including phase discontinuities and a characteristic phasiness. Because the threshold depends on the algorithm, test the rate adjustment method used in your pipeline. It determines the practical limit of post-synthesis stretching.

Slower speech at 0.8x

At 0.8x, the balance changes: naturalness fell more than prosody. Prosody remained comparatively steady because longer timing made its cues easier to hear. Stressed syllables lasted longer, and intonation contours were easier to follow. Naturalness suffered because the voice began to sound labored, deliberate, and unlike conversation.

At 0.8x, listeners also reported a secondary effect that a MOS-equivalent score captures less clearly: the voice sounded more appropriate for reading instructions than for conversation. This register mismatch is folded into other naturalness problems by aggregate MOS, yet it is important when an application needs conversational output.

The original synthesis architecture also shapes slow-rate naturalness. End-to-end neural models trained on conversational data generally degrade more gracefully at 0.8x than models trained on read speech, since their original prosody contains more natural variation to survive rate reduction. Check this property on the specific model before deploying it where slower output is required.

Why the split matters for training

The central result is an asymmetric one: prosody and naturalness deteriorate by different amounts, and in different directions, when speech is sped up or slowed down. This is more than a measurement detail. It can expose blind spots introduced by training data.

Training data is almost certainly concentrated at baseline rate, leaving the model less prepared for decisions required elsewhere. At 1.4x, it must preserve word stress as phoneme durations shrink and fit phrase-level intonation into less time. At 0.8x, it must keep longer phoneme durations natural without sounding labored or over-deliberate.

If a model will mainly run at non-default rates, measure those rates from the start of training rather than waiting for deployment. When MOS at 1.4x is significantly below MOS at 1.0x for a checkpoint, track that gap across training runs to determine whether it narrows or stays constant as the model develops.

Limits of this evaluation

Time-stretching is only one way to vary speaking rate. Some TTS architectures control rate natively through duration model parameters instead of post-hoc stretching. This generally gives cleaner extreme-rate audio because it avoids artifacts introduced by the adjustment algorithm. The patterns here apply most directly to post-synthesis stretching. Native control has different failure modes, chiefly duration model accuracy and the interaction between duration changes and prosody generation, so it needs a separate evaluation design.

These rate sensitivity figures should not be assumed to generalize across every architecture or training set. The size of the prosody and naturalness split depends on test set composition, the synthesis model, and the rate adjustment algorithm. Across the models we tested, the direction was consistent: prosody was more sensitive at faster rates, while naturalness was more sensitive at slower rates. The size of the effect will vary, so test your own model before making architecture-level claims.