[Contents] [Index] [Help] [Retrace] [browse <] [Browse >]

#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 */