Filler Removal 1.0
zilapi/filler-1.0 · by InverseAI
Finds filled pauses (um, uh, er) in speech and cuts them out. Returns the edited audio as MP3 and the removed segments as JSON.
Filler word removal API
POST /v1/audio/remove-fillers finds filled pauses such as um, uh and er in recorded speech and cuts them out. You get the edited audio as an MP3 and a JSON list of every removed segment with its start, end and confidence, or only the report if you want to review the edits yourself.
What developers use it for
- Tighten podcast and interview edits automatically
- Clean up voice-overs, presentations and course recordings
- Mark filler words for an editor to review, with timestamps only
- Measure filler words in speaking-practice or coaching apps
What it does
Find filled pauses such as um, uh and er in recorded speech and cut them out. Use it for interviews, podcasts and voice-overs, or request timestamps to review the edits yourself.
Limitation: Works best on single-speaker speech; with overlapping speakers short words can occasionally be cut.
Create a job
POST /v1/audio/remove-fillers accepts an input_url, a ready file id, or a multipart file. Send the optional webhook_url to receive a signed completion event, or poll GET /v1/jobs/{id}.
curl -s https://api.zilapi.com/v1/audio/remove-fillers \
-H "Authorization: Bearer $ZILAPI_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"input_url": "https://example.com/episode-142.wav",
"model": "zilapi/filler-1.0",
"webhook_url": "https://your-app.example.com/hooks/zilapi"}' \
> job.json
JOB_ID=$(jq -r .id job.json)Set options: {"timestamps_only": true} to return only the filler report. No edited audio is produced, and output_duration_seconds is null.
Outputs
| Name | Contains |
|---|---|
audio | Audio without filled pauses, delivered as MP3, up to 320 kbps. Omitted with timestamps_only. |
fillers | JSON with segments, count, removed_seconds, input_duration_seconds and output_duration_seconds. |
Segments use the input timeline, in order. Each segment has start_s, end_s, duration_s, label and confidence (0–1). The label is filled_pause; this model does not return a transcript. The same report is available as result.fillers on the job and its webhook.
{
"object": "filler_removal",
"count": 1,
"removed_seconds": 0.4,
"input_duration_seconds": 61,
"output_duration_seconds": 60.6,
"segments": [
{
"start_s": 1,
"end_s": 1.4,
"duration_s": 0.4,
"label": "filled_pause",
"confidence": 0.9
}
]
}After the job succeeds, call GET /v1/jobs/{id}/output?name=audio for a signed download URL. Use name=fillers for the other output. Outputs are kept for 7 days.
Inputs, limits and formats
| Provider | InverseAI |
|---|---|
| Input formats | Common audio: WAV, MP3, M4A/AAC, FLAC and OGG |
| Max duration | Up to 30 minutes per job |
| Max file size | 5 GB by URL or staged upload; 50 MB directly in the job request |
| Output | Audio → MP3, up to 320 kbps; fillers JSON |
Filler word removal API: questions
How much does the filler word removal API cost?
$0.020 per audio minute, billed per second of input. Failed jobs are free.
Can I get only the timestamps?
Yes. Set options.timestamps_only to true and the job returns the filler report as JSON without producing edited audio.
Are there limits?
Up to 30 minutes of audio per job. It works best on single-speaker speech; with overlapping speakers short words can occasionally be cut.
More APIs on the same key
Compare every model on the pricing page, read the step-by-step guide, or start with the quickstart.