Каково различие между Системой. Речь. Распознавание и Microsoft. Речь. Распознавание?

Существует два подобных пространства имен и блоки для распознавания речи в.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?

78
задан Michael Levy 4 June 2010 в 19:54
поделиться

2 ответа

Короткий ответ заключается в том, что Microsoft.Speech.Recognition использует серверную версию SAPI, а System.Speech.Recognition использует версию SAPI для настольных компьютеров.

API-интерфейсы в основном те же, но лежащие в основе механизмы разные. Обычно серверный механизм предназначен для приема звука телефонного качества для приложений управления и контроля; Движок рабочего стола предназначен для приема высококачественного звука как для командных приложений, так и для приложений диктовки.

Вы можете использовать System.Speech.Recognition в серверной ОС, но он не предназначен для масштабирования почти так же, как Microsoft.Speech.Recognition.

Различия заключаются в том, что ядро ​​сервера не требует обучения и будет работать с более низким качеством звука, но будет иметь более низкое качество распознавания, чем ядро ​​рабочего стола.

101
ответ дан 24 November 2019 в 10:33
поделиться

Я нашел ответ Эрика действительно полезным, я просто хотел добавить некоторые подробности, которые я нашел.

System.Speech.Recognition может использоваться для программирования распознавателей рабочего стола. Распознаватели SAPI и Desktop входят в состав продуктов:

  • Windows XP: SAPI v5.1 и без распознавателя
  • Windows XP Tablet Edition: SAPI v5.1 и Recognizer v6.1
  • Windows Vista: SAPI v5.3 и Recognizer v8.0
  • Windows 7: SAPI v5.4 и Recognizer v8.0?

Серверы поставляются с SAPI, но без распознавателя:

  • Windows Server 2003: SAPI v5.1 и без распознавателя
  • Windows Server 2008 и 2008 R2: SAPI v5.3? и без распознавателя

Распознаватели для настольных компьютеров также поставляются в таких продуктах, как офисные.

  • Microsoft Office 2003: Recognizer v6.1

Microsoft.Speech.Recognition может использоваться для программирования серверных распознавателей. Распознаватели серверов входят в состав продуктов:

  • Speech Server (различные версии)
  • Office Communications Server (OCS) (различные версии)
  • UCMA - это управляемый API для OCS, который (я считаю) включал распространяемый распознаватель
  • Microsoft Server Speech Platform - распознаватель v10.2

Полный 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-интерфейсы для запроса установленных вами распознавателей.

  • Рабочий стол: System.Speech.Recognition.SpeechRecognitionEngine.InstalledRecognizers ()
  • Сервер: Microsoft.Speech.Recognition.SpeechRecognitionEngine.InstalledRecognizers ()

Я обнаружил, что могу также увидеть, какие распознаватели установлены, просмотрев ключи реестра:

  • Распознаватели рабочего стола: HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Speech \ Recognizers \ Tokens
  • Распознаватели сервера: HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Speech Server \ v10.0 \ Recognizers \ Tokens

--- Обновление ---

Как обсуждалось в Распознавание речи Microsoft - какую ссылку я должен добавить? , Microsoft. Речь также является API, используемым для распознавателя Kinect. Это описано в статье MSDN http://msdn.microsoft.com/en-us/library/hh855387.aspx

51
ответ дан 24 November 2019 в 10:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: