NextATC guideNextATC Help & FAQ
Azure Setup
Key, region, voices, cost
Azure TTS is the high-quality cloud voice option. The local X-Plane/OS voice works without any setup; Azure can make radio speech sound more natural.
Azure is paid and provided by Microsoft, not by us. You need a Microsoft Azure account and a Cognitive Services Speech resource. Check Microsoft's current pricing and quotas before enabling it.
Quick checklist#
- Create a Microsoft Azure account with an active Azure subscription.
- In Azure Portal, create a
Speechresource:Create a resource -> AI + Machine Learning -> Speech service. - Choose subscription, resource group, resource name, region, and pricing tier. Check Microsoft's current costs, free-tier quota, and budget alerts.
- Open
Plugins -> NextATC -> Options -> Voice. - Press
Azure TTS setupto configure the resource. Use theSpeech engineselector to chooseMicrosoft Azurewhen the setup is ready. - The guided setup can open the Azure resource page, pricing page, and Microsoft setup documentation.
- After the Azure resource is created, open it and go to
Resource Management -> Keys and Endpoint. - Paste
KEY 1, select the sameLocation/Regionfrom the NextATC region list, then pressSave and Test Azure.
You should hear the new voice on the next ATC message.
To change an already-saved key or region, reopen Azure TTS setup from Options. The secret values are stored in credentials.ini, obfuscated like the other plugin credentials. Older settings.ini key/region entries are still read for migration, but the guided setup is the current path. When saved credentials exist, the wizard tests the current Azure setup first and shows whether it passed before asking whether to reconfigure.
Picking voices#
After Azure setup, choose the pilot voice and controller voice pool in Options -> Voice: press Voice roles... in the Microsoft Azure TTS section to open Azure Voice Roles. With Microsoft Azure selected in Speech engine, Voice roles / Download... opens the same voice controls.
How do I get my key, region, and token?#
In the Azure portal:
- Click
Create a resource. - Open
AI + Machine Learning. - Choose
Speech service. - Fill subscription, resource group, resource name, region, and pricing tier.
- Click
Create. - When deployment finishes, open the new Speech resource.
- In the left menu, open
Resource Management -> Keys and Endpoint. - Copy
KEY 1. - In NextATC, select the same
Location/Regionfrom the region list.
You do not manually obtain or paste an access token. NextATC uses KEY 1 and the selected region to request a temporary Speech token during Save and Test Azure. The token is short-lived and is not stored as the credential.
How much will it cost?#
Pricing, free quotas, and regional availability are controlled by Microsoft and can change. The plugin does not bill you and does not see your billing; it only sends TTS requests using the key you provide.
Usage depends on your settings and flight activity; a free allowance is not a guarantee of zero cost. NextATC includes a startup reminder to review usage. If no saved preference exists, it starts enabled every two weeks and the first eligible prompt is immediate. Check now opens Azure subscriptions; Not now or closing the dialog records that day and waits for the selected interval; Do not show again disables it. The interval can be changed in Options, and no reminder appears while Azure TTS is disabled or unconfigured.
Local usage stats and safety cutoff#
Options -> Voice -> Microsoft Azure TTS Stats shows requests sent, successful requests, and estimated billable characters for the current and previous UTC calendar month. NextATC counts only actual Azure synthesis POST attempts; token requests, native/local TTS, and AI text generation are excluded. Billable characters are added only after a successful synthesis. The counters are stored in X-Plane/Resources/plugins/NextATC/NextATC.azure-usage.ini.
The plugin uses 500,000 neural Text-to-Speech characters per calendar month as its monthly Speech Free Tier F0 reference, resetting at the start of each month in UTC. Check Microsoft Speech pricing for the current allowance. This local reference is not a billing limit: NextATC cannot detect whether your resource is Free Tier F0, S0, or another plan, and paid-subscription billing periods can differ.
The Auto-disable Azure at safety limit (optional) safeguard defaults to enabled at 90%. Both the checkbox and the 10–99% threshold are saved in Options. When the local current-month estimate reaches the threshold, NextATC finishes the request that crossed it, disables Azure TTS, saves the disabled state, and blocks later Azure synthesis requests. Trying to enable Azure again shows the reason. Raise the threshold above current usage, disable the safeguard, or wait for the next UTC calendar month to use Azure again.
These figures are estimates, not Azure billing data. Always verify the Azure Portal. Azure usage and cost data can lag by 24 hours or longer depending on subscription type, so the portal and NextATC may temporarily disagree.
"Azure TTS does not speak"#
Walk down this list:
Speech engineis set toMicrosoft AzureinOptions -> Voice.Read ATC messages (TTS)is also on.- The key is the key string, not the resource name.
- The region is a short code like
westeurope, not a full URL. - You have internet access from the machine running X-Plane.
- The Azure resource is still active in your Azure portal (not deleted, not suspended).
- Azure Voice Roles includes at least one selected voice.
If Azure is not configured at startup, the plugin disables Azure and uses the local voice path. Runtime Azure request failures are logged and can make that message silent. Check X-Plane/Log.txt for the Azure error returned by Microsoft.
"The voice is wrong / robotic"#
You are probably still on the built-in OS voice. Either Azure failed (see above) or a different Speech engine is selected in Options. The Options page shows the current voice status.
Can I choose a separate Azure pilot voice?#
Yes. In Options -> Voice, press Voice roles... in the Microsoft Azure TTS section to open Azure Voice Roles and select the pilot voice and the enabled controller voice pool. Pilot readback speech stays silent while Disable voice on readback is on; turn that option off to hear the selected pilot voice.
Going back to the free OS voice#
Choose Operating system in Options -> Voice -> Speech engine and save Options. Later messages use the operating-system voice path. No restart is needed; speech already playing may finish.
Privacy note#
When Azure TTS is enabled, ATC text is sent to Microsoft Azure for synthesis. No flight data beyond the text of the message is sent. If you prefer local-only voice, use the built-in OS voice.
See also#
- Voice & Push-to-Talk — for the speaking-side voice features.
- Options Reference — for every voice-related checkbox.
- Troubleshooting — for general fixes.