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
00733
00734
00735
00736
00737
generated by