I really like to know how I can enable Microsoft Eva (Cortana's voice) on Windows 10? so I can use it as Text-to-Speech (TTS) voice, since that voice is already available on Windows 10.
3 Answers
With a bit of research I found out how to do this so I came here to share it with everyone else, and here are the steps that will allow you to use Microsoft Eva as Text-to-Speech (TTS) voice.
Make sure you do the steps correctly or you will break your pc
- We need to open
C:\Windows\SysWOW64\Speech_OneCore\Common\en-US\and edit a file namedtokens_TTS_en-US.xml(Before we can edit that file we need to change the permission and ownership of that file) - Right click on the file
tokens_TTS_en-US.xmland go toSecuritytab

- Click on
Advancedthen you click onChangewhere it saysOwner: TrustedInstaller

- On
Select User or Groupwindow you typeAdministratorsand click onCheck Namesthen you click onOK

- Now we have to give
Administratorsthe permissions we need, clickOK, now we are back at Properties >Securitytab (if it dosent allow you to change permissions reopen properties), and click onEdit.

- While we are on
Permissions for tokens_TTS_en-US.xmlyou have to select<Your computer's name>\Administratorsand click on the check box that is in front ofFull controland underAllowthen click onOK.

- Now we can edit the file that it's located at
C:\Windows\SysWOW64\Speech_OneCore\Common\en-US\tokens_TTS_en-US.xml, we can use any editorNotepadorNotepad++to edit our file and add the necessary modification, run the editor you picked asAdministratorby right clicking on the shortcut of your editor and click onRun as administratorthen use the full path of the file and open it with the editor not by drag or dropping the file and add this to it and then save the file. (It might ask you to replace or overwrite the file so you need to click Yes or OK), so its going to look like this tokens_TTS_en-US.xml (Note that this is my version oftokens_TTS_en-US.xmland this is just to show you how to do it)<Category name="Voices" categoryBase="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech_OneCore"> <Token name="MSTTS_V110_enUS_EvaM"> <String name="" value="Microsoft Eva Mobile - English (United States)" /> <String name="LangDataPath" value="%windir%\Speech_OneCore\Engines\TTS\en-US\MSTTSLocenUS.dat" /> <String name="VoicePath" value="%windir%\Speech_OneCore\Engines\TTS\en-US\M1033Eva" /> <String name="409" value="Microsoft Eva Mobile - English (United States)" /> <String name="CLSID" value="{179F3D56-1B0B-42B2-A962-59B7EF59FE1B}" /> <Attribute name="Version" value="11.0" /> <Attribute name="Language" value="409" /> <Attribute name="Gender" value="Female" /> <Attribute name="Age" value="Adult" /> <Attribute name="DataVersion" value="11.0.2013.1022" /> <Attribute name="SharedPronunciation" value="" /> <Attribute name="Name" value="Microsoft Eva Mobile" /> <Attribute name="Vendor" value="Microsoft" /> <Attribute name="SampleText" value="You have selected %1 as the default voice." /> </Token> </Category> - Once we are done with that file its better to restore the ownership of the file by doing the same steps with few differences, go to
Securitytab as we did in step 5 and clickEdit, as we did in step 6 select<Your computer's name>\Administratorsbut this time you uncheck those check boxs and only leave two of it checkedRead & executeandReadand clickOK.

- Then like step 3 go and change ownership to
NT SERVICE\TrustedInstallerafter typing that click onCheck Namesand thenOK.

- Now we need to modify Window's registry click here and then click on
Rawto download the file once you downloaded the file double click on it and let it apply the registry settings.
- Then for the last modifications to registry you need to download Process Hacker or Process Explorer (I used Process Hacker), you open Window's settings by pressing this key combination
+i and on settings click on Time & language>Speechthen find the process for the settings windowSystemSettings.exeopen it's properties, go toHandlestab, look forHKEY_CURRENT_USER\SOFTWARE\Microsoft\Speech_OneCore\Isolated\right click on it and click onOpen key.

- It will open the registry key, after
Isolatedkey there are some other keys that the name of them are like random generated names but only one of them is expanded right click on it and click onCopy Key Namekeep that on a notepad or something because we need it, then download this file MSTTS_V110_enUS_EvaM.reg once you downloaded the file you will edit the file and replace<Needs to be replaced>with the name that comes afterHKEY_CURRENT_USER\SOFTWARE\Microsoft\Speech_OneCore\Isolated\, make sure you done it correctly and save it then apply it by double clicking on the file.
That was all and you just need to reboot your pc
Some part of this, the xml content and Microsoft-Eva-Mobile.reg comes from this source, it didn't had the details it needed so I made this
- 663
Well, as I've only German as language, I can't tell for sure if You've enabled the 'real' Cortana voice.
On my PC I've two female voices - one is called MSTTS_V110_deDE_KatjaM and the second MSTTS_V110_deDE_KatjaCortanaM.
If You take a look at %windir%\Speech_OneCore\Engines\TTS(\de-DE\ in my case)You will find several files with the prefixes M1031Katja and M1031KatjaV2
In the registry attributes [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Speech_OneCore\Isolated\********\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech_OneCore\Voices\Tokens\MSTTS_V110_deDE_KatjaCortanaM] You will find, that the MSTTS_V110_deDE_KatjaCortanaM voice has Version 11.1.2014.1222 while the other is 11.0.2013.1022
Finally, I followed Your very excellent guide - but extended it this way that I copied all of HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech_OneCore\Voices\Tokens to HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens
and also duplicated HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech_OneCore\Voices\Tokens\MSTTS_V110_deDE_KatjaM to a new key HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech_OneCore\Voices\Tokens\MSTTS_V110_deDE_KatjaCortanaM- there I changed all the attributes according to [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Speech_OneCore\Isolated\********\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech_OneCore\Voices\Tokens\MSTTS_V110_deDE_KatjaCortanaM]
Same procedure with the WOW6432Node tree!
This made the KatjaCortana voice available in the sapi.cpl!
You will notice that both voices are almost equal, but the pronounciation is a bit different - and the the cortana voice really sounds like cortana!
To bring the voice to the new UI, You "just" have to copy the [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Speech_OneCore\Isolated\********\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech_OneCore\Voices\Tokens\MSTTS_V110_deDE_KatjaCortanaM] key to all those weired named subkeys. You also have to add the SampleTextattribute as it is missing.
Thanks for Your guide & cheers!
Stephan
This worked for me https://github.com/watermarkhu/enable-microsoft-eva-tts
Duplicate here just in case.
Prerequisites
- You need to change your Windows 10 language to English (US) to enable Cortana availability.
- You need to setup Cortana (Windows Settings or Windows Cortana App) with English (US).
Go to C:\Windows\Speech_OneCore\Engines\TTS\en-US\ to check that there are 9 files that start with M1033Eva. If they cannot be found, check again that Cortana is available.
How-to
Save content below as
Microsoft-Eva-Mobile.regand import to the registryWindows Registry Editor Version 5.00[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\MSTTS_V110_enUS_EvaM] @="Microsoft Eva Mobile - English (United States)" "409"="Microsoft Eva Mobile - 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,45,
00,76,00,61,00,00,00[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\MSTTS_V110_enUS_EvaM\Attributes] "Age"="Adult" "Gender"="Female" "Version"="11.0" "Language"="409" "Name"="Microsoft Eva Mobile" "SharedPronunciation"="" "Vendor"="Microsoft" "DataVersion"="11.0.2013.1022"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech_OneCore\Voices\Tokens\MSTTS_V110_enUS_EvaM] @="Microsoft Eva Mobile - English (United States)" "409"="Microsoft Eva Mobile - 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,45,
00,76,00,61,00,00,00[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech_OneCore\Voices\Tokens\MSTTS_V110_enUS_EvaM\Attributes] "Age"="Adult" "Gender"="Female" "Version"="11.0" "Language"="409" "Name"="Microsoft Eva Mobile" "SharedPronunciation"="" "Vendor"="Microsoft"
[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\SPEECH\Voices\Tokens\MSTTS_V110_enUS_EvaM] @="Microsoft Eva Mobile - English (United States)" "409"="Microsoft Eva Mobile - 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,45,
00,76,00,61,00,00,00[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\SPEECH\Voices\Tokens\MSTTS_V110_enUS_EvaM\Attributes] "Age"="Adult" "Gender"="Female" "Version"="11.0" "Language"="409" "Name"="Microsoft Eva Mobile" "SharedPronunciation"="" "Vendor"="Microsoft" "DataVersion"="11.0.2013.1022"
[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\SPEECH\Voices\Tokens\MSTTS_V110_enUS_EvaM] @="Microsoft Eva Mobile - English (United States)" "409"="Microsoft Eva Mobile - 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,45,
00,76,00,61,00,00,00[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\SPEECH\Voices\Tokens\MSTTS_V110_enUS_EvaM\Attributes] "Age"="Adult" "Gender"="Female" "Version"="11.0" "Language"="409" "Name"="Microsoft Eva Mobile" "SharedPronunciation"="" "Vendor"="Microsoft"
Restart your computer.
To test available languages open a PowerShell window (< PowerShell 7) as admin and paste:
Add-Type -AssemblyName System.speech | Out-Null
$spk = new-object System.Speech.Synthesis.SpeechSynthesizer
$voices = $spk.GetInstalledVoices().voiceinfo
foreach($voice in $voices)
{$spk.SelectVoice($voice.Name);$spk.Speak($voice.name)}
- 111