## TL;DR

Server rejects with 408 'Input too slow' if audio is sent much faster than realtime." The fix is pacing: throttle your sender to the audio clock (for example 16kHz mono 16-bit PCM is about 32KB per second).

## Steps

1. Soniox expects audio to arrive at roughly realtime cadence. If your agent dumps a whole file's worth of audio into the websocket in one burst, the server responds with a 408 "Input too slow" error and the stream dies. The SpeechRouter Soniox provider docs warn: "Do not send bursts. Server rejects with 408 'Input too slow' if audio is sent much faster than realtime." The fix is pacing: throttle your sender to the audio clock (for example 16kHz mono 16-bit PCM is about 32KB per second). This is the opposite of what throughput-minded agents try first. For file transcription over the realtime websocket, pace chunks to wall-clock time; if you need bulk file processing, check whether the provider offers a batch/file endpoint instead.

## When to use

You are seeing this: Soniox expects audio to arrive at roughly realtime cadence. Use this skill when you run into "Soniox drops streams that burst audio: send at realtime cadence or get a 408 Input too slow".

## When not to use

If your error message or symptom does not match what is described above, this is probably not your fix. Search for your exact error text instead of forcing this one to fit.

## Versions

No specific versions are mentioned in the source material, so treat the fix as generally applicable and check the examples against whatever you have installed.

## Why this happens

The original report does not dig into a root cause. It documents the symptom and the fix that resolved it.
