📄 adsapien.pas
字号:
{*********************************************************}
{* ADSAPIEN.PAS 4.04 *}
{* Copyright (C) TurboPower Software 2002 *}
{* All rights reserved. *}
{*********************************************************}
{Global defines potentially affecting this unit}
{$I AWDEFINE.INC}
unit AdSapiEn;
interface
uses
Windows,
ActiveX,
Classes,
Graphics,
{$IFDEF Delphi5}
OleServer,
{$ENDIF}
OleCtrls,
StdVCL,
SysUtils,
Controls,
OoMisc,
AdISapi,
AdSapiGr,
{$IFDEF Delphi5}
Contnrs,
{$ENDIF}
Messages,
Forms,
Dialogs,
AdExcept,
ComObj;
const
{ Constants from the Speech API }
{ TTS Character Sets }
ApdCHARSET_TEXT = $00;
ApdCHARSET_IPAPHONETIC = $01;
ApdCHARSET_ENGINEPHONETIC = $02;
{ TTS Options }
ApdTTSDATAFLAG_TAGGED = $01;
{ TTS Ages }
ApdTTSAGE_BABY = 1;
ApdTTSAGE_TODDLER = 3;
ApdTTSAGE_CHILD = 6;
ApdTTSAGE_ADOLESCENT = 14;
ApdTTSAGE_ADULT = 30;
ApdTTSAGE_ELDERLY = 70;
{ TTS Features }
ApdTTSFEATURE_ANYWORD = $00001;
ApdTTSFEATURE_VOLUME = $00002;
ApdTTSFEATURE_SPEED = $00004;
ApdTTSFEATURE_PITCH = $00008;
ApdTTSFEATURE_TAGGED = $00010;
ApdTTSFEATURE_IPAUNICODE = $00020;
ApdTTSFEATURE_VISUAL = $00040;
ApdTTSFEATURE_WORDPOSITION = $00080;
ApdTTSFEATURE_PCOPTIMIZED = $00100;
ApdTTSFEATURE_PHONEOPTIMIZED = $00200;
ApdTTSFEATURE_FIXEDAUDIO = $00400;
ApdTTSFEATURE_SINGLEINSTANCE = $00800;
ApdTTSFEATURE_THREADSAFE = $01000;
ApdTTSFEATURE_IPATEXTDATA = $02000;
ApdTTSFEATURE_PREFERRED = $04000;
ApdTTSFEATURE_TRANSPLANTED = $08000;
ApdTTSFEATURE_SAPI4 = $10000;
{ TTS Genders }
ApdGENDER_NEUTRAL = 0;
ApdGENDER_FEMALE = 1;
ApdGENDER_MALE = 2;
{ TTS Interfaces }
ApdTTSI_ILEXPRONOUNCE = $01;
ApdTTSI_ITTSATTRIBUTES = $02;
ApdTTSI_ITTSCENTRAL = $04;
ApdTTSI_ITTSDIALOGS = $08;
ApdTTSI_ATTRIBUTES = $10;
ApdTTSI_IATTRIBUTES = $10;
ApdTTSI_ILEXPRONOUNCE2 = $20;
{ SR Features }
ApdSRFEATURE_INDEPSPEAKER = $00001;
ApdSRFEATURE_INDEPMICROPHONE = $00002;
ApdSRFEATURE_TRAINWORD = $00004;
ApdSRFEATURE_TRAINPHONETIC = $00008;
ApdSRFEATURE_WILDCARD = $00010;
ApdSRFEATURE_ANYWORD = $00020;
ApdSRFEATURE_PCOPTIMIZED = $00040;
ApdSRFEATURE_PHONEOPTIMIZED = $00080;
ApdSRFEATURE_GRAMLIST = $00100;
ApdSRFEATURE_GRAMLINK = $00200;
ApdSRFEATURE_MULTILINGUAL = $00400;
ApdSRFEATURE_GRAMRECURSIVE = $00800;
ApdSRFEATURE_IPAUNICODE = $01000;
ApdSRFEATURE_SINGLEINSTANCE = $02000;
ApdSRFEATURE_THREADSAFE = $04000;
ApdSRFEATURE_FIXEDAUDIO = $08000;
ApdSRFEATURE_IPAWORD = $10000;
ApdSRFEATURE_SAPI4 = $20000;
{ SR Supported grammar types }
ApdSRGRAM_CFG = $1;
ApdSRGRAM_DICTATION = $2;
ApdSRGRAM_LIMITEDDOMAIN = $4;
{ SR Interfaces }
ApdSRI_ILEXPRONOUNCE = $0000001;
ApdSRI_ISRATTRIBUTES = $0000002;
ApdSRI_ISRCENTRAL = $0000004;
ApdSRI_ISRDIALOGS = $0000008;
ApdSRI_ISRGRAMCOMMON = $0000010;
ApdSRI_ISRGRAMCFG = $0000020;
ApdSRI_ISRGRAMDICTATION = $0000040;
ApdSRI_ISRGRAMINSERTIONGUI = $0000080;
ApdSRI_ISRESBASIC = $0000100;
ApdSRI_ISRESMERGE = $0000200;
ApdSRI_ISRESAUDIO = $0000400;
ApdSRI_ISRESCORRECTION = $0000800;
ApdSRI_ISRESEVAL = $0001000;
ApdSRI_ISRESGRAPH = $0002000;
ApdSRI_ISRESMEMORY = $0004000;
ApdSRI_ISRESMODIFYGUI = $0008000;
ApdSRI_ISRESSPEAKER = $0010000;
ApdSRI_ISRSPEAKER = $0020000;
ApdSRI_ISRESSCORES = $0040000;
ApdSRI_ISRESAUDIOEX = $0080000;
ApdSRI_ISRGRAMLEXPRON = $0100000;
ApdSRI_ISRRESGRAPHEX = $0200000;
ApdSRI_ILEXPRONOUNCE2 = $0400000;
ApdSRI_IATTRIBUTES = $0800000;
ApdSRI_ISRSPEAKER2 = $1000000;
ApdSRI_ISRDIALOGS2 = $2000000;
{ SR Sequences }
ApdSRSEQUENCE_DISCRETE = 0;
ApdSRSEQUENCE_CONTINUOUS = 1;
ApdSRSEQUENCE_WORDSPOT = 2;
ApdSRSEQUENCE_CONTCFGDISCDICT = 3;
{ SR Interference Types }
ApdSRMSGINT_NOISE = $0001;
ApdSRMSGINT_NOSIGNAL = $0002;
ApdSRMSGINT_TOOLOUD = $0003;
ApdSRMSGINT_TOOQUIET = $0004;
ApdSRMSGINT_AUDIODATA_STOPPED = $0005;
ApdSRMSGINT_AUDIODATA_STARTED = $0006;
ApdSRMSGINT_IAUDIO_STARTED = $0007;
ApdSRMSGINT_IAUDIO_STOPPED = $0008;
{ SR Training Requests }
ApdSRGNSTRAIN_GENERAL = $01;
ApdSRGNSTRAIN_GRAMMAR = $02;
ApdSRGNSTRAIN_MICROPHONE = $04;
{ SS Error codes }
ApdTTSERR_NONE = $00000000;
ApdTTSERR_INVALIDINTERFACE = $80004002;
ApdTTSERR_OUTOFDISK = $80040205;
ApdTTSERR_NOTSUPPORTED = $80004001;
ApdTTSERR_VALUEOUTOFRANGE = $8000FFFF;
ApdTTSERR_INVALIDWINDOW = $8004000F;
ApdTTSERR_INVALIDPARAM = $80070057;
ApdTTSERR_INVALIDMODE = $80040206;
ApdTTSERR_INVALIDKEY = $80040209;
ApdTTSERR_WAVEFORMATNOTSUPPORTED = $80040202;
ApdTTSERR_INVALIDCHAR = $80040208;
ApdTTSERR_QUEUEFULL = $8004020A;
ApdTTSERR_WAVEDEVICEBUSY = $80040203;
ApdTTSERR_NOTPAUSED = $80040501;
ApdTTSERR_ALREADYPAUSED = $80040502;
{ SR Error Codes }
ApdSRERR_NONE = $00000000;
ApdSRERR_OUTOFDISK = $80040205;
ApdSRERR_NOTSUPPORTED = $80004001;
ApdSRERR_NOTENOUGHDATA = $80040201;
ApdSRERR_VALUEOUTOFRANGE = $8000FFFF;
ApdSRERR_GRAMMARTOOCOMPLEX = $80040406;
ApdSRERR_GRAMMARWRONGTYPE = $80040407;
ApdSRERR_INVALIDWINDOW = $8004000F;
ApdSRERR_INVALIDPARAM = $80070057;
ApdSRERR_INVALIDMODE = $80040206;
ApdSRERR_TOOMANYGRAMMARS = $8004040B;
ApdSRERR_INVALIDLIST = $80040207;
ApdSRERR_WAVEDEVICEBUSY = $80040203;
ApdSRERR_WAVEFORMATNOTSUPPORTED = $80040202;
ApdSRERR_INVALIDCHAR = $80040208;
ApdSRERR_GRAMTOOCOMPLEX = $80040406;
ApdSRERR_GRAMTOOLARGE = $80040411;
ApdSRERR_INVALIDINTERFACE = $80004002;
ApdSRERR_INVALIDKEY = $80040209;
ApdSRERR_INVALIDFLAG = $80040204;
ApdSRERR_GRAMMARERROR = $80040416;
ApdSRERR_INVALIDRULE = $80040417;
ApdSRERR_RULEALREADYACTIVE = $80040418;
ApdSRERR_RULENOTACTIVE = $80040419;
ApdSRERR_NOUSERSELECTED = $8004041A;
ApdSRERR_BAD_PRONUNCIATION = $8004041B;
ApdSRERR_DATAFILEERROR = $8004041C;
ApdSRERR_GRAMMARALREADYACTIVE = $8004041D;
ApdSRERR_GRAMMARNOTACTIVE = $8004041E;
ApdSRERR_GLOBALGRAMMARALREADYACTIVE = $8004041F;
ApdSRERR_LANGUAGEMISMATCH = $80040420;
ApdSRERR_MULTIPLELANG = $80040421;
ApdSRERR_LDGRAMMARNOWORDS = $80040422;
ApdSRERR_NOLEXICON = $80040423;
ApdSRERR_SPEAKEREXISTS = $80040424;
ApdSRERR_GRAMMARENGINEMISMATCH = $80040425;
ApdSRERR_BOOKMARKEXISTS = $80040426;
ApdSRERR_BOOKMARKDOESNOTEXIST = $80040427;
ApdSRERR_MICWIZARDCANCELED = $80040428;
ApdSRERR_WORDTOOLONG = $80040429;
ApdSRERR_BAD_WORD = $8004042A;
ApdE_WRONGTYPE = $8004020C;
ApdE_BUFFERTOOSMALL = $8004020D;
type
TApdSapiDuplex = (sdFull, sdHalf, sdHalfDelayed);
TApdSapiWaitMode = (wmNone, wmWaitSpeaking, wmWaitListening,
wmRestoreListen);
TApdCharacterSet = (csText, csIPAPhonetic, csEnginePhonetic);
TApdTTSOptions = set of (toTagged);
TApdTTSAge = (tsBaby, tsToddler, tsChild, tsAdolescent, tsAdult, tsElderly,
tsUnknown);
TApdTTSFeatures = set of (tfAnyWord, tfVolume, tfSpeed, tfPitch, tfTagged,
tfIPAUnicode, tfVisual, tfWordPosition,
tfPCOptimized, tfPhoneOptimized, tfFixedAudio,
tfSingleInstance, tfThreadSafe, tfIPATextData,
tfPreferred, tfTransplanted, tfSAPI4);
TApdTTSGender = (tgNeutral, tgFemale, tgMale, tgUnknown);
TApdTTSInterfaces = set of (tiLexPronounce, tiTTSAttributes, tiTTSCentral,
tiTTSDialogs, tiAttributes, tiIAttributes,
tiLexPronounce2);
TApdSRFeatures = set of (sfIndepSpeaker, sfIndepMicrophone, sfTrainWord,
sfTrainPhonetic, sfWildcard, sfAnyWord,
sfPCOptimized, sfPhoneOptimized, sfGramList,
sfGramLink, sfMultiLingual, sfGramRecursive,
sfIPAUnicode, sfSingleInstance, sfThreadSafe,
sfFixedAudio, sfIPAWord, sfSAPI4);
TApdSRGrammars = set of (sgCFG, sgDictation, sgLimitedDomain);
TApdSRInterfaces = set of (siLexPronounce, siSRAttributes, siSRCentral,
siSRGramCommon, siSRDialogs, siSRGramCFG,
siSRGramDictation, siSRGramInsertionGui,
siSREsBasic, siSREsMerge, siSREsAudio,
siSREsCorrection, siSREsEval, siSREsGraph,
siSREsMemory, siSREsModifyGui, siSREsSpeaker,
siSRSpeaker, siSREsScores, siSREsAudioEx,
siSRGramLexPron, siSREsGraphEx, siLexPronounce2,
siAttributes, siSRSpeaker2, siSRDialogs2);
TApdSRSequences = (ssDiscrete, ssContinuous, ssWordSpot, ssContCFGDiscDict,
ssUnknown);
TApdSRInterferenceType = (itAudioStarted, itAudioStopped, itDeviceOpened,
itDeviceClosed, itNoise, itTooLoud, itTooQuiet,
itUnknown);
TApdSRTrainingType = set of (ttCurrentMic, ttCurrentGrammar, ttGeneral);
{ Event types }
TApdOnSapiError =
procedure (Sender : TObject; Error : LongWord;
const Details : string; const Message : string) of object;
TApdSapiNotifyEvent =
procedure (Sender : TObject) of object;
TApdSRInterferenceEvent =
procedure (Sender : TObject;
InterferenceType : TApdSRInterferenceType) of object;
TApdSRPhraseFinishEvent =
procedure (Sender : TObject; const Phrase : string) of object;
TApdSRPhraseHypothesisEvent =
procedure (Sender : TObject; const Phrase : string) of object;
TApdSRTrainingRequestedEvent =
procedure (Sender : TObject; Training : TApdSRTrainingType) of object;
TApdSRVUMeterEvent =
procedure (Sender : TObject; Level : Integer) of object;
TApdSSAttributeChanged =
procedure (Sender : TObject; Attribute: Integer) of object;
{ Hook methods }
TApdPhraseFinishMethod =
procedure (Sender : TObject; Phrase : string; Results : Integer) of object;
PApdPhraseFinishMethod = ^TApdPhraseFinishMethod;
TApdRegisteredEventTypes = (etPhraseFinish);
PApdRegisteredEvent = ^TApdRegisteredEvent;
TApdRegisteredEvent = record
CallBack : TApdPhraseFinishMethod;
EventType : TApdRegisteredEventTypes;
Active : Boolean;
end;
{ Exceptions }
EApdSapiEngineException = class (Exception)
private
FErrorCode : Integer;
public
constructor Create (const ErrCode : Integer; const Msg : string);
{ Note: ErrCode is before the string to prevent problems in compiling
with C++ Builder }
published
property ErrorCode : Integer read FErrorCode;
end;
{ TApdSSVoices }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -