VoiceInfo Class


The .NET API Reference documentation has a new home. Visit the .NET API Browser on docs.microsoft.com to see the new experience.

Represents an installed speech synthesis engine.

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


public class VoiceInfo


Gets additional information about the voice.


Gets the age of the voice.


Gets the culture of the voice.


Gets the description of the voice.


Gets the gender of the voice.


Gets the ID of the voice.


Gets the name of the voice.


Gets the collection of audio formats that the voice supports.


Compares the fields of the voice with the specified VoiceInfo object to determine whether they contain the same values.(Overrides Object.Equals(Object).)


Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.(Inherited from Object.)


Provides a hash code for a VoiceInfo object.(Overrides Object.GetHashCode().)


Gets the Type of the current instance.(Inherited from Object.)


Creates a shallow copy of the current Object.(Inherited from Object.)


Returns a string that represents the current object.(Inherited from Object.)

A voice is an installed speech synthesis engine, which is also referred to as a text-to-speech engine or a TTS engine. The SpeechSynthesizer object uses a voice to generate speech from text. The properties of the VoiceInfo object identify a voice and describe its characteristics. The most defining characteristic of a voice is its Culture, which defines the single language that a voice can speak.

The Voice property returns a VoiceInfo object that contains information about the current voice in use by the SpeechSynthesizer. You can also use a VoiceInfo object to get information about any of the voices that are installed on the system, as returned by the GetInstalledVoices() method. See InstalledVoice for more information.

The following example is part of a console application that initializes a SpeechSynthesizer object and outputs to the console a list of the installed voices (engines for speech synthesis) and demonstrates the information that is available for each voice.

using System;
using System.Speech.Synthesis;
using System.Speech.AudioFormat;

namespace SampleSynthesis
  class Program
    static void Main(string[] args)

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

        // Output information about all of the installed voices. 
        Console.WriteLine("Installed voices -");
        foreach (InstalledVoice voice in synth.GetInstalledVoices())
          VoiceInfo info = voice.VoiceInfo;
          string AudioFormats = "";
          foreach (SpeechAudioFormatInfo fmt in info.SupportedAudioFormats)
            AudioFormats += String.Format("{0}\n",

          Console.WriteLine(" Name:          " + info.Name);
          Console.WriteLine(" Culture:       " + info.Culture);
          Console.WriteLine(" Age:           " + info.Age);
          Console.WriteLine(" Gender:        " + info.Gender);
          Console.WriteLine(" Description:   " + info.Description);
          Console.WriteLine(" ID:            " + info.Id);
          Console.WriteLine(" Enabled:       " + voice.Enabled);
          if (info.SupportedAudioFormats.Count != 0)
            Console.WriteLine( " Audio formats: " + AudioFormats);
            Console.WriteLine(" No supported audio formats found");

          string AdditionalInfo = "";
          foreach (string key in info.AdditionalInfo.Keys)
            AdditionalInfo += String.Format("  {0}: {1}\n", key, info.AdditionalInfo[key]);

          Console.WriteLine(" Additional Info - " + AdditionalInfo);
      Console.WriteLine("Press any key to exit...");

.NET Framework
Available since 3.0

Any public static ( Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Return to top