Making open-source text to speech sound right: ranked voices, text normalization and one engine for Python and the browser
Description and use
loudness-tts is an open-source TTS system that automatically selects the best licensed voice, applies text normalization rules for English and Spanish, normalizes loudness to –16 LUFS, and outputs accurate subtitles, available for both Python and JavaScript.
Problem
Open-source TTS models run fast but often sound unnatural due to voice quality, lack of text normalization, and unoptimized audio output.
Outcome
loudness-tts delivers natural-sounding speech with accurate text normalization, licensed voice selection, and publish‑ready audio and subtitles across Python and JavaScript platforms.
Workflow
- 1. Install loudness-tts via pip or use the browser demo.
- 2. Run the TTS command with text input and optional output options (e.g., –o speech.wav --srt speech.srt).
- 3. For chat applications, launch the OpenAI‑compatible server with loudness-tts serve or use the Docker image.
- 4. Integrate with Open WebUI, LibreChat, or AnythingLLM using the provided guides.
Evidence
Piper has more than 170 voice files, some with hundreds of speakers. Their quality varies a lot, and many are licensed for non-commercial use only.
loudness-tts runs a rule layer first: money, dates, times, units, phone numbers, ranges, fractions, abbreviations and Roman numerals become words, in English and Spanish.
Every result is loudness-normalized to -16 LUFS with true peak at or below -1.5 dBTP, which suits podcasts and video.
- Record date: 2026-10-16T08:56:07.358Z