Streaming Audio

Sending Audio Chunks

How send_audio(pcm_bytes) works, chunk sizes, and ffmpeg conversion.


Audio format requirements

PropertyValue
FormatRaw PCM (no container)
Default sample rate16,000 Hz
Default data typeint16
Also supportedfloat32

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