[英]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.