TTS for Swim

An online tool that turns long Chinese text into a single MP3 — up to 60,000 characters (about 3.6 hours of audio) per run, synthesised in chunks and merged server-side.

What it does

  • Paste or upload up to 60,000 Chinese characters. The server splits the text on punctuation — preferring sentence and paragraph boundaries, never cutting mid-sentence.
  • Each chunk is synthesised separately, then joined losslessly with ffmpeg into one downloadable MP3.
  • Job state and chunk progress are persisted, and the front end polls to show real progress rather than an indeterminate spinner.
  • Per-account isolation: jobs and audio are reachable only by their owner, and someone else’s ID returns 404 rather than 403 so the resource’s existence is not leaked.

Actual limits

  • 60,000 characters per run, about 3.6 hours of audio
  • 90,000 characters per account per day
  • At most 3 concurrent jobs
  • Synthesis runs at roughly 3 characters/second: about 6 minutes for a full 60,000

Stack

  • TypeScript
  • Node.js
  • Express 5
  • React
  • Python
  • edge-tts
  • ffmpeg
  • OpenAPI
  • nginx

Project link

Visit site

Requires an invite code to sign up

Back to work