The spoken phrases and names of the ATC system come from a cloud-base Text-To-Speech (TTS) engine. Several spreadsheets of vocabulary are fed to the cloud engine to be spoken and saved as individual sound files. These are then processed and saved as part of the X-Plane resources which are distributed as part of the application. While the TTS engine is very good at getting reasonable pronunciations for most things, it is by no means perfect. Regionalization and other types of specialization are often necessary to improve the accuracy of the speech.
We have made our spreadsheets public so that the community can edit them to correct mistakes that they may find. We will periodically grab the latest spreadsheets with community corrections and rebuild our internal speech resources to include the new corrected pronunciations, then make them available as part of standard X-Plane updates.
You can find the spreadsheet here.
The spreadsheet currently contains 5 tabs along the bottom for the categories: Airlines, Airports, Aircraft Makers, Aircraft Models and VORs, as well as an instructions tab. Each category tab has two common editable fields. One is what the ATC engine will display as text on screen. The other is what will be spoken as audio output.
It’s important to note that some users will disable ATC speech and just want to see textual ATC commands. Others may disable the text and only want to hear spoken commands. Because of this, the ATC engine needs data for text and speech. For example, you may want to display “B737-800” as an aircraft type in text, but you may want to say “737 800” in speech; without the ‘B’ and without pronouncing the ‘dash’. That’s why the two columns exist independently.
Speech and pronunciation can also be adjusted by using the SSML standard. Note that you do NOT need to add <speak></speak> tags. It’s implied. There are many resources available on the web to help learn SSML syntax as well as pronunciation characters. They all should work fine, independent of the TTS engine used. It is suggested that you create a free Amazon Web Services account and use the Amazon Polly Text-To-Speech synthesizer online to listen to your syntax before editing the spreadsheet. However, you can also use Google’s online synthesizer or various others.
Please do not attempt to use pronunciation to create regional accents in the spoken words as this will make things more difficult. For example, the word Boston should be “Baw-stun” even if regionally they’d say “Bah-stin”. This type of feature IS actually possible someday but it is NOT done on the pronunciation level in the spreadsheet.
21 comments on “Improving ATC Speech and Pronunciation”
Isn’t this something that could be incorporated into WED? It seems that it would be much easier to maintain if it was there.
This is great that we can get to help out with this. I will try to find some time to create the correct pronunciations for the Czech airports (and the ones in the UK you usually have trouble with, like Gloucester, Worcester, and… well everything else I guess :)).
This is awesome. I already added pronunciations for the argentinian airlines. When I have more time I’ll check the major airports to see if they are well pronounced.
What a great idea. I’m trying to help with Polish names, but wanted to ask a question. Should we use tag to specify language, or it doesn’t matter and it will use only English pronunciation?
How can I change the voices to female ATC and male Pilot?
Filling a pronounciation database is a cool idea to reflect community effort and
to consider cultural variety or accents, like Daniela’s argentine :).
TOL (very hard to text that stuff rather than discussing it face to face):
From my point of view, the objective for an ATC system should be a fluent, clearly spoken, technically electronic sounding
mess environment of radio noise coming from multiple participants at multiple stages of ops and at multiple geographical locations, male and female, pro and student.
A vast going matrix experience that tells me, i am live, i am flying, things happen, gotta watch out, we got 777s just like Nighthawks lining up on 8R, oh hell there is heli coming in and that Cessna Student just has no clue where to go.
X-plane’s ATC should interact and voice is the tool!
Voice must be loud and awakening, transmissions must have that typical sound backnoise and must be dominant.
take this serious or virtual accidents happen. 🙂
When i fly in France, you may meet a guy who refuses to speak english,
and when you fly in China, you will hear sweet robot voices,
and if you fly in Switzerland’s Samedan, you will need to change your pants after landing,
while in Africa, well, you may not hear anything at all.
Approaching Buenos Aires may get you in touch with Daniela!
The current implemented system has space for improvement,
not particularly in filling voice databases, but in its core concept, tmho.
Work more intuitively, less forms to fill out, get that thing running like in real world.
Why should i fill out a form telling the controller which airplane i sit in, if the system already has that information or he
already spots me from the tower? Why not use trigger areas in WED? ICAO-charts with the freqs and sections should
be databased with trigger areas even before the pronon campaign, pull up the right controller at the right time.
IFR-VFR-Widebody-GA-Heli-Mil-Sea/Land operated environment, my voice is the weapon to push me through to number one position and take off.
We can learn a bit from computer games that were successful in the last 20 years. Some may have found a brilliant approah on how to implement a matrix kind of voice interaction.
I hope this is going to be successful.
Fantastic reach! And some thinking outside of the box.
As a google sheet administrator, I wonder if you might want to simply change to a view-only set of sheets with links to do the additions people would submit, versus allowing edits and protecting exceptions.
I can help with that if you like. I have examples and it is not hard at all.
I love X Plane and the ATC has a little difficulty I did use in the last many years x plane 9.70 and if you have a look at the ATC in there it will guide you to how it was working I did like it and yet went back already last week to do some flying and just an example if you decide to ask ATC to change altitude and other request …well … Atc will help in the mater that it was programed.
I have a small video on you tube under xplane 9.70 and it briefly show how it work.
Robert Allard since v9.
This is very good to try in making ATC better. You all could find a good copy that was used on x plane 9.70 and file a flight plan and follow the directions.It is an excellent ATC communication platform.
Is there no cheap way of getting Siri to operate ATC?
How can I add new Airlines?
It would be great if another column could be added for words that might be read from a check list (assuming it uses the same voice engine as ATC). For example, I haven’t been able to find a way to spell “gyro” that results in the correct pronunciation. The way it pronounces it sounds like Greek fast food (“geero”) rather than a an airplane instrument. There are many others.
Would like to add a new airline from Taiwan which I see is not in the spreadsheet.
Since there is all that computing power required, how about speech recognition so we can talk back to ATC and add control for a PTT on the yolk?
Is there anyway to change the call sign on the AI aircraft when using ATC. Instead of 757-200 could it be changed to Alaska 757 or United 747 etc etc
Can you easily find/replace all of the ‘CO’s in the airport names to ‘COUNTY’ so ATC will pronounce them correctly? As in “Detroit Metro Wayne County”, not “Detroit Metro Wayne Company”? Or tell the AI to interpret ‘CO’ as ‘COUNTY’? Thanks!
Other this, we user may edit/update airspace (atc.dat) ?
I think handover avoid frequency overload using more AI, but how to do well?
act.dat data, have priority respect wed airports , for example APP and DEL frequency.
Can the right AIRSPACE_POLYGON_BEGIN avoid “crash to mountain” problems?
I’m a little confused by this – is the spreadsheet still being used? According to the spreadsheet a B737-800 should be pronounced as “seven thirty seven dash eight hundred”, but is still pronounced as “seven hundred and thirty seven too eight hundred” in X-Plane 11.50.
Plz make it more humanlike
Right now x-plane only has ‘normal’ stuff. X-plane should add a ‘MAYDAY-MAYDAY-MAYDAY’ and ‘PAN-PAN – PAN-PAN – PAN-PAN’ and once that is pressed it shows a list of emergencies like: fire ,decompression ,engine problems etc…
Just looked at the spreadsheet for X-Plane 12 ATC…
under aircraft types, the A220 (A221 and A223) are still referred as Bombardier CSeries.
This has been for few years already