Uhm: On-device Filler-Word Detection for Audio and Video
On-device filler-word detection that finds 'um', 'uh', 'hmm', and other fillers straight from the waveform, accurate to 20 milliseconds.
Uhm is a frame-precise classifier that finds fillers directly in audio, accurate to 20 milliseconds. Uhm reads the waveform, so there is no transcript to run first, which is the usual cost of finding disfluencies.
Uhm was trained on English and transfers acoustically to Spanish, French, German, and Dutch without retraining. A transcript would not even help: models like Whisper leave fillers out of their output, so the ums never appear in the text to find or cut. Uhm analyzes the audio and detects them on device, with no upload and no per-minute cost.
Demo
Performance
Scans audio at 296x realtime, on device, with predictions accurate to 20 ms.
Realtime factor (audio duration over analyze time), fp16 Core ML, warm (internal)
| Device | Realtime factor |
|---|---|
| iPhone 17 Pro | ~296x |
| iPad Pro (M4) | ~279x |
| iPhone 15 Pro | ~169x |
Internal benchmarks. Trained on English; transfers acoustically to Spanish, French, German, and Dutch.
Use cases
Podcast and video editing
Locate every filler to cut or tighten, without running a transcription pass first.
Transcription cleanup
Flag disfluencies acoustically so downstream transcripts read cleanly.
No per-minute cost
Detect fillers on device instead of gluing WhisperX plus regex or paying per-minute cloud speech-to-text.
Speaking feedback
Measure filler frequency in recorded speech for practice and coaching tools.
What it does
- Frame-precise: accurate to 20 ms.
- Acoustic detection: works directly on the waveform, no transcript required.
Biaspreset: precision, balanced, or recall.- Trained on English, transfers to Spanish, French, German, and Dutch without retraining.
Platforms and install
// Swift Package Manager
.package(url: "https://github.com/Desert-Ant-Labs/uhm-swift", from: "0.1.0")
import Uhm
let result = try await Uhm().analyze(audioURL: url)
for f in result.fillers { print(f.start, f.end, f.type ?? .other) }
Add Uhm from Desert Ant Labs to this project. On-device filler-word detection that finds 'um', 'uh', 'hmm', and other fillers straight from the waveform, accurate to 20 milliseconds. SDKs (use the one that matches this project's platform): Swift (iOS, macOS) Repo: https://github.com/Desert-Ant-Labs/uhm-swift // Swift Package Manager .package(url: "https://github.com/Desert-Ant-Labs/uhm-swift", from: "0.1.0") Reference: - Model page: https://desertant.com/models/uhm/ - Full catalog and other models: https://desertant.com/llms.txt Add the SDK that matches this project's platform, then follow its README for the exact API and current version. Do not invent API names or method signatures; confirm them against the README.
Specs
- Resolution
- 20 ms frame resolution
- Approach
- Acoustic, transcript-free
- Languages
- English, transfers to ES, FR, DE, NL
- Privacy
- Runs on device; audio never leaves the device
FAQ
What is Uhm?
On-device filler-word detection that finds 'um', 'uh', 'hmm', and other fillers straight from the waveform, accurate to 20 milliseconds.
Does Uhm run on device?
Yes. Uhm runs entirely on device: inference happens locally with no server call, so data never leaves the device.
Which platforms does Uhm support?
Uhm ships as native on-device SDKs for Swift.
How much does Uhm cost?
Every model is free up to 100k monthly active devices per SDK. Unlimited inference per user. Contact us for custom licenses.
How accurate or fast is Uhm?
Scans audio at 296x realtime, on device, with predictions accurate to 20 ms.