Hello,
Welcome to Microsoft Q&A,
Instructions are not a valid field on Azure’s /chat/completions request body, so you get HTTP 400. Put “how the voice should speak” in a system message there.
If you want to use a top-level instructions field, call the Responses API instead (that surface supports instructions).
Option A — Chat Completions (no instructions field)
curl -X POST "https://{RESOURCE}.openai.azure.com/openai/deployments/{DEPLOYMENT}/chat/completions?api-version=2025-01-01-preview" \
-H "api-key: $AZURE_OPENAI_API_KEY" -H "Content-Type: application/json" \
-d '{
"modalities": ["text","audio"],
"audio": { "voice": "alloy", "format": "wav" },
"messages": [
{ "role": "system", "content": "Speak like a calm British announcer. Keep sentences short." },
{ "role": "user", "content": "Your order is ready for pickup." }
]
}'
This is the preview audio generation flow for gpt-4o(-mini)-audio-preview; the style guidance lives in the system message
https://learn.microsoft.com/en-us/azure/ai-foundry/openai/audio-completions-quickstart
Option B — Responses API (use instructions)
curl -X POST "https://{RESOURCE}.openai.azure.com/openai/v1/responses" \
-H "api-key: $AZURE_OPENAI_API_KEY" -H "Content-Type: application/json" \
-d '{
"model": "{DEPLOYMENT}", // your gpt-4o / gpt-4o-mini audio-capable deployment
"instructions": "Speak like a calm British announcer. Keep sentences short.",
"input": "Your order is ready for pickup.",
"modalities": ["text","audio"],
"audio": { "voice": "alloy", "format": "wav" }
}'
Azure’s Responses API supports instructions (top-level) and is available in multiple regions.
Please Upvote and accept the answer if it helps!!