Endless ATC uses the text-to-speech engine of your device to make the pilots talk. To check how many English voices are currently available to Endless ATC on your device, click on Sound/Rate, and the number of voices is displayed at the bottom of the options bar.
Windows
Only 3 voices are used by the Windows speech api (sapi) by default. Even if you install more language packs via the Windows control panel, the additional voices that Windows downloads are not added to sapi and therefore they are not used by Endless ATC. You can check which sapi voices are available by opening the sapi.cpl control panel for 32 bit apps. On current Windows systems, this panel can be opened by pressing Windows key + R, and then running:
- C:\Windows\sysWOW64\speech\SpeechUX\SAPI.cpl
Having the English UK and USA language packs installed, you should see 3 voices in the dropdown list: Zira, David and Hazel. Unfortunately, even when installing more language packs via the Windows control panel, for example Canada, Australia or India, my experience is that sapi.cpl only lists the same 3 voices.
Adding more voices is possible, but difficult: it requires you to manually change tokens in the Windows registry. Messing with the registry can be dangerous if things go wrong. If you really want to try this, make sure you backup at least the registry before making any changes!
After you install additional English language packs in the Windows control panel (for example Ireland, Canada, etc), you should see more voices appearing in the Windows control panel (but not in sapi.cpl). These additional voices have tokens in the registry which are located at the following path (lets call it path A):
- HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech_OneCore\Voices\Tokens\
To make these voices also show up in sapi.cpl (so Endless ATC can use them), you have to copy these tokens this path (lets call it path B):
- HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\SPEECH\Voices\Tokens
and only then sapi.cpl will be able to use these voices (or any other 32bit app that uses sapi; 64 bit apps use a separate sapi.cpl that looks into HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\ instead, but that is not relevant to Endless ATC).
To edit the registry, press Windows key + R, and run regedit. You can copy and paste the above paths A or B into to url bar of regedit to browse the voice tokens that are currently available on your device. Path A should show many tokens if you have downloaded more english voices, but path B will likely show only 3 tokens.
One way to copy voices from one place in the registry (A) to another (B) is to right click on a voice token, export it, open it in notepad, replace the path from A to B, save the file, and then import it again in the registry. Re-open sapi.cpl to check if the voice is added.
Another way is to copy and paste all tokens at once, using the powershell script I found here. I didn't make this script; use it at your own risk. What is does is: it copies all voices from path A to B (both 32 and 64bit sapi versions).
$sourcePath = 'HKLM:\software\Microsoft\Speech_OneCore\Voices\Tokens' # Path A
$destinationPath = 'HKLM:\SOFTWARE\Microsoft\Speech\Voices\Tokens' # Path B for 64-bit apps
$destinationPath2 = 'HKLM:\SOFTWARE\WOW6432Node\Microsoft\SPEECH\Voices\Tokens' # Path B for 32-bit apps
$listVoices = Get-ChildItem $sourcePath
foreach($voice in $listVoices)
{
$source = $voice.PSPath # Get the path of this voices key
copy -Path $source -Destination $destinationPath -Recurse
copy -Path $source -Destination $destinationPath2 -Recurse
}
- Save the above script as a .ps1 file (for example add_voices.ps1)
- Open powershell (press Windows key, type powershell, right click it to open as administrator).
- By default, powershell is in restricted mode, so copy and paste this command:
- Set-ExecutionPolicy RemoteSigned
- Run the script: path/to/your/add_voices.ps1
- If it ran without errors, restore powershell to the restricted mode again:
- Set-ExecutionPolicy Restricted
Re-open sapi.cpl to check if the voices are added. Endless ATC will use any of these voices, as long as they are English voices. On my device I managed to install a total of 13 unique English voices from Windows. It may be possible to add third party sapi voices as well, but that is not tested.
[Source]
[Source]
Android
The speech engine that android uses can be selected in Android settings (search for speech). The available speech engine(s) you can select differ per device manufacturer. Go to the settings of the speech engine to install more voices. For example, the Google TTS engine allows for installing more voice data. Endless ATC will use any English voices that are available without requiring a network connection. On my device, I managed to get a total of 28 English voices.
Linux
Linux is not offically supported. If you use something like Wine to run the Windows executable on Linux, you may have noticed the voices do not work at all. This can be solved by using Winetricks with speechsdk:
- WINEPREFIX=~/.wine_game WINEARCH=win32 winecfg
- WINEPREFIX=~/.wine_game winetricks -q speechsdk
Using speechsdk, I got the voices working in the game, although they sound very robotic. It may be possible to add better sapi voices, but I've not tried that.