#ifndef DEVICES_NARRATOR_H #define DEVICES_NARRATOR_H /* ** $Filename: devices/narrator.h $ ** $Release: 2.04 Includes, V37.4 $ ** $Revision: 1.7 $ ** $Date: 91/03/12 $ ** ** V37 Narrator device C language include file ** ** Copyright 1990, 1991 Joseph Katz/Mark Barton. ** All rights reserved. ** ** This include file (narrator.h) may be freely distributed ** as long as the above copyright notice remains intact. ** */ #ifndef EXEC_IO_H #include "exec/io.h" #endif /* Device Options */ #define NDB_NEWIORB 0 /* Use new extended IORB */ #define NDB_WORDSYNC 1 /* Generate word sync messages */ #define NDB_SYLSYNC 2 /* Generate syllable sync messages */ #define NDF_NEWIORB (1 << NDB_NEWIORB) #define NDF_WORDSYNC (1 << NDB_WORDSYNC) #define NDF_SYLSYNC (1 << NDB_SYLSYNC) /* Error Codes */ #define ND_NoMem -2 /* Can't allocate memory */ #define ND_NoAudLib -3 /* Can't open audio device */ #define ND_MakeBad -4 /* Error in MakeLibrary call */ #define ND_UnitErr -5 /* Unit other than 0 */ #define ND_CantAlloc -6 /* Can't allocate audio channel(s) */ #define ND_Unimpl -7 /* Unimplemented command */ #define ND_NoWrite -8 /* Read for mouth without write first */ #define ND_Expunged -9 /* Can't open, deferred expunge bit set */ #define ND_PhonErr -20 /* Phoneme code spelling error */ #define ND_RateErr -21 /* Rate out of bounds */ #define ND_PitchErr -22 /* Pitch out of bounds */ #define ND_SexErr -23 /* Sex not valid */ #define ND_ModeErr -24 /* Mode not valid */ #define ND_FreqErr -25 /* Sampling frequency out of bounds */ #define ND_VolErr -26 /* Volume out of bounds */ #define ND_DCentErr -27 /* Degree of centralization out of bounds */ #define ND_CentPhonErr -28 /* Invalid central phon */ /* Input parameters and defaults */ #define DEFPITCH 110 /* Default pitch */ #define DEFRATE 150 /* Default speaking rate (wpm) */ #define DEFVOL 64 /* Default volume (full) */ #define DEFFREQ 22200 /* Default sampling frequency (Hz) */ #define MALE 0 /* Male vocal tract */ #define FEMALE 1 /* Female vocal tract */ #define NATURALF0 0 /* Natural pitch contours */ #define ROBOTICF0 1 /* Monotone pitch */ #define MANUALF0 2 /* Manual setting of pitch contours */ #define DEFSEX MALE /* Default sex */ #define DEFMODE NATURALF0 /* Default mode */ #define DEFARTIC 100 /* 100% articulation (normal) */ #define DEFCENTRAL 0 /* No centralization */ #define DEFF0PERT 0 /* No F0 Perturbation */ #define DEFF0ENTHUS 32 /* Default F0 enthusiasm (in 32nds) */ #define DEFPRIORITY 100 /* Default speaking priority */ /* Parameter bounds */ #define MINRATE 40 /* Minimum speaking rate */ #define MAXRATE 400 /* Maximum speaking rate */ #define MINPITCH 65 /* Minimum pitch */ #define MAXPITCH 320 /* Maximum pitch */ #define MINFREQ 5000 /* Minimum sampling frequency */ #define MAXFREQ 28000 /* Maximum sampling frequency */ #define MINVOL 0 /* Minimum volume */ #define MAXVOL 64 /* Maximum volume */ #define MINCENT 0 /* Minimum degree of centralization */ #define MAXCENT 100 /* Maximum degree of centralization */ /* Standard Write request */ struct narrator_rb { struct IOStdReq message; /* Standard IORB */ UWORD rate; /* Speaking rate (words/minute) */ UWORD pitch; /* Baseline pitch in Hertz */ UWORD mode; /* Pitch mode */ UWORD sex; /* Sex of voice */ UBYTE *ch_masks; /* Pointer to audio alloc maps */ UWORD nm_masks; /* Number of audio alloc maps */ UWORD volume; /* Volume. 0 (off) thru 64 */ UWORD sampfreq; /* Audio sampling freq */ UBYTE mouths; /* If non-zero, generate mouths */ UBYTE chanmask; /* Which ch mask used (internal)*/ UBYTE numchan; /* Num ch masks used (internal) */ UBYTE flags; /* New feature flags */ UBYTE F0enthusiasm; /* F0 excursion factor */ UBYTE F0perturb; /* Amount of F0 perturbation */ BYTE F1adj; /* F1 adjustment in ±5% steps */ BYTE F2adj; /* F2 adjustment in ±5% steps */ BYTE F3adj; /* F3 adjustment in ±5% steps */ BYTE A1adj; /* A1 adjustment in decibels */ BYTE A2adj; /* A2 adjustment in decibels */ BYTE A3adj; /* A3 adjustment in decibels */ UBYTE articulate; /* Transition time multiplier */ UBYTE centralize; /* Degree of vowel centralization */ char *centphon; /* Pointer to central ASCII phon */ BYTE AVbias; /* AV bias */ BYTE AFbias; /* AF bias */ BYTE priority; /* Priority while speaking */ BYTE pad1; /* For alignment */ }; /* Standard Read request */ struct mouth_rb { struct narrator_rb voice; /* Speech IORB */ UBYTE width; /* Width (returned value) */ UBYTE height; /* Height (returned value) */ UBYTE shape; /* Internal use, do not modify */ UBYTE sync; /* Returned sync events */ }; #endif /* DEVICES_NARRATOR_H */