使用microsoft.speech的10000字的语法

时间:2013-07-24 12:14:58

标签: c# speech-recognition speech-to-text

我正在使用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个单词时,我在语音识别器录制事件中没有受到任何影响。

请有人帮我实现这个目标吗?

1 个答案:

答案 0 :(得分:2)

您可以尝试对您的短语进行排序并使用Append(String, SubsetMatchingMode)方法;特别是,OrderedSubset将允许匹配字符串的任何线性子集。

然而,更有可能的是,10,000个单词对于命令和数据来说太多了。控制语法。更好的选择是使用DictationGrammar,而不是命令&控制语法。将单词添加到lexicon以确保听写引擎能够识别单词,然后将识别与单词列表进行匹配。

在审核您的问题时,似乎您正在使用Microsoft.Speech命名空间,该命名空间使用不支持听写的服务器引擎;你唯一的选择是第一个。