SpeechSynthesizer.AllVoices 属性

定义

获取所有已安装语音合成引擎 (语音) 的集合。

public:
 static property IVectorView<VoiceInformation ^> ^ AllVoices { IVectorView<VoiceInformation ^> ^ get(); };
static IVectorView<VoiceInformation> AllVoices();
public static IReadOnlyList<VoiceInformation> AllVoices { get; }
var iVectorView = SpeechSynthesizer.allVoices;
Public Shared ReadOnly Property AllVoices As IReadOnlyList(Of VoiceInformation)

属性值

VoiceInformation 对象的集合。

示例

在这里,我们将演示如何使用找到的第一个女性语音 (VoiceGender) ,或仅使用默认系统语音 (SpeechSynthesizer.DefaultVoice) ,为语音选择性别 (VoiceInformation.Gender) 。

using (SpeechSynthesizer synthesizer = new SpeechSynthesizer())
{
    VoiceInformation voiceInfo =
        (
            from voice in SpeechSynthesizer.AllVoices
            where voice.Gender == VoiceGender.Female
            select voice
        ).FirstOrDefault() ?? SpeechSynthesizer.DefaultVoice;

    synthesizer.Voice = voiceInfo;

    // Windows.Media.SpeechSynthesis.SpeechSynthesisStream
    stream = await synthesizer.SynthesizeTextToStreamAsync(text);
}

注解

只有安装在系统上的 Microsoft 签名语音才能使用 SpeechSynthesizer 生成语音。 每个语音生成单一语言的合成语音,就像在特定国家/地区说的那样。

默认情况下,新的 SpeechSynthesizer 对象使用当前系统语音 (调用 DefaultVoice 来找出) 默认语音。

若要指定任何其他语音合成 (安装在用户系统上的文本转语音) 语音,请使用 Voice 方法 (找出系统上安装了哪些 语音 ,请调用 AllVoices) 。

如果未指定语言,则会加载与语言控制面板中选择的语言最接近的语音。

适用于

另请参阅