SpeechSynthesizer 允许使用
SelectVoiceByHints(VoiceGender, VoiceAge)函数(据我了解)使不同的声音达到峰值。但是,如果我更改性别和语音年龄,则不会发生自定义。
你能解释一下为什么吗?如果我做错了什么,那么正确的方法是什么?
谢谢你。
SpeechSynthesizer 允许使用
SelectVoiceByHints(VoiceGender, VoiceAge)函数(据我了解)使不同的声音达到峰值。但是,如果我更改性别和语音年龄,则不会发生自定义。
你能解释一下为什么吗?如果我做错了什么,那么正确的方法是什么?
谢谢你。
这是一个小型测试程序,您可以使用它来发现已安装的声音:
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 附带的唯一默认语音。这当然可以解释为什么改变性别和年龄不会对您的机器产生影响。
根据函数的名称,我会说这是一个安装声音的选择器。它不会以任何方式自定义语音,而是根据您指定的参数从 repo 中选择一个。
所以,如果只有一个声音,他只能选择那个。