在Speech API中更改语音语音

时间:2013-06-03 21:25:13

标签: c# .net wpf windows winforms

我们如何在应用中更改要使用的语音?我似乎无法弄清楚Windows 8的默认语音是什么或在哪里。

我在线阅读的文章说Microsoft David是MS Windows 8的最新和最好的声音,但我有一个新的Windows 8 Pro系统,我的系统上没有这样的声音(只有Zira和其他人)。 / p>

我很害怕Select Voice允许你使用字符串作为语音的名称,但在尝试了大约30个不同的名字后,包括David(和Dave),它会抛出一个异常,说声音不存在

我尝试了InstalledVoice - 但不知道如何使用它。

我们下载用于Windows语音识别的不同语音的方式/位置,以及如何在我们的代码中选择使用不同的语音?

此外,SelectVoicebyHints()完全没有任何作用。我不知道为什么。

1 个答案:

答案 0 :(得分:1)

SpeechSynthesizer有一个GetInstalledVoices方法,它返回系统中安装的Voices的ReadOnlyCollection(InstalledVoice类型),以便更改你应该调用SelectVoice方法的合成器语音,其中需要语音名称(String type)

SpeechSynthesizer synt = new SpeechSynthesizer();
IReadOnlyCollection<InstalledVoice> InstalledVoices = synt.GetInstalledVoices();
InstalledVoice InstalledVoice = InstalledVoices.First();
synt.SelectVoice(InstalledVoice.VoiceInfo.Name);
synt.Speak("This is how you select an installed voice");

要查看计算机中安装的语音,您可以在以下位置查看: Control Painel - &gt;语音识别 - &gt;文字转语音 您可以在那里指定更多信息,例如语音速度

如果您想为计算机添加更多声音,则应搜索某些公司,例如

不确定但是SelectVoicebyHints应该尝试选择那些安装的语音,这些语音与通过方法的规范更相似