안녕하세요!Microsoft Speech SDK 11의 문법이 너무 많습니다.
나는 엔진에 문법을로드 할 수있는 간단한 음성 인식 응용 프로그램을 작성합니다.
하지만, 많은 문법을 엔진에로드 할 수는 없지만 1024 문법보다 많지는 않습니다.
Additional information: Too many grammars have been loaded. Number of grammars cannot exceed 1024.
그리고 내가 그것을 입력 스트림 * 웨이브 (내 soeech) 파일을 인식하지 못합니다 grammars- 1024로드 할 때 :
Thread.CurrentThread.CurrentCulture = new CultureInfo("ru-RU");
Thread.CurrentThread.CurrentUICulture = new CultureInfo("ru-RU");
// Create a new SpeechRecognitionEngine instance.
_sre = new SpeechRecognitionEngine(new System.Globalization.CultureInfo("ru-RU"));
_sre.SpeechHypothesized += _sre_SpeechHypothesized;
_sre.SpeechDetected += _sre_SpeechDetected;
_sre.SetInputToWaveFile(@"c:\Test\Wavs\Wavs-converted\file.wav");
public void LoadGrammarIntoEngine(IEnumerable<String> textColl)
{
Choices choises = new Choices();
GrammarBuilder gb = new GrammarBuilder();
gb.Culture = new CultureInfo("ru-RU");
if (choises != null && textColl != null)
{
choises.Add(textColl.ToArray());
if (gb != null)
gb.Append(choises);
else
{
Console.WriteLine();
}
if (_sre.Grammars.Count < 1024)
{
Grammar g = new Grammar(gb);
if (_sre != null && g != null)
_sre.LoadGrammar(g);
else
{
Console.WriteLine();
}
}
else
{
Console.WriteLine("too many grammars");
}
}
}
당신이 날 도와 줄 수 있습니까? 고맙습니다!
P. 내가 5-10 개의 문법 (각 단어 100 개)을로드 할 때 잘 동작합니다.
더 많은 인식 엔진을 함께 사용할 수 있습니까?
왜 지구상에 많은 문법이 필요합니까? ['GrammarBuilder'] (http://msdn.microsoft.com/en-us/library/system.speech.recognition.grammarbuilder (v = vs.110) .aspx)와 ['GrammarBuilder'를 사용하여 병합 할 수 있어야합니다. 선택 사항] (http://msdn.microsoft.com/en-us/library/system.speech.recognition.choices (v = vs.110) .aspx). –
예, 문법이 매우 큰 경우 - 1000+ 단어 (SGRS- 문법이 아닌 단어 목록 사용) - 음성 인식기가 단어를 인식 할 수 없습니다. – user2545071
* 구문 *을 작성하는 경우 문제없이 1000 단어 이상을 사용할 수 있어야합니다. 임의의 순서로 발생할 수있는 1000 개의 단어 집합을 인식하려고한다면 명령 및 제어 엔진에서 받아쓰기 엔진을 효과적으로 만들려고 노력하고 있으며 제 경험상 절대로 작동하지 않습니다. 좋은 자유 텍스트 인식을 얻으려면 어쿠스틱 모델이 아닌 언어 모델을 이해할 수있는 엔진이 필요합니다. –