SpeechSynthesizer.GetInstalledVoices メソッド

定義

現在システムにインストールされている音声合成 (音声変換) の音声のコレクションを返します。

オーバーロード

GetInstalledVoices()

インストール済みの音声合成 (音声変換) の音声を返します。

GetInstalledVoices(CultureInfo)

特定のロケールをサポートする、インストールされているすべての音声合成 (テキスト読み上げ) 音声を返します。

注釈

アプリケーションが を呼び出 GetInstalledVoicesすと、 メソッドは、レジストリで検出された各音声 (テキスト読み上げ用のエンジン) が特定の最小条件を満たしていることを確認します。 検証に失敗した音声の場合は、 GetInstalledVoices そのプロパティを EnabledFalse設定します。 アプリケーションでは、 プロパティFalseが である音声をEnabled選択できません。 通常、アプリケーションでは音声の Enabled プロパティは設定されません。

GetInstalledVoices()

ソース:
SpeechSynthesizer.cs
ソース:
SpeechSynthesizer.cs

インストール済みの音声合成 (音声変換) の音声を返します。

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)

戻り値

システムに現在インストールされている、音声の読み取り専用のコレクションを返します。

次の例は、オブジェクトを初期化 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)

ソース:
SpeechSynthesizer.cs
ソース:
SpeechSynthesizer.cs

特定のロケールをサポートする、インストールされているすべての音声合成 (テキスト読み上げ) 音声を返します。

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

音声がサポートする必要があるロケール。

戻り値

指定のロケールをサポートするシステムに現在インストールされている、音声の読み取り専用のコレクションを返します。

次の例は、オブジェクトを初期化し、en-US ロケールを SpeechSynthesizer サポートするインストール済みの音声の一覧をコンソールに出力するコンソール アプリケーションの一部です。

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 と System.Speech API は、有効なすべての言語と国のコードを受け入れます。 Culture プロパティで指定された言語を使用してテキスト読み上げを実行するには、その言語と国のコードをサポートする音声合成エンジンをインストールする必要があります。 Windows 7 Microsoft付属の音声合成エンジンは、次の言語/国コードで動作します。

  • en-US. 英語 (米国)

  • zh-CN. 中国語 (中国)

  • zh-TW. 中国語 (台湾)

"en" などの 2 文字の言語コードも使用できます。

こちらもご覧ください

適用対象