azstt · Azure Foundry MAI · part of stt
azstt
azstt transcribes speech with Azure Foundry's MAI models. It is stt fixed to that one provider, with the same input handling, events, daemon and configuration. Point it at a Foundry resource, name your deployment, and give it a file or a microphone.
export AZURE_STT_ENDPOINT=https://RESOURCE.services.ai.azure.com
azstt --model my-mai-transcribe-2 meeting.wav # one JSON request, one transcript
azstt --stream talk.wav # realtime, 16 kHz, server VAD
azstt # microphone → live lines
Two request shapes
model is your Foundry deployment's name, in both batch and realtime requests.azstt --print-request --model my-mai-transcribe-2
{"method":"POST","url":"https://resource.services.ai.azure.com/mai/v1/audio/transcriptions",
"content_type":"application/json","body":{"audio_url":"data:audio/wav;base64,…","model":"my-mai-transcribe-2"}}
azstt --print-request --stream
{"url":"wss://resource.services.ai.azure.com/mai/v1/realtime?intent=transcription","rate":16000,
"model":"mai-transcribe-2-streaming","auth_header":"api-key","session_update":{"type":"session.update",
"session":{"type":"transcription","audio":{"input":{"format":{"type":"audio/pcm","rate":16000},
"noise_reduction":null,"transcription":{"model":"mai-transcribe-2-streaming"},"turn_detection":{"type":"server_vad"}}}}}}
Real output, offline, against a placeholder resource name; no key was present.
Defaults and resources
- Defaults you can see.
mai-transcribe-2for batch andmai-transcribe-2-streamingfor realtime, unlessAZURE_STT_MODEL,AZURE_STT_STREAMING_MODELor--modelsay otherwise. - Separate realtime resources.
AZURE_STT_STREAMING_ENDPOINTand its key and model point streaming at another resource; otherwise batch's are reused. - No silent drops. MAI has no prompt field, so
--promptis an error:Azure MAI transcription has no prompt field; remove --prompt or use openai. - Keys stay out of argv.
AZURE_STT_API_KEYas an environment variable or a systemd credential, or Microsoft Entra tokens from a broker, shared with the tts family. - Live text while you talk. MAI streams intermediate partials and completes each segment on commit; with server VAD, trailing silence closes the last turn.
- Everything else is shared. Input selection, events and NDJSON, the daemon relay and Nix module are the stt core's.