Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Note
This feature is currently in public preview. This preview is provided without a service-level agreement, and isn't recommended for production workloads. Certain features might not be supported or might have constrained capabilities. For more information, see Supplemental Terms of Use for Microsoft Azure Previews.
MAI-Voice is a family of neural text-to-speech models available through Azure Speech in Foundry Tools in public preview. Built on Microsoft's in-house speech foundation models, MAI-Voice models produce expressive, natural speech output with consistent voice persona quality. Similar to Azure Neural HD voices, MAI-Voice models understand input text holistically and automatically adapt tone, emotion, and speaking style. This adaptation enables more human-like and conversational speech without requiring extensive manual tuning.
Speech offers the following MAI-Voice models:
| Model | Voice Count | Key Characteristics | Best For |
|---|---|---|---|
| MAI-Voice-1 | Six prebuilt English (US) voices | Emotionally rich, highly expressive, consistent persona quality, SSML style control | Conversational AI, creative applications, long-form narration |
| MAI-Voice-2 | Multilingual prebuilt voices across 10+ languages | High-fidelity expressive synthesis, multilingual, voice prompting (gated), long-form and multi-speaker generation | Multilingual conversational AI, expressive long-form content, multi-speaker scenarios |
Model details
MAI-Voice-1 is optimized for expressive, conversational, and long-form scenarios in English (US).
Key features
| Key features | Description |
|---|---|
| Human-like speech generation | MAI-Voice-1 generates highly natural and emotionally rich speech. The model interprets input text holistically and automatically adjusts emotion, pace, and rhythm without manual configuration. |
| Conversational expressiveness | MAI-Voice-1 is optimized for conversational scenarios, producing engaging and context-aware speech suitable for assistants and interactive experiences. |
| Emotion and style control | Developers can influence speaking style by using SSML with mstts:express-as, enabling control over emotions such as joy, excitement, empathy, and more. |
| Consistent voice persona | MAI-Voice-1 maintains a stable and consistent voice persona across long-form content while still allowing expressive variation. |
| High fidelity audio | The model produces high-quality neural speech with natural prosody and clarity suitable for production-grade applications. |
| Real-time synthesis | MAI-Voice-1 supports real-time speech synthesis by using the Speech SDK and APIs. |
Prerequisites
- An Azure account. Create one for free.
- A Speech resource in a region that supports MAI-Voice-1 (region support).
- For voice prompting, apply for limited access approval and complete consent safeguards.
SSML examples
Basic SSML
The following SSML synthesizes a greeting by using the en-US-Jasper:MAI-Voice-1 voice.
<speak version='1.0' xmlns='http://www.w3.org/2001/10/synthesis' xmlns:mstts='http://www.w3.org/2001/mstts' xml:lang='en-US'>
<voice name='en-US-Jasper:MAI-Voice-1'>
<mstts:express-as style="excitement">hello world.</mstts:express-as>
</voice>
</speak>
Submit this SSML to the Speech REST API or SDK to receive synthesized audio.
Reference: Speech Synthesis Markup Language (SSML) | <voice> element
Voice prompting (gated access)
To access personal voice (voice cloning) by using MAI-Voice-1:
- Apply for gated access through Azure AI Custom Neural Voice and Custom Avatar Limited Access Review.
- Once approved, access personal voice APIs at cognitive-services-speech-sdk/samples/custom-voice.
- Upload audio consent and prompt to create a personal voice.
- Synthesize given text by using the created voice and MAI-Voice-1 model with the following SSML:
<speak version='1.0' xmlns='http://www.w3.org/2001/10/synthesis' xmlns:mstts='http://www.w3.org/2001/mstts' xml:lang='en-US'>
<voice name='MAI-voice-1'>
<mstts:ttsembedding speakerProfileId='your speaker profile ID here'>
I'm happy to hear that you find me amazing and that I have made your trip planning easier and more fun.
</mstts:ttsembedding>
</voice>
</speak>
Prebuilt voices
| Voice ID | Gender | Recommended use case |
|---|---|---|
| en-us-Jasper:MAI-Voice-1 | Male | General Conversation, Sales, Emotional styles |
| en-us-June:MAI-Voice-1 | Female | General Conversation, Customer Service, Professional, Emotional styles |
| en-us-Grant:MAI-Voice-1 | Male | General Conversation, Professional, Emotional styles |
| en-us-Iris:MAI-Voice-1 | Female | General Conversation, Narration, Emotional styles |
| en-us-Reed:MAI-Voice-1 | Male | General Conversation |
| en-us-Joy:MAI-Voice-1 | Female | General Conversation |
Usage: Available for third-party developers. Microsoft holds full licensing rights for commercial use.
Use MAI-Voice models
MAI-Voice models use the same Azure Speech APIs and SDKs as other Azure neural and HD voices. Use the voice name in the name attribute of the SSML <voice> element. See the prebuilt voice tables in the preceding sections for available names.
Try a MAI-Voice voice in the Foundry portal:
- Go to the Text to speech feature page and select Open in playground.
- Select a MAI-Voice voice from the voice dropdown.
- Enter sample text in the text box.
- Select Play to hear the synthesized speech.
Send an SSML POST request to the cognitiveservices/v1 endpoint of your Speech resource. Replace YourRegion with your Speech resource region and <YourSpeechResourceKey> with your resource key.
curl -X POST \
"https://YourRegion.tts.speech.microsoft.com/cognitiveservices/v1" \
--header "Content-Type: application/ssml+xml" \
--header "X-Microsoft-OutputFormat: audio-24khz-160kbitrate-mono-mp3" \
--header "Ocp-Apim-Subscription-Key: <YourSpeechResourceKey>" \
--data '<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xmlns:mstts="http://www.w3.org/2001/mstts" xml:lang="en-US">
<voice name="en-US-Harper:MAI-Voice-2">
Hello, this is a sample from MAI Voice.
</voice>
</speak>' \
--output output.mp3
Replace the voice name with any MAI-Voice voice from the prebuilt voice tables above.
The following code synthesizes speech by using the Azure Speech SDK and saves the audio to output.mp3. Replace <key> with your Speech resource key.
import azure.cognitiveservices.speech as speechsdk
speech_config = speechsdk.SpeechConfig(
subscription="<key>", region="eastus"
)
audio_config = speechsdk.audio.AudioOutputConfig(filename="output.mp3")
speech_config.set_speech_synthesis_output_format(
speechsdk.SpeechSynthesisOutputFormat.Audio24Khz160KBitRateMonoMp3
)
synthesizer = speechsdk.SpeechSynthesizer(
speech_config=speech_config, audio_config=audio_config
)
ssml = """
<speak version='1.0' xmlns='http://www.w3.org/2001/10/synthesis' xmlns:mstts='http://www.w3.org/2001/mstts' xml:lang='en-US'>
<voice name='en-US-Jasper:MAI-Voice-1'>
<mstts:express-as style="excitement">Hello world.</mstts:express-as>
</voice>
</speak>
"""
synthesizer.speak_ssml_async(ssml).get()
On success, an output.mp3 file is saved to the current directory. Replace the voice name with any MAI-Voice voice from the prebuilt voice tables above.
Follow the text to speech quickstart. In the SSML, use a MAI-Voice voice name in the name attribute of the <voice> element. See the prebuilt voice tables above for available names.
Follow the text to speech quickstart. In the SSML, use a MAI-Voice voice name in the name attribute of the <voice> element. See the prebuilt voice tables above for available names.
Follow the text to speech quickstart. In the SSML, use a MAI-Voice voice name in the name attribute of the <voice> element. See the prebuilt voice tables above for available names.