这是我的代码,我不熟悉SpeechLib Dll我推荐了一个网站,我刚试过。
我已经使用System.Speech命名空间对文本应用程序进行了语音处理。但在那里我无法获得100%的准确度,所以只有我只是尝试可能的可能性。
static void Main(string[] args)
{
wavRecoContext = new SpInProcRecoContext();
((SpInProcRecoContext)wavRecoContext).Recognition += new _ISpeechRecoContextEvents_RecognitionEventHandler(Program_Recognition);
((SpInProcRecoContext)wavRecoContext).Hypothesis += new _ISpeechRecoContextEvents_HypothesisEventHandler(Program_Hypothesis);
((SpInProcRecoContext)wavRecoContext).EndStream += new _ISpeechRecoContextEvents_EndStreamEventHandler(Program_EndStream);
grammar = wavRecoContext.CreateGrammar(0);
grammar.DictationLoad("", SpeechLoadOption.SLOStatic);
inputFileStream = new SpFileStream();
inputFileStream.Open("aboutus.wav", SpeechStreamFileMode.SSFMOpenForRead, false);
wavRecoContext.Recognizer.AudioInputStream = inputFileStream;
grammar.DictationSetState(SpeechRuleState.SGDSActive);
Console.ReadKey();
}
static void Program_Hypothesis(int StreamNumber, object StreamPosition, ISpeechRecoResult Result)
{
throw new NotImplementedException();
}
static void Program_EndStream(int StreamNumber, object StreamPosition, bool StreamReleased)
{
grammar.DictationSetState(SpeechRuleState.SGDSInactive);
}
static void Program_Recognition(int StreamNumber, object StreamPosition, SpeechRecognitionType RecognitionType, ISpeechRecoResult Result)
{
Console.WriteLine(Result.PhraseInfo.GetText(0, -1, true));
}
}
我无法弄清楚我在这里犯了什么错误。 如果有人有这个问题的经验,请给我解决方案。
答案 0 :(得分:1)
您没有选择SR引擎。进程内重新上下文需要指定音频源和识别引擎。
我有一些C++ code to do this,但我还没有把它翻译成C#/ SpeechLib。