MAI-Voice-2.1 on OpenRouter: audio/speech call, mp3 or pcm

OpenRouter serves microsoft/mai-voice-2.1 at POST /api/v1/audio/speech and returns raw audio bytes, mp3 or pcm. Here is the call and how Sume jobs differ.

5 min readSume
All posts

To call MAI-Voice-2.1 through OpenRouter, POST to https://openrouter.ai/api/v1/audio/speech with model: "microsoft/mai-voice-2.1" and an input string; voice is optional and response_format is mp3 or pcm (pcm is the default). The response is raw audio bytes, not JSON, and an X-Generation-Id header tracks the billed request. Microsoft prices the model at $22 per 1M characters on its own page.

Facts are from OpenRouter's model page and Microsoft AI's model page, both read on 2026-10-13.

MAI-Voice-2.1 over OpenRouter (read 2026-10-13)
ItemValue
EndpointPOST https://openrouter.ai/api/v1/audio/speech
Requiredmodel, input
Optionalvoice, response_format (mp3 or pcm, default pcm)
ResponseRaw audio bytes; Content-Type shows the format; X-Generation-Id header
Errors400, 401, 402, 403, 404, 429, 502
Microsoft list price$22 per 1M characters (Flash: $15 per 1M)
curl https://openrouter.ai/api/v1/audio/speech \
  -H "Authorization: Bearer $OPENROUTER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"microsoft/mai-voice-2.1","input":"Meet the new desk lamp.","response_format":"mp3"}' \
  --output line.mp3

How is this different from a Sume TTS job?

A Sume TTS call is a job: you get status_url and result_url, poll GET /v1/jobs/:id/status, and read a durable audio artifact from /result. The OpenRouter call above returns bytes in the response. Neither is better; pick by whether your pipeline wants a hosted file and a job id.

MAI-Voice-2.1 is not in the Sume TTS Router catalog (check GET /v1/tts-router/models), so a Sume pipeline that wants MAI audio imports the file first.

Where else does Microsoft say it is available?

Microsoft's page names the MAI Playground, Copilot Audio Expressions and Microsoft Foundry (Azure Speech). It lists 23 languages, about 550 ms latency for MAI-Voice-2.1 and about 45 ms for Flash.

Sources

Related posts

More in Developers

All Developers posts

Written by Sume