示例#1
0
文件: XBMC.cs 项目: kingtut666/holly
        bool CreateNumberJSGF(string rulename, CMUSphinx_GrammarDict cgd)
        {
            List<string> digit_single = new List<string>();
            digit_single.Add("one");
            digit_single.Add("two");
            digit_single.Add("three");
            digit_single.Add("four");
            digit_single.Add("five");
            digit_single.Add("six");
            digit_single.Add("seven");
            digit_single.Add("eight");
            digit_single.Add("nine");

            List<string> digit_tens = new List<string>();
            digit_tens.Add("twenty");
            digit_tens.Add("thirty");
            digit_tens.Add("fourty");
            digit_tens.Add("fifty");
            digit_tens.Add("sixty");

            List<string> digit_special = new List<string>();
            digit_special.Add("zero");
            digit_special.Add("ten");
            digit_special.Add("eleven");
            digit_special.Add("twelve");
            digit_special.Add("thirteen");
            digit_special.Add("fourteen");
            digit_special.Add("fifteen");
            digit_special.Add("sixteen");
            digit_special.Add("seventeen");
            digit_special.Add("eighteen");
            digit_special.Add("nineteen");

            StringBuilder bld_twodigit = new StringBuilder();
            cgd.JSGFRuleStart("<"+rulename+"_twodigit>", bld_twodigit);
            cgd.JSGFRuleAddChoicesStart(bld_twodigit, digit_tens);
            cgd.JSGFRuleAddChoicesEnd(bld_twodigit);
            cgd.JSGFRuleAddChoicesStart(bld_twodigit, digit_single);
            cgd.JSGFRuleAddChoicesEnd(bld_twodigit);
            cgd.JSGFRuleEnd("<"+rulename + "_twodigit>", bld_twodigit);

            StringBuilder bld_onedigit = new StringBuilder();
            cgd.JSGFRuleStart("<"+rulename + "_onedigit>", bld_onedigit);
            cgd.JSGFRuleAddChoicesStart(bld_onedigit, digit_single);
            cgd.JSGFRuleAddChoicesMore(bld_onedigit, digit_tens);
            cgd.JSGFRuleAddChoicesMore(bld_onedigit, digit_special);
            cgd.JSGFRuleAddChoicesEnd(bld_onedigit);
            cgd.JSGFRuleEnd("<"+rulename + "_onedigit>", bld_onedigit);

            StringBuilder bld = new StringBuilder();
            cgd.JSGFRuleStart("<"+rulename+">", bld);
            cgd.JSGFRuleAddChoicesStart(bld, new List<string>(new string[] { "<"+rulename + "_onedigit>", "<"+rulename + "_twodigit>" }));
            cgd.JSGFRuleAddChoicesEnd(bld);
            cgd.JSGFRuleEnd("<"+rulename+">", bld);

            return true;
        }