SAPI5: Fix pitch changes for mbrola voices. git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@182 d46cf337-b52f-0410-862d-fd96e6ae7743master
| @@ -239,8 +239,8 @@ sr $dot | |||
| ?2 sra $dot | |||
| // articles | |||
| o $u+ | |||
| a $u+ | |||
| o $u+ $nounf | |||
| a $u+ $nounf | |||
| os $u+ | |||
| as $u+ | |||
| ?1 a & $u+ | |||
| @@ -252,10 +252,10 @@ umas $u | |||
| // pronouns | |||
| eu $u+ | |||
| eu $u+ $verbf | |||
| tu $u+ | |||
| você $u+ | |||
| ele $u+ | |||
| você vos'e $u+ | |||
| ele 'ely $u+ | |||
| ela $u+ | |||
| nós $u+ | |||
| vós $u+ | |||
| @@ -266,15 +266,24 @@ elas $u+ | |||
| me $u // reflexive | |||
| te $u | |||
| nos $u | |||
| la $u | |||
| lo $u | |||
| las $u | |||
| los $u | |||
| //se $u | |||
| ?2 este $u+ 'estSi // this | |||
| ?2 estes $u+ 'estSis // these | |||
| ?2 esta 'Est& $brk $u+ | |||
| ?2 neste $u+ n'estSi //in this | |||
| ?2 nestes $u+ n'estSis //in these | |||
| ?2 esse $u+ 'esi // that | |||
| essa 'Es& $brk $u+ | |||
| aquele $u+ // that | |||
| desse d'esy $u+ | |||
| nesse n'esy $u+ | |||
| aquele &k'ely $u+ // that | |||
| aquela $u+ | |||
| daquele d&k'ely $u+ | |||
| ?1 que ky $u | |||
| ?2 que ke $u $pause | |||
| @@ -296,11 +305,11 @@ suas $u+ | |||
| ?2 nossa $u+ n'Os& | |||
| ?2 nossos $u+ n'OsUs | |||
| ?2 nossas $u+ n'Os&s | |||
| dele $u+ | |||
| dele dely $u1+ | |||
| dela $u+ | |||
| deles $u+ | |||
| delas $u+ | |||
| nele nely $u1+ | |||
| // prepositions | |||
| de $u // of,from | |||
| @@ -352,7 +361,7 @@ com $u $brk // with | |||
| ?2 desde $u $pause // from,since | |||
| ?2 entre $pause // between,among | |||
| ?2 por $u $pause // by,for,through | |||
| ?2 sobre $pause // on,above,about | |||
| ?2 sobre s'obRy $pause // on,above,about | |||
| ?2 sob $pause // under,below | |||
| ?2 debaixo $pause // under,below | |||
| @@ -419,25 +428,24 @@ somos $u | |||
| sois $u | |||
| são $u | |||
| era $u // .. imperfect | |||
| era E*& $u1 // .. imperfect | |||
| éramos $u | |||
| éreis $u | |||
| eram $u | |||
| eram E*&U~ $u1 | |||
| fui $u // .. preterite | |||
| foste $u | |||
| foi $u | |||
| fomos $u | |||
| fostes $u | |||
| foram $u | |||
| fora $u // .. pluperfect | |||
| fômamos $u | |||
| fôreis $u | |||
| foram $u | |||
| foram fo*&U~ $u1 | |||
| serei $u // .. future | |||
| será $u | |||
| ?2 será se*a $u2 | |||
| seremos $u | |||
| sereis $u | |||
| serão $u | |||
| @@ -460,7 +468,7 @@ estávamos $u | |||
| astavam $u | |||
| estive $u | |||
| esteve $u | |||
| ?2 esteve estevy $u2 | |||
| estivemos $u | |||
| estiveram $u | |||
| estiver $u estSiv'Er | |||
| @@ -487,7 +495,7 @@ tinham $u | |||
| tive $u | |||
| tiveste $u | |||
| teve $u | |||
| teve tevy $u1 | |||
| tivemos $u | |||
| tivestes $u | |||
| tiveram $u | |||
| @@ -528,8 +536,8 @@ pôde $u+ | |||
| pudemos $u+ | |||
| puderam $u+ | |||
| poderei $u+ | |||
| poderá $u+ | |||
| poderei $u3+ | |||
| poderá $u3+ | |||
| poderemos $u+ | |||
| poderão $u+ | |||
| @@ -558,34 +566,37 @@ alguns $u // some | |||
| algumas $u // some | |||
| não n,&U~ $strend // not | |||
| // Words with two possible pronounciations | |||
| jogo Z'OgU $verb | |||
| gosto g'OstU $verb | |||
| começo kom'EsU $verb | |||
| almoço aUm'OsU $verb | |||
| retorno xet'OrnU $verb | |||
| acordo &k'OrdU $verb | |||
| governo gov'ernU $noun | |||
| olho 'oljU $noun | |||
| colher kolj'Er $noun | |||
| // MAIN WORD DICTIONARY | |||
| //********************* | |||
| fosse f'osy | |||
| fossem f'oseIN | |||
| hoje 'oZi | |||
| mulher mulj'Er | |||
| mui mu~j | |||
| muito m'u~jtu // -s is included as a suffix | |||
| muita m'u~jt& | |||
| ?2 rede x'edZy | |||
| teta t'et& | |||
| // $alt changes the first [o] phoneme to [O] | |||
| costa $alt | |||
| forte $alt | |||
| porta $alt | |||
| // $alt changes the first [o] phoneme to open [O] | |||
| novos $alt | |||
| novas $alt | |||
| morte $alt | |||
| mortos $alt | |||
| porte $alt | |||
| norte $alt | |||
| corpos $alt | |||
| modo $alt | |||
| modos $alt | |||
| fogos $alt | |||
| sorte $alt | |||
| toque $alt | |||
| bloco $alt | |||
| blocos $alt | |||
| floco $alt | |||
| flocos $alt | |||
| lopes $alt | |||
| jogos $alt | |||
| @@ -596,13 +607,7 @@ jogos $alt | |||
| ?1 sobre s'obry | |||
| // Open [E] | |||
| nela n'El& | |||
| nessa n'Es& | |||
| era 'E*& | |||
| abacaxi abakaSi | |||
| abacaxi abakaSy | |||
| axé aSE | |||
| elixir eliSir | |||
| ?1 fixe f'iSy | |||
| @@ -613,6 +618,8 @@ roxo x'oSU | |||
| ?1 alt 'alt | |||
| ?2 agosto &g'ostU | |||
| ?1 back b'Ek | |||
| ?2 backup bEk'&p | |||
| ?2 backups bEk'&ps | |||
| ?1 blind bl'aind | |||
| ?1 braille b:r'aily | |||
| ?2 Braille bR'aili | |||
| @@ -37,14 +37,15 @@ | |||
| ?2 alh alj | |||
| a (m &~ | |||
| a (mAr_ & | |||
| a (mA@ & | |||
| a (n &~ | |||
| a (nA@ & | |||
| a (nAr_ & | |||
| am (_ =&~N | |||
| am (C &~m | |||
| ?4 am (C &~N | |||
| an (K+ &~N | |||
| a (nhA+ & | |||
| am (_ =&U~ | |||
| ?1 a (z_ 'a //eg: paz, rapaz, capaz, etc... | |||
| ?1 C) acç 'a's // eg: selecção, etc... | |||
| @@ -113,9 +114,9 @@ | |||
| ?3 c (_C k_ | |||
| ch S | |||
| ck k | |||
| c (c //drop “c” in European Portuguese (eg: seleccionar) | |||
| A) ct t //drop “c” in European Portuguese (eg: exacto) | |||
| A) cç s //drop “c” in European Portuguese (eg: selecção) | |||
| ?1 c (c //drop “c” in European Portuguese (eg: seleccionar) | |||
| ?1 A) ct t //drop “c” in European Portuguese (eg: exacto) | |||
| ?1 A) cç s //drop “c” in European Portuguese (eg: selecção) | |||
| ?1 conta) ct (A kt // eg: contacto, contactar, contactável, incontactável, etc... | |||
| @@ -146,6 +147,7 @@ | |||
| ?2 el (K EU | |||
| ?2 elh elj | |||
| v) e (lhA_ E | |||
| e (be_ E | |||
| e (bem_ E | |||
| @@ -154,9 +156,15 @@ | |||
| e (ce_ E | |||
| e (cem_ E | |||
| e (chA_ E | |||
| e (chAm_ E | |||
| r) e (cho_ e | |||
| e (clA_ E | |||
| e (clAm_ E | |||
| e (co_ E | |||
| e (ctA_ E | |||
| e (ctAm_ E | |||
| e (de_ E | |||
| e (dem_ E | |||
| @@ -175,13 +183,30 @@ | |||
| e (gue_ E | |||
| e (guem_ E | |||
| e (la_ E | |||
| e (rA_ E | |||
| e (rAm_ E | |||
| l) e (rA_ e | |||
| l) e (rAm_ e | |||
| e (lA_ E | |||
| e (lo_ e | |||
| e (lAm_ E | |||
| i) e (r_ E | |||
| @s) e (r_ E | |||
| u) e (r_ E | |||
| ib) e (rA_ E | |||
| d) e (rA_ E | |||
| ed) e (rAm_ e | |||
| iv) e (rAm_ E | |||
| pod) e (rA_ e | |||
| d) e (rAm_ E | |||
| ib) e (rAm_ E | |||
| @s) e (rA_ E | |||
| @s) e (rAm_ E | |||
| sp) e (rA_ E | |||
| sp) e (rAm_ E | |||
| e (rdA_ E | |||
| e (rdAm_ E | |||
| e (rgA_ E | |||
| e (rgAm_ E | |||
| e (rsA_ E | |||
| e (rsAm_ E | |||
| @@ -209,9 +234,14 @@ | |||
| e (rvAm_ E | |||
| e (tA_ E | |||
| An) e (tA_ e | |||
| gaz) e (ta_ e | |||
| e (tAm_ E | |||
| e (vA_ E | |||
| t) e (ve_ e | |||
| e (vi_ e | |||
| e (vê_ e | |||
| e (vAm_ E | |||
| e (rrAs_ E | |||
| @@ -370,6 +400,7 @@ | |||
| inh in^ | |||
| i (A_ 'i | |||
| i (am_ 'i | |||
| io (_ iU | |||
| io (s_ iU | |||
| i (oCK i | |||
| @@ -482,6 +513,7 @@ | |||
| p) o (dAm_ O | |||
| o (g_ O | |||
| o (gs_ O | |||
| o (ge_ O | |||
| o (gem_ O | |||
| @@ -492,10 +524,14 @@ | |||
| o (ldA_ O | |||
| o (ldAm_ O | |||
| o (lA_ O | |||
| o (lAm_ O | |||
| o (ltA_ O | |||
| o (ltAm_ O | |||
| o (sA_ O | |||
| o (so_ o | |||
| o (sAm_ O | |||
| o (ssA_ O | |||
| @@ -503,12 +539,16 @@ | |||
| o (va_ O | |||
| o (vAm_ O | |||
| o (ve_ O | |||
| m) o (va_ o | |||
| m) o (vam_ o | |||
| o (veCs_ O | |||
| ?1 o (l_ 'O | |||
| ?2 ol (_ Ow | |||
| ?2 olh olj | |||
| ?2 _) o (lhA_ O | |||
| ?2 _) o (lhAm_ O | |||
| om (_ oN | |||
| o (ma_ o | |||
| @@ -520,12 +560,19 @@ | |||
| o (brA_ O | |||
| o (brAm_ O | |||
| o (dA_ O | |||
| o (dAm_ O | |||
| t) o (dA_ o | |||
| o (rCA_ O | |||
| o (rCo_ o | |||
| o (rCAm_ O | |||
| o (stA_ O | |||
| o (sto_ o | |||
| o (stAm_ O | |||
| o (strA_ O | |||
| os (trAm_ O | |||
| o (tA_ O | |||
| o (tAm_ O | |||
| @@ -534,7 +581,18 @@ | |||
| ?1 oz (_ Os# | |||
| ?2 oz (_ Oz | |||
| o (zes_ O | |||
| o (ra_ O | |||
| o (rA_ O | |||
| b) o (re_ o | |||
| c) o (re_ o | |||
| d) o (re_ o | |||
| l) o (re_ o | |||
| t) o (re_ o | |||
| v) o (re_ o | |||
| o (rAm_ O | |||
| b) o (rA_ O | |||
| @@) o (rA_ o | |||
| o (p_ O | |||
| ?1 _) o (C O // eg: olá, orla, opção, etc... | |||
| ?1 _C) o (CACAC u // Documento, documentação, localizar, etc. | |||
| ?1 f) o (rmat u // formatar, formato. | |||
| @@ -639,6 +697,7 @@ | |||
| A) s (_S1 s | |||
| A) s (_AS1 z // next word starts with vowel | |||
| ese) s (_ s | |||
| ?!4 A) s (_GS1 z // next word starts with voiced consonant | |||
| ?1 A) s (C s# | |||
| @@ -6,8 +6,8 @@ phoneme S // this is letter š | |||
| vowelout f1=0 f2=2100 100 300 f3=-100 80 | |||
| length 30 | |||
| lengthmod 3 | |||
| wave ufric/sh3%220 | |||
| before _ ufric/sh3%160 | |||
| wave ufric/sh3%110 | |||
| before _ ufric/sh3%90 | |||
| switchvoicing Z | |||
| endphoneme | |||
| @@ -16,8 +16,8 @@ phoneme tS // this is letter č | |||
| vowelin f1=0 f2=1900 100 200 f3=-100 80 | |||
| length 90 | |||
| lengthmod 2 | |||
| wave ustop/tsh2 | |||
| before _ ustop/tsh2%70 | |||
| wave ustop/tsh2%50 | |||
| before _ ustop/tsh2%40 | |||
| switchvoicing dZ | |||
| endphoneme | |||
| @@ -25,8 +25,8 @@ phoneme tS; // this is letter ć | |||
| vls pal afr sibilant palatal | |||
| vowelin f1=0 f2=2500 300 500 f3=300 80 rate len=70 | |||
| lengthmod 2 | |||
| wave ustop/ts_pzd3 | |||
| before _ ustop/ts_pzd3%80 | |||
| wave ustop/ts_pzd3%50 | |||
| before _ ustop/ts_pzd3%50 | |||
| switchvoicing dZ; | |||
| endphoneme | |||
| @@ -35,8 +35,8 @@ phoneme Z // letter ž | |||
| vcd pla frc sibilant | |||
| vowelin f1=0 f2=2000 0 300 f3=-200 80 | |||
| vowelout f1=2 f2=2000 0 300 f3=-200 80 brk | |||
| formants voc/zh+ufric/sh3%240 | |||
| before _ voc/zh_+ufric/sh3%170 | |||
| formants voc/zh+ufric/sh3%150 | |||
| before _ voc/zh_+ufric/sh3%80 | |||
| lengthmod 6 | |||
| switchvoicing S | |||
| endphoneme | |||
| @@ -45,8 +45,8 @@ phoneme dZ //letter dž | |||
| vcd pla afr sibilant | |||
| vowelin f1=2 f2=1900 100 300 f3=100 80 | |||
| vowelout f1=2 f2=1900 100 300 f3=100 80 brk | |||
| formants dzh/dzh2+ustop/tsh2%140 | |||
| before _ dzh/dzh_+ustop/tsh2%100 | |||
| formants dzh/dzh2+ustop/tsh2%80 | |||
| before _ dzh/dzh_+ustop/tsh2%50 | |||
| after _ NULL | |||
| after @ dzh/xdzh | |||
| lengthmod 5 | |||
| @@ -56,8 +56,8 @@ endphoneme | |||
| phoneme dZ; // letter đ | |||
| vcd pla afr sibilant palatal | |||
| vowelin f1=2 f2=2500 300 500 f3=300 80 rate len=70 | |||
| formants dzh/dzh2+ustop/ts_pzd3%140 | |||
| before _ dzh/dzh_+ustop/ts_pzd3%80 | |||
| formants dzh/dzh2+ustop/ts_pzd3%80 | |||
| before _ dzh/dzh_+ustop/ts_pzd3%50 | |||
| after _ NULL | |||
| after @ dzh/xdzh | |||
| lengthmod 5 | |||
| @@ -105,7 +105,7 @@ endphoneme | |||
| phoneme V | |||
| vowel starttype (a) endtype (@) | |||
| length 155 | |||
| length 160 | |||
| formants vowel/V_6 | |||
| reduceto @ 0 | |||
| endphoneme | |||
| @@ -396,11 +396,26 @@ static void MbrolaEmbedded(int &embix, int sourceix) | |||
| unsigned int word; // bit 7=last command for this word, bits 5,6 sign, bits 0-4 command | |||
| unsigned int value; | |||
| int command; | |||
| int sign=0; | |||
| do { | |||
| word = embedded_list[embix++]; | |||
| value = word >> 8; | |||
| command = word & 0x7f; | |||
| command = word & 0x1f; | |||
| if((word & 0x60) == 0x60) | |||
| sign = -1; | |||
| else | |||
| if((word & 0x60) == 0x40) | |||
| sign = 1; | |||
| if(command < N_EMBEDDED_VALUES) | |||
| { | |||
| if(sign == 0) | |||
| embedded_value[command] = value; | |||
| else | |||
| embedded_value[command] += (value * sign); | |||
| } | |||
| switch(command & 0x1f) | |||
| { | |||
| @@ -35,7 +35,7 @@ | |||
| #include "translate.h" | |||
| #include "wave.h" | |||
| const char *version_string = "1.37.09 31.Jul.08"; | |||
| const char *version_string = "1.37.10 05.Aug.08"; | |||
| const int version_phdata = 0x013400; | |||
| int option_device_number = -1; | |||