Skip to main content
Real-time frame-level music and speech classification over WebSocket. Frames are returned progressively as audio is streamed — no need to wait for the full file to upload before results begin arriving.

Endpoint

Authentication

Pass your API key as a query parameter on the connection URL:

Features

  • Real-time output — frames emitted progressively after each 192ms chunk of audio
  • Music detection — identifies frames containing music content
  • Speech detection — identifies frames containing speech content
  • Non-exclusive labels — music and speech are independent; both can be high simultaneously (e.g. music with vocals)
  • Any chunk size — send audio in whatever chunk size suits your pipeline
  • Container and raw PCM support — stream compressed files or raw PCM directly from a microphone

Connection parameters

Supported audio formats

Container formatssample_rate and num_channels must not be specified (the headers already carry this metadata): wav, mp3, ogg, flac, webm, aac, aiff Raw PCM formatssample_rate and num_channels are required: s16le, s16be, s32le, s32be, s24le, s24be, s8, u8, u16le, u16be, u24le, u24be, u32le, u32be, f32le, f32be, f64le, f64be, mulaw, alaw Valid sample rates: 8000, 11025, 16000, 22050, 32000, 44100, 48000, 96000

Protocol

Client → server

Server → client

Frame object

Done object

WebSocket close codes

Chunking behaviour

Audio is buffered in 192ms chunks (one output frame each). Frames are emitted as soon as each chunk is ready, so results begin arriving within 192ms of the first audio being received. At end-of-stream, any remaining audio ≥ 192ms is processed and its frames are emitted before the done message.

Examples

Rate limits

  • Concurrent connection limits apply per organization
  • Monthly usage limits (in audio hours) apply per organization