SpeechSynthesizer.SelectVoiceByHints Method (VoiceGender, VoiceAge)

Selects a voice with a specific gender and age.

Namespace:  Microsoft.Speech.Synthesis
Assembly:  Microsoft.Speech (in Microsoft.Speech.dll)


Public Sub SelectVoiceByHints ( _
    gender As VoiceGender, _
    age As VoiceAge _
Dim instance As SpeechSynthesizer
Dim gender As VoiceGender
Dim age As VoiceAge

instance.SelectVoiceByHints(gender, age)
public void SelectVoiceByHints(
    VoiceGender gender,
    VoiceAge age



Use the GetInstalledVoices method and VoiceInfo class to obtain a list of installed text-to-speech (TTS) voices that you can select. The SpeechSynthesizer object selects the first installed voice whose Gender and Age properties match the gender and age parameters. If a voice with these characteristics is not installed, the default voice will be used.

When an application calls GetInstalledVoices(), the method verifies that each of the voices it finds in the registry meets certain minimum criteria. For any voice that fails verification, GetInstalledVoices() sets its Enabled property to False. An application cannot select a voice whose Enabled() property is False. Typically, applications will not set a voice’s Enabled() property.

To select a voice based on other characteristics, see the other SelectVoiceByHints methods.

To select a voice by name, use the SelectVoice(String) method.


The following example selects a speaking voice that has the characteristics "male" and "child". If a voice with these characteristics is not installed, the default voice will be used.

using System;
using Microsoft.Speech.Synthesis;

namespace SampleSynthesis
  class Program

    static void Main(string[] args)

      // Initialize a new instance of the SpeechSynthesizer.
      SpeechSynthesizer synth = new SpeechSynthesizer();

      // Select a voice that matches a specific gender and age.  
      synth.SelectVoiceByHints(VoiceGender.Male, VoiceAge.Child);

      // Configure the audio output. 

      // Create a SoundPlayer instance to play the output audio file.
      System.Media.SoundPlayer m_SoundPlayer =
        new System.Media.SoundPlayer(@"C:\test\GenderAge.wav");

      // Speak the prompt and play the output file.
      synth.Speak("What is your favorite color?");

      Console.WriteLine("\nPress any key to exit...");

See Also


SpeechSynthesizer Class

SpeechSynthesizer Members

SelectVoiceByHints Overload

Microsoft.Speech.Synthesis Namespace