필자는 Microsoft Speech API (SAPI, 5.3)를 사용하여 내 응용 프로그램 (Windows, 분명히 C++, Win8 SDK)에 음성 인식 지원을 추가하고 문법로드와 관련된 몇 가지 후프 점프를 제외했습니다 파일이 꽤 잘 작동하고 있습니다.SAPI 규칙 열거
그러나 파일에서로드 된 문법의 규칙을 열거하는 방법을 알아내는 데 어려움이 있습니다 (또는 가능한 경우). 분명히 수동/동적으로 문법을 작성할 때 규칙을 직접 작성하게됩니다. 그러나 은 파일에서로드 된 문법의 규칙을 열거하는 방법으로으로 표시되지 않습니다. IspRecoGrammar :: GetRule()은 규칙을 쿼리 할 수있는 가장 가까운 것으로 보이지만 알려진 단일 규칙 (규칙 이름 또는 ID가 필요함)을 검색하기위한 것입니다.
당분간 나는 XML을 간단히 파싱하고 규칙 이름을 뽑아 내고 있지만 실제로는 완벽한 해결책은 아닙니다. XML 과 바이너리 문법 구성 파일을 모두 지원해야하는데, 후자는 내 현재 해결 방법을 회피합니다.
SAPI 경험이있는 사람이라면 누구든지이 작업을 어떻게 수행 할 수 있는지 알고 있습니까?
여기에서 달성하고자하는 상위 목표는 무엇입니까? (일명 - 왜 SAPI 규칙을 열거해야한다고 생각하십니까?) –
답장을 보내 주셔서 감사합니다, Eric. 즉,로드 된 문법의 규칙에 대해 가지고있는 다른 데이터를 사전에 검증해야합니다. 이 다른 데이터는 이름으로 규칙을 참조하므로이 다른 데이터의로드시에는 데이터 참조가 실제로 유효한 문법 규칙 (이름)을 검증하고자합니다. – SBD
앞서 언급 한 XML 처리 외에도 SAPI 인식 콜백을 통해 발생하는 "알려진 세트"에 규칙을 검증하지 않고 단순히 추가하는 것만으로도 얻을 수 있습니다.하지만 이는 매우 강력한 솔루션이 아닙니다. 잡기 데이터 오류. – SBD