Technology · 3 min read

Why doesn't sayit's Listen mode pause between sentences to load audio?

sayit generates the next sentence's audio while you're still hearing the current one, so a long passage plays without a loading gap between lines.

sayit's Listen mode plays a passage sentence by sentence without a loading pause between them, because it doesn't wait until a sentence finishes to start generating the next one's audio — it prefetches the upcoming line while the current one is still playing, so by the time you reach the end of a sentence, the next one is already sitting ready.

30-second version: Neural text-to-speech takes real time to generate — it's not instant. If sayit waited until a sentence finished playing to start generating the next one's audio, every sentence boundary in a passage would carry a noticeable stall. Instead, it starts synthesizing the upcoming line as soon as the current one begins, so the gap you'd otherwise hear is absorbed before it happens.

Why is this even a problem to solve — isn't audio just... audio?

Because the audio isn't pre-recorded. sayit's spoken passages are generated on demand by a neural text-to-speech model, which takes a real, measurable amount of compute time per sentence — it isn't instant the way playing back a stored file would be. Generate it only when you're already waiting for it, sentence after sentence through a longer passage, and every boundary between sentences becomes a small stall: a moment of silence while the next line renders. In a listening exercise, that stall breaks exactly the kind of continuous, natural flow the exercise is trying to build.

How does the look-ahead actually work?

While you're listening to the current sentence, sayit starts generating the audio for the next one in the background, so it's ready by the time playback reaches that point. This is a one-clip look-ahead — it isn't trying to render an entire long passage at once (which would introduce its own delay up front), just staying one sentence ahead of where you actually are, which is enough to hide the generation time behind the time you're already spending listening to the current line.

Does this apply everywhere sayit plays spoken passages?

Yes — both the reading library's listen-along playback and the shadowing trainer's line-by-line model audio rely on the same look-ahead approach, since both work through a passage sentence by sentence and both would otherwise carry the same per-sentence stall.

Does generating the same sentence twice waste time?

No — spoken audio for a given piece of text is cached once it's generated, so if the same sentence needs to be played again (you replay a line, or another listener requests the same passage), it doesn't get re-synthesized from scratch. That caching is shared across the service rather than kept separately per session, so the benefit compounds as more people practice the same popular passages.

Why stay only one sentence ahead, rather than rendering the whole passage upfront?

Because rendering an entire long passage before playback starts would just move the wait somewhere else — instead of small gaps scattered between every sentence, you'd face one longer pause before the first word plays at all. Staying exactly one sentence ahead spreads the generation work out across the time you're already spending listening, so there's no meaningful wait at either the start or in the middle, and a very long passage doesn't need to be fully rendered before you can begin.

What you'd notice with and without it

Without look-aheadWith look-ahead
Between sentencesA pause while the next line rendersSeamless — already generated
Listening flowInterrupted at every boundaryContinuous
Repeated playback of the same lineRegenerated each timeServed from cache

Does this affect the quality of the audio, only the timing?

Only the timing — the look-ahead changes when a sentence's audio gets generated, not how it's generated. The voice, pacing, and quality of any individual line are the same whether it was pre-fetched a moment early or generated on the spot.

Try it

Open Listen or Read & listen in sayit and play through a multi-sentence passage — listen for whether you notice a gap between lines. You shouldn't.

Free in your browser

Hear exactly which sounds to fix.

Say one sentence and get sound-by-sound feedback in seconds. No install, no card.