Is a reference Short silent? Reference ingest audio gate at -60 LUFS
Reference ingest marks audio.silent when integrated loudness is -60 LUFS or lower. Silent means plan new music and skip STT; the manifest also reports beats.

Sume reference ingest sets audio.silent: true when the clip's integrated loudness is at or below -60 LUFS, or the true peak is negative infinity. When it is true, the docs say to plan new music and discard the source audio, and never request speech-to-text on it. The check is a loudness gate plus Silero voice activity detection, with librosa beats reported when the track is music.
Reference ingest is dest first: the docs say Sume lists POST /v1/reference-ingest and the tool reference_ingest only where SUME_COM_REFERENCE_INGEST_ENABLED permits them, with development auto-on and production opt-in.
Why this check comes first
A lot of vertical clips are posted without any sound, with text on screen and the music added in the app. A remix plan that assumes a soundtrack will miss that. The manifest's audio block tells you which case you are in before you pay for anything else. YouTube also treats sound as a Shorts matter, since it says most songs can be used for up to 90 seconds in a three-minute Short (YouTube Help, read 2026-10-05).
| Signal | Meaning | What to plan |
|---|---|---|
| audio.silent true | loudness at or below -60 LUFS | new music, no STT |
| speech present | voice activity found speech | transcript, if STT is allowed |
| beats present | track is music | match cut points to beats |
| warning stt_skipped_silent | STT did not run, track is silent | none, no charge |
| warning stt_skipped_no_audio_track | file has no audio track | none, no charge |
Reading it in code
The manifest's exact JSON beyond these documented names is not reproduced here, so the helper below only reads the two fields the docs name and tolerates missing data. Pass it the parsed result of a finished ingest.
def audio_plan(manifest):
audio = manifest.get("audio") or {}
if audio.get("silent"):
return "silent: plan new music, skip STT"
return "has sound: read speech and beats from the manifest"
print(audio_plan({"audio": {"silent": True}}))
print(audio_plan({"audio": {}}))Choosing the new sound
For a silent reference, Music Router takes a prompt of up to 5000 characters and charges a fixed price per generation; control the length in the prompt, because a duration field is rejected. The same page says to put exclusions into the positive prompt, since a non-empty negative_prompt is not supported.
Beats and cut points
When the track is music, the manifest reports beats. A remix of that reference can then place cuts on those beats, with the cut times placed as video[].start values in a Timeline 1.0 render. Starts must begin at 0 and increase, slots must be at least 0.2 seconds, and the spine length sets the output. If the reference has no beats and no speech, there is nothing to anchor to, and a declared length with a music bed is the straightforward alternative.
Limits
A silent file may still carry a sound you want, such as a very quiet track below the gate, so listen once. The gate is a mechanical measurement, not a rights check. Nothing in the manifest says whether the music in the clip is licensed for your use.
Sources
Related posts
More in Media tools
- Is this video stereo or mono? Read probe audio_channels first
Sume video inspect returns audio_channels, audio_sample_rate and audio_codec. Use them to choose channels and sample_rate for audio detach before you submit.
- Keep a whole 16:9 shot in 9:16: blur fill instead of cropping
Cropping loses 68% of a 16:9 frame. Timeline fit blur keeps the full shot centered over a blurred copy. How it works on Sume and when to prefer it.
- Kling Motion Control character_orientation: video or image?
Pick 'video' (the default) for complex motion up to 30 s; 'image' follows camera movement but fal documents a 10 s limit. Sume bills $0.1575 per second.
- Kling Motion Control prompt: appearance only, motion is the video
On Sume's Kling 3.0 Motion Control the prompt guides appearance only. Motion comes from motion_video_url, and the body rejects reference_image_urls and model.
Written by Sume