Streaming Audio
Sending Audio Chunks
How send_audio(pcm_bytes) works, chunk sizes, and ffmpeg conversion.
Audio format requirements
| Property | Value |
|---|---|
| Format | Raw PCM (no container) |
| Default sample rate | 16,000 Hz |
| Default data type | int16 |
| Also supported | float32 |
Sending chunks
python
# Send in 4096-byte chunks (~128ms at 16kHz int16)
for i in range(0, len(pcm_bytes), 4096):
await conn.send_audio(pcm_bytes[i : i + 4096])Converting with ffmpeg
terminal
# 16kHz mono int16 PCM (recommended)
ffmpeg -i input.wav -ar 16000 -ac 1 -f s16le output.pcm
# Or pipe directly into Python
pcm = subprocess.run(
["ffmpeg", "-i", "audio.wav", "-ar", "16000", "-ac", "1", "-f", "s16le", "-"],
capture_output=True,
).stdout