What it does
Converts between spoken audio and text, and synthesises natural-sounding speech:
Speech-to-Text (STT) — real-time and batch transcription, with speaker diarisation and custom acoustic models.
Text-to-Speech (TTS) — neural voices with SSML customisation; custom neural voice allows training on a specific speaker's voice.
Speech Translation — real-time translation of spoken audio into a different language.
Speaker Recognition — identifies or verifies a speaker based on their voice.
When you'd use it
You need to transcribe call recordings, meetings, or voice notes at scale.
You are building a voice-enabled application or IVR system.
You need real-time translation in multilingual meeting or customer support scenarios.
Sample use case
A financial services firm needs a compliant record of every client advisory call. Azure AI Speech batch transcribes recordings stored in Blob Storage overnight, attaches speaker labels, and stores the searchable transcript alongside the recording in Azure Data Lake. Compliance officers can full-text search transcripts without listening to audio.
Example reference architecture
.png)
Pricing & How Costs Work
The full pricing documentation is here: https://azure.microsoft.com/en-gb/pricing/details/speech/
Azure AI Speech is priced differently for each sub-capability. The billing unit varies by feature:
Feature | Pricing unit | Notes |
|---|---|---|
Speech-to-Text — real-time | Per audio hour | Billed for the duration of submitted audio, not processing time |
Speech-to-Text — batch transcription | Per audio hour | Slightly cheaper than real-time; async processing of stored audio files |
Speech-to-Text — custom model (real-time) | Per audio hour | Higher rate for a custom acoustic/language model endpoint |
Speech-to-Text — custom model (batch) | Per audio hour + endpoint hosting | Custom model endpoints accrue an hourly hosting charge even with no traffic |
Text-to-Speech — standard neural voices | Per 1 million characters | Characters of text submitted for synthesis |
Text-to-Speech — custom neural voice | Per 1 million characters | Higher rate; requires approved access and a trained custom voice |
Text-to-Speech — HD voices | Per 1 million characters | Premium tier of neural voices with higher quality |
Speaker Recognition | Per 1,000 transactions | Each verify/identify API call is one transaction |
Speech Translation | Per audio hour | Real-time spoken audio translated to text in another language |
Key pricing mechanics:
Free tier (F0): 5 hours of STT and 500,000 TTS characters/month at no cost.
Custom model endpoint hosting: A deployed custom STT model incurs a continuous per-hour hosting fee, separate from the per-audio-hour inference cost — similar to custom Language model hosting.
Audio duration is the billing unit for STT: A 30-second clip submitted to the API is billed as 0.5 minutes (rounded to the nearest second). Silent audio still costs the same as spoken audio.
Character count is the billing unit for TTS: SSML markup characters (tags, phonemes, prosody attributes) are counted towards the character total. This catches some teams by surprise.
Batch transcription: Submitted as an async job. Cost is the same per-audio-hour as real-time for standard models but allows processing at scale without managing persistent connections.
What Drives Costs
Cost driver | Why it matters |
|---|---|
Total hours of audio transcribed | The dominant STT cost driver — scales directly with call/meeting volume. |
Total characters synthesised | The dominant TTS cost driver — long-form audio generation can be expensive. |
Real-time vs batch STT | Batch is cheaper per hour and suited for non-real-time workloads (overnight processing). |
Custom model hosting hours | Always-on endpoint hosting accrues cost 24×7 regardless of traffic. |
SSML complexity in TTS | Verbose SSML (phonemes, emphasis tags) increases character count and therefore cost. |
Speaker recognition transaction volume | Each identify/verify call is billed individually. |
Speech Translation usage | Billed at the same per-audio-hour structure as STT but at a higher rate. |
Cost optimisation levers:
Use batch transcription instead of real-time STT for any non-interactive workload (call recordings, meeting files).
Delete custom model endpoints when not in use — hosting charges stop when the endpoint is removed.
Pre-process TTS scripts to minimise SSML verbosity; strip markup that does not affect audio quality.
Enable silence trimming or voice activity detection (VAD) before submitting audio to STT to reduce billed duration.
Evaluate whether a standard neural voice meets quality requirements before paying the premium for HD or custom voices.
Azure Cost Data — Meters & Meter Subcategories
Azure AI Speech appears under the Cognitive Services service family in Cost Management. Resource type: Microsoft.CognitiveServices/accounts with kind SpeechServices.
Meter name | Meter subcategory | What it counts |
|---|---|---|
Speech to Text Audio | Standard S0 | Real-time STT — audio hours processed |
Batch Speech to Text Audio | Standard S0 | Batch transcription — audio hours processed |
Custom Speech to Text Audio | Standard S0 | Custom model STT inference — audio hours processed |
Custom Speech Endpoint Hosting | Standard S0 | Hourly charge per deployed custom STT model endpoint |
Neural Text to Speech Characters | Standard S0 | TTS characters synthesised using standard neural voices |
Neural Text to Speech HD Characters | Standard S0 | TTS characters synthesised using HD-tier neural voices |
Custom Neural Voice Characters | Standard S0 | TTS characters synthesised using a custom trained voice |
Speaker Recognition Transactions | Standard S0 | Count of speaker verification/identification API calls |
Speech Translation Audio | Standard S0 | Audio hours processed through the speech translation API |
Meter subcategory notes:
Each Speech feature has a dedicated meter, making it easy to see cost by capability in billing exports without needing additional monitoring.
Quantityfor STT meters = audio hours (fractional).Quantityfor TTS meters = characters (in units appropriate to the pricing model — commonly reported as millions).Custom endpoint hosting meters appear as a flat hourly rate; in a billing export these look like a continuous background cost rather than a demand-driven spike.
Tagging the Speech resource (e.g.
use-case=call-transcription,env=prod) flows through to all billing rows, supporting cost allocation across teams or products sharing a single resource.
Common Developer Mistakes That Drive Up Costs
Using real-time STT for non-interactive workloads. Real-time transcription is appropriate for live call handling or voice assistants. For call recordings, meeting files, or any audio that is not being used in a live conversation, batch transcription is the right choice — it is asynchronous and costs slightly less per audio hour than real-time, with no need to manage persistent connections.
Submitting audio with long silent segments. Silence is billed the same as speech in STT. Audio files with extended silences, hold music, or interstitial noise before the conversation starts inflate billed duration. Applying voice activity detection (VAD) or silence trimming before submission removes non-speech content from the billable duration.
Leaving custom STT model endpoints active when not in use. Custom model endpoints accrue an hourly hosting charge regardless of traffic. An endpoint created for a proof-of-concept that receives no calls still bills the hosting fee every hour until deleted.
Not accounting for SSML markup in TTS character counts. SSML tags, phoneme annotations, prosody elements, and break tags all count as characters in TTS billing. Teams that estimate TTS cost based on word count underestimate actual character count when their SSML is verbose.
Using HD or Custom Neural Voice for all TTS output regardless of quality requirements. HD voices cost more per million characters than standard neural voices. Applying the highest-quality voice to all output — including system messages, error notifications, or UI prompts where audio quality is less critical — overpays for the majority of TTS volume.
Not tracking audio duration per workload. STT cost scales directly with audio hours. Teams that don't instrument how much audio they are transcribing (by workload or feature) often discover cost growth after the fact rather than proactively managing it.
What Could Make Your Bill Go Up or Down Next Month
Could go UP:
Call recording volume increases (e.g. more agents hired, higher inbound call volume) proportionally increasing batch transcription hours.
A new real-time transcription feature is launched for meetings, driving continuous STT usage during business hours.
Custom STT model endpoints are created for a new language or domain without removing the previous iteration's endpoint.
TTS is added to a high-volume notification pipeline, generating millions of characters per day.
An integration change causes longer audio files to be submitted without silence trimming, inflating billed duration.
Speaker recognition transactions increase significantly as the feature is rolled out to additional products.
Could go DOWN:
Silence trimming (VAD pre-processing) is implemented before STT submission, reducing billed audio duration by the proportion of silence in recordings.
Real-time STT is replaced with batch transcription for an async processing pipeline, reducing the per-hour rate.
Custom STT endpoints from inactive or superseded model versions are deleted.
TTS voice tier is reviewed and standard neural voice is used for low-criticality output (notifications, system messages), with HD voice reserved for customer-facing IVR.
A seasonal reduction in call volume (e.g. post-peak period) directly reduces batch STT audio hours.
Most Common Optimisation Techniques
Technique | Mechanism | Typical saving |
|---|---|---|
Use batch transcription for non-real-time workloads | Async batch STT is slightly cheaper per hour and removes the need for persistent real-time connections | Cost reduction plus architectural simplification |
Apply VAD/silence trimming before STT submission | Remove non-speech segments from audio before submitting; reduce billed audio duration | Typically 10–30% reduction depending on call type; higher for IVR and hold-heavy calls |
Delete idle custom STT model endpoints | Remove endpoints for inactive, superseded, or pilot model versions | Eliminates 100% of hosting cost per idle endpoint |
Minimise SSML verbosity in TTS | Remove unnecessary SSML tags; use only the prosody and phoneme annotations that affect perceived quality | Reduces character count proportionally to SSML overhead |
Tier TTS voice quality to output context | Use standard neural voices for system messages/notifications; reserve HD or custom voice for customer-facing speech | Reduces TTS cost for the proportion of volume on lower-criticality output |
Instrument audio duration per feature | Log billed audio hours per workload or feature in Azure Monitor | Enables proactive cost management rather than reactive discovery |