v2.1.0: intermittent inserted/repeated words with exported voice profiles on Apple Silicon
Summary
After moving a production narration pipeline from Pocket TTS v1 to pocket-tts==2.1.0, we observed intermittent but severe semantic corruptions in generated speech: repeated words and inserted phrases that are not present in the input text.
The same pipeline and source prose produced a clean, natural render after rollback to v1. We have therefore removed v2 from production pending qualification.
No customer names, source stories, voice samples, or audio files are included here.
Environment
- macOS on Apple Silicon
- Python 3.14
pocket-tts==2.1.0- English narration, ~250–400 words
- Custom house voice profile exported for v2
- v2 generation call supplied
language="english"andframes_after_eos=12 - Output was chunked before synthesis; later stages add pauses, a short intro, and a music bed
Observed failures
Listening review and independent ASR comparison against the source both found audible mid-story corruptions, for example:
- a phrase ending repeated twice (
"... on its back. Back. Back.") - short inserted phrase(s) absent from the source text
- a garbled sentence tail
- on a separate shared narration, inserted phrases including inappropriate words absent from the source
These occur inside narration, so they cannot be introduced by the later music/bumper steps. The production pipeline performs whole-story semantic checks and waveform checks; v2 renders either failed those checks or, before we hardened the delivery path, were accepted under an overly permissive “best effort” policy.
Comparison
For the exact same affected source prose and the same post-processing/QA pipeline:
- v2: customer-facing render contained additions/repetitions; a fresh v2 attempt also failed final semantic verification.
- v1: completed successfully on the first narration take and passed two independent full-artifact semantic checks, waveform QA, music verification, and listening review.
The v1 render had no targeted edits or splices.
Important confounder
Our v2 migration changed three things together:
- the v2 model path;
- the voice profile re-export required by v2;
- use of
frames_after_eos=12.
So we cannot yet attribute this to a single internal component. The pattern is nevertheless a production-blocking regression for our configuration.
Questions
- Are intermittent inserted/repeated words with v2 exported voice profiles a known issue?
- Is there a recommended migration/validation procedure from v1 voice profiles to v2 exports?
- Is
frames_after_eos=12appropriate for long, chunked English narration, or is another setting recommended? - Are there supported deterministic controls (seed/generator settings) that would make a minimal failing example easier to isolate?
We can run a maintainer-specified sanitized test matrix and report ASR diffs/audio metrics, but cannot share customer voice material or story content.
Source: kyutai-labs/pocket-tts