【问题标题】:can't change voice in speech synth无法在语音合成器中改变声音
【发布时间】: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.SpeechSynthesisMicrosoft Speech Platform SDK。 SDK (Namespace Microsoft.Speech) 为开发人员提供了一些有用的工具,还允许您下载和使用多种语音来进行语音识别和 TTS。您可以引用所有命名空间,但每个命名空间都有自己的声音。此外,您必须针对特定平台(x86 或 x64)进行编译。

标签: c# voice


【解决方案1】:

尝试使用

synth.SelectVoiceByHints(VoiceGender.Female);或 synth.SelectVoiceByHints(VoiceGender.Male);

然后只需使用 synth.Speak("example"); 切换完全没问题

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多