Share via


Note

Please see Azure Cognitive Services for Speech documentation for the latest supported speech solutions.

SpeechSynthesizer.SelectVoiceByHints Method (VoiceGender, VoiceAge, Int32, CultureInfo)

Selects a voice with a specific gender, age, and locale, based on the position in which the voices are ordered.

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

Syntax

'Declaration
Public Sub SelectVoiceByHints ( _
    gender As VoiceGender, _
    age As VoiceAge, _
    voiceAlternate As Integer, _
    culture As CultureInfo _
)
'Usage
Dim instance As SpeechSynthesizer
Dim gender As VoiceGender
Dim age As VoiceAge
Dim voiceAlternate As Integer
Dim culture As CultureInfo

instance.SelectVoiceByHints(gender, age, _
    voiceAlternate, culture)
public void SelectVoiceByHints(
    VoiceGender gender,
    VoiceAge age,
    int voiceAlternate,
    CultureInfo culture
)

Parameters

  • voiceAlternate
    Type: System.Int32
    The position of the voice to select.

Remarks

The SpeechSynthesizer object finds voices whose Gender, Age, and Culture properties match the gender, age, and culture parameters. The SpeechSynthesizer counts the matches it finds, and returns the voice when the count equals the voiceAlternate parameter.

A voice is an installed Runtime Language that a TTS engine uses to perform speech synthesis in a specific language. For a given language code specified in the culture parameter, a speech synthesis Runtime Language that supports that language code must be installed to correctly pronounce words in the specified language.

The Microsoft Speech Platform SDK 11 and Microsoft Speech Platform SDK 11 do not include any languages for speech synthesis. You must download a Runtime Language to enable speech synthesis for each language in which you want to generate synthesized speech. See InstalledVoice for more information.

The Speech Platform SDK 11 accepts all valid language-country codes as values for culture. See Language Identifier Constants and Strings for a comprehensive list of language codes.

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 overloads.

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

Examples

The following example specifies a speaking voice that has the characteristics adult, female, and French, and specifies an integer to choose from among multiple voices that match the specified characteristics. The string specified by the Speak(String) method will only be pronounced correctly if a French speaking voice is installed. If a voice that matches the specified 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, age, position, and culture.  
      synth.SelectVoiceByHints(VoiceGender.Female, VoiceAge.Adult, 0, 
        new System.Globalization.CultureInfo("fr-FR"));

      // Configure the audio output. 
      synth.SetOutputToWaveFile(@"C:\test\GenderAge.wav");

      // 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("Quelle est votre couleur préférée?");
      m_SoundPlayer.Play();

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

See Also

Reference

SpeechSynthesizer Class

SpeechSynthesizer Members

SelectVoiceByHints Overload

Microsoft.Speech.Synthesis Namespace