Распознавание речи Microsoft в веб-сервисах не возвращает результат - PullRequest
0 голосов
/ 02 ноября 2011

Ну, я использую Microsoft Speech Platform SDK 10.2.

Я сделал приложение asp.Net WebService, и большинство WebServices работает нормально (HelloWorld () и т. Д.), Но у меня есть один сервис, который использует SpeechRecognitionEngine, и когда я развертываю приложение и пытаюсь запустить этот веб-сервис Я не получаю никакого результата, т. Е. Через режим отладки вижу, что он достигает обратной линии, но когда я вызываю его через браузер, страница загружается вечно, без какого-либо ответа.

Вот пример кода:

[WebMethod]

public bool voiceRecognition() {     
   SpeechRecognitionEngine sre = new SpeechRecognitionEngine(new System.Globalization.CultureInfo("pt-PT"));
   Choices c = new Choices();
   c.Add("test");
   GrammarBuilder gb = new GrammarBuilder();
   gb.Append(c);
   Grammar g = new Grammar(gb);
   sre.LoadGrammar(g);
   sre.InitialSilenceTimeout = TimeSpan.FromSeconds(5);

   //// just for Testing
   RecognitionResult result = null;

   if (result != null) {
      return true;
   } else {
      return false;
   }
}

Примечание. Я использую IIS для развертывания приложения WebService.

Если у кого-то есть мысли, пожалуйста, дайте мне знать.

1 Ответ

0 голосов
/ 01 декабря 2011

Я не знаю, нашли ли вы свой ответ или нет. Пытаясь решить это самостоятельно пару дней назад, я наткнулся на ваш вопрос, и он сопоставил наши обстоятельства с буквой «Т».

Для того, чтобы это исправить, нам нужно было поставить ...

sre.RecognizeAsyncStop();
sre.Dispose();

где "sre" - это ваша переменная SpeechRecognitionEngine. Если вы не остановите его и не утилизируете в конце веб-службы, веб-служба не вернется.

Надеюсь, это поможет. :)

...