Существует два подобных пространства имен и блоки для распознавания речи в.NET. Я пытаюсь понять различия и когда уместно использовать один или другой.
Существует Система. Речь. Распознавание от системы сборки. Речь (в System.Speech.dll). System.Speech.dll является базовый DLL в библиотеке классов Платформы.NET 3.0 и позже
Существует также Microsoft. Речь. Распознавание от блока Microsoft. Речь (в microsoft.speech.dll). Microsoft.Speech.dll является частью UCMA 2.0 SDK
Я нахожу документы сбивающими с толку, и у меня есть следующие вопросы:
Система. Речь. Распознавание говорит, что это для "Windows Desktop Speech Technology", это означает, что не может использоваться на сервере ОС или не может использоваться для высоких приложений масштаба?
Речевой SDK (http://msdn.microsoft.com/en-us/library/dd266409%28v=office.13%29.aspx) UCMA 2.0 говорит, что требует Коммуникационного сервера 2007 R2 Microsoft Office как предпосылки. Однако мне сказали на конференциях и встречах, что, если я не требую функций OCS как присутствие и рабочий процесс, я могу использовать Речь API UCMA 2.0 без OCS. Действительно ли это верно?
Если я создаю простое приложение распознавания для серверного приложения (скажите, что я хотел автоматически записать голосовые сообщения), и мне не нужны функции OCS, каковы различия между этими двумя API?
Короткий ответ заключается в том, что Microsoft.Speech.Recognition использует серверную версию SAPI, а System.Speech.Recognition использует версию SAPI для настольных компьютеров.
API-интерфейсы в основном те же, но лежащие в основе механизмы разные. Обычно серверный механизм предназначен для приема звука телефонного качества для приложений управления и контроля; Движок рабочего стола предназначен для приема высококачественного звука как для командных приложений, так и для приложений диктовки.
Вы можете использовать System.Speech.Recognition в серверной ОС, но он не предназначен для масштабирования почти так же, как Microsoft.Speech.Recognition.
Различия заключаются в том, что ядро сервера не требует обучения и будет работать с более низким качеством звука, но будет иметь более низкое качество распознавания, чем ядро рабочего стола.
Я нашел ответ Эрика действительно полезным, я просто хотел добавить некоторые подробности, которые я нашел.
System.Speech.Recognition может использоваться для программирования распознавателей рабочего стола. Распознаватели SAPI и Desktop входят в состав продуктов:
Серверы поставляются с SAPI, но без распознавателя:
Распознаватели для настольных компьютеров также поставляются в таких продуктах, как офисные.
Microsoft.Speech.Recognition может использоваться для программирования серверных распознавателей. Распознаватели серверов входят в состав продуктов:
Полный SDK для Microsoft Server Speech Platform 10.2 доступна по адресу http://www.microsoft.com/downloads/en/details.aspx?FamilyID=1b1604d3-4f66-4241-9a21-90a294a5c9a4 . Речевой движок можно загрузить бесплатно. Версия 11 теперь доступна по адресу http://www.microsoft.com/download/en/details.aspx?id=27226 .
Информацию о Microsoft Speech Platform SDK 11 и загрузки см .:
Распознаватели рабочего стола предназначены для запуска в процессе или совместно. Общие распознаватели полезны на рабочем столе, где голосовые команды используются для управления любыми открытыми приложениями. Распознаватели серверов могут работать только в процессе. Распознаватели Inproc используются, когда распознаватель используется в одном приложении или когда необходимо распознать файлы WAV или аудиопотоки (общие распознаватели не могут обрабатывать аудиофайлы, только звук с устройств ввода).
Только настольные распознаватели речи включают грамматику диктовки (предоставленная системой грамматика, используемая для диктовки произвольного текста). Класс System.Speech.Recognition.DictationGrammar не имеет дополнений в пространстве имен Microsoft.Speech.
Вы можете использовать API-интерфейсы для запроса установленных вами распознавателей.
Я обнаружил, что могу также увидеть, какие распознаватели установлены, просмотрев ключи реестра:
--- Обновление ---
Как обсуждалось в Распознавание речи Microsoft - какую ссылку я должен добавить? , Microsoft. Речь также является API, используемым для распознавателя Kinect. Это описано в статье MSDN http://msdn.microsoft.com/en-us/library/hh855387.aspx