Docs / Guides
Long-Text Reading: How Auto-Segmentation Works
Conclusion first: you don't need to segment long text yourself. Paste as much as you want — Soniva auto-splits it, reads it in sequence, and joins it seamlessly. This page explains "how it actually splits" and why multiple records appear in your billing.
Conclusion first: you don't need to segment long text yourself. Paste as much as you want — Soniva auto-splits it, reads it in sequence, and joins it seamlessly. This page explains "how it actually splits" and why multiple records appear in your billing.
Per-Reading Length Limit
| What you're using | Per-request cap |
|---|---|
| Soniva credits | 500 chars |
| Your own API key (BYOK) | 4,000 chars |
| Doubao speech small model (classic / BV voices) | ~280 chars (upstream hard limit) |
Text above the cap is auto-split into multiple segments by punctuation before sending, each segment becomes one request, and they play in sequence so it sounds like one continuous reading.
Why the Doubao Small Model Cuts Finer
Doubao's doubao-tts-classic (voices starting with BV) runs on the older Volcano Engine
interface, where upstream requires a single request to be no more than 1024 bytes (~300 CJK
characters); going over errors out directly, and upstream doesn't split it for you.
So Soniva tightens this tier to 280 chars per segment (leaving margin for mixed Chinese/English).
This directly affects how it's charged — because this tier is billed per call, each segment counts as one call and deducts 1 credit:
- Reading 280 chars or fewer → 1 credit
- Reading 1,000 chars → ~4 credits
- Reading 10,000 chars → ~36 credits
See Doubao Speech guide.
Why There Are Multiple Billing Records
One long reading = multiple upstream calls = multiple ledger records.
For example, if you paste 2,000 chars read with Alibaba Cloud, that's actually 4 requests of 500 chars, and you'll see 4 deduction records in the credit ledger.
The total charge is the same as reading it in one go (per-character brands don't charge extra for segmentation) — only the number of records increases. Baidu and the Doubao small model, which bill per call, are the exception — they were always billed by call count, so the segmentation directly determines the charge.
One Side Effect of Segmentation: Pauses Between Segments
Because each segment is synthesized independently, there's an extremely short seam between segments. Most of the time it's imperceptible, but if the upstream responds slowly, you might hear a slight pause.
This is inherent to every "segmented long-text relay" implementation, not a fault.
Ways to reduce the pauses:
- Use your own API key (single 4,000-char requests — 8× fewer segments)
- Avoid tiers that cut extremely fine, like the Doubao small model
Playback Doesn't Interrupt When You Switch Tabs
Soniva reading continues playing in a background tab — if you switch to another page or even minimize the browser, it keeps reading.
This is deliberate (an early version tried "pause on switch away, resume on switch back," which turned out more prone to missing/looping segments, so it was rolled back).
To stop it, paused manually.
Three-Level Failover: Why It Rarely Fails to Read at All
Soniva reading has three layers of fallback:
① The cloud AI voice you chose
↓ failure (upstream timeout/error/quota issue)
② Alibaba Cloud Sambert fallback voice
↓ still failing
③ Your device's built-in system voice (local reading, always available)
So even if an upstream provider has a hiccup, at worst you'll hear the system voice finish the content — you'll never get "clicked and nothing happened."
If you notice the voice suddenly change to a clearly different one, that's usually failover kicking in — try again later, or switch brands.
Practical Advice
| Situation | Recommendation |
|---|---|
| Frequently reading thousands or tens of thousands of chars | Prefer cheap tiers (Tencent Premium / Baidu Basic / Doubao small model) |
| Long text + care about quality | Alibaba Cloud CosyVoice v3-flash (16 credits/1,000 chars) is the best value |
| Long text + using ElevenLabs | ⚠️ 209 credits/1,000 chars; Pro's monthly grant covers only ~24k chars — use with care |
| Have your own API key | Definitely fill it in — 8× the per-request cap and no credits deducted |
Related Documents
Was this article helpful?
Anonymous feedback is enabled when you allow analytics and the service is available. You can also report an issue by email.
The email includes this article. You can also copy the details and send them to soniva.cde@gmail.com