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

时间:2010-07-29 13:13:23

标签: windows-server-2008 speech-recognition sapi

我正在尝试使用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. 试图再次运行我的应用程序,但仍然没有找到识别器。

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

    我做错了什么? :)

2 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分:1)

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

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

  1. 从此链接https://www.microsoft.com/en-us/download/details.aspx?id=27225
  2. 安装Microsoft语音平台运行时
  3. 从此处安装英语 - 美国语言包MSSpeech_SR_en-US_TELE.msi https://www.microsoft.com/en-us/download/details.aspx?id=27224
  4. 安装了“Microsoft语音平台 - 服务器运行时语言(版本10.1)”,LangPacks \ MSSpeech_SR_en-US_TELE.msi文件 从这里:https://www.microsoft.com/en-us/download/details.aspx?id=3971
  5. 使用以下说明安装“桌面体验”功能:
    1. 启动服务器管理器(在“开始”菜单上,单击“服务器管理”)。
    2. 在详细信息窗格中,找到“功能摘要”区域,然后单击“添加功能”。
    3. 在“添加功能向导”中,单击以选中“桌面体验”复选框,然后单击“下一步”。
    4. 单击“安装”。
    5. 安装桌面体验功能后,单击“关闭”退出“添加功能向导”,然后单击“是”以重新启动计算机。
  6. 这些都没有用,所以我们最终基本上手动安装了必要的文件和注册表设置,使用下面改编自的过程 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
    4. Stackoverflow不会让我发布没有代码的pastebin链接,我的链接很大,直接包含在这里,所以

      fakeCode = 1;