我正在使用microsoft.speech识别我机器中波形文件中的语音。
我没有在选择集中添加单词,而是从文本文件中读取单词,然后将单词添加到语法中。
但我发现当我尝试在语法中添加超过73个单词时,我的录制文件永远不会被识别。
这是我的代码:
System.IO.StreamReader file = new System.IO.StreamReader(filePath);
while ((line = file.ReadLine()) != null)
{
if (line != "")
{
words.Add(line);
counter++;
}
}
file.Close();
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);
public void recognizer_SpeechRecognizedRecording(object sender, SpeechRecognizedEventArgs e)
{
string text = e.Result.Text;
}
但是当我的文本文件中存在超过73个单词时,我在语音识别器录制事件中没有受到任何影响。
请有人帮我实现这个目标吗?
答案 0 :(得分:2)
您可以尝试对您的短语进行排序并使用Append(String, SubsetMatchingMode)
方法;特别是,OrderedSubset
将允许匹配字符串的任何线性子集。
DictationGrammar
,而不是命令&控制语法。将单词添加到lexicon以确保听写引擎能够识别单词,然后将识别与单词列表进行匹配。
在审核您的问题时,似乎您正在使用Microsoft.Speech命名空间,该命名空间使用不支持听写的服务器引擎;你唯一的选择是第一个。