4

SpeechSynthesizer 允许使用 SelectVoiceByHints(VoiceGender, VoiceAge)函数(据我了解)使不同的声音达到峰值。但是,如果我更改性别和语音年龄,则不会发生自定义。

你能解释一下为什么吗?如果我做错了什么,那么正确的方法是什么?

谢谢你。

4

2 回答 2

13

这是一个小型测试程序,您可以使用它来发现已安装的声音:

using System;
using System.Speech.Synthesis;  // Add reference to System.Speech

class Program {
    static void Main(string[] args) {
        var synth = new SpeechSynthesizer();
        foreach (var voice in synth.GetInstalledVoices()) {
            Console.WriteLine(voice.VoiceInfo.Description);
        }
        Console.ReadLine();
    }
}

我机器上的输出:Microsoft Anna - 英语(美国)

这是 Windows afaik 附带的唯一默认语音。这当然可以解释为什么改变性别和年龄不会对您的机器产生影响。

于 2010-06-15T13:19:30.777 回答
2

根据函数的名称,我会说这是一个安装声音的选择器。它不会以任何方式自定义语音,而是根据您指定的参数从 repo 中选择一个。

所以,如果只有一个声音,他只能选择那个。

于 2010-06-15T12:00:13.037 回答