2013-07-24 3 views
0

Microsoft in-process 음성 인식 엔진을 사용하여 응용 프로그램을 작성하려고합니다. 내 응용 프로그램은 때때로 받아쓰기 문법을 사용하고 때로는 SRGS를 사용합니다. SRGS를 사용할 때 분명히 어떤 문제도 없습니다.Microsoft 음성 인식

사용 가능한 최상의 마이크 (Sennheiser ME3 with Andrea usb 사운드 카드) 중 하나를 사용하더라도 인식 결과는 받아 들일 수 없습니다. 내 응용 프로그램은 특정 도메인에서 작동하며 시스템 사용자가 더 쉽게 말할 수있는 단어와 구가 있습니다. 제 질문은 받아쓰기 문법을 사용하는 방법과 동시에 응용 영역에서 중요한 단어를 지정하는 것입니다. 이는 개발자가 제공 한 단어 및 구문의 목록에 대해서만 음성 인식기의 언어 모델을 부분적으로 수정하는 것입니다.

답변

1

두 가지 옵션이 있습니다.

  1. 당신이 특이한 단어의 집합이있는 경우

    , 당신은 ISpLexicon 인터페이스를 사용하여 단어를 추가 할 수 있습니다 (또는 Windows Speech Recognition Speech Dictionary 사용).
  2. 받아쓰기 인식이 상황에 따라 크게 향상됩니다. 인식을 업데이트 할 때 (사용자가 캐럿 위치를 변경하면) SetDictationContext으로 전화해야합니다.
  3. 마지막으로 Dictation Resource Kit을 사용하여 새로운 받아쓰기 문법을 정의 할 수 있습니다. 최후의 수단으로 만이 작업을 수행하십시오. 매우 복잡한 프로세스입니다.
+0

답장을 보내 주셔서 감사합니다. 이것은 매우 유용하고 유익합니다. 당신의 제안에 따라 좀 더 설명해 드리겠습니다. 1) 실제로 나는 이상한 단어가 없지만 나는 더 많은 말을합니다. 2) 적용 할 수있을 때 이미 받아쓰기 문맥을 사용하고 있습니다. 때로는 사용할 수 없습니다. 3) 나는 당신에게 동의합니다. 여러 개의 문법 객체를 만드는 방법에 대해 생각해보십시오. 하나는 기본 받아쓰기 문법이고, 다른 하나는 세 번째 제안을 기반으로합니다. 각 문법의 우선 순위와 가중치를 수정하여 인식기에로드합니다. 당신은 그 경험이 있습니까? –

+0

@alanturing - 당신이 *보고 싶을 수도있는 한 가지는 일반적인 오인 인식에 대한 인식 결과를 조사하고, 발견 한 경우 그 어구의 대체 어를 검사하고, 대체 어쩌면 대체 어휘를 ​​찾으면 그 어절을 삽입하기 전에 저 지르십시오 문구. –

+0

@alanturing - 여러 개의 받아쓰기 문법 관리. IIRC, 그건별로 잘 작동하지 않습니다. 우선 순위와 가중치는 도움이되지만, 엔진이 특정 가설에 너무 일찍 매달리기는 여전히 쉽습니다. (또한 새로운 받아쓰기 문법은 원래의 받아쓰기 문법의 대부분을 가지고 있어야합니다. 사용자는 일반적으로 "더 가능성있는"하위 집합 외부의 단어를 말합니다.) –