Reputation: 127
I am trying to get Speech Recognition to work on Windows Server 2008 using system.speech.
I built a console application which uses System.Speech.Recognition (SAPI 5.4) on Vista. Works great on this machine.
Tried to install/execute it on a Windows Server 2008 x86 machine. It has .NET 3.5. No luck... Threw errors--Upon investigation, discovered that 2008 doesn't have any recognizers installed by default.
Installed the new Speech Platform Server Runtime, English language file, and Speech SDK. These were all released about a month ago. As I understand it, the runtime contains a recognizer compatible with WinServer 2008.
Tried to run my application again, and there are still no recognizers found.
I can see that there is a recognizer dll installed at: C:\Program Files (x86)\Common Files\microsoft shared\Speech\SR\v10.1\spsreng.dll
What am I doing wrong? :)
Upvotes: 2
Views: 3119
Reputation: 2426
It is possible to get System.Speech.Recognition working on Windows Server 2008 assuming you have a working machine to copy from. I tried a bunch of different things that didn't work, and then some scary steps that did work. I don't know for sure which of these are necessary, but the last set of steps definitely were necessary.
Here is the list of things that did not work, but may have been prerequisites for what did work:
None of that worked, so we ended up basically manually installing the necessary files and registry settings using the process below adapted from https://groups.google.com/forum/#!topic/microsoft.public.speech_tech.sdk/YV_OcL0Boh0
This required a working machine (my Windows 7 machine) to copy files and registry settings from. In the instructions below I was trying to install a specific recognizer that I knew was working on my machine, MS-1033-80-DESK. If you are using a different recognizer you may need different steps. You can see installed recognizers on your machine using the SpeechRecognitionEngine.InstalledRecognizers() API.
Stackoverflow won't let me post a pastebin link without code, and my link is to big to include here directly, so
fakeCode = 1;
Upvotes: 1
Reputation: 13942
You need to use Microsoft.Speech.Recognition in order to use Speech Platform Server; System.Speech.Recognition requires the Desktop recognition engine, which isn't available on Windows Server.
The Server and Desktop recognition engines are completely separate.
Upvotes: 4