Which Punctuation Makes a Longer TTS Pause? We Measured 8 Clips
No affiliate links in this post. This is our own production log from October 25, 2026 (KST); no tool vendor provided or reviewed it, and we did not test ElevenLabs or any hosted voice service here. The voice clips are AI-generated with a local model and were not published.
Short answer from one small test: in our local VoxCPM2 voice, an em dash (—) between phrases gave the longest pause in both renders, roughly 0.4 seconds at the first break. A comma and a period gave shorter breaks, and the period was not reliably longer than the comma. An ellipsis (...) was one of the least predictable: long in one render, short in the other. If you need an exact pause length, punctuation is not a timing control in this model.
The question
When an AI narrator rushes from one step to the next, the usual advice is "add a comma" or "use an ellipsis". Vendor help pages give different advice on which mark to use, and the local model we use for narration, VoxCPM2, gives no pause guidance in its model card. So we measured it on our own machine instead of guessing.
What we ran
- Model: VoxCPM2 (openbmb, Apache-2.0), local CPU run, the same settings we use for our narration (cfg 2.0, 10 inference steps).
- Voice: every clip was cloned from the same reference clip, our own AI narration from October 23. Only the text changed.
- Script: one sentence, "Export the clip_ check the captions_ then upload it tonight." The two blanks were filled with a comma, a period, an ellipsis, or a spaced em dash. In the period version, "Check" and "Then" are capitalized, because that is how you would write it.
- Repeats: each version was rendered twice, so 8 clips in total, rendered 21:12–21:16 KST.
- Measurement: FFmpeg
silencedetect(−40 dB, at least 0.05 s) found the silent stretches; local Whisper large-v3-turbo word timestamps told us which silence sits at each break. We report the longest silence at each of the two breaks.
Results
| Mark | Render | Break 1 (clip → check) | Break 2 (captions → then) | Both breaks | Clip length |
|---|---|---|---|---|---|
| Comma | 1 | 0.09 s | 0.23 s | 0.31 s | 3.20 s |
| Comma | 2 | 0.22 s | 0.17 s | 0.39 s | 4.16 s |
| Period | 1 | 0.21 s | 0.17 s | 0.38 s | 3.36 s |
| Period | 2 | 0.11 s | 0.14 s | 0.25 s | 3.36 s |
| Ellipsis | 1 | 0.30 s | 0.24 s | 0.54 s | 3.52 s |
| Ellipsis | 2 | 0.18 s | 0.14 s | 0.32 s | 3.84 s |
| Em dash | 1 | 0.40 s | 0.22 s | 0.62 s | 3.52 s |
| Em dash | 2 | 0.43 s | 0.37 s | 0.80 s | 4.16 s |
Clip length is the whole file, including silence at the start and end. Pause values are rounded from the raw measurements.
Three things stood out:
- The em dash won both times. Its combined pause (0.62 s and 0.80 s) was longer than any comma, period, or ellipsis render.
- Same text, different timing. The two comma renders came out 3.20 s and 4.16 s long. Render-to-render variation was about as large as the differences between some marks, so one render of each is not enough to choose.
- Captions ignore your punctuation. Whisper wrote all 8 clips the same way, with commas: "Export the clip, check the captions, then upload it tonight." Writing a dash or an ellipsis into the script did not carry through to Whisper's transcript, so don't rely on auto-captions to keep it.
Why we chose the dash for our next narration
We want a clear beat between steps without the hesitant tone an ellipsis can add. In this test the em dash gave the longest break in both renders, and the most consistent first break (0.40 s and 0.43 s), and it costs nothing to try. ElevenLabs' own help page recommends something similar for its voices: it says a dash or em dash often works, and that an ellipsis "usually also adds some hesitation or nervousness to the voice". We did not test that claim ourselves.
What this does not show
- Two renders per mark, one sentence, one cloned voice, one model. Treat the ranking as a hint for your own test, not a rule.
- Silence below −40 dB is a signal measurement, not a listening test. Nobody rated how natural each pause sounded, and short stop-consonant gaps can also register as silence.
- Whisper word timestamps are approximate, so the break windows are approximate too.
- We did not test SSML, other local models, longer scripts, or any hosted voice service.
Repeat it on your own voice
- Write one sentence with two breaks and make four copies: comma, period, ellipsis, em dash.
- Render each copy at least twice with the same voice and settings.
- Run
ffmpeg -i clip.wav -af silencedetect=noise=-40dB:d=0.05 -f null -and note the silence nearest each break. - Pick the mark whose pause is long enough in every render, then listen to it before you use it.
If you need an exact pause length rather than a nudge, a hosted service with a timing tag is the other route. ElevenLabs documents an SSML break tag, <break time="1.0s" />, up to 3 seconds on Multilingual v2, Flash v2 and Flash v2.5. Its docs say Eleven v3 and v4 do not support the tag, and that too many breaks in one generation can cause instability. A local model plus a dash was enough for our short narrations.
Previous step in this series: Whisper wrote 11.40 p.m.: a style prompt didn't fix it, a regex did.
Sources checked
- ElevenLabs Help Center, "How can I add pauses?", read October 25, 2026
- ElevenLabs docs, "Best practices", read October 25, 2026
- VoxCPM2 model card (local copy): no pause-control guidance found.
- Our raw measurements: 8 WAV files, FFmpeg silencedetect output, and Whisper word timestamps, kept in our production log.
Comments
Post a Comment