2013-07-24 9 views
1

내 코드의 문법 유형을 en-GB로 설정하는 데 도움이 필요합니다. 기본적으로 en-US입니다. 여기 코드는 다음과 같습니다문법 [en-us] to [en-gb]

private void Form1_Load(object sender, EventArgs e) 
    { 
     _recognizer.SetInputToDefaultAudioDevice(); 
     _recognizer.LoadGrammar(new DictationGrammar()); 
     _recognizer.LoadGrammar(new Grammar(new GrammarBuilder(new Choices(File.ReadAllLines(@"C:\Users\Tahmid\Documents\Commands.txt"))))); 
     _recognizer.SpeechRecognized += new EventHandler<SpeechRecognizedEventArgs>(_recognizer_SpeechRecognized); 
     _recognizer.RecognizeAsync(RecognizeMode.Multiple); 
    } 

I'v이 주제에 대한 몇 가지 연구를하고, 내가 System.Speech.Recognition을 사용하고 있기 때문에 나는 "문화"함께 할 수있는 뭔가가 알고있다. 내가 처음이기 때문에 너는 나보다 더 많이 알 것이다. 이 문제를 어떻게 해결할 수 있습니까?

답변

1

당신은`GrammarBuilder`에 CultureInfo를 설정하는 EN-GB

private void Form1_Load(object sender, EventArgs e) 
{ 
    _recognizer.SetInputToDefaultAudioDevice(); 
    _recognizer.LoadGrammar(new DictationGrammar()); 
    var grammarBuilder = new GrammarBuilder(
       new Choices(
       File.ReadAllLines(
       @"C:\Users\Tahmid\Documents\Commands.txt"))); 
    grammarBuilder.Culture = new System.Globalization.CultureInfo("en-GB"); 
    _recognizer.LoadGrammar(new Grammar(grammarBuilder)); 
    _recognizer.SpeechRecognized += new EventHandler<SpeechRecognizedEventArgs>(_recognizer_SpeechRecognized); 
    _recognizer.RecognizeAsync(RecognizeMode.Multiple); 
} 
아마
+0

EDIT, Nevermind, 그건 내 끝이에요. 귀하의 답변 주셔서 감사합니다! 그것은 일했다!! –

0

당신은 다음과 같이 현재 스레드의 문화를 설정해야합니다

System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("en-GB"); 
+0

더 나은에 set the culture on your GrammarBuilder 필요 스레드에서 다른 것을 엉망으로 만들 위험이 있습니다. – Mgetz

+0

답변 해 주셔서 감사합니다. –