# Silence Detect

> Find the silent spans in a recording or a video and get them as time ranges, ready to cut dead air in an edit. A flat 10 credits per run, with no AI model.

Source: https://nodaro.ai/docs/nodes/audio/silence-detect

The **Silence Detect** node finds the silent spans in a recording or a video and returns them as a list of time ranges. Use the ranges to cut dead air from a podcast or an interview, for example with [Edit Plan](https://nodaro.ai/docs/nodes/video/edit-plan). The node runs locally, with no AI model and no provider key, so it works on every edition.

- Found in: Audio › Analyze
- Output: data
- API type: `silence-detect`

## When to use it
- Find dead air and long pauses in a podcast or an interview before you edit it.
- Give an edit step the exact silences to remove.
- Measure how much of a recording is silence and how much is speech.

## Quick start
### Add the node

Press Tab on the canvas and choose **Audio › Analyze › Silence Detect**.

### Wire the recording

Wire an audio or a video node into the **Audio or Video** input. For a video, the node uses its sound track.

### Run it

Click **Run** on the node. The silent spans appear on the **Silences** output as data.

Workflow: A podcast is transcribed and scanned for silences; Edit Plan uses both to tighten the episode, and Apply EDL renders the cut.

- Upload Video → Transcribe (audio)
- Upload Video → Silence Detect (audio or video)
- Upload Video → Edit Plan (sources)
- Transcribe → Edit Plan (transcript)
- Silence Detect → Edit Plan (silence)
- Edit Plan → Apply EDL (edl)

## Input and output
| Input | Accepts | What it does |
| --- | --- | --- |
| **Audio or Video** | Audio and video nodes | The recording to scan. Required. |

The output, **Silences**, is data, not audio. Wire it into a node that reads data, such as the **Silence** input of [Edit Plan](https://nodaro.ai/docs/nodes/video/edit-plan) or an [Extract Field](https://nodaro.ai/docs/nodes/automate/extract-field) node.

## Settings
| Setting | What it does |
| --- | --- |
| **Silence threshold (dB)** | Sound quieter than this level counts as silence. From -60 to -10. The default is -35. A lower value is stricter: only near-total quiet counts. |
| **Minimum silence (ms)** | Only gaps at least this long are reported. From 100 to 3,000. The default is 700. |
| **Speech padding (ms)** | Space kept around speech. From 0 to 1,000. The default is 120. Each silent span is shrunk inward by this amount at both ends, so that a cut does not clip a breath or the start of a word. A span that would shrink to nothing is dropped. |

## Read the result

The **Silences** output looks like this:

```json
{
"version": 1,
"ranges": [
{ "startMs": 2120, "endMs": 3880 }
],
"durationMs": 6000
}
```

- `ranges` — the silent spans, in the order they occur, in milliseconds on the clock of the original recording. `endMs` is exclusive and always greater than `startMs`.
- `durationMs` — the length of the whole recording, in milliseconds.

### Example

A 6-second recording is silent between the 2-second and the 4-second marks. With the default settings:

1. The node finds one silent span from about 2,000 to about 4,000 milliseconds. At 2 seconds, it is longer than the 700 ms minimum.
2. The 120 ms speech padding shrinks the span at both ends. The start becomes 2,000 + 120 = 2,120 ms, and the end becomes 4,000 - 120 = 3,880 ms.

The result is the JSON above, and the run costs 10 credits.

## Credits
Silence Detect costs a flat **10 credits per run**. The length of the recording, the settings and the number of ranges found do not change the price.

The node analyzes a small, low-resolution copy of the sound track, so even a long recording is scanned in seconds.

## Tips
- **Ignore breaths.** Raise **Minimum silence** to skip short breaths and the gaps between words. Lower it to catch brief pauses.
- **Protect the words.** If cuts clip the start of words, raise **Speech padding**. If the silences feel too generous, lower it.
- **Treat room tone as silence.** A quiet room can be louder than the default threshold. Lower **Silence threshold**, for example to -45.
- **Keep the source clock.** The ranges use the original recording's timeline, so they line up with the same audio or video in a later edit.

## From the API
`POST /v1/silence-detect` takes `audioUrl` and the optional `thresholdDb` (default -35), `minSilenceMs` (default 700) and `padMs` (default 120). The finished run's `output_data.json` is the result above. The MCP tool is `silence_detect`. See [Voice and media](https://nodaro.ai/docs/developers/api/voice-and-media).

## Frequently asked questions

### Does Silence Detect remove the silence?

No. It finds the silent spans and returns them as time ranges. To cut them out, wire the ranges into Edit Plan in tighten mode and render the plan with Apply EDL.

### How many credits does Silence Detect cost?

A flat 10 credits per run. The length of the recording, the settings and the number of silences found do not change the price.

### Why is quiet room noise not detected as silence?

The room tone is louder than the Silence threshold. Lower the threshold, for example to -45 dB, so that quiet ambience counts as silence.

### In which units are the ranges?

In milliseconds, on the clock of the original recording, so they line up with the source's own timeline. Each range ends just before its end value.

### Does Silence Detect work on a self-hosted install?

Yes. It runs locally without any AI model or provider key, so it works on every edition.
