stt Default Audio sent to speech-to-text
DSP echo removal, main-speaker gate, gentle −10 dB noise floor
- Added latency
- 5–8 ms
- CPU
- ~0.01–0.05 ms / frame
- Background removed
- 4.4 dB
- UTMOS
- 1.48
- For STT
- Yes · lowest WER
Product
Tenms processes the caller's audio in 10 ms frames, in Rust, on CPU. Each module is licensed on its own and plugs into the slot your pipeline already has.
Where it sits
01 / 03
Your STT hears the caller. Only the caller.
Focus cleans the microphone signal before anything downstream sees it. It uses what your agent is playing as a reference, so it knows exactly which sound to remove.
Pick one per session with focus_profile. Audio for your agent's STT stays on stt and keeps the 10 ms promise. The listening tiers trade CPU or delay for cleaner sound, for people who listen to the call.
Agent path · within 10 ms
stt Default Audio sent to speech-to-text
DSP echo removal, main-speaker gate, gentle −10 dB noise floor
Listening tiers · recordings, review, listen-in · never STT input
listening Cheapest Audio people listen to
The same DSP with full noise suppression (−20 dB floor)
listening_mini Our model Recordings, review and listen-in with music or babble
listening plus the Focus head of our trained model (int8, 0.22 MB)
listening_pro Opt-in Best listening quality within 30 ms
Tenms echo removal, then the FastEnhancer-M neural enhancer (MIT). About 14–15× the CPU of a DSP session, so Edge caps it per replica.
Background removed in the caller's pauses and UTMOS (listening quality, higher is better) on 48 test calls with music, babble or steady noise, half with agent echo. Latency is measured end to end: 5 ms at 16 kHz, 8 ms at 8 kHz; listening_pro 27 ms at 16 kHz, 30 ms at 8 kHz. Sources: INTEGRATIONS.md, LEADERBOARD.md (enhance_listen).
02 / 03
Speak at the right moment. Stop only when you should.
Turn replaces the VAD and silence timer in your pipeline. It decides when the caller has started, when they are about to finish, and what kind of interruption just happened.
03 / 03
Know whether the call failed on audio, transcription or the model.
Pulse measures the line itself while the call runs and writes one structured summary when it ends. When a call goes wrong, the summary shows where to look.
{
"call_id": "c1", "duration_ms": 30120, "source": "pipecat",
"modules": ["focus", "turn", "pulse"],
"quality": { "mos": 4.16, "snr_db": 30.1, "clipping_ratio": 0, "dropout_ratio": 0,
"overlap_ratio": 0.06, "echo_ratio": 0.29, "asr_risk": 0.004 },
"turns": { "user_turns": 4, "barge_ins": 1, "backchannels": 1, "ignored_noise": 0,
"eot_delay_ms_p50": 360, "eot_delay_ms_p95": 610 },
"failure": { "cause": "none", "confidence": 0.6, "reasons": [] },
"processing": { "frames": 3012, "compute_us_p50": 20.9, "compute_us_p99": 102.9,
"algorithmic_delay_ms": 5.0 }
} Bring a recording your agent got wrong. In 30 minutes we run it through Focus, Turn and Pulse with your engineers and show the events your pipeline would have received.