簡體   English   中英

語法[en-us]至[en-gb]

[英]Grammar [en-us] to [en-gb]

我需要幫助將代碼中的語法類型設置為en-GB,因為默認情況下為en-US。 這是代碼:

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);
    } 

我已經對該主題進行了一些研究,因為我使用的是System.Speech.Recognition所以我知道它與“文化”有關。 您可能比我了解更多,因為我是新來的。 如何解決此問題?

您需要將GrammarBuilder上的GrammarBuilder為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);
} 

您需要在當前線程上設置區域性,如下所示:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM