C# System.Speech.Synthesis.SpeechSynthesizer-如何自定义语音?
SpeechSynthesizer允许通过使用C# System.Speech.Synthesis.SpeechSynthesizer-如何自定义语音?,c#,text-to-speech,C#,Text To Speech,SpeechSynthesizer允许通过使用 选择VoiceByHits(VoiceGender,VoiceAge)功能(据我所知)。但是如果我改变性别和声音年龄,就不会进行定制 你能解释一下原因吗?如果我做错了什么,正确的方法是什么 谢谢。根据函数的名称,我认为这是一个已安装语音的选择器。它不会以任何方式自定义语音,而是根据您指定的参数从repo中选择一个 因此,如果只安装了一个语音,他只能选择一个。这里有一个小测试程序,您可以使用它来发现安装的语音: using System; using
选择VoiceByHits(VoiceGender,VoiceAge)
功能(据我所知)。但是如果我改变性别和声音年龄,就不会进行定制
你能解释一下原因吗?如果我做错了什么,正确的方法是什么
谢谢。根据函数的名称,我认为这是一个已安装语音的选择器。它不会以任何方式自定义语音,而是根据您指定的参数从repo中选择一个
因此,如果只安装了一个语音,他只能选择一个。这里有一个小测试程序,您可以使用它来发现安装的语音:
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-English(美国)
这是Windows afaik附带的唯一默认语音。这当然可以解释为什么改变性别和年龄对你的机器没有影响。也许是的,但我真的找不到任何解释如何扩展声音列表:)。你可以购买第三方声音,其中一些非常好。虽然我手头没有一个链接。也许吧,但我不太明白它是如何工作的。framework如何获取有关已安装语音的信息?当您安装语音时,安装程序会在注册表中放置有关该语音的年龄、性别等信息。框架读取注册表以查找语音数据。(在C++中,您要查找的接口是ISPOBJJToToCK,MS实现使用注册表。其他TTS引擎将有自己的iPoBJJToTebug实现,可能不使用注册表。)是否可以获得更多的语音(西班牙语,…)?