1 /* $Id: nsynth.h,v 1.11 1994/11/08 13:30:50 a904209 Exp a904209 $ 2 */ 3 #define CASCADE_PARALLEL 1 4 #define ALL_PARALLEL 2 5 #define NPAR 40 6 #define IMPULSIVE 1 7 #define NATURAL 2 8 #ifndef PI 9 #define PI 3.1415927 10 #endif 11 12 #ifndef TRUE 13 #define TRUE 1 14 #endif 15 16 #ifndef FALSE 17 #define FALSE 0 18 #endif 19 20 typedef struct 21 { 22 long F0hz10; /* Voicing fund freq in Hz */ 23 long AVdb; /* Amp of voicing in dB, 0 to 70 */ 24 long F1hz; /* First formant freq in Hz, 200 to 1300 */ 25 long B1hz; /* First formant bw in Hz, 40 to 1000 */ 26 long F2hz; /* Second formant freq in Hz, 550 to 3000 */ 27 long B2hz; /* Second formant bw in Hz, 40 to 1000 */ 28 long F3hz; /* Third formant freq in Hz, 1200 to 4999 */ 29 long B3hz; /* Third formant bw in Hz, 40 to 1000 */ 30 long F4hz; /* Fourth formant freq in Hz, 1200 to 4999 */ 31 long B4hz; /* Fourth formant bw in Hz, 40 to 1000 */ 32 long F5hz; /* Fifth formant freq in Hz, 1200 to 4999 */ 33 long B5hz; /* Fifth formant bw in Hz, 40 to 1000 */ 34 long F6hz; /* Sixth formant freq in Hz, 1200 to 4999 */ 35 long B6hz; /* Sixth formant bw in Hz, 40 to 2000 */ 36 long FNZhz; /* Nasal zero freq in Hz, 248 to 528 */ 37 long BNZhz; /* Nasal zero bw in Hz, 40 to 1000 */ 38 long FNPhz; /* Nasal pole freq in Hz, 248 to 528 */ 39 long BNPhz; /* Nasal pole bw in Hz, 40 to 1000 */ 40 long ASP; /* Amp of aspiration in dB, 0 to 70 */ 41 long Kopen; /* # of samples in open period, 10 to 65 */ 42 long Aturb; /* Breathiness in voicing, 0 to 80 */ 43 long TLTdb; /* Voicing spectral tilt in dB, 0 to 24 */ 44 long AF; /* Amp of frication in dB, 0 to 80 */ 45 long Kskew; /* Skewness of alternate periods, 0 to 40 in sample#/2 */ 46 long A1; /* Amp of par 1st formant in dB, 0 to 80 */ 47 long B1phz; /* Par. 1st formant bw in Hz, 40 to 1000 */ 48 long A2; /* Amp of F2 frication in dB, 0 to 80 */ 49 long B2phz; /* Par. 2nd formant bw in Hz, 40 to 1000 */ 50 long A3; /* Amp of F3 frication in dB, 0 to 80 */ 51 long B3phz; /* Par. 3rd formant bw in Hz, 40 to 1000 */ 52 long A4; /* Amp of F4 frication in dB, 0 to 80 */ 53 long B4phz; /* Par. 4th formant bw in Hz, 40 to 1000 */ 54 long A5; /* Amp of F5 frication in dB, 0 to 80 */ 55 long B5phz; /* Par. 5th formant bw in Hz, 40 to 1000 */ 56 long A6; /* Amp of F6 (same as r6pa), 0 to 80 */ 57 long B6phz; /* Par. 6th formant bw in Hz, 40 to 2000 */ 58 long ANP; /* Amp of par nasal pole in dB, 0 to 80 */ 59 long AB; /* Amp of bypass fric. in dB, 0 to 80 */ 60 long AVpdb; /* Amp of voicing, par in dB, 0 to 70 */ 61 long Gain0; /* Overall gain, 60 dB is unity, 0 to 60 */ 62 } klatt_frame_t, *klatt_frame_ptr; 63 64 extern klatt_frame_t def_pars; 65 66 typedef struct 67 { 68 int synthesis_model; 69 int quiet_flag; 70 int f0_flutter; 71 int outsl; 72 long samrate; 73 long nfcascade; 74 long glsource; 75 long nspfr; 76 } klatt_global_t, *klatt_global_ptr; 77 78 extern klatt_global_t klatt_global; 79 80 extern void parwave PROTO((klatt_global_ptr, klatt_frame_ptr pars,short int *jwave)); 81 extern void parwave_init PROTO((klatt_global_ptr)); 82 extern void pr_pars PROTO((void)); 83 extern int init_synth PROTO((int argc,char *argv[])); 84 85