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.

    1. Anonymous said on July 20, 2020 at 9:10 am
      Reply

      Hatte auch den Fehler!
      Man muss für jeden Eintrag 2x den Pfad ändern.
      Liebe Grüße
      Johannes

  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.

  21. Anonymous said on July 26, 2020 at 12:47 pm
    Reply

    Working 100%. You are genius.

  22. alain smithee said on August 7, 2020 at 10:50 pm
    Reply

    I suggest showing the files in a two column table with the items that need to be changed highlighted. This would make editing the files easier.

  23. Anonymous said on September 22, 2020 at 3:54 pm
    Reply

    downloaded them and tested them in the default voice selector. Seem to be fine

  24. Duangdao T. said on October 11, 2020 at 9:43 pm
    Reply

    Thank you very much ,this post solve my question.Thumb up!

  25. James H Cox said on November 3, 2020 at 10:27 pm
    Reply

    Have gotten the following installed in Balabolka and they are working:
    Microsoft David Desktop
    Microsoft Zira Desktop
    Microsoft Server Speech Text to Speech Voice (en-G8, Hazel)
    Microsoft Server Speech Text to Speech Voice (en-US Helen)
    Microsoft Server Speech Text to Speech Voice (en-US ZiraPro)

    Howeverm I can’t figure out appropriate names for the MS Server Speech ones to use in Balabolka’s voice setting parameter:

    Anyone succeeded with this?

  26. James H Cox said on November 3, 2020 at 10:29 pm
    Reply

    Looks like the angle brackets apparently caused the command I was referencing to be stripped out of my reply. Removing them leaves this:

    voice required=”Name=Microsoft Zira Desktop”

  27. Sirrah said on November 14, 2020 at 3:20 pm
    Reply

    Followed all steps, read and tried multiple times, but somehow the edited .reg files are not added to the registry.

    I tried adding MarkM voice (just like in the example) and restarted my pc

    But when I check the paths:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\MSTTS_V110_enUS_MarkM]
    &
    HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\SPEECH\Voices\Tokens\MSTTS_V110_enUS_MarkM]
    in the reg editor, nothing has been added :-(

    I only see Hazel, David and Zira..

  28. Sirrah said on November 14, 2020 at 3:39 pm
    Reply

    I just followed all steps (several times now). But nothing seems to get added to my registry.

    In the registry editor I browsed to both locations, but there’s only just the default voices: Hazel, David and Zira..

    I did exactly as described, but I cant get voice Mark to be added…
    Yes I did restart after each try.

    1. Sirrah said on November 14, 2020 at 3:51 pm
      Reply

      Also, each time I tried to merge I got the registry editor prompt:

      The keys and values contained in blablabla….markm.reg have been successfully added to the registry

      However Mark isn’t visible in the registry editor :-(

  29. Sirrah said on November 16, 2020 at 6:33 am
    Reply

    Nevermind… In my copy paste action, I somehow missed a few brackets…

    It’s working now!

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.