首页 > 解决方案 > SpeechSynthesizer 支持什么 SAPI 版本?

问题描述

我查看了SelectVoice()GetInstalledVoices()以及 SpeechSynthesizer 类。

我看到了一个类似的问题,其中一个答案说

[...] 可能与 SAPI 版本有关 [...]

另一个说

[...] 绝对与 SAPI 版本无关 [...]

如果我编写一个语音合成器应用程序,我应该要求我的客户拥有什么 SAPI 版本?当然,我希望它尽可能低,但我不想因为影响托管 API 不支持的 SAPI 版本的错误报告而遇到麻烦。

标签: c#.netsapi

解决方案


站点Microsoft Speech API (SAPI) 5.3提到了托管 API,因此它必须在 SAPI 5.3 或更高版本中工作。

此外,由于 SAPI 5 是一个完整的重新设计,SAPI 4 的声音将无法正常工作。

Windows Vista 附带 SAPI 5.3 并且根据 Wikipedia是托管 API,因此 Microsoft 可能没有为旧版本设计它。

Windows Vista 已于 2017 年 4 月结束扩展支持,但当然,客户可能仍拥有为旧 SAPI 版本设计的语音设置。

另请注意:

  • 可以隐藏 SAPI 5 语音,因此您的程序可能仍然无法检测到某些语音。
  • 您的程序可能只能找到与您的程序位数相匹配的 SAPI 声音。

致谢:这个答案的一部分是在Alasdair King 的博客文章中找到的。


推荐阅读