SpeechSynthesis.h
上传用户:xjjlds
上传日期:2015-12-05
资源大小:22823k
文件大小:22k
- /*
- File: SpeechSynthesis.h
-
- Contains: Speech Interfaces.
-
- Version: Technology: System 7.5
- Release: QuickTime 6.0.2
-
- Copyright: (c) 1989-2001 by Apple Computer, Inc., all rights reserved.
-
- Bugs?: For bug reports, consult the following page on
- the World Wide Web:
-
- http://developer.apple.com/bugreporter/
-
- */
- #ifndef __SPEECHSYNTHESIS__
- #define __SPEECHSYNTHESIS__
- #ifndef __MACTYPES__
- #include "MacTypes.h"
- #endif
- #ifndef __MIXEDMODE__
- #include "MixedMode.h"
- #endif
- #ifndef __FILES__
- #include "Files.h"
- #endif
- #if PRAGMA_ONCE
- #pragma once
- #endif
- #ifdef __cplusplus
- extern "C" {
- #endif
- #if PRAGMA_IMPORT
- #pragma import on
- #endif
- #if PRAGMA_STRUCT_ALIGN
- #pragma options align=mac68k
- #elif PRAGMA_STRUCT_PACKPUSH
- #pragma pack(push, 2)
- #elif PRAGMA_STRUCT_PACK
- #pragma pack(2)
- #endif
- enum {
- kTextToSpeechSynthType = FOUR_CHAR_CODE('ttsc'),
- kTextToSpeechVoiceType = FOUR_CHAR_CODE('ttvd'),
- kTextToSpeechVoiceFileType = FOUR_CHAR_CODE('ttvf'),
- kTextToSpeechVoiceBundleType = FOUR_CHAR_CODE('ttvb')
- };
- enum {
- kNoEndingProsody = 1,
- kNoSpeechInterrupt = 2,
- kPreflightThenPause = 4
- };
- enum {
- kImmediate = 0,
- kEndOfWord = 1,
- kEndOfSentence = 2
- };
- /*------------------------------------------*/
- /* GetSpeechInfo & SetSpeechInfo selectors */
- /*------------------------------------------*/
- enum {
- soStatus = FOUR_CHAR_CODE('stat'),
- soErrors = FOUR_CHAR_CODE('erro'),
- soInputMode = FOUR_CHAR_CODE('inpt'),
- soCharacterMode = FOUR_CHAR_CODE('char'),
- soNumberMode = FOUR_CHAR_CODE('nmbr'),
- soRate = FOUR_CHAR_CODE('rate'),
- soPitchBase = FOUR_CHAR_CODE('pbas'),
- soPitchMod = FOUR_CHAR_CODE('pmod'),
- soVolume = FOUR_CHAR_CODE('volm'),
- soSynthType = FOUR_CHAR_CODE('vers'),
- soRecentSync = FOUR_CHAR_CODE('sync'),
- soPhonemeSymbols = FOUR_CHAR_CODE('phsy'),
- soCurrentVoice = FOUR_CHAR_CODE('cvox'),
- soCommandDelimiter = FOUR_CHAR_CODE('dlim'),
- soReset = FOUR_CHAR_CODE('rset'),
- soCurrentA5 = FOUR_CHAR_CODE('myA5'),
- soRefCon = FOUR_CHAR_CODE('refc'),
- soTextDoneCallBack = FOUR_CHAR_CODE('tdcb'), /* use with SpeechTextDoneProcPtr*/
- soSpeechDoneCallBack = FOUR_CHAR_CODE('sdcb'), /* use with SpeechDoneProcPtr*/
- soSyncCallBack = FOUR_CHAR_CODE('sycb'), /* use with SpeechSyncProcPtr*/
- soErrorCallBack = FOUR_CHAR_CODE('ercb'), /* use with SpeechErrorProcPtr*/
- soPhonemeCallBack = FOUR_CHAR_CODE('phcb'), /* use with SpeechPhonemeProcPtr*/
- soWordCallBack = FOUR_CHAR_CODE('wdcb'),
- soSynthExtension = FOUR_CHAR_CODE('xtnd'),
- soSoundOutput = FOUR_CHAR_CODE('sndo')
- };
- /*------------------------------------------*/
- /* Speaking Mode Constants */
- /*------------------------------------------*/
- enum {
- modeText = FOUR_CHAR_CODE('TEXT'), /* input mode constants */
- modePhonemes = FOUR_CHAR_CODE('PHON'),
- modeNormal = FOUR_CHAR_CODE('NORM'), /* character mode and number mode constants */
- modeLiteral = FOUR_CHAR_CODE('LTRL')
- };
- enum {
- soVoiceDescription = FOUR_CHAR_CODE('info'),
- soVoiceFile = FOUR_CHAR_CODE('fref')
- };
- typedef struct OpaqueSpeechChannel* SpeechChannel;
- struct VoiceSpec {
- OSType creator;
- OSType id;
- };
- typedef struct VoiceSpec VoiceSpec;
- typedef VoiceSpec * VoiceSpecPtr;
- enum {
- kNeuter = 0,
- kMale = 1,
- kFemale = 2
- };
- struct VoiceDescription {
- long length;
- VoiceSpec voice;
- long version;
- Str63 name;
- Str255 comment;
- short gender;
- short age;
- short script;
- short language;
- short region;
- long reserved[4];
- };
- typedef struct VoiceDescription VoiceDescription;
- struct VoiceFileInfo {
- FSSpec fileSpec;
- short resID;
- };
- typedef struct VoiceFileInfo VoiceFileInfo;
- struct SpeechStatusInfo {
- Boolean outputBusy;
- Boolean outputPaused;
- long inputBytesLeft;
- short phonemeCode;
- };
- typedef struct SpeechStatusInfo SpeechStatusInfo;
- struct SpeechErrorInfo {
- short count;
- OSErr oldest;
- long oldPos;
- OSErr newest;
- long newPos;
- };
- typedef struct SpeechErrorInfo SpeechErrorInfo;
- struct SpeechVersionInfo {
- OSType synthType;
- OSType synthSubType;
- OSType synthManufacturer;
- long synthFlags;
- NumVersion synthVersion;
- };
- typedef struct SpeechVersionInfo SpeechVersionInfo;
- struct PhonemeInfo {
- short opcode;
- Str15 phStr;
- Str31 exampleStr;
- short hiliteStart;
- short hiliteEnd;
- };
- typedef struct PhonemeInfo PhonemeInfo;
- struct PhonemeDescriptor {
- short phonemeCount;
- PhonemeInfo thePhonemes[1];
- };
- typedef struct PhonemeDescriptor PhonemeDescriptor;
- struct SpeechXtndData {
- OSType synthCreator;
- Byte synthData[2];
- };
- typedef struct SpeechXtndData SpeechXtndData;
- struct DelimiterInfo {
- Byte startDelimiter[2];
- Byte endDelimiter[2];
- };
- typedef struct DelimiterInfo DelimiterInfo;
- typedef CALLBACK_API( void , SpeechTextDoneProcPtr )(SpeechChannel chan, long refCon, const void **nextBuf, unsigned long *byteLen, long *controlFlags);
- typedef CALLBACK_API( void , SpeechDoneProcPtr )(SpeechChannel chan, long refCon);
- typedef CALLBACK_API( void , SpeechSyncProcPtr )(SpeechChannel chan, long refCon, OSType syncMessage);
- typedef CALLBACK_API( void , SpeechErrorProcPtr )(SpeechChannel chan, long refCon, OSErr theError, long bytePos);
- typedef CALLBACK_API( void , SpeechPhonemeProcPtr )(SpeechChannel chan, long refCon, short phonemeOpcode);
- typedef CALLBACK_API( void , SpeechWordProcPtr )(SpeechChannel chan, long refCon, unsigned long wordPos, unsigned short wordLen);
- typedef STACK_UPP_TYPE(SpeechTextDoneProcPtr) SpeechTextDoneUPP;
- typedef STACK_UPP_TYPE(SpeechDoneProcPtr) SpeechDoneUPP;
- typedef STACK_UPP_TYPE(SpeechSyncProcPtr) SpeechSyncUPP;
- typedef STACK_UPP_TYPE(SpeechErrorProcPtr) SpeechErrorUPP;
- typedef STACK_UPP_TYPE(SpeechPhonemeProcPtr) SpeechPhonemeUPP;
- typedef STACK_UPP_TYPE(SpeechWordProcPtr) SpeechWordUPP;
- #if OPAQUE_UPP_TYPES
- #if CALL_NOT_IN_CARBON
- EXTERN_API(SpeechTextDoneUPP)
- NewSpeechTextDoneUPP (SpeechTextDoneProcPtr userRoutine);
- EXTERN_API(SpeechDoneUPP)
- NewSpeechDoneUPP (SpeechDoneProcPtr userRoutine);
- EXTERN_API(SpeechSyncUPP)
- NewSpeechSyncUPP (SpeechSyncProcPtr userRoutine);
- EXTERN_API(SpeechErrorUPP)
- NewSpeechErrorUPP (SpeechErrorProcPtr userRoutine);
- EXTERN_API(SpeechPhonemeUPP)
- NewSpeechPhonemeUPP (SpeechPhonemeProcPtr userRoutine);
- EXTERN_API(SpeechWordUPP)
- NewSpeechWordUPP (SpeechWordProcPtr userRoutine);
- EXTERN_API(void)
- DisposeSpeechTextDoneUPP (SpeechTextDoneUPP userUPP);
- EXTERN_API(void)
- DisposeSpeechDoneUPP (SpeechDoneUPP userUPP);
- EXTERN_API(void)
- DisposeSpeechSyncUPP (SpeechSyncUPP userUPP);
- EXTERN_API(void)
- DisposeSpeechErrorUPP (SpeechErrorUPP userUPP);
- EXTERN_API(void)
- DisposeSpeechPhonemeUPP (SpeechPhonemeUPP userUPP);
- EXTERN_API(void)
- DisposeSpeechWordUPP (SpeechWordUPP userUPP);
- EXTERN_API(void)
- InvokeSpeechTextDoneUPP (SpeechChannel chan,
- long refCon,
- const void ** nextBuf,
- unsigned long * byteLen,
- long * controlFlags,
- SpeechTextDoneUPP userUPP);
- EXTERN_API(void)
- InvokeSpeechDoneUPP (SpeechChannel chan,
- long refCon,
- SpeechDoneUPP userUPP);
- EXTERN_API(void)
- InvokeSpeechSyncUPP (SpeechChannel chan,
- long refCon,
- OSType syncMessage,
- SpeechSyncUPP userUPP);
- EXTERN_API(void)
- InvokeSpeechErrorUPP (SpeechChannel chan,
- long refCon,
- OSErr theError,
- long bytePos,
- SpeechErrorUPP userUPP);
- EXTERN_API(void)
- InvokeSpeechPhonemeUPP (SpeechChannel chan,
- long refCon,
- short phonemeOpcode,
- SpeechPhonemeUPP userUPP);
- EXTERN_API(void)
- InvokeSpeechWordUPP (SpeechChannel chan,
- long refCon,
- unsigned long wordPos,
- unsigned short wordLen,
- SpeechWordUPP userUPP);
- #endif /* CALL_NOT_IN_CARBON */
- #else
- enum { uppSpeechTextDoneProcInfo = 0x0000FFC0 }; /* pascal no_return_value Func(4_bytes, 4_bytes, 4_bytes, 4_bytes, 4_bytes) */
- enum { uppSpeechDoneProcInfo = 0x000003C0 }; /* pascal no_return_value Func(4_bytes, 4_bytes) */
- enum { uppSpeechSyncProcInfo = 0x00000FC0 }; /* pascal no_return_value Func(4_bytes, 4_bytes, 4_bytes) */
- enum { uppSpeechErrorProcInfo = 0x00003BC0 }; /* pascal no_return_value Func(4_bytes, 4_bytes, 2_bytes, 4_bytes) */
- enum { uppSpeechPhonemeProcInfo = 0x00000BC0 }; /* pascal no_return_value Func(4_bytes, 4_bytes, 2_bytes) */
- enum { uppSpeechWordProcInfo = 0x00002FC0 }; /* pascal no_return_value Func(4_bytes, 4_bytes, 4_bytes, 2_bytes) */
- #define NewSpeechTextDoneUPP(userRoutine) (SpeechTextDoneUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppSpeechTextDoneProcInfo, GetCurrentArchitecture())
- #define NewSpeechDoneUPP(userRoutine) (SpeechDoneUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppSpeechDoneProcInfo, GetCurrentArchitecture())
- #define NewSpeechSyncUPP(userRoutine) (SpeechSyncUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppSpeechSyncProcInfo, GetCurrentArchitecture())
- #define NewSpeechErrorUPP(userRoutine) (SpeechErrorUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppSpeechErrorProcInfo, GetCurrentArchitecture())
- #define NewSpeechPhonemeUPP(userRoutine) (SpeechPhonemeUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppSpeechPhonemeProcInfo, GetCurrentArchitecture())
- #define NewSpeechWordUPP(userRoutine) (SpeechWordUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppSpeechWordProcInfo, GetCurrentArchitecture())
- #define DisposeSpeechTextDoneUPP(userUPP) DisposeRoutineDescriptor(userUPP)
- #define DisposeSpeechDoneUPP(userUPP) DisposeRoutineDescriptor(userUPP)
- #define DisposeSpeechSyncUPP(userUPP) DisposeRoutineDescriptor(userUPP)
- #define DisposeSpeechErrorUPP(userUPP) DisposeRoutineDescriptor(userUPP)
- #define DisposeSpeechPhonemeUPP(userUPP) DisposeRoutineDescriptor(userUPP)
- #define DisposeSpeechWordUPP(userUPP) DisposeRoutineDescriptor(userUPP)
- #define InvokeSpeechTextDoneUPP(chan, refCon, nextBuf, byteLen, controlFlags, userUPP) CALL_FIVE_PARAMETER_UPP((userUPP), uppSpeechTextDoneProcInfo, (chan), (refCon), (nextBuf), (byteLen), (controlFlags))
- #define InvokeSpeechDoneUPP(chan, refCon, userUPP) CALL_TWO_PARAMETER_UPP((userUPP), uppSpeechDoneProcInfo, (chan), (refCon))
- #define InvokeSpeechSyncUPP(chan, refCon, syncMessage, userUPP) CALL_THREE_PARAMETER_UPP((userUPP), uppSpeechSyncProcInfo, (chan), (refCon), (syncMessage))
- #define InvokeSpeechErrorUPP(chan, refCon, theError, bytePos, userUPP) CALL_FOUR_PARAMETER_UPP((userUPP), uppSpeechErrorProcInfo, (chan), (refCon), (theError), (bytePos))
- #define InvokeSpeechPhonemeUPP(chan, refCon, phonemeOpcode, userUPP) CALL_THREE_PARAMETER_UPP((userUPP), uppSpeechPhonemeProcInfo, (chan), (refCon), (phonemeOpcode))
- #define InvokeSpeechWordUPP(chan, refCon, wordPos, wordLen, userUPP) CALL_FOUR_PARAMETER_UPP((userUPP), uppSpeechWordProcInfo, (chan), (refCon), (wordPos), (wordLen))
- #endif
- /* support for pre-Carbon UPP routines: NewXXXProc and CallXXXProc */
- #define NewSpeechTextDoneProc(userRoutine) NewSpeechTextDoneUPP(userRoutine)
- #define NewSpeechDoneProc(userRoutine) NewSpeechDoneUPP(userRoutine)
- #define NewSpeechSyncProc(userRoutine) NewSpeechSyncUPP(userRoutine)
- #define NewSpeechErrorProc(userRoutine) NewSpeechErrorUPP(userRoutine)
- #define NewSpeechPhonemeProc(userRoutine) NewSpeechPhonemeUPP(userRoutine)
- #define NewSpeechWordProc(userRoutine) NewSpeechWordUPP(userRoutine)
- #define CallSpeechTextDoneProc(userRoutine, chan, refCon, nextBuf, byteLen, controlFlags) InvokeSpeechTextDoneUPP(chan, refCon, nextBuf, byteLen, controlFlags, userRoutine)
- #define CallSpeechDoneProc(userRoutine, chan, refCon) InvokeSpeechDoneUPP(chan, refCon, userRoutine)
- #define CallSpeechSyncProc(userRoutine, chan, refCon, syncMessage) InvokeSpeechSyncUPP(chan, refCon, syncMessage, userRoutine)
- #define CallSpeechErrorProc(userRoutine, chan, refCon, theError, bytePos) InvokeSpeechErrorUPP(chan, refCon, theError, bytePos, userRoutine)
- #define CallSpeechPhonemeProc(userRoutine, chan, refCon, phonemeOpcode) InvokeSpeechPhonemeUPP(chan, refCon, phonemeOpcode, userRoutine)
- #define CallSpeechWordProc(userRoutine, chan, refCon, wordPos, wordLen) InvokeSpeechWordUPP(chan, refCon, wordPos, wordLen, userRoutine)
- EXTERN_API( NumVersion )
- SpeechManagerVersion (void) FOURWORDINLINE(0x203C, 0x0000, 0x000C, 0xA800);
- EXTERN_API( OSErr )
- MakeVoiceSpec (OSType creator,
- OSType id,
- VoiceSpec * voice) FOURWORDINLINE(0x203C, 0x0604, 0x000C, 0xA800);
- EXTERN_API( OSErr )
- CountVoices (short * numVoices) FOURWORDINLINE(0x203C, 0x0108, 0x000C, 0xA800);
- EXTERN_API( OSErr )
- GetIndVoice (short index,
- VoiceSpec * voice) FOURWORDINLINE(0x203C, 0x030C, 0x000C, 0xA800);
- EXTERN_API( OSErr )
- GetVoiceDescription (const VoiceSpec * voice,
- VoiceDescription * info,
- long infoLength) FOURWORDINLINE(0x203C, 0x0610, 0x000C, 0xA800);
- EXTERN_API( OSErr )
- GetVoiceInfo (const VoiceSpec * voice,
- OSType selector,
- void * voiceInfo) FOURWORDINLINE(0x203C, 0x0614, 0x000C, 0xA800);
- EXTERN_API( OSErr )
- NewSpeechChannel (VoiceSpec * voice, /* can be NULL */
- SpeechChannel * chan) FOURWORDINLINE(0x203C, 0x0418, 0x000C, 0xA800);
- EXTERN_API( OSErr )
- DisposeSpeechChannel (SpeechChannel chan) FOURWORDINLINE(0x203C, 0x021C, 0x000C, 0xA800);
- EXTERN_API( OSErr )
- SpeakString (ConstStr255Param textToBeSpoken) FOURWORDINLINE(0x203C, 0x0220, 0x000C, 0xA800);
- EXTERN_API( OSErr )
- SpeakText (SpeechChannel chan,
- const void * textBuf,
- unsigned long textBytes) FOURWORDINLINE(0x203C, 0x0624, 0x000C, 0xA800);
- EXTERN_API( OSErr )
- SpeakBuffer (SpeechChannel chan,
- const void * textBuf,
- unsigned long textBytes,
- long controlFlags) FOURWORDINLINE(0x203C, 0x0828, 0x000C, 0xA800);
- EXTERN_API( OSErr )
- StopSpeech (SpeechChannel chan) FOURWORDINLINE(0x203C, 0x022C, 0x000C, 0xA800);
- EXTERN_API( OSErr )
- StopSpeechAt (SpeechChannel chan,
- long whereToStop) FOURWORDINLINE(0x203C, 0x0430, 0x000C, 0xA800);
- EXTERN_API( OSErr )
- PauseSpeechAt (SpeechChannel chan,
- long whereToPause) FOURWORDINLINE(0x203C, 0x0434, 0x000C, 0xA800);
- EXTERN_API( OSErr )
- ContinueSpeech (SpeechChannel chan) FOURWORDINLINE(0x203C, 0x0238, 0x000C, 0xA800);
- EXTERN_API( short )
- SpeechBusy (void) FOURWORDINLINE(0x203C, 0x003C, 0x000C, 0xA800);
- EXTERN_API( short )
- SpeechBusySystemWide (void) FOURWORDINLINE(0x203C, 0x0040, 0x000C, 0xA800);
- EXTERN_API( OSErr )
- SetSpeechRate (SpeechChannel chan,
- Fixed rate) FOURWORDINLINE(0x203C, 0x0444, 0x000C, 0xA800);
- EXTERN_API( OSErr )
- GetSpeechRate (SpeechChannel chan,
- Fixed * rate) FOURWORDINLINE(0x203C, 0x0448, 0x000C, 0xA800);
- EXTERN_API( OSErr )
- SetSpeechPitch (SpeechChannel chan,
- Fixed pitch) FOURWORDINLINE(0x203C, 0x044C, 0x000C, 0xA800);
- EXTERN_API( OSErr )
- GetSpeechPitch (SpeechChannel chan,
- Fixed * pitch) FOURWORDINLINE(0x203C, 0x0450, 0x000C, 0xA800);
- EXTERN_API( OSErr )
- SetSpeechInfo (SpeechChannel chan,
- OSType selector,
- const void * speechInfo) FOURWORDINLINE(0x203C, 0x0654, 0x000C, 0xA800);
- EXTERN_API( OSErr )
- GetSpeechInfo (SpeechChannel chan,
- OSType selector,
- void * speechInfo) FOURWORDINLINE(0x203C, 0x0658, 0x000C, 0xA800);
- EXTERN_API( OSErr )
- TextToPhonemes (SpeechChannel chan,
- const void * textBuf,
- unsigned long textBytes,
- Handle phonemeBuf,
- long * phonemeBytes) FOURWORDINLINE(0x203C, 0x0A5C, 0x000C, 0xA800);
- EXTERN_API( OSErr )
- UseDictionary (SpeechChannel chan,
- Handle dictionary) FOURWORDINLINE(0x203C, 0x0460, 0x000C, 0xA800);
- #if PRAGMA_STRUCT_ALIGN
- #pragma options align=reset
- #elif PRAGMA_STRUCT_PACKPUSH
- #pragma pack(pop)
- #elif PRAGMA_STRUCT_PACK
- #pragma pack()
- #endif
- #ifdef PRAGMA_IMPORT_OFF
- #pragma import off
- #elif PRAGMA_IMPORT
- #pragma import reset
- #endif
- #ifdef __cplusplus
- }
- #endif
- #endif /* __SPEECHSYNTHESIS__ */