Change Voice in SpeechSynthesizer

2.8k Views Asked by At

I tried to change the speaker, but i dont have enlisted all installed speakers (George, Susan, Jakub) in SpeechSynthesizer class, on the other hand I have one, that is not installed at all (Zira).

enter image description here enter image description here

What is happening here ? Can i somehow add specific speaker into my project (for example as .dll or something) to be not dependent on computer language/region ?

1

There are 1 best solutions below

2
On

UPDATE

As @Jimi mentioned, System.Speech and Microsoft.Speech are different and to avoid confusion, using only one of them should be the right choice.

For System.Speech

  1. Go to Settings/Region and Language/Add Language
  2. From Settings of the language, download Speech

For example Helen is in en_US package. So, the additional Speech should be downloaded by adding English (United States) language.

For Microsoft.Speech

  1. Download a speech from the link below
  2. Add a reference to the Microsoft.Speech DLL in the project

Microsoft Speech Recognition and Text-to-Speech engine data files can be downloaded from the link below;

Speech Recognition and Text-to-Speech Engines for Microsoft supported Languages https://www.microsoft.com/en-us/download/details.aspx?id=27224

For further information:
Microsoft Speech Programming Guide
https://learn.microsoft.com/en-us/previous-versions/office/developer/speech-technologies/hh378466(v%3doffice.14)

SpeechSynthesizer.SelectVoice Method
https://learn.microsoft.com/en-us/previous-versions/office/developer/speech-technologies/dd167624(v%3Doffice.14)

System.Speech.Synthesis Namespace
https://learn.microsoft.com/en-us/dotnet/api/system.speech.synthesis?view=netframework-4.7.2