Распознавание речи Microsoft - какую ссылку я должен добавить?

Я пытаюсь создать программу на C#, которая использует API распознавания речи Microsoft (с Kinect), но я изо всех сил пытаюсь начать. У меня есть заявления об использовании

using Microsoft.Speech.AudioFormat;
using Microsoft.Speech.Recognition;

Но это выдает мне ошибку: "имя типа или пространства имен" Речь "не существует в пространстве имен" Microsoft ". Вам не хватает ссылки на сборку?"

Кто-нибудь знает, что добавить? System.Speech не работает.

4 ответа

Решение

Убедитесь, что вы добавили эту сборку в свой проект: C:\Program Files\Microsoft SDKs\Speech\v11.0\Assembly\Microsoft.Speech.dll.

Более подробную информацию можно найти на MSDN

Я думаю, что есть некоторая путаница, потому что вы используете Kinect SDK, и некоторые ответы здесь касаются связанных SDK (System.Speech в.net и Microsoft.Speech, которые распространяются с различными серверными продуктами Microsoft и серверной речевой платформой), Из ваших комментариев в других ответах видно, что Kinect SDK использует пространство имен Microsoft.Speech, и ваше приложение должно ссылаться на Microsoft.Speech.dll, поставляемый с Kinect SDK.

Просто чтобы помочь прояснить несколько вещей (я надеюсь):

System.Speech - это ядро ​​.net API, а реализующий его распознаватель включен в Windows 7. Он является распознавателем клиента или рабочего стола и может быть обучен для конкретных пользователей и содержит грамматику диктовки.

Microsoft.Speech - это.NET API, который похож, но немного отличается. Распознаватели, которые используют Microsoft.Speech, являются частью различных серверных продуктов, таких как UCMA и Microsoft Server Speech Platform.

Как вы указали, Microsoft.Speech также является API, используемым для распознавателя Kinect. Это задокументировано в ссылке MSDN Филиппа Шмида, упомянутой в комментарии Speech C# How To (Kinect). Я не работал с Kinect, но это имеет смысл, так как распознаватель не требует обучения ораторов.

Эти ресурсы немного устарели, потому что предшествуют Kinect, но они могут быть полезны:

Microsoft.Speech и System.Speech похожи, но различны. См. В чем разница между System.Speech.Recognition и Microsoft.Speech.Recognition?

Чтобы начать работу с речью.NET, есть очень хорошая статья, которая была опубликована несколько лет назад на http://msdn.microsoft.com/en-us/magazine/cc163663.aspx. Это, пожалуй, лучшая вступительная статья, которую я нашел до сих пор. Это немного устарело, но очень полезно. (Метод AppendResultKeyValue был удален после бета-тестирования.) В этой статье показано пространство имен System.Speech, но большинство из них можно напрямую сопоставить с Microsoft.Speech.

Вы должны сделать это, что работает для меня.

Импортируйте Microsoft.Speech.dll из следующего расположения:

C:\Windows\assembly\GAC_MSIL\Microsoft.Speech\11.0.0.0__31bf3856ad364e35\Microsoft.Speech.dll

Попробуйте System.Speech.Recognition пространство имен вместо Microsoft.Speech.Recognition Пространство имен является частью продукта Office Communications Server.

Справочная ссылка: System.Speech.Recognition

Сервер Office Communications Server (приложение UCMA) UCMA Speech SDK

Другие вопросы по тегам