SpeechSynthesis.h
上传用户:xjjlds
上传日期:2015-12-05
资源大小:22823k
文件大小:22k
源码类别:

多媒体编程

开发平台:

Visual C++

  1. /*
  2.      File:       SpeechSynthesis.h
  3.  
  4.      Contains:   Speech Interfaces.
  5.  
  6.      Version:    Technology: System 7.5
  7.                  Release:    QuickTime 6.0.2
  8.  
  9.      Copyright:  (c) 1989-2001 by Apple Computer, Inc., all rights reserved.
  10.  
  11.      Bugs?:      For bug reports, consult the following page on
  12.                  the World Wide Web:
  13.  
  14.                      http://developer.apple.com/bugreporter/
  15.  
  16. */
  17. #ifndef __SPEECHSYNTHESIS__
  18. #define __SPEECHSYNTHESIS__
  19. #ifndef __MACTYPES__
  20. #include "MacTypes.h"
  21. #endif
  22. #ifndef __MIXEDMODE__
  23. #include "MixedMode.h"
  24. #endif
  25. #ifndef __FILES__
  26. #include "Files.h"
  27. #endif
  28. #if PRAGMA_ONCE
  29. #pragma once
  30. #endif
  31. #ifdef __cplusplus
  32. extern "C" {
  33. #endif
  34. #if PRAGMA_IMPORT
  35. #pragma import on
  36. #endif
  37. #if PRAGMA_STRUCT_ALIGN
  38.     #pragma options align=mac68k
  39. #elif PRAGMA_STRUCT_PACKPUSH
  40.     #pragma pack(push, 2)
  41. #elif PRAGMA_STRUCT_PACK
  42.     #pragma pack(2)
  43. #endif
  44. enum {
  45.     kTextToSpeechSynthType      = FOUR_CHAR_CODE('ttsc'),
  46.     kTextToSpeechVoiceType      = FOUR_CHAR_CODE('ttvd'),
  47.     kTextToSpeechVoiceFileType  = FOUR_CHAR_CODE('ttvf'),
  48.     kTextToSpeechVoiceBundleType = FOUR_CHAR_CODE('ttvb')
  49. };
  50. enum {
  51.     kNoEndingProsody            = 1,
  52.     kNoSpeechInterrupt          = 2,
  53.     kPreflightThenPause         = 4
  54. };
  55. enum {
  56.     kImmediate                  = 0,
  57.     kEndOfWord                  = 1,
  58.     kEndOfSentence              = 2
  59. };
  60. /*------------------------------------------*/
  61. /* GetSpeechInfo & SetSpeechInfo selectors  */
  62. /*------------------------------------------*/
  63. enum {
  64.     soStatus                    = FOUR_CHAR_CODE('stat'),
  65.     soErrors                    = FOUR_CHAR_CODE('erro'),
  66.     soInputMode                 = FOUR_CHAR_CODE('inpt'),
  67.     soCharacterMode             = FOUR_CHAR_CODE('char'),
  68.     soNumberMode                = FOUR_CHAR_CODE('nmbr'),
  69.     soRate                      = FOUR_CHAR_CODE('rate'),
  70.     soPitchBase                 = FOUR_CHAR_CODE('pbas'),
  71.     soPitchMod                  = FOUR_CHAR_CODE('pmod'),
  72.     soVolume                    = FOUR_CHAR_CODE('volm'),
  73.     soSynthType                 = FOUR_CHAR_CODE('vers'),
  74.     soRecentSync                = FOUR_CHAR_CODE('sync'),
  75.     soPhonemeSymbols            = FOUR_CHAR_CODE('phsy'),
  76.     soCurrentVoice              = FOUR_CHAR_CODE('cvox'),
  77.     soCommandDelimiter          = FOUR_CHAR_CODE('dlim'),
  78.     soReset                     = FOUR_CHAR_CODE('rset'),
  79.     soCurrentA5                 = FOUR_CHAR_CODE('myA5'),
  80.     soRefCon                    = FOUR_CHAR_CODE('refc'),
  81.     soTextDoneCallBack          = FOUR_CHAR_CODE('tdcb'),       /* use with SpeechTextDoneProcPtr*/
  82.     soSpeechDoneCallBack        = FOUR_CHAR_CODE('sdcb'),       /* use with SpeechDoneProcPtr*/
  83.     soSyncCallBack              = FOUR_CHAR_CODE('sycb'),       /* use with SpeechSyncProcPtr*/
  84.     soErrorCallBack             = FOUR_CHAR_CODE('ercb'),       /* use with SpeechErrorProcPtr*/
  85.     soPhonemeCallBack           = FOUR_CHAR_CODE('phcb'),       /* use with SpeechPhonemeProcPtr*/
  86.     soWordCallBack              = FOUR_CHAR_CODE('wdcb'),
  87.     soSynthExtension            = FOUR_CHAR_CODE('xtnd'),
  88.     soSoundOutput               = FOUR_CHAR_CODE('sndo')
  89. };
  90. /*------------------------------------------*/
  91. /* Speaking Mode Constants                  */
  92. /*------------------------------------------*/
  93. enum {
  94.     modeText                    = FOUR_CHAR_CODE('TEXT'),       /* input mode constants             */
  95.     modePhonemes                = FOUR_CHAR_CODE('PHON'),
  96.     modeNormal                  = FOUR_CHAR_CODE('NORM'),       /* character mode and number mode constants */
  97.     modeLiteral                 = FOUR_CHAR_CODE('LTRL')
  98. };
  99. enum {
  100.     soVoiceDescription          = FOUR_CHAR_CODE('info'),
  101.     soVoiceFile                 = FOUR_CHAR_CODE('fref')
  102. };
  103. typedef struct OpaqueSpeechChannel*     SpeechChannel;
  104. struct VoiceSpec {
  105.     OSType                          creator;
  106.     OSType                          id;
  107. };
  108. typedef struct VoiceSpec                VoiceSpec;
  109. typedef VoiceSpec *                     VoiceSpecPtr;
  110. enum {
  111.     kNeuter                     = 0,
  112.     kMale                       = 1,
  113.     kFemale                     = 2
  114. };
  115. struct VoiceDescription {
  116.     long                            length;
  117.     VoiceSpec                       voice;
  118.     long                            version;
  119.     Str63                           name;
  120.     Str255                          comment;
  121.     short                           gender;
  122.     short                           age;
  123.     short                           script;
  124.     short                           language;
  125.     short                           region;
  126.     long                            reserved[4];
  127. };
  128. typedef struct VoiceDescription         VoiceDescription;
  129. struct VoiceFileInfo {
  130.     FSSpec                          fileSpec;
  131.     short                           resID;
  132. };
  133. typedef struct VoiceFileInfo            VoiceFileInfo;
  134. struct SpeechStatusInfo {
  135.     Boolean                         outputBusy;
  136.     Boolean                         outputPaused;
  137.     long                            inputBytesLeft;
  138.     short                           phonemeCode;
  139. };
  140. typedef struct SpeechStatusInfo         SpeechStatusInfo;
  141. struct SpeechErrorInfo {
  142.     short                           count;
  143.     OSErr                           oldest;
  144.     long                            oldPos;
  145.     OSErr                           newest;
  146.     long                            newPos;
  147. };
  148. typedef struct SpeechErrorInfo          SpeechErrorInfo;
  149. struct SpeechVersionInfo {
  150.     OSType                          synthType;
  151.     OSType                          synthSubType;
  152.     OSType                          synthManufacturer;
  153.     long                            synthFlags;
  154.     NumVersion                      synthVersion;
  155. };
  156. typedef struct SpeechVersionInfo        SpeechVersionInfo;
  157. struct PhonemeInfo {
  158.     short                           opcode;
  159.     Str15                           phStr;
  160.     Str31                           exampleStr;
  161.     short                           hiliteStart;
  162.     short                           hiliteEnd;
  163. };
  164. typedef struct PhonemeInfo              PhonemeInfo;
  165. struct PhonemeDescriptor {
  166.     short                           phonemeCount;
  167.     PhonemeInfo                     thePhonemes[1];
  168. };
  169. typedef struct PhonemeDescriptor        PhonemeDescriptor;
  170. struct SpeechXtndData {
  171.     OSType                          synthCreator;
  172.     Byte                            synthData[2];
  173. };
  174. typedef struct SpeechXtndData           SpeechXtndData;
  175. struct DelimiterInfo {
  176.     Byte                            startDelimiter[2];
  177.     Byte                            endDelimiter[2];
  178. };
  179. typedef struct DelimiterInfo            DelimiterInfo;
  180. typedef CALLBACK_API( void , SpeechTextDoneProcPtr )(SpeechChannel chan, long refCon, const void **nextBuf, unsigned long *byteLen, long *controlFlags);
  181. typedef CALLBACK_API( void , SpeechDoneProcPtr )(SpeechChannel chan, long refCon);
  182. typedef CALLBACK_API( void , SpeechSyncProcPtr )(SpeechChannel chan, long refCon, OSType syncMessage);
  183. typedef CALLBACK_API( void , SpeechErrorProcPtr )(SpeechChannel chan, long refCon, OSErr theError, long bytePos);
  184. typedef CALLBACK_API( void , SpeechPhonemeProcPtr )(SpeechChannel chan, long refCon, short phonemeOpcode);
  185. typedef CALLBACK_API( void , SpeechWordProcPtr )(SpeechChannel chan, long refCon, unsigned long wordPos, unsigned short wordLen);
  186. typedef STACK_UPP_TYPE(SpeechTextDoneProcPtr)                   SpeechTextDoneUPP;
  187. typedef STACK_UPP_TYPE(SpeechDoneProcPtr)                       SpeechDoneUPP;
  188. typedef STACK_UPP_TYPE(SpeechSyncProcPtr)                       SpeechSyncUPP;
  189. typedef STACK_UPP_TYPE(SpeechErrorProcPtr)                      SpeechErrorUPP;
  190. typedef STACK_UPP_TYPE(SpeechPhonemeProcPtr)                    SpeechPhonemeUPP;
  191. typedef STACK_UPP_TYPE(SpeechWordProcPtr)                       SpeechWordUPP;
  192. #if OPAQUE_UPP_TYPES
  193. #if CALL_NOT_IN_CARBON
  194.     EXTERN_API(SpeechTextDoneUPP)
  195.     NewSpeechTextDoneUPP           (SpeechTextDoneProcPtr   userRoutine);
  196.     EXTERN_API(SpeechDoneUPP)
  197.     NewSpeechDoneUPP               (SpeechDoneProcPtr       userRoutine);
  198.     EXTERN_API(SpeechSyncUPP)
  199.     NewSpeechSyncUPP               (SpeechSyncProcPtr       userRoutine);
  200.     EXTERN_API(SpeechErrorUPP)
  201.     NewSpeechErrorUPP              (SpeechErrorProcPtr      userRoutine);
  202.     EXTERN_API(SpeechPhonemeUPP)
  203.     NewSpeechPhonemeUPP            (SpeechPhonemeProcPtr    userRoutine);
  204.     EXTERN_API(SpeechWordUPP)
  205.     NewSpeechWordUPP               (SpeechWordProcPtr       userRoutine);
  206.     EXTERN_API(void)
  207.     DisposeSpeechTextDoneUPP       (SpeechTextDoneUPP       userUPP);
  208.     EXTERN_API(void)
  209.     DisposeSpeechDoneUPP           (SpeechDoneUPP           userUPP);
  210.     EXTERN_API(void)
  211.     DisposeSpeechSyncUPP           (SpeechSyncUPP           userUPP);
  212.     EXTERN_API(void)
  213.     DisposeSpeechErrorUPP          (SpeechErrorUPP          userUPP);
  214.     EXTERN_API(void)
  215.     DisposeSpeechPhonemeUPP        (SpeechPhonemeUPP        userUPP);
  216.     EXTERN_API(void)
  217.     DisposeSpeechWordUPP           (SpeechWordUPP           userUPP);
  218.     EXTERN_API(void)
  219.     InvokeSpeechTextDoneUPP        (SpeechChannel           chan,
  220.                                     long                    refCon,
  221.                                     const void **           nextBuf,
  222.                                     unsigned long *         byteLen,
  223.                                     long *                  controlFlags,
  224.                                     SpeechTextDoneUPP       userUPP);
  225.     EXTERN_API(void)
  226.     InvokeSpeechDoneUPP            (SpeechChannel           chan,
  227.                                     long                    refCon,
  228.                                     SpeechDoneUPP           userUPP);
  229.     EXTERN_API(void)
  230.     InvokeSpeechSyncUPP            (SpeechChannel           chan,
  231.                                     long                    refCon,
  232.                                     OSType                  syncMessage,
  233.                                     SpeechSyncUPP           userUPP);
  234.     EXTERN_API(void)
  235.     InvokeSpeechErrorUPP           (SpeechChannel           chan,
  236.                                     long                    refCon,
  237.                                     OSErr                   theError,
  238.                                     long                    bytePos,
  239.                                     SpeechErrorUPP          userUPP);
  240.     EXTERN_API(void)
  241.     InvokeSpeechPhonemeUPP         (SpeechChannel           chan,
  242.                                     long                    refCon,
  243.                                     short                   phonemeOpcode,
  244.                                     SpeechPhonemeUPP        userUPP);
  245.     EXTERN_API(void)
  246.     InvokeSpeechWordUPP            (SpeechChannel           chan,
  247.                                     long                    refCon,
  248.                                     unsigned long           wordPos,
  249.                                     unsigned short          wordLen,
  250.                                     SpeechWordUPP           userUPP);
  251. #endif  /* CALL_NOT_IN_CARBON */
  252. #else
  253.     enum { uppSpeechTextDoneProcInfo = 0x0000FFC0 };                /* pascal no_return_value Func(4_bytes, 4_bytes, 4_bytes, 4_bytes, 4_bytes) */
  254.     enum { uppSpeechDoneProcInfo = 0x000003C0 };                    /* pascal no_return_value Func(4_bytes, 4_bytes) */
  255.     enum { uppSpeechSyncProcInfo = 0x00000FC0 };                    /* pascal no_return_value Func(4_bytes, 4_bytes, 4_bytes) */
  256.     enum { uppSpeechErrorProcInfo = 0x00003BC0 };                   /* pascal no_return_value Func(4_bytes, 4_bytes, 2_bytes, 4_bytes) */
  257.     enum { uppSpeechPhonemeProcInfo = 0x00000BC0 };                 /* pascal no_return_value Func(4_bytes, 4_bytes, 2_bytes) */
  258.     enum { uppSpeechWordProcInfo = 0x00002FC0 };                    /* pascal no_return_value Func(4_bytes, 4_bytes, 4_bytes, 2_bytes) */
  259.     #define NewSpeechTextDoneUPP(userRoutine)                       (SpeechTextDoneUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppSpeechTextDoneProcInfo, GetCurrentArchitecture())
  260.     #define NewSpeechDoneUPP(userRoutine)                           (SpeechDoneUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppSpeechDoneProcInfo, GetCurrentArchitecture())
  261.     #define NewSpeechSyncUPP(userRoutine)                           (SpeechSyncUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppSpeechSyncProcInfo, GetCurrentArchitecture())
  262.     #define NewSpeechErrorUPP(userRoutine)                          (SpeechErrorUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppSpeechErrorProcInfo, GetCurrentArchitecture())
  263.     #define NewSpeechPhonemeUPP(userRoutine)                        (SpeechPhonemeUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppSpeechPhonemeProcInfo, GetCurrentArchitecture())
  264.     #define NewSpeechWordUPP(userRoutine)                           (SpeechWordUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppSpeechWordProcInfo, GetCurrentArchitecture())
  265.     #define DisposeSpeechTextDoneUPP(userUPP)                       DisposeRoutineDescriptor(userUPP)
  266.     #define DisposeSpeechDoneUPP(userUPP)                           DisposeRoutineDescriptor(userUPP)
  267.     #define DisposeSpeechSyncUPP(userUPP)                           DisposeRoutineDescriptor(userUPP)
  268.     #define DisposeSpeechErrorUPP(userUPP)                          DisposeRoutineDescriptor(userUPP)
  269.     #define DisposeSpeechPhonemeUPP(userUPP)                        DisposeRoutineDescriptor(userUPP)
  270.     #define DisposeSpeechWordUPP(userUPP)                           DisposeRoutineDescriptor(userUPP)
  271.     #define InvokeSpeechTextDoneUPP(chan, refCon, nextBuf, byteLen, controlFlags, userUPP)  CALL_FIVE_PARAMETER_UPP((userUPP), uppSpeechTextDoneProcInfo, (chan), (refCon), (nextBuf), (byteLen), (controlFlags))
  272.     #define InvokeSpeechDoneUPP(chan, refCon, userUPP)              CALL_TWO_PARAMETER_UPP((userUPP), uppSpeechDoneProcInfo, (chan), (refCon))
  273.     #define InvokeSpeechSyncUPP(chan, refCon, syncMessage, userUPP)  CALL_THREE_PARAMETER_UPP((userUPP), uppSpeechSyncProcInfo, (chan), (refCon), (syncMessage))
  274.     #define InvokeSpeechErrorUPP(chan, refCon, theError, bytePos, userUPP)  CALL_FOUR_PARAMETER_UPP((userUPP), uppSpeechErrorProcInfo, (chan), (refCon), (theError), (bytePos))
  275.     #define InvokeSpeechPhonemeUPP(chan, refCon, phonemeOpcode, userUPP)  CALL_THREE_PARAMETER_UPP((userUPP), uppSpeechPhonemeProcInfo, (chan), (refCon), (phonemeOpcode))
  276.     #define InvokeSpeechWordUPP(chan, refCon, wordPos, wordLen, userUPP)  CALL_FOUR_PARAMETER_UPP((userUPP), uppSpeechWordProcInfo, (chan), (refCon), (wordPos), (wordLen))
  277. #endif
  278. /* support for pre-Carbon UPP routines: NewXXXProc and CallXXXProc */
  279. #define NewSpeechTextDoneProc(userRoutine)                      NewSpeechTextDoneUPP(userRoutine)
  280. #define NewSpeechDoneProc(userRoutine)                          NewSpeechDoneUPP(userRoutine)
  281. #define NewSpeechSyncProc(userRoutine)                          NewSpeechSyncUPP(userRoutine)
  282. #define NewSpeechErrorProc(userRoutine)                         NewSpeechErrorUPP(userRoutine)
  283. #define NewSpeechPhonemeProc(userRoutine)                       NewSpeechPhonemeUPP(userRoutine)
  284. #define NewSpeechWordProc(userRoutine)                          NewSpeechWordUPP(userRoutine)
  285. #define CallSpeechTextDoneProc(userRoutine, chan, refCon, nextBuf, byteLen, controlFlags) InvokeSpeechTextDoneUPP(chan, refCon, nextBuf, byteLen, controlFlags, userRoutine)
  286. #define CallSpeechDoneProc(userRoutine, chan, refCon)           InvokeSpeechDoneUPP(chan, refCon, userRoutine)
  287. #define CallSpeechSyncProc(userRoutine, chan, refCon, syncMessage) InvokeSpeechSyncUPP(chan, refCon, syncMessage, userRoutine)
  288. #define CallSpeechErrorProc(userRoutine, chan, refCon, theError, bytePos) InvokeSpeechErrorUPP(chan, refCon, theError, bytePos, userRoutine)
  289. #define CallSpeechPhonemeProc(userRoutine, chan, refCon, phonemeOpcode) InvokeSpeechPhonemeUPP(chan, refCon, phonemeOpcode, userRoutine)
  290. #define CallSpeechWordProc(userRoutine, chan, refCon, wordPos, wordLen) InvokeSpeechWordUPP(chan, refCon, wordPos, wordLen, userRoutine)
  291. EXTERN_API( NumVersion )
  292. SpeechManagerVersion            (void)                                                      FOURWORDINLINE(0x203C, 0x0000, 0x000C, 0xA800);
  293. EXTERN_API( OSErr )
  294. MakeVoiceSpec                   (OSType                 creator,
  295.                                  OSType                 id,
  296.                                  VoiceSpec *            voice)                              FOURWORDINLINE(0x203C, 0x0604, 0x000C, 0xA800);
  297. EXTERN_API( OSErr )
  298. CountVoices                     (short *                numVoices)                          FOURWORDINLINE(0x203C, 0x0108, 0x000C, 0xA800);
  299. EXTERN_API( OSErr )
  300. GetIndVoice                     (short                  index,
  301.                                  VoiceSpec *            voice)                              FOURWORDINLINE(0x203C, 0x030C, 0x000C, 0xA800);
  302. EXTERN_API( OSErr )
  303. GetVoiceDescription             (const VoiceSpec *      voice,
  304.                                  VoiceDescription *     info,
  305.                                  long                   infoLength)                         FOURWORDINLINE(0x203C, 0x0610, 0x000C, 0xA800);
  306. EXTERN_API( OSErr )
  307. GetVoiceInfo                    (const VoiceSpec *      voice,
  308.                                  OSType                 selector,
  309.                                  void *                 voiceInfo)                          FOURWORDINLINE(0x203C, 0x0614, 0x000C, 0xA800);
  310. EXTERN_API( OSErr )
  311. NewSpeechChannel                (VoiceSpec *            voice, /* can be NULL */
  312.                                  SpeechChannel *        chan)                               FOURWORDINLINE(0x203C, 0x0418, 0x000C, 0xA800);
  313. EXTERN_API( OSErr )
  314. DisposeSpeechChannel            (SpeechChannel          chan)                               FOURWORDINLINE(0x203C, 0x021C, 0x000C, 0xA800);
  315. EXTERN_API( OSErr )
  316. SpeakString                     (ConstStr255Param       textToBeSpoken)                     FOURWORDINLINE(0x203C, 0x0220, 0x000C, 0xA800);
  317. EXTERN_API( OSErr )
  318. SpeakText                       (SpeechChannel          chan,
  319.                                  const void *           textBuf,
  320.                                  unsigned long          textBytes)                          FOURWORDINLINE(0x203C, 0x0624, 0x000C, 0xA800);
  321. EXTERN_API( OSErr )
  322. SpeakBuffer                     (SpeechChannel          chan,
  323.                                  const void *           textBuf,
  324.                                  unsigned long          textBytes,
  325.                                  long                   controlFlags)                       FOURWORDINLINE(0x203C, 0x0828, 0x000C, 0xA800);
  326. EXTERN_API( OSErr )
  327. StopSpeech                      (SpeechChannel          chan)                               FOURWORDINLINE(0x203C, 0x022C, 0x000C, 0xA800);
  328. EXTERN_API( OSErr )
  329. StopSpeechAt                    (SpeechChannel          chan,
  330.                                  long                   whereToStop)                        FOURWORDINLINE(0x203C, 0x0430, 0x000C, 0xA800);
  331. EXTERN_API( OSErr )
  332. PauseSpeechAt                   (SpeechChannel          chan,
  333.                                  long                   whereToPause)                       FOURWORDINLINE(0x203C, 0x0434, 0x000C, 0xA800);
  334. EXTERN_API( OSErr )
  335. ContinueSpeech                  (SpeechChannel          chan)                               FOURWORDINLINE(0x203C, 0x0238, 0x000C, 0xA800);
  336. EXTERN_API( short )
  337. SpeechBusy                      (void)                                                      FOURWORDINLINE(0x203C, 0x003C, 0x000C, 0xA800);
  338. EXTERN_API( short )
  339. SpeechBusySystemWide            (void)                                                      FOURWORDINLINE(0x203C, 0x0040, 0x000C, 0xA800);
  340. EXTERN_API( OSErr )
  341. SetSpeechRate                   (SpeechChannel          chan,
  342.                                  Fixed                  rate)                               FOURWORDINLINE(0x203C, 0x0444, 0x000C, 0xA800);
  343. EXTERN_API( OSErr )
  344. GetSpeechRate                   (SpeechChannel          chan,
  345.                                  Fixed *                rate)                               FOURWORDINLINE(0x203C, 0x0448, 0x000C, 0xA800);
  346. EXTERN_API( OSErr )
  347. SetSpeechPitch                  (SpeechChannel          chan,
  348.                                  Fixed                  pitch)                              FOURWORDINLINE(0x203C, 0x044C, 0x000C, 0xA800);
  349. EXTERN_API( OSErr )
  350. GetSpeechPitch                  (SpeechChannel          chan,
  351.                                  Fixed *                pitch)                              FOURWORDINLINE(0x203C, 0x0450, 0x000C, 0xA800);
  352. EXTERN_API( OSErr )
  353. SetSpeechInfo                   (SpeechChannel          chan,
  354.                                  OSType                 selector,
  355.                                  const void *           speechInfo)                         FOURWORDINLINE(0x203C, 0x0654, 0x000C, 0xA800);
  356. EXTERN_API( OSErr )
  357. GetSpeechInfo                   (SpeechChannel          chan,
  358.                                  OSType                 selector,
  359.                                  void *                 speechInfo)                         FOURWORDINLINE(0x203C, 0x0658, 0x000C, 0xA800);
  360. EXTERN_API( OSErr )
  361. TextToPhonemes                  (SpeechChannel          chan,
  362.                                  const void *           textBuf,
  363.                                  unsigned long          textBytes,
  364.                                  Handle                 phonemeBuf,
  365.                                  long *                 phonemeBytes)                       FOURWORDINLINE(0x203C, 0x0A5C, 0x000C, 0xA800);
  366. EXTERN_API( OSErr )
  367. UseDictionary                   (SpeechChannel          chan,
  368.                                  Handle                 dictionary)                         FOURWORDINLINE(0x203C, 0x0460, 0x000C, 0xA800);
  369. #if PRAGMA_STRUCT_ALIGN
  370.     #pragma options align=reset
  371. #elif PRAGMA_STRUCT_PACKPUSH
  372.     #pragma pack(pop)
  373. #elif PRAGMA_STRUCT_PACK
  374.     #pragma pack()
  375. #endif
  376. #ifdef PRAGMA_IMPORT_OFF
  377. #pragma import off
  378. #elif PRAGMA_IMPORT
  379. #pragma import reset
  380. #endif
  381. #ifdef __cplusplus
  382. }
  383. #endif
  384. #endif /* __SPEECHSYNTHESIS__ */