【发布时间】:2023-04-05 06:48:01
【问题描述】:
我想将任何语音数字转换为整数,以便我可以对它们执行操作,例如:
twenty-one >> 21
我设法对我正在使用的小范围数字进行了计算。
我正在遵循这个策略(但它不起作用,因为我需要用户说出任何数字):
string[] numberString =
{
"zero", "one", "two", "three", "four", "five",
"six", "seven", "eight", "nine", "ten",
"eleven", "twelve", "thirteen", "fourteen", "fifteen",
"sixteen", "seventeen", "eighteen", "nineteen", "twenty"
};
Choices numberChoices = new Choices();
for (int i = 0; i < numberString.Length; i++)
{
numberChoices.Add(new SemanticResultValue(numberString[i], i));
}
gb[1].Append(new SemanticResultKey("number1", (GrammarBuilder)numberChoices));
因为我不会写下所有的数字...所以有什么聪明的方法可以做到这一点吗?
更新 1:
我尝试了以下方法:
Choices numberChoices = new Choices();
for (int i = 0; i <= 100; i++)
{
numberChoices.Add(i.ToString());
}
gb[1].Append(new SemanticResultKey("op1", (GrammarBuilder)numberChoices));
Choices choices = new Choices(gb);
现在我可以拥有 100 个数字,但如果我将其设为 100 万,则加载需要相当长的时间,并且需要超过 2GB 的内存,并且无法实时完成加载。 使用 100 个数字,准确度很差,不能正确识别 12 个数字,有时甚至低于 10 个数字。
【问题讨论】:
-
首先您应该编辑并添加更多标签,例如您使用的编程语言。还给我们一些代码。你提供的东西没有帮助,甚至没有尝试。
标签: c# .net speech-recognition