2012-04-23 3 views
1

Я пытаюсь интегрировать Microsoft Speech Platform с Kinect, и я столкнулся с методом: SpeechRecognitionEngine.InstalledRecognizers(), который не запускается вообще. Когда я вызываю метод из моего класса, выполнение не продолжается. Я использую этот метод для получения Kinect Recognizer.InstalledRecognizers() не запускается

В чем проблема? Это кусок кода, где я использую метод 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; 
    } 

Спасибо заранее.

+0

Я пробовал свой код, и он отлично работает для меня. Какую сборку вы используете для распознавания речи? Также, если ваш код ломается и что вы не видите никаких исключений, вы можете изменить некоторые настройки, чтобы выбросить все исключения: в Visual Studio 2010 перейдите в «Отладка»> «Исключения»> отметьте все флажки. Тогда, возможно, вы получите больше информации о том, что происходит не так. –

+0

Я установил версию x86 на http://www.microsoft.com/download/en/details.aspx?id=24974. Я добавил в качестве ссылки DLL в Microsoft SDKs \ Assembly – honnix

+0

Исключением является System.Runtime.InteropServices.COMException в Microsoft.Speech.dll. Addiotional info: Не зарегистрированный класс REGDB_E_CLASSNOTREG. – honnix

ответ

2

Так что проблема была:

System.Runtime.InteropServices.COMException в Microsoft.Speech.dll со следующей ошибкой: Не зарегистрирован класс REGDB_E_CLASSNOTREG

Проблема была решена переустановка Kinect SDK.

+1

Работает, но это как-то больно, но его стоит –

+0

Я получаю то же самое с Microsoft.Speech sdk 11 ... – guiomie