Dead Air Detection

Detects excessive silence in conversation audio using RMS energy analysis against configurable thresholds.

Dead Air Detection checks whether a voice conversation has too much silence, either overall or in any single stretch. Run it on voice agent recordings where long pauses signal a stalled pipeline or an agent that’s lost the thread.

What it does

Dead Air Detection is a code-based check. It analyzes RMS energy across the audio to identify silent frames, then computes the total dead-air percentage and the longest single continuous silence gap. It passes only if both stay within their configured budgets: the total dead-air percentage against dead_air_threshold (default 20%) and the longest gap against gap_threshold_ms (default 3000ms). Frames below the silence_threshold energy level (default 0.01) count as silent.

Input

Required InputTypeDescription
input_audiostringThe conversation audio to analyse (URL, data URI, or file path)

Output

FieldTypeDescription
ResultPass / FailPass means both the total dead-air percentage and the longest single silence gap are within their configured thresholds; Fail means either budget was exceeded
ReasonstringA plain-language explanation reporting the measured dead-air percentage and max gap against their thresholds

Run it from code

Call evaluate() with the template name and the eval’s required inputs. It returns the score and the reason.

Note

Before running: install the SDK and set FI_API_KEY / FI_SECRET_KEY. The model argument in the snippets is the evaluator model Future AGI uses to run the eval; turing_flash is a fast default.

from fi.evals import evaluate

result = evaluate(
    "dead_air_detection",
    input_audio="https://storage.example.com/calls/call_4471.wav",
    model="turing_flash",
)

print(result.score)
print(result.reason)
import { evaluate } from "@future-agi/ai-evaluation";

const result = await evaluate(
  "dead_air_detection",
  {
    input_audio: "https://storage.example.com/calls/call_4471.wav",
  },
  { modelName: "turing_flash" }
);

console.log(result);

When to use

Run Dead Air Detection wherever a voice agent’s audio needs to stay conversational rather than lapsing into long silences.

  • Voice agent call recordings, to catch pauses caused by slow tool calls or model latency
  • IVR and phone support flows, where extended silence makes callers hang up or repeat themselves
  • Regression checks after changing TTS providers or pipeline latency, to confirm silence didn’t get worse

What to do when Dead Air Detection fails

Check the reason string for which budget was exceeded, total dead-air percentage or the longest single gap, since they point to different problems. A high total percentage usually means the conversation has many small pauses, often from consistent model or tool latency; a single long gap usually means one specific stall, like a slow API call or a dropped turn.

Look at where in the pipeline the delay is introduced: TTS generation time, tool execution, or model response latency are the usual culprits. If the failures are borderline and the audio is acceptable to a human listener, reconsider whether dead_air_threshold or gap_threshold_ms are set tighter than the product actually needs.

Was this page helpful?

Questions & Discussion