French voice garbles ~40% of 1-2 word utterances, ~2% from 3 words up (n=64 per length)
Building a French voice assistant on Pocket TTS, I hit a failure mode that only shows up on very short replies: "Pause." comes out as "Pose", "Oui." as a breath. Longer sentences from the same voice are excellent, which is why it took me a while to see the pattern.
I measured it instead of guessing.
Protocol. Synthesize an utterance, transcribe the audio back with Whisper large-v3-turbo,
count it as a failure when the transcription does not match the input text. 64 runs per
variant, french_24l, temperature 0.5, CPU inference on an Apple Silicon Mac.
Result.
| Utterance length | Failure rate |
|---|---|
| 1–2 words | ~40% |
| 3+ words | ~2% |
What it is not:
- Not the sound card: zero underruns measured over the same runs, including with a local LLM generating at the same time.
- Not a lead-in word: prefixing a filler word before the short utterance does not help.
- Not specific to one voice, though the ranking changes: on 16 typical short replies, the default female voice renders 14–15 correctly while the male voices drop to 2–3.
quantize=Truemakes it worse and is about 2x slower on this machine.
Workaround in my project: never emit fewer than three words, and glue a too-short chunk onto the next one in the streaming splitter.
Happy to share the exact utterance list and the audio, or to run a variant of the protocol if it would help isolate it (e.g. same text padded with silence, or with punctuation removed). Is the short-utterance case something the model is known to be weak on, or does it point at something fixable in the conditioning?
Source: kyutai-labs/pocket-tts