我是否有理由使用 Microsoft.Speech 命名空间而不是直接在 Visual Studio 中使用 SAPI 5.4?

Is there a reason I would use the Microsoft.Speech Namespace instead of directly using SAPI 5.4 in Visual Studio?

Visual Studio 中的讲话非常混乱。在其他语言甚至 VB6 中,我有使用 SAPI 5.4 对象的工作代码。我看到 Visual Studio 中有 Microsoft.Speech 和 System.Speech 对象。我想这是为了让我可以拥有托管代码。你还能直接用 SAPI 编程吗?我应该知道为什么我想使用一种方法或另一种方法?代码甚至一点都不相似。此应用程序将 运行 在 Windows 服务器上并写入 VB.NET

您可能想先查看 this question 的答案。

鉴于您 运行 在 Windows 服务器上,您几乎肯定想要 Microsoft.Speech 而不是 System.Speech,原因如下:

  • 服务器默认不包含任何SR引擎;您必须安装桌面体验包;
  • System.Speech 需要培训才能很好地工作;
  • Microsoft.Speech 具有适用于低质量音频的 SR 引擎。

你仍然可以直接编程到SAPI;服务器 SAPI 和桌面 SAPI 之间唯一真正的区别是底层 SR 引擎。 (客户端API完全一样。)

直接编程到 SAPI 更复杂,但给您更多的控制权。如果不知道您的最终目标是什么,我无法推荐其中之一。