Microsoft's Windows 10 operating system comes with a set of voices for each language installed on the device. Only some of the installed voices become available system-wide so that third-party software and services may make use of them as well. The majority of voices are restricted to internal use, e.g. for Cortana or other areas.

If you open Settings > Ease of Access > Narrator and select the voice menu there, you get a listing of voices that are available.

https://cdn.ghacks.net/wp-content/up...-10-voices.png

When you open a third-party program that uses voices on the Windows PC, only some of these are provided.

The screenshot above shows how many voices are available when you select the voice picker in Narrator.

The third-party program Balabolka displays only three voices that you may select even though you know that more are available on the device: frustrating.

https://cdn.ghacks.net/wp-content/up...rty-voices.png

There is a way, however, to unlock all Windows 10 text-to-speech voices so that they become available to any program or app that uses the voices that Windows provides.

Note: The method requires Registry editing. I suggest you create a backup of the Registry or even your system before you make any modifications to the Windows Registry so that you can restore the initial state if things don't go as planned.

Here is how that is done:

Step 1: Open the Windows Registry Editor

  1. Activate the Start menu of the operating system.
  2. Type regedit.exe to launch the Registry Editor.
  3. Confirm the UAC security prompt that is displayed.

Step 2: Open the list of available voices

https://cdn.ghacks.net/wp-content/up...led-voices.png

  1. Go to the Registry key Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Spe ech_OneCore\Voices\Tokens

It lists all the voices that are available (except for Cortana voices, more about that later).

Step 3: Export the voices

https://cdn.ghacks.net/wp-content/up...stry-voice.png

You need to export the voice information in the Registry in the first step.

  1. Right-click on a key in the Registry Editor, e.g. MSTTS_V110_enUS_MarkM and select Export.
  2. Type a name for the new Registry file, e.g. markm, and select save from the dialog.

4. Modify the exported Registry file

Open the saved Registry file. It needs to be modified so that its values are added to two other locations in the Registry.

  1. Copy all information except for the first line (Windows Registry Editor Version 5.00) and paste the information below the content of the file.
  2. Replace the location in the first data set with HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voice s\Tokens
  3. Replace the location in the second data set with HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\ SPEECH\Voices\Tokens

Note: Each set includes two paths that you need to replace. Take a look at the following modified Registry file to better understand the process (for the U.S. voice Mark):

Original File:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech_OneCo re\Voices\Tokens\MSTTS_V110_enUS_MarkM]
@="Microsoft Mark - English (United States)"
"409"="Microsoft Mark - English (United States)"
"CLSID"="{179F3D56-1B0B-42B2-A962-59B7EF59FE1B}"
"LangDataPath"=hex(2):25,00,77,00,69,00,6e,00,64,0 0,69,00,72,00,25,00,5c,00,53,\
00,70,00,65,00,65,00,63,00,68,00,5f,00,4f,00,6e,00 ,65,00,43,00,6f,00,72,00,\
65,00,5c,00,45,00,6e,00,67,00,69,00,6e,00,65,00,73 ,00,5c,00,54,00,54,00,53,\
00,5c,00,65,00,6e,00,2d,00,55,00,53,00,5c,00,4d,00 ,53,00,54,00,54,00,53,00,\
4c,00,6f,00,63,00,65,00,6e,00,55,00,53,00,2e,00,64 ,00,61,00,74,00,00,00
"VoicePath"=hex(2):25,00,77,00,69,00,6e,00,64,00,6 9,00,72,00,25,00,5c,00,53,00,\
70,00,65,00,65,00,63,00,68,00,5f,00,4f,00,6e,00,65 ,00,43,00,6f,00,72,00,65,\
00,5c,00,45,00,6e,00,67,00,69,00,6e,00,65,00,73,00 ,5c,00,54,00,54,00,53,00,\
5c,00,65,00,6e,00,2d,00,55,00,53,00,5c,00,4d,00,31 ,00,30,00,33,00,33,00,4d,\
00,61,00,72,00,6b,00,00,00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech_OneCo re\Voices\Tokens\MSTTS_V110_enUS_MarkM\Attributes]
"Age"="Adult"
"DataVersion"="11.0.2013.1022"
"Gender"="Male"
"Language"="409"
"Name"="Microsoft Mark"
"SharedPronunciation"=""
"Vendor"="Microsoft"
"Version"="11.0"

Modified File:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voice s\Tokens\MSTTS_V110_enUS_MarkM]
@="Microsoft Mark - English (United States)"
"409"="Microsoft Mark - English (United States)"
"CLSID"="{179F3D56-1B0B-42B2-A962-59B7EF59FE1B}"
"LangDataPath"=hex(2):25,00,77,00,69,00,6e,00,64,0 0,69,00,72,00,25,00,5c,00,53,\
00,70,00,65,00,65,00,63,00,68,00,5f,00,4f,00,6e,00 ,65,00,43,00,6f,00,72,00,\
65,00,5c,00,45,00,6e,00,67,00,69,00,6e,00,65,00,73 ,00,5c,00,54,00,54,00,53,\
00,5c,00,65,00,6e,00,2d,00,55,00,53,00,5c,00,4d,00 ,53,00,54,00,54,00,53,00,\
4c,00,6f,00,63,00,65,00,6e,00,55,00,53,00,2e,00,64 ,00,61,00,74,00,00,00
"VoicePath"=hex(2):25,00,77,00,69,00,6e,00,64,00,6 9,00,72,00,25,00,5c,00,53,00,\
70,00,65,00,65,00,63,00,68,00,5f,00,4f,00,6e,00,65 ,00,43,00,6f,00,72,00,65,\
00,5c,00,45,00,6e,00,67,00,69,00,6e,00,65,00,73,00 ,5c,00,54,00,54,00,53,00,\
5c,00,65,00,6e,00,2d,00,55,00,53,00,5c,00,4d,00,31 ,00,30,00,33,00,33,00,4d,\
00,61,00,72,00,6b,00,00,00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voice s\Tokens\MSTTS_V110_enUS_MarkM\Attributes]
"Age"="Adult"
"DataVersion"="11.0.2013.1022"
"Gender"="Male"
"Language"="409"
"Name"="Microsoft Mark"
"SharedPronunciation"=""
"Vendor"="Microsoft"
"Version"="11.0"

[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\ SPEECH\Voices\Tokens\MSTTS_V110_enUS_MarkM]
@="Microsoft Mark - English (United States)"
"409"="Microsoft Mark - English (United States)"
"CLSID"="{179F3D56-1B0B-42B2-A962-59B7EF59FE1B}"
"LangDataPath"=hex(2):25,00,77,00,69,00,6e,00,64,0 0,69,00,72,00,25,00,5c,00,53,\
00,70,00,65,00,65,00,63,00,68,00,5f,00,4f,00,6e,00 ,65,00,43,00,6f,00,72,00,\
65,00,5c,00,45,00,6e,00,67,00,69,00,6e,00,65,00,73 ,00,5c,00,54,00,54,00,53,\
00,5c,00,65,00,6e,00,2d,00,55,00,53,00,5c,00,4d,00 ,53,00,54,00,54,00,53,00,\
4c,00,6f,00,63,00,65,00,6e,00,55,00,53,00,2e,00,64 ,00,61,00,74,00,00,00
"VoicePath"=hex(2):25,00,77,00,69,00,6e,00,64,00,6 9,00,72,00,25,00,5c,00,53,00,\
70,00,65,00,65,00,63,00,68,00,5f,00,4f,00,6e,00,65 ,00,43,00,6f,00,72,00,65,\
00,5c,00,45,00,6e,00,67,00,69,00,6e,00,65,00,73,00 ,5c,00,54,00,54,00,53,00,\
5c,00,65,00,6e,00,2d,00,55,00,53,00,5c,00,4d,00,31 ,00,30,00,33,00,33,00,4d,\
00,61,00,72,00,6b,00,00,00

[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\ SPEECH\Voices\Tokens\MSTTS_V110_enUS_MarkM\Attribu tes]
"Age"="Adult"
"DataVersion"="11.0.2013.1022"
"Gender"="Male"
"Language"="409"
"Name"="Microsoft Mark"
"SharedPronunciation"=""
"Vendor"="Microsoft"
"Version"="11.0"

Step 5: Import the new data

https://cdn.ghacks.net/wp-content/up...t-registry.png

Importing is straightforward. Just double-click on the Registry file that you have modified and accept the warning prompt.

Note that you need to switch users, sign off and on again, or restart the PC before you may see the new voice in other programs.

https://cdn.ghacks.net/wp-content/up...windows-10.png

Also, you need administrative rights to add data to the Registry using .reg files.

Bonus Step: Cortana

Cortana's exclusive voices are referenced in another location in the Registry.

  1. Go to HKEY_CLASSES_ROOT\Local Settings\Software\Microsoft\Windows\CurrentVersion \AppContainer\Storage\microsoft.windows.cortana_cw 5n1h2txyewy\SOFTWARE\Microsoft\Speech_OneCore\Isol ated in the Registry Editor.
  2. You find a number of random character values there. Follow one of them to \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech_OneC ore\Voices\Tokens
  3. On my test system, I went to HKEY_CLASSES_ROOT\Local Settings\Software\Microsoft\Windows\CurrentVersion \AppContainer\Storage\microsoft.windows.cortana_cw 5n1h2txyewy\SOFTWARE\Microsoft\Speech_OneCore\Isol ated\ohDO1Sgy3MzgdEgEb4WYfDS4eikKwN2EBJ1Cyr7HTF0\H KEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech_OneCor e\Voices\Tokens
  4. Note that the actual voices need to have LangUpdateDataDirectory listed when you select the folder.
  5. Export the data just like you have before.
  6. Copy the data of the Registry file so that it exists three times (not two) in the exported Registry file.
  7. Replace the first set up to Tokens with HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech_OneCo re\Voices\Tokens
  8. Replace the second set up to Tokens with HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voice s\Tokens
  9. Replace the third set up to Tokens with HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\ SPEECH\Voices\Tokens

Here is an example using the U.S. Cortana voice Eva.

Original File:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Local Settings\Software\Microsoft\Windows\CurrentVersion \AppContainer\Storage\microsoft.windows.cortana_cw 5n1h2txyewy\SOFTWARE\Microsoft\Speech_OneCore\Isol ated\ohDO1Sgy3MzgdEgEb4WYfDS4eikKwN2EBJ1Cyr7HTF0\H KEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech_OneCor e\Voices\Tokens\MSTTS_V110_enUS_EvaM]
@="Microsoft Eva Mobile - English (United States)"
"LangDataPath"="%windir%\\Speech_OneCore\\Engines\ \TTS\\en-US\\MSTTSLocenUS.dat"
"LangUpdateDataDirectory"="%SystemDrive%\\Data\\Sh aredData\\Speech_OneCore\\Engines\\TTS\\en-US"
"VoicePath"="%windir%\\Speech_OneCore\\Engines\\TT S\\en-US\\M1033Eva"
"VoiceUpdateDataDirectory"="%SystemDrive%\\Data\\S haredData\\Speech_OneCore\\Engines\\TTS\\en-US"
"409"="Microsoft Eva Mobile - English (United States)"
"CLSID"="{179F3D56-1B0B-42B2-A962-59B7EF59FE1B}"

[HKEY_CLASSES_ROOT\Local Settings\Software\Microsoft\Windows\CurrentVersion \AppContainer\Storage\microsoft.windows.cortana_cw 5n1h2txyewy\SOFTWARE\Microsoft\Speech_OneCore\Isol ated\ohDO1Sgy3MzgdEgEb4WYfDS4eikKwN2EBJ1Cyr7HTF0\H KEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech_OneCor e\Voices\Tokens\MSTTS_V110_enUS_EvaM\Attributes]
"Version"="11.0"
"Language"="409"
"Gender"="Female"
"Age"="Adult"
"DataVersion"="11.0.2013.1022"
"SharedPronunciation"=""
"Name"="Microsoft Eva Mobile"
"Vendor"="Microsoft"
"PersonalAssistant"="1"

Edited File:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech_OneCo re\Voices\Tokens\MSTTS_V110_enUS_EvaM]
@="Microsoft Eva Mobile - English (United States)"
"LangDataPath"="%windir%\\Speech_OneCore\\Engines\ \TTS\\en-US\\MSTTSLocenUS.dat"
"LangUpdateDataDirectory"="%SystemDrive%\\Data\\Sh aredData\\Speech_OneCore\\Engines\\TTS\\en-US"
"VoicePath"="%windir%\\Speech_OneCore\\Engines\\TT S\\en-US\\M1033Eva"
"VoiceUpdateDataDirectory"="%SystemDrive%\\Data\\S haredData\\Speech_OneCore\\Engines\\TTS\\en-US"
"409"="Microsoft Eva Mobile - English (United States)"
"CLSID"="{179F3D56-1B0B-42B2-A962-59B7EF59FE1B}"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech_OneCo re\Voices\Tokens\MSTTS_V110_enUS_EvaM\Attributes]
"Version"="11.0"
"Language"="409"
"Gender"="Female"
"Age"="Adult"
"DataVersion"="11.0.2013.1022"
"SharedPronunciation"=""
"Name"="Microsoft Eva Mobile"
"Vendor"="Microsoft"
"PersonalAssistant"="1"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voice s\Tokens\MSTTS_V110_enUS_EvaM]
@="Microsoft Eva Mobile - English (United States)"
"LangDataPath"="%windir%\\Speech_OneCore\\Engines\ \TTS\\en-US\\MSTTSLocenUS.dat"
"LangUpdateDataDirectory"="%SystemDrive%\\Data\\Sh aredData\\Speech_OneCore\\Engines\\TTS\\en-US"
"VoicePath"="%windir%\\Speech_OneCore\\Engines\\TT S\\en-US\\M1033Eva"
"VoiceUpdateDataDirectory"="%SystemDrive%\\Data\\S haredData\\Speech_OneCore\\Engines\\TTS\\en-US"
"409"="Microsoft Eva Mobile - English (United States)"
"CLSID"="{179F3D56-1B0B-42B2-A962-59B7EF59FE1B}"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voice s\Tokens\MSTTS_V110_enUS_EvaM\Attributes]
"Version"="11.0"
"Language"="409"
"Gender"="Female"
"Age"="Adult"
"DataVersion"="11.0.2013.1022"
"SharedPronunciation"=""
"Name"="Microsoft Eva Mobile"
"Vendor"="Microsoft"
"PersonalAssistant"="1"

[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\ SPEECH\Voices\Tokens\MSTTS_V110_enUS_EvaM]
@="Microsoft Eva Mobile - English (United States)"
"LangDataPath"="%windir%\\Speech_OneCore\\Engines\ \TTS\\en-US\\MSTTSLocenUS.dat"
"LangUpdateDataDirectory"="%SystemDrive%\\Data\\Sh aredData\\Speech_OneCore\\Engines\\TTS\\en-US"
"VoicePath"="%windir%\\Speech_OneCore\\Engines\\TT S\\en-US\\M1033Eva"
"VoiceUpdateDataDirectory"="%SystemDrive%\\Data\\S haredData\\Speech_OneCore\\Engines\\TTS\\en-US"
"409"="Microsoft Eva Mobile - English (United States)"
"CLSID"="{179F3D56-1B0B-42B2-A962-59B7EF59FE1B}"

[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\ SPEECH\Voices\Tokens\MSTTS_V110_enUS_EvaM\Attribut es]
"Version"="11.0"
"Language"="409"
"Gender"="Female"
"Age"="Adult"
"DataVersion"="11.0.2013.1022"
"SharedPronunciation"=""
"Name"="Microsoft Eva Mobile"
"Vendor"="Microsoft"
"PersonalAssistant"="1"

You can download the Registry files to add the Cortana voice Eva and the voice Mark system-wide: windows-10-voices-add.zip

Repeat the steps for any language that you may have installed, the process is always the same.