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 usingPer-request cap
Soniva credits500 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

SituationRecommendation
Frequently reading thousands or tens of thousands of charsPrefer cheap tiers (Tencent Premium / Baidu Basic / Doubao small model)
Long text + care about qualityAlibaba 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 keyDefinitely fill it in — 8× the per-request cap and no credits deducted

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.

Report an issue by email

The email includes this article. You can also copy the details and send them to soniva.cde@gmail.com