2017-04-05 23 views
0

Visual Studio의 음성은 매우 혼란 스럽습니다. 다른 언어와 VB6에서도 SAPI 5.4 객체를 사용하는 코드를 작성했습니다. Visual Studio에는 Microsoft.Speech 및 System.Speech 개체가 있습니다. 내가 이것이 관리 코드를 가질 수 있다고 가정합니다. SAPI에 직접 프로그램 할 수 있습니까? 내가 왜 하나의 방법이나 다른 방법을 사용하고자하는지에 대해 내가 알아야 할 것은 무엇인가? 코드는 원격으로 유사하지 않습니다. 이 응용 프로그램은 Windows Server에서 실행되며 VB.NET으로 작성됩니다.Visual Studio에서 SAPI 5.4를 직접 사용하는 대신 Microsoft.Speech 네임 스페이스를 사용해야하는 이유가 있습니까?

답변

0

먼저 this question의 대답을 살펴볼 수 있습니다.

, 당신은 거의 확실 오히려 다음과 같은 이유로 System.Speech보다 Microsoft.Speech를 원하는 당신은 윈도우 서버에서 실행중인 점을 감안 :

  • 서버는 기본적으로 어떤 SR 엔진을 포함하지 않는다; Desktop Experience 팩을 설치해야합니다.
  • System.Speech는 제대로 작동하려면 교육이 필요합니다.
  • Microsoft.Speech에는 저품질 오디오와 잘 작동하는 SR 엔진이 있습니다.

여전히 SAPI에 직접 프로그래밍 할 수 있습니다. Server SAPI와 Desktop SAPI의 유일한 차이점은 기본 SR 엔진입니다. (클라이언트 측 API는 정확히 동일합니다.)

SAPI로 직접 프로그래밍하는 것은 더 복잡하지만 더 많은 제어를 제공합니다. 나는 당신의 궁극적 인 목표가 무엇인지 모른 채 둘 중 하나를 추천 할 수 없었다.

+0

전화 통신 명령 및 제어 응용 프로그램입니다. 몇 년 동안 SAPI에 몇 가지 응용 프로그램을 작성했으며 복잡하고 혼란스러운 새로운 인터페이스를 이해하려고 노력했습니다. 네임 스페이스 중 하나에 쓰지 않고 SAPI와 MMSYSTEM을 직접 사용하지 않는 것이 궁금합니다. 나는 서버 버전 (microsoft.speech)이 몇 가지 이유로 데스크탑 (system.speech)보다 필요 하겠지만, 설치된 웨이브 오디오 장치 드라이버 입력을 사용하는 방법을 모를 것에 동의합니다. 주요 감시에서 Microsoft는 .SetInputToAudioDeviceID를 구현하지 않은 것으로 보입니다. – Fred

+0

.SetInputToDefaultAudioDevice 및 .SetInputToAudioStream 만 허용합니다. SAPI, 나는 VB에서이 작업을 수행 할 수 있습니다 희미한 MMSysAudioIn1를 ISpeechMMSysAudio 으로 설정 MMSysAudioIn1 = 새 SpMMAudioIn AudioIn1.DeviceId = PhoneLine1.WaveRecordID MMSysAudioIn1.Format.Type = SAFT8kHz16BitMono 나는 2 주 동안 연구되어 있고 볼 수 없습니다 – Fred

+0

PC에 설치된 모든 입력에 음성 인식을위한 입력을 설정합니다. 나는 .SetInputToAudioStream이 필요하다고 생각하지만, VB.NET에서 특정 설치된 웨이브 장치의 "웨이브 장치 ID"를 가리키는 코드를 찾을 수 없다. 기본 오디오 장치가 아닌 USB 마이크를 원한다면 어떻게해야합니까? 어떻게 지적 할 수 있습니까? – Fred