Product

Three modules. One 10 ms pipeline.

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

Focus

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.

What it does

Echo removal
Subtracts the agent's own voice using its playback as reference. An online delay estimator re-aligns across 0 to 1,000 ms of echo path.
Gentle noise floor
Wiener filtering with MCRA noise tracking, held at −10 dB on the default stt profile. Steady noise such as fans, road and line hiss drops. Music and babble mostly pass, because stronger suppression raised recognition errors.
Main-speaker lock
Enrols the caller on their first second of confident speech and attenuates other clearly different voices.

Output

  • processed audiosame rate in and out: 8, 16, 24 or 48 kHz

Measured

  • 33 dBecho suppression on a live Pipecat call
  • 5 msadded delay at 16 kHz
  • −7 %Deepgram WER vs unprocessed audio, 110 noisy and echo-heavy test calls

Four Focus profiles. One per job.

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

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

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)

Added latency
5–8 ms
CPU
Same as stt
Background removed
5.9 dB
UTMOS
1.50
For STT
No · +14 % WER
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)

Added latency
5–8 ms
CPU
+~0.035 ms / frame
Background removed
12.1 dB
UTMOS
1.55
For STT
Never
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.

Added latency
27–30 ms
CPU
~0.8 ms / frame
Background removed
37.6 dB
UTMOS
2.12
For STT
Never

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

Turn

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.

What it does

Voice activity
Frame-level speech detection on the cleaned signal, so agent echo never registers as the caller.
Predictive end of turn
Prosodic end-of-turn model. Fires turn_prediction first so you can start the LLM early, then turn_end.
Interruption classification
Labels each interruption barge_in, backchannel, noise or other_speaker. Interim transcripts confirm or downgrade it, and the agent's own words never count.

Output

  • speech_startat_ms
  • turn_predictionat_ms, probability
  • turn_endat_ms, probability, silence_ms
  • interruptionat_ms, kind

Measured

  • 360 msturn_end p50 on live calls (p95 610 ms)
  • 48 / 48acknowledgements classified correctly on held-out test voices
  • 355 msbarge-in decision p50 with interim transcripts

03 / 03

Pulse

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.

What it does

Audio quality
SNR, MOS estimate, clipping, dropouts, narrowband audio, echo and overlap ratios.
ASR risk
A per-second estimate of how likely the audio is to be mis-transcribed.
Failure attribution
Each call is attributed to audio, transcription or LLM, with a confidence and the reasons.

Output

  • qualityat_ms, snr_db, mos, asr_risk (every second)
  • CallSummaryone per call, to the API and dashboard

Measured

  • 1summary per call, no audio, no transcript
  • ~11k/ssummaries ingested in load tests
CallSummaryfrom a live Pipecat call
{
  "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 }
}

See it on your own audio.

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.