SpeechSynthesizer.GetInstalledVoices Метод

Определение

Возвращает коллекцию голосов синтеза речи (текст в голос), которые в настоящее время установлены в системе.

Перегрузки

GetInstalledVoices()

Возвращает все установленные голоса синтеза речи (текст в речь).

GetInstalledVoices(CultureInfo)

Возвращает все установленные голоса синтеза речи (преобразования текста в речь), которые поддерживают указанный языковой стандарт.

Комментарии

При вызове приложения GetInstalledVoices метод проверяет, что каждый из голосов (обработчиков для преобразования текста в речь), найденный в реестре, соответствует определенным минимальным критериям. Для любого голоса, который не проходит проверку, GetInstalledVoices устанавливает Enabled для его свойства значение False . Приложение не может выбрать голосовое Enabled значение, свойство которого равно False . Как правило, приложения не устанавливают Enabled свойство голоса.

GetInstalledVoices()

Возвращает все установленные голоса синтеза речи (текст в речь).

public:
 System::Collections::ObjectModel::ReadOnlyCollection<System::Speech::Synthesis::InstalledVoice ^> ^ GetInstalledVoices();
public System.Collections.ObjectModel.ReadOnlyCollection<System.Speech.Synthesis.InstalledVoice> GetInstalledVoices ();
member this.GetInstalledVoices : unit -> System.Collections.ObjectModel.ReadOnlyCollection<System.Speech.Synthesis.InstalledVoice>
Public Function GetInstalledVoices () As ReadOnlyCollection(Of InstalledVoice)

Возвращаемое значение

ReadOnlyCollection<InstalledVoice>

Возвращает доступную только для чтения коллекцию голосов в данный момент установленных в системе.

Примеры

Следующий пример является частью консольного приложения, которое инициализирует SpeechSynthesizer объект и выводит на консоль список установленных голосов (обработчиков для синтеза речи) и демонстрирует сведения, доступные для каждого голоса.

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",  
            fmt.EncodingFormat.ToString());  
          }  

          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);  
          }  
          else  
          {  
            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();  
        }  
      }  
      Console.WriteLine("Press any key to exit...");  
      Console.ReadKey();  
    }  
  }  
}  

Комментарии

Речь — это подсистема для синтеза речи (преобразования текста в речь или TTS), установленная в системе.

См. также раздел

Применяется к

GetInstalledVoices(CultureInfo)

Возвращает все установленные голоса синтеза речи (преобразования текста в речь), которые поддерживают указанный языковой стандарт.

public:
 System::Collections::ObjectModel::ReadOnlyCollection<System::Speech::Synthesis::InstalledVoice ^> ^ GetInstalledVoices(System::Globalization::CultureInfo ^ culture);
public System.Collections.ObjectModel.ReadOnlyCollection<System.Speech.Synthesis.InstalledVoice> GetInstalledVoices (System.Globalization.CultureInfo culture);
member this.GetInstalledVoices : System.Globalization.CultureInfo -> System.Collections.ObjectModel.ReadOnlyCollection<System.Speech.Synthesis.InstalledVoice>
Public Function GetInstalledVoices (culture As CultureInfo) As ReadOnlyCollection(Of InstalledVoice)

Параметры

culture
CultureInfo

Языковой стандарт, который должен поддерживаться голосом.

Возвращаемое значение

ReadOnlyCollection<InstalledVoice>

Возвращает доступную только для чтения коллекцию голосов в данный момент установленных в системе, которые поддерживают указанный языковой стандарт.

Примеры

Следующий пример является частью консольного приложения, которое инициализирует SpeechSynthesizer объект и выводит на консоль список установленных голосов, которые поддерживают языковой стандарт EN-US.

using System;  
using System.Globalization;  
using System.Speech.Synthesis;  

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

      // Initialize a new instance of the speech synthesizer.  
      using (SpeechSynthesizer synthesizer = new SpeechSynthesizer())  
      {  

        // Output information about all of the installed voices that  
        // support the en-US locale.   
        Console.WriteLine("Installed voices for the en-US locale:");  
        foreach (InstalledVoice voice in  
          synthesizer.GetInstalledVoices(new CultureInfo("en-US")))  
        {  
          VoiceInfo info = voice.VoiceInfo;  
          OutputVoiceInfo(info);  
        }  

        // Output information about the current voice.  
        Console.WriteLine();  
        Console.WriteLine("Current voice:");  
        OutputVoiceInfo(synthesizer.Voice);  
      }  

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

    // Display information about a synthesizer voice.  
    private static void OutputVoiceInfo(VoiceInfo info)  
    {  
      Console.WriteLine("  Name: {0}, culture: {1}, gender: {2}, age: {3}.",  
        info.Name, info.Culture, info.Gender, info.Age);  
      Console.WriteLine("    Description: {0}", info.Description);  
    }  
  }  
}  

Комментарии

Если ни один из установленных голосов не поддерживает указанный языковой стандарт, этот метод возвращает пустую коллекцию.

Microsoft Windows и API System. Speech принимают все допустимые коды языковых стран. Чтобы выполнить преобразование текста в речь с помощью языка, указанного в свойстве Culture, необходимо установить модуль синтеза речи, поддерживающий этот код языка и страны. Модули синтеза речи, поставляемые вместе с Microsoft Windows 7, работают со следующими кодами языков:

  • EN-US. Английский (США)

  • zh-CN. Китайский (Китай)

  • zh-TW. Китайский (Тайвань)

Также разрешены двухбуквенный код языка, например "en".

См. также раздел

Применяется к