Delphi如何使用Microsoft语音识别API

时间:2018-11-07 17:20:16

标签: delphi

我需要代码方面的帮助,我的应用程序应该可以表达自己的想法,并在TMemo组件中写下我说的所有内容,但这根本不起作用 这是我的代码: 正在使用SAPI 5.4 Microsoft语音对象库

procedure TForm1.initRecognizer;
begin
    // Create Voice Handler
    SpVoice := TSpVoice.Create(nil);
    //**//
    // Create Reconizer Context
    SpInProcRecoContext := TSpInProcRecoContext.Create(nil);
    SpInProcRecoContext.OnHypothesis  := SpInProcRecoContextHypothesis;
    SpInProcRecoContext.OnRecognition := SpInProcRecoContextRecognition;
    //**//
    // Create Grammar Rule
    RecoGrammar := SpInProcRecoContext.CreateGrammar(0);
    RecoGrammar.DictationSetState(SGDSActive);
    //**//
end;

procedure TForm1.SpInProcRecoContextHypothesis(ASender: TObject;
  StreamNumber: Integer; StreamPosition: OleVariant;
  const Result: ISpeechRecoResult);
begin
     Memo1.Text := Result.PhraseInfo.GetText(0,-1,true);
end;

procedure TForm1.SpInProcRecoContextRecognition(ASender: TObject;
  StreamNumber: Integer; StreamPosition: OleVariant;
  RecognitionType: SpeechRecognitionType; const Result: ISpeechRecoResult);
begin
    SpInProcRecoContext.Recognizer.AudioInput := Result;
    Memo1.Text := Result.PhraseInfo.GetText(0,-1,true);
end;

请修复,请多谢。

0 个答案:

没有答案