【发布时间】:2018-10-03 08:18:42
【问题描述】:
我无法将声音改为男性。无论我尝试什么,它总是默认的。然而在我的系统中,有男性的声音。
我试过了:
synth.SelectVoiceByHints(VoiceGender.Male);
synth.SpeakAsync("Hello, my name is Evus.");
-
这甚至什么都不做,它只会用默认的 Cortana 语音说话。
foreach (var v in synth.GetInstalledVoices().Select(v => v.VoiceInfo)) { Console.WriteLine("姓名:{0},性别:{1},年龄:{2}", v.描述,v.性别,v.年龄); }
从我的系统返回 2 个男声。然而,当我选择男性时,它不起作用。
我已尝试选择声音的性别。
- 这也无济于事。
How to install and use additional voices in SpeechSynthesizer()?
- 我尝试按照此处的答案进行操作,但这也无济于事。
【问题讨论】:
-
使用
GetInstalledVoices(),还要检查.Enabled属性。然后尝试使用SelectVoice()方法(区分大小写)按名称选择它。 -
我确实设法获得了 uilder.StartVoice("Microsoft David Desktop");,但我需要 Microsoft George,而且它似乎无法找到。这怎么可能,因为我的“讲述人”设置都很好。
-
您不能使用仅属于运行时一部分的声音。无论如何,有关更多选项,请参阅 Windows.Media.SpeechSynthesis 和 Microsoft Speech Platform SDK。 SDK (Namespace
Microsoft.Speech) 为开发人员提供了一些有用的工具,还允许您下载和使用多种语音来进行语音识别和 TTS。您可以引用所有命名空间,但每个命名空间都有自己的声音。此外,您必须针对特定平台(x86 或 x64)进行编译。