![]() |
Spracheingaben über die SAPI 5.4 und TSpInProcRecoContext
Hallö,
ich versuche mich an der Spracheingaben über die SAPI 5.4 . Habe die SAPI 5.4 in die IDE eingebunden und versuche jetzt mit TSpInProcRecoContext eingabe über das Micro zu empfangen. Laut MS muss ich über Token das Micro bzw. Audio in ziehen und mit SpInProcRecoContext verbinden. Da scheitere ich schon bei der Übergabe aber warum? Kann mir da einer Helfen?
Delphi-Quellcode:
... SpInProcRecoContext1: TSpInProcRecoContext; SpObjectToken1: TSpObjectToken; ... SpVoice: Variant; objAudioTokenCategory : TSpObjectTokenCategory ; objAudioToken, objEngineToken, objProfileToken : ISpeechObjectToken; function startVoice: Integer; function stopVoice: Integer; ... //------------------------------------------------------------------------------ // start voice function TDM_Voice.startVoice: Integer; var MyTokenCategory: WideString; begin try SpInProcRecoContext1.EventInterests := SREAllEvents; MyTokenCategory := 'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\AudioInput'; // SpeechCategoryAudioIn objAudioTokenCategory := TSpObjectTokenCategory.Create(Nil) ; objAudioTokenCategory.SetId(MyTokenCategory , false); objAudioToken := ISpeechObjectToken(objAudioTokenCategory.DefaultInterface); objAudioToken.SetId(objAudioTokenCategory.Default, MyTokenCategory, false); try MyTokenCategory := 'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Recognizers'; // SpeechCategoryRecognizers objAudioTokenCategory.SetId(MyTokenCategory , false); except on E: Exception do begin // OLE-Fehler 80045002 > schon vorhanden also kein Fehler Logdatent_Schreiben('Fehler in StartVoice Fehler:' +E.Message); end; end; objEngineToken := ISpeechObjectToken(objAudioTokenCategory.DefaultInterface); objEngineToken.SetId(objAudioTokenCategory.Default, MyTokenCategory, false); try MyTokenCategory := 'HKEY_CURRENT_USER\SOFTWARE\Microsoft\Speech\RecoProfiles'; // SpeechCategoryRecoProfiles objAudioTokenCategory.SetId(MyTokenCategory , false); except on E: Exception do begin // OLE-Fehler 80045002 > schon vorhanden also kein Fehler Logdatent_Schreiben('Fehler in StartVoice Fehler:' +E.Message); end; end; objProfileToken := ISpeechObjectToken(objAudioTokenCategory.DefaultInterface); objProfileToken.SetId(objAudioTokenCategory.Default, MyTokenCategory, false); SpInProcRecoContext1.Recognizer.AudioInput := objAudioToken; // Fehler falscher Parameter Warum :oops:???? SpInProcRecoContext1.Recognizer.Profile := objProfileToken; SpInProcRecoContext1.Recognizer.CreateRecoContext; SpInProcRecoContext1.Connect; Logdatent_Schreiben('Starte Voice'); except on E: Exception do begin Logdatent_Schreiben('Fehler in StartVoice Fehler:' +E.Message); end; end; end; |
AW: Spracheingaben über die SAPI 5.4 und TSpInProcRecoContext
habe das noch gefunden:
![]() Wie setze ich es nur in Pascal um? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:57 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz