explaingit

mormolykos/ttsproof

Analysis updated 2026-05-18

11PythonAudience · developerComplexity · 3/5LicenseSetup · easy

TLDR

A tool that checks text-to-speech audio for real defects like silence, clipping, or looping, and scores pronunciation accuracy fairly without punishing correct audio for formatting differences.

Mindmap

mindmap
  root((TTSProof))
    What it does
      Structural audio checks
      Equivalence aware WER
      Uncertainty quarantine
    Tech stack
      Python
      numpy
      soundfile
      faster-whisper
    Use cases
      Benchmark TTS engines
      CI regression gate
      Compare engines
    Audience
      Developers
      QA engineers

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Benchmark any text-to-speech engine against a built-in corpus of 817 edge cases.

USE CASE 2

Catch broken audio clips, like silence, clipping, or looping, before they reach users.

USE CASE 3

Gate a CI pipeline so quality regressions in TTS output fail the build.

USE CASE 4

Compare multiple TTS engines side by side on the same test cases.

What is it built with?

Pythonnumpysoundfilefaster-whisper

How does it compare?

mormolykos/ttsproof2arons/llm-cliadzza/guardium-dns
Stars111111
LanguagePythonPythonPython
Setup difficultyeasyeasymoderate
Complexity3/52/53/5
Audiencedeveloperdevelopergeneral

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · easy Time to first run · 30min

Optional ASR-based pronunciation checks require the faster-whisper extra.

Use freely for any purpose, including commercial use, as long as you keep the copyright notice.

In plain English

TTSProof is a tool that checks whether text to speech (TTS) audio actually sounds right, instead of just measuring word accuracy. A normal accuracy score can miss real problems, like a clip that is empty, cut off short, clipped, stuck repeating itself, or far too long. At the same time, a plain word error score can flag audio as wrong when it isn't, just because the written text said 3:30 PM and the transcript said three thirty pee em. The tool works in three layers. First, it runs structural checks on the audio file itself: is it empty, too short, has long silences, is clipped, or loops on a repeated chunk. These checks use only numpy and soundfile, no AI model required. Second, it compares the expected text against what a speech recognizer heard, but first converts both into the same spoken form, covering numbers, dates, times, and acronyms, so formatting differences do not count as mistakes. Third, when the audio is clean but the speech recognizer disagrees on something very short, like a single letter or an acronym, the sample gets set aside for a human to check rather than automatically marked as a failure. TTSProof ships with a built in benchmark corpus of 817 test cases across categories like numbers, dates, phone numbers, names, tongue twisters, and more, so a user can score any TTS engine with a single command. It prints a scoreboard by category in the terminal and generates a report page with audio players for any failures. It can also compare results across different TTS engines and gate a continuous integration pipeline by failing the build when quality drops compared to a saved baseline. The method behind TTSProof was tested on a real production TTS service across 390 audio samples and published as a citable technical report with a DOI. It is installed with pip, either with or without the optional speech recognition support. The project's license is MIT, so it can be used freely, including for commercial purposes.

Copy-paste prompts

Prompt 1
Help me set up TTSProof to benchmark my TTS engine using the built-in ttsproof benchmark command.
Prompt 2
Write a Python script using ttsproof.check_wav to validate a folder of generated audio files.
Prompt 3
Show me how to add a ttsproof regress command to my CI pipeline to catch TTS quality regressions.
Prompt 4
Explain how TTSProof's quarantine verdict differs from a plain pass or fail result.

Frequently asked questions

What is ttsproof?

A tool that checks text-to-speech audio for real defects like silence, clipping, or looping, and scores pronunciation accuracy fairly without punishing correct audio for formatting differences.

What language is ttsproof written in?

Mainly Python. The stack also includes Python, numpy, soundfile.

What license does ttsproof use?

Use freely for any purpose, including commercial use, as long as you keep the copyright notice.

How hard is ttsproof to set up?

Setup difficulty is rated easy, with roughly 30min to a first successful run.

Who is ttsproof for?

Mainly developer.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.