다음을 통해 공유


음성 입력 이벤트

[Microsoft 에이전트는 Windows 7을 기준으로 사용되지 않으며 이후 버전의 Windows에서는 사용할 수 없습니다.]

또한 Command 이벤트 알림 외에도 에이전트는 ListenStartListenComplete 이벤트(IAgentNotifySinkEx::ListeningState)를 사용하여 서버가 수신 모드를 켜거나 끌 때 입력 활성 클라이언트에 알립니다. 그러나 사용자가 수신 모드 키를 누르고 입력-활성 클라이언트의 최상위 문자에 사용할 수 있는 일치하는 음성 인식 엔진이 없는 경우 서버는 수신 대기 바로 가기 키 모드 제한 시간을 시작하지만 문자의 활성 클라이언트에 대한 ListenStart 이벤트를 생성하지 않습니다. 제한 시간이 완료되기 전에 사용자가 음성 인식 엔진을 지원하는 다른 문자를 활성화하면 서버는 음성 입력을 활성화하려고 시도하고 ListenStart 이벤트를 생성합니다.

마찬가지로 클라이언트가 Listen 메서드를 사용하여 수신 모드를 켜려고 하고 일치하는 음성 인식 엔진을 사용할 수 없는 경우 호출이 실패하고 서버에서 ListenStart이벤트를 생성하지 않습니다. Microsoft 에이전트 컨트롤에서 Listen 메서드는 false 반환하지만 호출은 오류를 발생시키지 않습니다.

수신 대기 키 모드가 켜져 있고 사용자가 다른 음성 인식 엔진을 사용하는 문자로 전환하면 서버는 해당 엔진으로 전환하여 활성화하고 ListenComplete 트리거한 다음 ListenStart 이벤트를 트리거합니다. 활성화된 문자에 사용 가능한 음성 인식 엔진이 없거나 활성화된 문자의 언어 ID 설정과 일치하지 않으므로 서버는 이전에 활성화된 문자에 대한 ListenComplete 이벤트를 트리거하고 원인 매개 변수의 값을 다시 전달합니다. 그러나 서버는 음성 인식이 지원되지 않는 클라이언트에 대한 ListenStart 또는 ListenComplete 이벤트를 생성하지 않습니다.

클라이언트가 Listen 메서드를 성공적으로 호출하고 음성 인식 엔진이 지원되지 않는 문자가 수신 모드 제한 시간이 완료되기 전에 입력 활성 상태가 된 다음 사용자가 원래 클라이언트의 문자로 다시 전환하면 서버는 해당 클라이언트에 대한 ListenStart 이벤트를 생성합니다.

입력-활성 클라이언트가 수신 모드에서 SRModeID 변경하여 음성 인식 엔진을 전환하는 경우 서버는 ListenStart 이벤트를 다시 트리거하지 않고 해당 엔진으로 전환하고 활성화합니다. 그러나 지정된 엔진을 사용할 수 없는 경우 호출이 실패하고(컨트롤에서 오류가 발생함) 서버는 ListenComplete 이벤트도 호출합니다.