Windows Server 2008:语音运行时 - 我缺少什么?

问题描述 投票:1回答:2

我正在尝试使用system.speech将语音识别功能用于Windows Server 2008。

  1. 我构建了一个在Vista上使用System.Speech.Recognition(SAPI 5.4)的控制台应用程序。在这台机器上运行良好。
  2. 试图在Windows Server 2008 x86计算机上安装/执行它。它有.NET 3.5。没有运气......犯错误 - 经过调查,发现2008年没有安装任何识别器。
  3. 安装了新的Speech Platform Server RuntimeEnglish language fileSpeech SDK。这些都是在一个月前发布的。据我了解,运行时包含一个与WinServer 2008兼容的识别器。
  4. 试图再次运行我的应用程序,仍然没有找到识别器。

我可以看到安装了一个识别器dll:C:\ Program Files(x86)\ Common Files \ microsoft shared \ Speech \ SR \ v10.1 \ spsreng.dll

我究竟做错了什么? :)

windows-server-2008 speech-recognition sapi
2个回答
4
投票

您需要使用Microsoft.Speech.Recognition才能使用Speech Platform Server; System.Speech.Recognition需要桌面识别引擎,该引擎在Windows Server上不可用。

服务器和桌面识别引擎是完全独立的。


1
投票

假设您有一台可以从中复制的工作机器,则可以在Windows Server 2008上运行System.Speech.Recognition。我尝试了一些不起作用的不同东西,然后是一些可行的可怕步骤。我不确定哪些是必要的,但最后一组步骤肯定是必要的。

以下是不起作用的事项列表,但可能是工作原理的先决条件:

  1. 从此链接https://www.microsoft.com/en-us/download/details.aspx?id=27225安装Microsoft Speech Platform Runtime
  2. 从这里安装英语 - 美国语言包MSSpeech_SR_en-US_TELE.msi https://www.microsoft.com/en-us/download/details.aspx?id=27224
  3. 安装了“Microsoft语音平台 - 服务器运行时语言(版本10.1)”,这里的LangPacks \ MSSpeech_SR_en-US_TELE.msi文件:https://www.microsoft.com/en-us/download/details.aspx?id=3971
  4. 使用以下说明安装“桌面体验”功能: 启动服务器管理器(在“开始”菜单上,单击“服务器管理”) 在详细信息窗格中,找到“功能摘要”区域,然后单击“添加功能”。 在“添加功能向导”中,单击以选中“桌面体验”复选框,然后单击“下一步”。 单击安装。 安装桌面体验功能后,单击“关闭”以退出“添加功能向导”,然后单击“是”以重新启动计算机。

这些都没有用,所以我们最终基本上手动安装了必要的文件和注册表设置,使用下面的过程改编自https://groups.google.com/forum/#!topic/microsoft.public.speech_tech.sdk/YV_OcL0Boh0

这需要一台工作机器(我的Windows 7机器)来复制文件和注册表设置。在下面的说明中,我试图安装一个我知道在我的机器上工作的特定识别器,MS-1033-80-DESK。如果您使用其他识别器,则可能需要不同的步骤。您可以使用SpeechRecognitionEngine.InstalledRecognizers()API在计算机上查看已安装的识别器。

  1. 如果不覆盖现有文件(仅在提示时添加丢失的文件),请将工作C:\ Windows \ Speech文件夹中的文件复制到服务器的文件夹中。您可能需要获取服务器上文件夹的所有权,并授予自己添加文件夹和文件的权限。
  2. 如果不覆盖现有文件(仅在提示时添加丢失的文件),请将工作C:\ Windows \ System32 \ Speech中的文件复制到服务器的文件夹中。您可能还需要授予自己权限。
  3. 最后一步非常痛苦。您需要将所有相关的注册表设置复制到服务器。我只复制了HKEY_LOCAL_MACHINE和HKEY_CLASSES_ROOT主文件夹中的注册表设置。我通过在注册表中搜索与以下相关的条目来创建我粘贴的.reg文件:MS-1033-80-DESK,{DAC9F469-0C67-4643-9258-87EC128C5941},spsreng,spsrx,srloc(HKEY_LOCAL_MACHINE中的条目除外) COMPONENTS \ DerivedData \ Components未包含在内)这些是识别器的名称,识别引擎的类ID以及与识别器相关的dll。我不知道您是否可以使用我的注册表设置,或者您是否必须创建自己的注册表设置。我创建并导入到我服务器上的注册表中的注册表文件位于:https://pastebin.com/4w05SbbY

Stackoverflow不会让我发布没有代码的pastebin链接,我的链接很大,直接包含在这里,所以

fakeCode = 1;
© www.soinside.com 2019 - 2024. All rights reserved.