System.Speech.Recognition과 Microsoft.Speech.Recognition의 차이점은 무엇입니까?
.NET에서 음성 인식을위한 두 개의 유사한 네임 스페이스와 어셈블리가 있습니다. 나는 차이점과 둘 중 하나를 사용하는 것이 적절한 때를 이해하려고 노력하고 있습니다.
System.Speech 어셈블리 (System.Speech.dll)의 System.Speech.Recognition이 있습니다. System.Speech.dll은 .NET Framework 클래스 라이브러리 3.0 이상에서 핵심 DLL입니다.
어셈블리 Microsoft.Speech (microsoft.speech.dll에 있음)의 Microsoft.Speech.Recognition도 있습니다. Microsoft.Speech.dll은 UCMA 2.0 SDK의 일부입니다.
문서가 혼란스럽고 다음과 같은 질문이 있습니다.
System.Speech.Recognition은 "Windows 데스크톱 음성 기술"을위한 것이라고 말합니다. 이것은 서버 OS에서 사용할 수 없거나 대규모 응용 프로그램에 사용할 수 없음을 의미합니까?
UCMA 2.0 음성 SDK ( http://msdn.microsoft.com/en-us/library/dd266409%28v=office.13%29.aspx )에서는 Microsoft Office Communications Server 2007 R2가 필수 구성 요소로 필요하다고 말합니다. 하지만 회의 및 회의에서 프레즌스 및 워크 플로와 같은 OCS 기능이 필요하지 않으면 OCS없이 UCMA 2.0 Speech API를 사용할 수 있다고 들었습니다. 이것이 사실입니까?
서버 애플리케이션을위한 간단한 인식 앱을 구축 중이고 (예 : 음성 메일을 자동으로 기록하고 싶음) OCS의 기능이 필요하지 않은 경우 두 API의 차이점은 무엇입니까?
짧은 대답은 Microsoft.Speech.Recognition은 SAPI의 서버 버전을 사용하는 반면 System.Speech.Recognition은 SAPI의 데스크톱 버전을 사용한다는 것입니다.
API는 거의 동일하지만 기본 엔진은 다릅니다. 일반적으로 서버 엔진은 명령 및 제어 응용 프로그램을위한 전화 품질의 오디오를 수용하도록 설계되었습니다. Desktop 엔진은 명령 및 제어 및 받아쓰기 응용 프로그램 모두에 대해 고품질 오디오를 수용하도록 설계되었습니다.
서버 OS에서 System.Speech.Recognition을 사용할 수 있지만 Microsoft.Speech.Recognition만큼 확장하도록 설계되지 않았습니다.
차이점은 서버 엔진은 교육이 필요하지 않고 저품질 오디오에서 작동하지만 데스크톱 엔진보다 인식 품질이 낮다는 것입니다.
나는 Eric의 대답이 정말 도움이된다는 것을 알았고, 내가 찾은 더 많은 세부 사항을 추가하고 싶었습니다.
System.Speech.Recognition을 사용하여 데스크톱 인식기를 프로그래밍 할 수 있습니다. SAPI 및 데스크탑 인식기는 제품에 포함되어 있습니다.
- 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 (다양한 버전)
- OCS (Office Communications Server) (다양한 버전)
- UCMA – 재배포 가능한 인식기가 포함 된 OCS 용 관리 API입니다.
- Microsoft 서버 음성 플랫폼 – 인식기 v10.2
Microsoft Server Speech Platform 10.2 버전의 전체 SDK는 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 정보 및 다운로드는 다음을 참조하세요.
- 언어 팩-http: //www.microsoft.com/en-us/download/details.aspx? id= 27224
- 런타임 엔진-http: //www.microsoft.com/en-us/download/details.aspx? id= 27225
- SDK- http : //www.microsoft.com/en-us/download/details.aspx? id= 27226
- MSDN 설명서-http: //msdn.microsoft.com/en-us/library/dd266409
데스크톱 인식기는 inproc 또는 공유를 실행하도록 설계되었습니다. 공유 인식기는 음성 명령을 사용하여 열려있는 모든 응용 프로그램을 제어하는 데스크톱에서 유용합니다. 서버 인식기는 inproc 만 실행할 수 있습니다. Inproc 인식기는 단일 응용 프로그램이 인식기를 사용하거나 wav 파일 또는 오디오 스트림을 인식해야 할 때 사용됩니다 (공유 인식기는 오디오 파일을 처리 할 수없고 입력 장치의 오디오 만 처리 할 수 있음).
데스크톱 음성 인식기에만 받아쓰기 문법 (자유 텍스트 받아쓰기에 사용되는 시스템 제공 문법)이 포함됩니다. System.Speech.Recognition.DictationGrammar 클래스는 Microsoft.Speech 네임 스페이스에 보완 요소가 없습니다.
API를 사용하여 설치된 recongizer를 쿼리 할 수 있습니다.
- 데스크톱 : 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.Speech는 Kinect 인식기에 사용되는 API이기도합니다. 이것은 MSDN 문서 http://msdn.microsoft.com/en-us/library/hh855387.aspx에 설명되어 있습니다 .
Here is the link for the Speech Library (MS Server Speech Platform):
Microsoft Server Speech Platform 10.1 Released (SR and TTS in 26 languages)
Seems Microsoft wrote an article that clears things up regarding the differences between Microsoft Speech Platform and Windows SAPI - https://msdn.microsoft.com/en-us/library/jj127858.aspx. A difference I found myself while converting Speech recognition code for Kinect from Microsoft.Speech to System.Speech (see http://github.com/birbilis/Hotspotizer) was that the former supports SGRS grammars with tag-format=semantics/1.0-literals, while the latter doesn't and you have to convert to semantics/1.0 by changing x to out="x"; at tags
'Programing' 카테고리의 다른 글
build.gradle의 local.properties에 정의 된 속성을 읽는 방법 (0) | 2020.10.12 |
---|---|
"if"문에서 변수 초기화 (0) | 2020.10.12 |
Tomcat의 기본 사용자 이름과 비밀번호는 무엇입니까? (0) | 2020.10.12 |
젠킨스에서 빌드 번호를 재설정하는 방법은 무엇입니까? (0) | 2020.10.11 |
PHP GuzzleHttp. (0) | 2020.10.11 |