我有一个应用程序,用户可以在其中说话和一个词,他将获得他所说的词的准确百分比。即引擎识别这个词的程度。
这一切都很好,但我有一个难题,需要将哪些单词添加到字典中,我将作为字典提供给识别引擎。
如果我为 case pen 给出以“p”开头的单词,那么像 pendant、pent 等所有单词都将被添加到字典中。在这种情况下,我没有得到识别为“pen”的单词。
相反,我总是得到其他词,如“吊坠”等
但是,如果我只在字典中添加有限的单词,例如“pe”、“pen”,那么对于同一个录制文件,我只能将识别的单词作为“Pen”。
意味着它显然取决于我们提供给字典的单词。
我已经向我的客户传达了同样的信息。但是他们想要的是,对于给定的输入词,他们也可以说出错误的词,所以当时他们不需要获得准确性并获得识别的文本。
我已经为这个问题做了我本可以做的事情。但是我的客户需要宇宙之外的东西。
代码 :
public OdllSpeechProcessor(string culture, string speechContent , string filePath)
{
try
{
int counter = 0;
string line;
cultureInfo = new CultureInfo(culture);
recognitionEngine = new SpeechRecognitionEngine(cultureInfo);
words = new Choices();
gb = new GrammarBuilder();
gb.Culture = cultureInfo;
rndAccuracy = new Random();
System.IO.StreamReader file = new System.IO.StreamReader(filePath);
while ((line = file.ReadLine()) != null)
{
if (line != "")
{
for (int i = 0; i < srcContent.Length; i++)
{
if (line.StartsWith(subsetWords, true, cultureInfo))
{
if (count >= line.Length)
{
words.Add(line);
counter++;
}
}
}
}
}
file.Close();
// Adding words to the grammar builder.
gb.Append(words);
// Create the actual Grammar instance, with the words from the source audio.
g = new Grammar(gb);
// Load the created grammar onto the speech recognition engine.
recognitionEngine.LoadGrammarAsync(g);
有没有专家在这里解决这个问题?任何帮助将不胜感激。
谢谢