1

I'm trying to integrate Microsoft Speech Platform with Kinect and I've come across with the method: SpeechRecognitionEngine.InstalledRecognizers(), which doesn't run at all. When I call the method from my class the execution doesn't continue. I'm using this method to get the Kinect Recognizer.

What's the problem? This is the piece of code where I'm using the method InstalledRecognizers():

    RecognizerInfo obtenerReconocedorKinect()
    {

        String details;

        System.Collections.ObjectModel.ReadOnlyCollection<RecognizerInfo> recs =  SpeechRecognitionEngine.InstalledRecognizers();

        foreach (RecognizerInfo recInfo in recs)
        {
            if (recInfo.AdditionalInfo.ContainsKey("Kinect"))
            {
                details = recInfo.AdditionalInfo["Kinect"];
                if (details == "True" && recInfo.Culture.Name == "en-US")
                {
                    return recInfo;
                }
            }
         }
        return null;
    }

Thanks in advance.

Liam McInroy
  • 4,339
  • 5
  • 32
  • 53
Jonás
  • 1,459
  • 4
  • 27
  • 43
  • I tried your code and it works fine for me. Which assembly are you using for speech recognition? Also if your code breaks and that you don't see any exception, you could change some settings to throw all the exceptions: in Visual Studio 2010, go to Debug > Exceptions > check all the boxes. Then maybe you'll get more information about what's going wrong. – Renaud Dumont Apr 23 '12 at 14:05
  • I've installed the x86 version in http://www.microsoft.com/download/en/details.aspx?id=24974. I added as a reference the DLL in Microsoft SDKs\Assembly – Jonás Apr 23 '12 at 15:18
  • The exception is System.Runtime.InteropServices.COMException in Microsoft.Speech.dll. Addiotional info: Not registered class REGDB_E_CLASSNOTREG. – Jonás Apr 23 '12 at 15:55
  • 3
    So it looks like something hasn't been registered properly. Maybe you should uninstall and reinstall it once again. What are the target framework and platform of your app? Also, make sure that your assembly is Microsoft.Speech.dll and not System.Speech.dll which doesn't recognize the Kinect speech recognizer. – Renaud Dumont Apr 23 '12 at 17:55
  • I finally solved the problem reinstalling Kinect SDK. Now, my problem is that the speech recognition doesn't recognize my speech correctly. Thanks for all your support. – Jonás Apr 23 '12 at 19:35
  • Setting the microphone array gain level to 3 as mentioned in 'Microphone Array default gain setting is sub-optimal' under known issues @ http://www.microsoft.com/en-us/kinectforwindows/develop/release-notes.aspx may help – Atul Verma Apr 24 '12 at 03:04
  • @AtulVerma Thanks. I really appreciate your suggestion. – Jonás Apr 24 '12 at 20:01

1 Answers1

2

So the problem was:

a System.Runtime.InteropServices.COMException in Microsoft.Speech.dll with the following error: Not registered class REGDB_E_CLASSNOTREG

The issue has been solved by reinstalling the Kinect SDK.

Renaud Dumont
  • 1,776
  • 13
  • 24