fluentwhisper / README.md
pradachan's picture
docs: credit LibriSpeech+Kokoro synthetic training data, clarify DisfluencySpeech is the eval benchmark, humanize copy, fix hardware to zero-a10g
5a95891 verified
|
Raw
History Blame Contribute Delete
3.1 kB
---
title: FluentWhisper
emoji:
colorFrom: yellow
colorTo: gray
sdk: gradio
sdk_version: 5.49.1
app_file: app.py
pinned: false
license: apache-2.0
suggested_hardware: zero-a10g
tags:
- track:backyard
- sponsor:modal
- achievement:offgrid
- achievement:welltuned
- achievement:offbrand
- achievement:fieldnotes
---
# FluentWhisper
**Speak messy. Read clean.**
A small LoRA adapter that teaches whisper-large-v3-turbo to take the fillers, repeats,
and false starts out of raw speech in one local pass, then show you exactly what it
removed next to the vanilla model.
It runs on the laptop you already own. No API keys, no cloud round trip, no frontier
model sitting in the loop. That makes it a workable alternative to cloud dictation for
anyone who talks faster than they edit, especially non-native English speakers.
As of June 2026, to our knowledge it is the only Apache-2.0, commercially usable
open-source model that removes filled pauses, discourse markers, repetitions, and
self-repairs end to end. On the DisfluencySpeech test split it scores 3.4% WER
(whisper-normalized, transcript C) against 9.4% for vanilla Whisper. That benchmark is a
single-speaker acted set, N=250, with a 95% confidence interval of about ±1pp.
## How it was trained
The training data is synthetic, and we built it ourselves. We started from clean text
transcripts in LibriSpeech (the original audio was thrown away), injected disfluencies
into that text with custom scripts plus the LARD tool, then voiced the messy versions
with Kokoro TTS rotated across 54 voices. That gave us roughly 23k pairs of
`(disfluent audio, clean text)` to fine-tune on. A later blend folded in about 4.5k rows
from the DisfluencySpeech train split to tidy up the label formatting.
So the model is trained on LibriSpeech-derived synthetic speech, not on DisfluencySpeech.
DisfluencySpeech is only the real-speech benchmark we report against.
- **Base:** `openai/whisper-large-v3-turbo`
- **Adapter:** [`pradachan/whisper-large-v3-turbo-disfluency-lora`](https://huggingface.co/pradachan/whisper-large-v3-turbo-disfluency-lora)
- **Training data:** synthetic, generated from [LibriSpeech](https://www.openslr.org/12/) transcripts and voiced with [Kokoro 82M TTS](https://huggingface.co/hexgrad/Kokoro-82M)
- **Benchmark:** [DisfluencySpeech](https://huggingface.co/datasets/amaai-lab/DisfluencySpeech) (arXiv:2406.08820)
- **Trained on:** [Modal](https://modal.com) serverless GPUs, which ran both the LoRA fine-tuning and the eval harness
- **Hardware:** ZeroGPU (`@spaces.GPU`), so live transcription runs on an on-demand A10G
The gallery examples are real results from the DisfluencySpeech test set, plus one honest
failure. Vanilla Whisper already deletes most "um/uh" fillers on its own, so the demo
deliberately shows what it does past that point.
## Limitation
The model deletes aggressively. Intentional repetitions like repeated digits, spelled IDs,
and phone numbers, along with some self-repairs, can be lost. Do not use it for verbatim,
legal, or numeric dictation without a downstream check.