Main Page   Compound List   File List   Compound Members   File Members   Related Pages  

util.h

Go to the documentation of this file.
00001 
00023 #ifndef _UTIL_H_
00024 #define _UTIL_H_
00025 
00026 #include <iostream.h>
00027 #include <istream.h>
00028 #include <string>
00029 #include <cstdlib> 
00030 #include <fstream.h>
00031 #include <vector.h>
00032 #include <string.h>
00033 #include <strstream.h>
00034 #include <math.h>
00035 extern "C" {
00036 #include <stdlib.h>
00037 #include <stdio.h>
00038 }
00039 
00043 typedef unsigned int uint;
00044 
00046 #define LINEAR 1
00047 
00048 #define EXPONENTIAL 2
00049 
00050 #define LOGARITHMIC 3
00051 
00052 #define SYLLABLE_BASED 4
00053 
00055 const uint A_HIGH_INT = 100000;
00057 const uint maxVal = 10000;
00058 
00060 const uint MAX_DBVAL = 60;
00061 
00063 const uint maxF0 = 5000; 
00065 const uint minF0 = 500;  
00067 const uint maxF1 = 1000; 
00069 const uint minF1 = 200; 
00071 const uint maxF2 = 2500; 
00073 const uint minF2 = 500; 
00075 const uint maxF3 = 3800; 
00077 const uint minF3 = 2100; 
00079 const uint maxF4 = 4500; 
00081 const uint minF4 = 3000; 
00083 const uint maxF5 = 5000; 
00085 const uint minF5 = 3500; 
00086 
00088 const uint jumpTolerance = 50; 
00089 
00091 const uint minOq = 10; 
00093 const uint minB1 = 30; 
00095 const uint minB2 = 30; 
00097 const uint minB3 = 30; 
00099 const uint minB4 = 40; 
00101 const uint minB5 = 45; 
00103 const uint minB6 = 50; 
00105 const uint minBnp = 30; 
00107 const uint minBtp = 30; 
00108 
00110 const uint MIN_SPEECHRATE = 70; 
00112 const uint MAX_SPEECHRATE = 150; 
00113 
00114 
00118 typedef enum {
00119   straight, 
00120   rise, 
00121   fall, 
00122 } CONTOUR_TYPE;
00123 
00124 
00139 typedef struct {
00143   bool use4Freq;
00147   bool use5Freq;
00153   uint changeDurMethod;
00157   bool verbose;
00161   bool warningsOff;
00166   bool copyDB;
00172   bool copysynthesis;
00176   bool senSyn; 
00177   uint 
00179   f0, 
00181     f1, 
00183     f2, 
00185     f3,
00187     f4, 
00189     f5, 
00191     f6,
00193     b1, 
00195     b2, 
00197     b3, 
00199     b4, 
00201     b5, 
00203     b6,
00206     a1, 
00208     a2, 
00210     a3, 
00212     a4, 
00214     a5, 
00216     a6,
00218     b1p, 
00220     b2p,  
00222     b3p, 
00224     b4p, 
00226     b5p, 
00228     b6p,
00230     av, 
00232     ah, 
00234     oq, 
00236     aturb, 
00238     af, 
00240     ab, 
00242     avp; 
00244   int tl; 
00246   uint fl, 
00248     gain, 
00250     anv, 
00252     fnz, 
00254     bnz, 
00256     fnp, 
00258     bnp, 
00260     ui, 
00262     sr, 
00264     nf, 
00266     ss, 
00268     rs, 
00270     sb, 
00272     cp, 
00274     os, 
00276     gv, 
00278     gh, 
00280     gf, 
00282     sq, 
00284     di, 
00286     df1, 
00288     db1, 
00290     ftp, 
00292     btp, 
00294     ftz, 
00296     btz, 
00298     a2f, 
00300     a3f, 
00302     a4f, 
00304     a5f, 
00306     a6f, 
00308     a1v, 
00310     a2v, 
00312     a3v, 
00314     a4v, 
00316     atv; 
00317 
00318   bool  
00320   f0Dyn,  
00322     f1Dyn,  
00324     f2Dyn,  
00326     f3Dyn,  
00328     f4Dyn,  
00330     f5Dyn,  
00332     f6Dyn,  
00334     b1Dyn,  
00336     b2Dyn,  
00338     b3Dyn,  
00340     b4Dyn,  
00342     b5Dyn,  
00344     b6Dyn,  
00346     b2pDyn,  
00348     b3pDyn,  
00350     b4pDyn,  
00352     b5pDyn,  
00354     b6pDyn,  
00356     avDyn,  
00358     ahDyn,  
00360     oqDyn,  
00362     aturbDyn,  
00364     afDyn,  
00366     abDyn,  
00368     tlDyn,  
00370     flDyn,  
00372     anvDyn,  
00374     fnzDyn,  
00376     bnzDyn,  
00378     fnpDyn,  
00380     bnpDyn,  
00382     sqDyn,  
00384     diDyn,  
00386     df1Dyn,  
00388     db1Dyn,  
00390     ftpDyn,  
00392     btpDyn,  
00394     ftzDyn,  
00396     btzDyn,  
00398     a2fDyn,  
00400     a3fDyn,  
00402     a4fDyn,  
00404     a5fDyn,  
00406     a6fDyn,  
00408     a1vDyn,  
00410     a2vDyn,  
00412     a3vDyn,  
00414     a4vDyn,  
00416     atvDyn; 
00417 
00418 } globalsT;
00419 
00425 double mean(const vector<uint>& vec);
00426 
00432 void changeMean(vector<uint>& Vals, uint rate);
00433 
00441 void smoothe(vector<uint>& Vals, uint winsize);
00442 
00451 void changeContrast(vector<uint>& Vals, short rate, double mean);
00452 
00460 void interpolateLinear(vector<uint>&, uint start, uint end);
00461 
00470 vector<uint> interpolateLinear(uint length, uint start, uint end);
00471 
00479 double ST2Hz(uint freq, double semiTone);
00480 
00488 double Hz2ST(uint freq1, uint freq2);
00489 
00490 
00491 
00501 double gradient2Hz (uint freq, uint time, double gradient);
00502 
00508 uint checkMaxF0(uint freq);
00514 uint checkMaxF1(uint freq);
00520 uint checkMaxF2(uint freq);
00526 uint checkMaxF3(uint freq);
00532 uint checkMaxF4(uint freq);
00538 uint checkMaxF5(uint freq);
00539 
00545 uint checkMinF0(uint freq);
00551 uint checkMinF1(uint freq);
00557 uint checkMinF2(uint freq);uint checkMinF0(uint freq);
00563 uint checkMinF3(uint freq);
00569 uint checkMinF4(uint freq);
00575 uint checkMinF5(uint freq);
00576 
00585 void addJitterVec(vector<uint>& vals, uint rate);
00586 
00592 void error(string msg, int errNo);
00593 
00598 void warn(string msg);
00599 
00604 void printVec(vector<uint> vec);
00605 
00610 void printVec(vector<int> vec);
00611 
00619 vector<uint> subVec(vector<uint> vec, uint start, uint end);
00620 
00621 
00631 vector<uint> modelTrack(string name, uint valNum, vector<uint> f0ValVec, vector<uint> f0TimeVec);
00641 vector<int> modelTrack(string name, uint valNum, vector<int> f0ValVec, vector<uint> f0TimeVec);
00642 
00655 vector<int> change_valNum(string name, uint valNum, uint left, uint right, vector<int> orig);
00656 
00669 vector<uint> change_valNum(string name, uint valNum, uint left, uint right, vector<uint> orig);
00670 
00686 vector<uint> change_valNum_stop(string name, uint valNum, uint left, uint right, vector<uint> orig);
00687 
00688 
00694 vector<string> string2vec(string buffer);
00695 
00703 uint msec2frames(uint dur, globalsT glob);
00704 
00713 uint calcNewDur(uint dur, int rate, globalsT glob);
00714 
00730 uint F12BW(uint f1);
00731 
00732 #endif /* _UTIL_H */
00733 
00734 
00735 
00736 
00737 
generated by doxygen