我在使用Microsoft.Speech构建语法时遇到了一些问题,以构建葡萄牙语语法。
我手动构建了一个语法,但还不够好。我听说我可以在System.Speech中使用听写语法来构建我的语法,但似乎它不支持葡萄牙语。
我的程序必须能够识别一些音频文件。这些音频文件的声音非常清晰(声音总是相同的)。声音包括一些字母,但我不知道如何建立一个好的语法。
有没有办法使用Microsoft.Speech以葡萄牙语建立一个字母语法?
一些样本:
private static readonly Dictionary<string, string> _lettersGrammar = new Dictionary<string, string>()
{
{ "a", "a" },
{ "bê", "b" },
{ "cê", "c" },
{ "dê", "d" },
{ "é", "e" },
{ "efe", "f" },
{ "gê", "g" },
{ "agá", "h" },
{ "i", "i" },
{ "jota", "j" },
{ "cá", "k" },
{ "ele", "l" },
{ "eme", "m" },
{ "ene", "n" },
{ "ó", "o" },
{ "pê", "p" },
{ "quê", "q" },
{ "erre", "r" },
{ "esse", "s" },
{ "tê", "t" },
{ "u", "u" },
{ "vê", "v" },
{ "dáblio", "w" },
{ "xis", "x" },
{ "ípsilon", "y" },
{ "zê", "x" }
};
recognizer = new SpeechRecognitionEngine (new CultureInfo("pt-BR"));
recognizer.LoadGrammar (new Grammar (new GrammarBuilder (new Choices (_lettersGrammar.Keys.ToArray ()))) { Name = "Letters_Grammar" });
recognizer.SpeechRecognitionRejected += SpeechRecognitionRejected;
recognizer.SpeechRecognized += SpeechRecognized;
recognizer.RecognizeCompleted += RecognizeCompletedHandler;
有什么建议吗?
非常感谢你们!
答案 0 :(得分:2)
我注意到的一件事是你没有设置GrammarBuilder
的{{3}}属性。 Culture
的{{1}}属性必须与GrammarBuilder
匹配,否则您将无法获得任何认可。
Microsoft.Speech识别引擎不支持听写,因此不能选择。
您提供的语法与一个字母匹配。如果您想要重复,则需要添加中间Culture
。