Reading the fields
Two families of field look alike and mean different things.
A track can be 90% vocal and 5% AI-vocal. The first is about content, the second about origin.
Vocal and instrumental are scored independently per window rather than routed to one or the other. A window with enough vocal content receives
vocal_ai_probability and vocal_ai_confidence. A window that is not mostly silence receives instrumental_ai_probability and instrumental_ai_confidence. Either pair is null when the window lacks enough of that content to score, so a window can carry both pairs, one, or neither.
AI Music Detection (batch)
Returnsapplication/json. Every field is always present, though the four per-window AI fields can be null.
Each entry in
windows carries start_time_ms, end_time_ms, vocal_percentage, vocal_ai_probability, vocal_ai_confidence, instrumental_percentage, instrumental_ai_probability, instrumental_ai_confidence, and silence_percentage.
Try it
Response
Response
What you can configure
Audio formats
Accepted extensions:.aac, .flac, .m4a, .mp3, .mp4, .ogg, .opus, .wav.
Maximum file size is 100 MB. Files above it are rejected with 413. Empty files are rejected with 400.
Accuracy
Useprimary_verdict when judging a whole song or segment. Per-window results are lower accuracy by construction, each scored from four seconds of context.
Heavily processed or high-production tracks are sometimes labelled AI-generated. This is a known gap targeted by future model updates.
AI Music Detection (streaming)
Onewindow message per completed 4-second window, then a done message with the clip verdict and percentages.
The
done message is not a summary of the windows already sent. Its instrumental score is recomputed at end of stream from the full accumulated audio, which is more context than any single window receives, so it can differ from what the live windows suggested and is the more reliable number.
Send audio as binary WebSocket frames of any size. Send an empty text frame ("") to end the stream. The server then flushes remaining audio, emits outstanding windows, runs the final instrumental analysis, sends done, and closes.
Try it
Messages received
Messages received
What you can configure
Audio formats
Streaming accepts a narrower set than batch.m4a, mp4, and opus are batch-only.
Container formats. wav, mp3, ogg, flac, webm, aac, aiff. The stream carries sample rate and channel count, so sample_rate and num_channels must be omitted.
Raw formats. s8, s16le, s16be, s24le, s24be, s32le, s32be, u8, u16le, u16be, u24le, u24be, u32le, u32be, f32le, f32be, f64le, f64be, mulaw, alaw. These are headerless, so sample_rate and num_channels are both required.
sample_rate accepts 8000, 11025, 16000, 22050, 32000, 44100, 48000, 96000.
To convert a file to raw PCM: