Unlock all Windows 10 TTS voices system-wide to get more of them - gHacks Tech News

ADVERTISEMENT

Unlock all Windows 10 TTS voices system-wide to get more of them

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 "choose a voice" menu there, you get a list of  voices that are available.

windows 10 voices

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.

third-party voices

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

windows 10 installed voices

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

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

Step 3: Export the voices

export registry voice

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\Voices\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_OneCore\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,00,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,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,31,00,30,00,33,00,33,00,4d,\
00,61,00,72,00,6b,00,00,00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech_OneCore\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\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,00,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,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,31,00,30,00,33,00,33,00,4d,\
00,61,00,72,00,6b,00,00,00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\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"

[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,00,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,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,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\Attributes]
"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

import registry

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.

new voice windows 10

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_cw5n1h2txyewy\SOFTWARE\Microsoft\Speech_OneCore\Isolated 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_OneCore\Voices\Tokens
  3. On my test system, I went to HKEY_CLASSES_ROOT\Local Settings\Software\Microsoft\Windows\CurrentVersion\AppContainer\Storage\microsoft.windows.cortana_cw5n1h2txyewy\SOFTWARE\Microsoft\Speech_OneCore\Isolated\ohDO1Sgy3MzgdEgEb4WYfDS4eikKwN2EBJ1Cyr7HTF0\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech_OneCore\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_OneCore\Voices\Tokens
  8. Replace the second set up to Tokens with HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\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_cw5n1h2txyewy\SOFTWARE\Microsoft\Speech_OneCore\Isolated\ohDO1Sgy3MzgdEgEb4WYfDS4eikKwN2EBJ1Cyr7HTF0\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech_OneCore\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\\SharedData\\Speech_OneCore\\Engines\\TTS\\en-US"
"VoicePath"="%windir%\\Speech_OneCore\\Engines\\TTS\\en-US\\M1033Eva"
"VoiceUpdateDataDirectory"="%SystemDrive%\\Data\\SharedData\\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_cw5n1h2txyewy\SOFTWARE\Microsoft\Speech_OneCore\Isolated\ohDO1Sgy3MzgdEgEb4WYfDS4eikKwN2EBJ1Cyr7HTF0\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech_OneCore\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_OneCore\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\\SharedData\\Speech_OneCore\\Engines\\TTS\\en-US"
"VoicePath"="%windir%\\Speech_OneCore\\Engines\\TTS\\en-US\\M1033Eva"
"VoiceUpdateDataDirectory"="%SystemDrive%\\Data\\SharedData\\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_OneCore\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\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\\SharedData\\Speech_OneCore\\Engines\\TTS\\en-US"
"VoicePath"="%windir%\\Speech_OneCore\\Engines\\TTS\\en-US\\M1033Eva"
"VoiceUpdateDataDirectory"="%SystemDrive%\\Data\\SharedData\\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\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\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\\SharedData\\Speech_OneCore\\Engines\\TTS\\en-US"
"VoicePath"="%windir%\\Speech_OneCore\\Engines\\TTS\\en-US\\M1033Eva"
"VoiceUpdateDataDirectory"="%SystemDrive%\\Data\\SharedData\\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\Attributes]
"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. (via Reddit)

Summary
Unlock all Windows 10 TTS voices system-wide to get more of them
Article Name
Unlock all Windows 10 TTS voices system-wide to get more of them
Description
Find out how to unlock all Windows 10 text to speech voices on Windows 10 PCs so that they become available system-wide.
Author
Publisher
Ghacks Technology News
Logo
Advertisement

Previous Post: «
Next Post: »

Comments

  1. Gavin B said on August 11, 2018 at 11:55 am
    Reply

    brilliant Martin

  2. Franck said on August 11, 2018 at 5:15 pm
    Reply

    Very interesting, thank you !

  3. George said on August 11, 2018 at 6:25 pm
    Reply

    Nice tip, thanks Martin.

  4. stefann said on August 14, 2018 at 3:56 am
    Reply

    What about earlier Windows versions ?

  5. Murilo said on November 28, 2018 at 6:23 pm
    Reply

    Dont work with “MSTTS_V110_heIL_Asaf” Hebrew. :(

  6. Anonymous said on February 8, 2019 at 3:54 am
    Reply

    Are there any differences between the versions found in both randomly named keys??

  7. Lind said on February 8, 2019 at 6:41 am
    Reply

    Doesn’t currently work. Shows Eva Mobile in narrowater list, but nothing lists in ‘speech settings’

  8. Interested party said on March 3, 2019 at 12:40 am
    Reply

    You can use Powershell to do the same thing.

    https://gist.github.com/hiepxanh/8b6ad80f6d620cd3eaaaa5c1d2c660b2

    1. jesus said on July 21, 2019 at 3:45 am
      Reply

      you are a genius man

    2. mk said on September 25, 2019 at 12:43 pm
      Reply

      how to use that?

  9. J Peyton said on March 22, 2019 at 3:18 am
    Reply

    Thank You!!!!!!!!!!!!!!!!

  10. Anonymous said on June 18, 2019 at 5:25 pm
    Reply

    Try Blockadblock.

  11. Juan Bassignana said on October 23, 2019 at 2:20 am
    Reply

    I Think the only problem is, when it comes an update. I think you will loose all these changes.

  12. Juan Bassignana said on October 28, 2019 at 4:03 am
    Reply

    Appliying these procedure, you didn´t unlock anything. The voices are seen but are not able to be used.

  13. Kanha said on November 6, 2019 at 4:14 pm
    Reply

    Thank you so much!!!!!!!!!!

  14. Anonymous said on December 18, 2019 at 6:56 pm
    Reply

    thank you so much.

  15. Anonymous said on January 9, 2020 at 3:47 am
    Reply

    I get “Can not synthesize the speech: Class is not registered.” When trying to use the MarkM voice.

  16. Anon123998 said on January 15, 2020 at 7:08 am
    Reply

    Great, it works with https://balabolka.en.softonic.com/. I got Cortana to say words like “fuck” without her censoring it. However, the inflection and timing doesn’t seem to be as good as when Cortana speaks after saying “Hey Cortana”; maybe inflection and timing is only polished for premade things that she says.

  17. Bullshit! said on March 4, 2020 at 8:13 pm
    Reply

    It doesn’t work
    Confirmed on 3/4/2020

  18. JM said on April 25, 2020 at 12:47 pm
    Reply

    One shouldn’t need to go through so much trouble… there’s definitely something wrong here.

  19. ydntk said on June 10, 2020 at 12:04 pm
    Reply

    their is a software which i developed that registers all the voices and any voices you want if you have the language packs installed

    1. David Bannister said on June 10, 2020 at 7:38 pm
      Reply

      To ydntk- I’m interested to know more about your software, especially if it can be used without having to take lots of aspirins! Lol.

  20. Shaheen said on June 15, 2020 at 11:01 am
    Reply

    Sir this procedure doesn’t work for hindi tts.

Leave a Reply

Check the box to consent to your data being stored in line with the guidelines set out in our privacy policy

We love comments and welcome thoughtful and civilized discussion. Rudeness and personal attacks will not be tolerated. Please stay on-topic.
Please note that your comment may not appear immediately after you post it.