SAPI5: Fix pitch changes for mbrola voices. git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@182 d46cf337-b52f-0410-862d-fd96e6ae7743master
| ?2 sra $dot | ?2 sra $dot | ||||
| // articles | // articles | ||||
| o $u+ | |||||
| a $u+ | |||||
| o $u+ $nounf | |||||
| a $u+ $nounf | |||||
| os $u+ | os $u+ | ||||
| as $u+ | as $u+ | ||||
| ?1 a & $u+ | ?1 a & $u+ | ||||
| // pronouns | // pronouns | ||||
| eu $u+ | |||||
| eu $u+ $verbf | |||||
| tu $u+ | tu $u+ | ||||
| você $u+ | |||||
| ele $u+ | |||||
| você vos'e $u+ | |||||
| ele 'ely $u+ | |||||
| ela $u+ | ela $u+ | ||||
| nós $u+ | nós $u+ | ||||
| vós $u+ | vós $u+ | ||||
| me $u // reflexive | me $u // reflexive | ||||
| te $u | te $u | ||||
| nos $u | nos $u | ||||
| la $u | |||||
| lo $u | |||||
| las $u | |||||
| los $u | |||||
| //se $u | //se $u | ||||
| ?2 este $u+ 'estSi // this | ?2 este $u+ 'estSi // this | ||||
| ?2 estes $u+ 'estSis // these | ?2 estes $u+ 'estSis // these | ||||
| ?2 esta 'Est& $brk $u+ | ?2 esta 'Est& $brk $u+ | ||||
| ?2 neste $u+ n'estSi //in this | |||||
| ?2 nestes $u+ n'estSis //in these | |||||
| ?2 esse $u+ 'esi // that | ?2 esse $u+ 'esi // that | ||||
| essa 'Es& $brk $u+ | essa 'Es& $brk $u+ | ||||
| aquele $u+ // that | |||||
| desse d'esy $u+ | |||||
| nesse n'esy $u+ | |||||
| aquele &k'ely $u+ // that | |||||
| aquela $u+ | aquela $u+ | ||||
| daquele d&k'ely $u+ | |||||
| ?1 que ky $u | ?1 que ky $u | ||||
| ?2 que ke $u $pause | ?2 que ke $u $pause | ||||
| ?2 nossa $u+ n'Os& | ?2 nossa $u+ n'Os& | ||||
| ?2 nossos $u+ n'OsUs | ?2 nossos $u+ n'OsUs | ||||
| ?2 nossas $u+ n'Os&s | ?2 nossas $u+ n'Os&s | ||||
| dele $u+ | |||||
| dele dely $u1+ | |||||
| dela $u+ | dela $u+ | ||||
| deles $u+ | deles $u+ | ||||
| delas $u+ | delas $u+ | ||||
| nele nely $u1+ | |||||
| // prepositions | // prepositions | ||||
| de $u // of,from | de $u // of,from | ||||
| ?2 desde $u $pause // from,since | ?2 desde $u $pause // from,since | ||||
| ?2 entre $pause // between,among | ?2 entre $pause // between,among | ||||
| ?2 por $u $pause // by,for,through | ?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 sob $pause // under,below | ||||
| ?2 debaixo $pause // under,below | ?2 debaixo $pause // under,below | ||||
| sois $u | sois $u | ||||
| são $u | são $u | ||||
| era $u // .. imperfect | |||||
| era E*& $u1 // .. imperfect | |||||
| éramos $u | éramos $u | ||||
| éreis $u | éreis $u | ||||
| eram $u | |||||
| eram E*&U~ $u1 | |||||
| fui $u // .. preterite | fui $u // .. preterite | ||||
| foste $u | foste $u | ||||
| foi $u | foi $u | ||||
| fomos $u | fomos $u | ||||
| fostes $u | fostes $u | ||||
| foram $u | |||||
| fora $u // .. pluperfect | fora $u // .. pluperfect | ||||
| fômamos $u | fômamos $u | ||||
| fôreis $u | fôreis $u | ||||
| foram $u | |||||
| foram fo*&U~ $u1 | |||||
| serei $u // .. future | serei $u // .. future | ||||
| será $u | |||||
| ?2 será se*a $u2 | |||||
| seremos $u | seremos $u | ||||
| sereis $u | sereis $u | ||||
| serão $u | serão $u | ||||
| astavam $u | astavam $u | ||||
| estive $u | estive $u | ||||
| esteve $u | |||||
| ?2 esteve estevy $u2 | |||||
| estivemos $u | estivemos $u | ||||
| estiveram $u | estiveram $u | ||||
| estiver $u estSiv'Er | estiver $u estSiv'Er | ||||
| tive $u | tive $u | ||||
| tiveste $u | tiveste $u | ||||
| teve $u | |||||
| teve tevy $u1 | |||||
| tivemos $u | tivemos $u | ||||
| tivestes $u | tivestes $u | ||||
| tiveram $u | tiveram $u | ||||
| pudemos $u+ | pudemos $u+ | ||||
| puderam $u+ | puderam $u+ | ||||
| poderei $u+ | |||||
| poderá $u+ | |||||
| poderei $u3+ | |||||
| poderá $u3+ | |||||
| poderemos $u+ | poderemos $u+ | ||||
| poderão $u+ | poderão $u+ | ||||
| algumas $u // some | algumas $u // some | ||||
| não n,&U~ $strend // not | 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 | // MAIN WORD DICTIONARY | ||||
| //********************* | //********************* | ||||
| fosse f'osy | |||||
| fossem f'oseIN | |||||
| hoje 'oZi | |||||
| mulher mulj'Er | |||||
| mui mu~j | mui mu~j | ||||
| muito m'u~jtu // -s is included as a suffix | muito m'u~jtu // -s is included as a suffix | ||||
| muita m'u~jt& | 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 | novos $alt | ||||
| novas $alt | |||||
| morte $alt | |||||
| mortos $alt | mortos $alt | ||||
| porte $alt | |||||
| norte $alt | |||||
| corpos $alt | corpos $alt | ||||
| modo $alt | modo $alt | ||||
| modos $alt | modos $alt | ||||
| fogos $alt | fogos $alt | ||||
| sorte $alt | |||||
| toque $alt | |||||
| bloco $alt | |||||
| blocos $alt | |||||
| floco $alt | |||||
| flocos $alt | |||||
| lopes $alt | lopes $alt | ||||
| jogos $alt | jogos $alt | ||||
| ?1 sobre s'obry | ?1 sobre s'obry | ||||
| // Open [E] | |||||
| nela n'El& | |||||
| nessa n'Es& | |||||
| era 'E*& | |||||
| abacaxi abakaSi | |||||
| abacaxi abakaSy | |||||
| axé aSE | axé aSE | ||||
| elixir eliSir | elixir eliSir | ||||
| ?1 fixe f'iSy | ?1 fixe f'iSy | ||||
| ?1 alt 'alt | ?1 alt 'alt | ||||
| ?2 agosto &g'ostU | ?2 agosto &g'ostU | ||||
| ?1 back b'Ek | ?1 back b'Ek | ||||
| ?2 backup bEk'&p | |||||
| ?2 backups bEk'&ps | |||||
| ?1 blind bl'aind | ?1 blind bl'aind | ||||
| ?1 braille b:r'aily | ?1 braille b:r'aily | ||||
| ?2 Braille bR'aili | ?2 Braille bR'aili |
| ?2 alh alj | ?2 alh alj | ||||
| a (m &~ | a (m &~ | ||||
| a (mAr_ & | |||||
| a (mA@ & | a (mA@ & | ||||
| a (n &~ | a (n &~ | ||||
| a (nA@ & | a (nA@ & | ||||
| a (nAr_ & | |||||
| am (_ =&~N | am (_ =&~N | ||||
| am (C &~m | am (C &~m | ||||
| ?4 am (C &~N | ?4 am (C &~N | ||||
| an (K+ &~N | an (K+ &~N | ||||
| a (nhA+ & | |||||
| am (_ =&U~ | am (_ =&U~ | ||||
| ?1 a (z_ 'a //eg: paz, rapaz, capaz, etc... | ?1 a (z_ 'a //eg: paz, rapaz, capaz, etc... | ||||
| ?1 C) acç 'a's // eg: selecção, etc... | ?1 C) acç 'a's // eg: selecção, etc... | ||||
| ?3 c (_C k_ | ?3 c (_C k_ | ||||
| ch S | ch S | ||||
| ck k | 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... | ?1 conta) ct (A kt // eg: contacto, contactar, contactável, incontactável, etc... | ||||
| ?2 el (K EU | ?2 el (K EU | ||||
| ?2 elh elj | ?2 elh elj | ||||
| v) e (lhA_ E | |||||
| e (be_ E | e (be_ E | ||||
| e (bem_ E | e (bem_ E | ||||
| e (ce_ E | e (ce_ E | ||||
| e (cem_ E | e (cem_ E | ||||
| e (chA_ E | |||||
| e (chAm_ E | |||||
| r) e (cho_ e | |||||
| e (clA_ E | e (clA_ E | ||||
| e (clAm_ E | e (clAm_ E | ||||
| e (co_ E | e (co_ E | ||||
| e (ctA_ E | |||||
| e (ctAm_ E | |||||
| e (de_ E | e (de_ E | ||||
| e (dem_ E | e (dem_ E | ||||
| e (gue_ E | e (gue_ E | ||||
| e (guem_ 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 (rsA_ E | ||||
| e (rsAm_ E | e (rsAm_ E | ||||
| e (rvAm_ E | e (rvAm_ E | ||||
| e (tA_ E | e (tA_ E | ||||
| An) e (tA_ e | |||||
| gaz) e (ta_ e | |||||
| e (tAm_ E | e (tAm_ E | ||||
| e (vA_ E | e (vA_ E | ||||
| t) e (ve_ e | |||||
| e (vi_ e | |||||
| e (vê_ e | |||||
| e (vAm_ E | e (vAm_ E | ||||
| e (rrAs_ E | e (rrAs_ E | ||||
| inh in^ | inh in^ | ||||
| i (A_ 'i | i (A_ 'i | ||||
| i (am_ 'i | |||||
| io (_ iU | io (_ iU | ||||
| io (s_ iU | io (s_ iU | ||||
| i (oCK i | i (oCK i | ||||
| p) o (dAm_ O | p) o (dAm_ O | ||||
| o (g_ O | o (g_ O | ||||
| o (gs_ O | |||||
| o (ge_ O | o (ge_ O | ||||
| o (gem_ O | o (gem_ O | ||||
| o (ldA_ O | o (ldA_ O | ||||
| o (ldAm_ O | o (ldAm_ O | ||||
| o (lA_ O | |||||
| o (lAm_ O | |||||
| o (ltA_ O | o (ltA_ O | ||||
| o (ltAm_ O | o (ltAm_ O | ||||
| o (sA_ O | o (sA_ O | ||||
| o (so_ o | |||||
| o (sAm_ O | o (sAm_ O | ||||
| o (ssA_ O | o (ssA_ O | ||||
| o (va_ O | o (va_ O | ||||
| o (vAm_ O | o (vAm_ O | ||||
| o (ve_ O | |||||
| m) o (va_ o | |||||
| m) o (vam_ o | |||||
| o (veCs_ O | o (veCs_ O | ||||
| ?1 o (l_ 'O | ?1 o (l_ 'O | ||||
| ?2 ol (_ Ow | ?2 ol (_ Ow | ||||
| ?2 olh olj | ?2 olh olj | ||||
| ?2 _) o (lhA_ O | |||||
| ?2 _) o (lhAm_ O | |||||
| om (_ oN | om (_ oN | ||||
| o (ma_ o | o (ma_ o | ||||
| o (brA_ O | o (brA_ O | ||||
| o (brAm_ O | o (brAm_ O | ||||
| o (dA_ O | |||||
| o (dAm_ O | |||||
| t) o (dA_ o | |||||
| o (rCA_ O | o (rCA_ O | ||||
| o (rCo_ o | |||||
| o (rCAm_ O | o (rCAm_ O | ||||
| o (stA_ O | o (stA_ O | ||||
| o (sto_ o | |||||
| o (stAm_ O | o (stAm_ O | ||||
| o (strA_ O | |||||
| os (trAm_ O | |||||
| o (tA_ O | o (tA_ O | ||||
| o (tAm_ O | o (tAm_ O | ||||
| ?1 oz (_ Os# | ?1 oz (_ Os# | ||||
| ?2 oz (_ Oz | ?2 oz (_ Oz | ||||
| o (zes_ O | 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 _) o (C O // eg: olá, orla, opção, etc... | ||||
| ?1 _C) o (CACAC u // Documento, documentação, localizar, etc. | ?1 _C) o (CACAC u // Documento, documentação, localizar, etc. | ||||
| ?1 f) o (rmat u // formatar, formato. | ?1 f) o (rmat u // formatar, formato. | ||||
| A) s (_S1 s | A) s (_S1 s | ||||
| A) s (_AS1 z // next word starts with vowel | A) s (_AS1 z // next word starts with vowel | ||||
| ese) s (_ s | |||||
| ?!4 A) s (_GS1 z // next word starts with voiced consonant | ?!4 A) s (_GS1 z // next word starts with voiced consonant | ||||
| ?1 A) s (C s# | ?1 A) s (C s# |
| vowelout f1=0 f2=2100 100 300 f3=-100 80 | vowelout f1=0 f2=2100 100 300 f3=-100 80 | ||||
| length 30 | length 30 | ||||
| lengthmod 3 | lengthmod 3 | ||||
| wave ufric/sh3%220 | |||||
| before _ ufric/sh3%160 | |||||
| wave ufric/sh3%110 | |||||
| before _ ufric/sh3%90 | |||||
| switchvoicing Z | switchvoicing Z | ||||
| endphoneme | endphoneme | ||||
| vowelin f1=0 f2=1900 100 200 f3=-100 80 | vowelin f1=0 f2=1900 100 200 f3=-100 80 | ||||
| length 90 | length 90 | ||||
| lengthmod 2 | lengthmod 2 | ||||
| wave ustop/tsh2 | |||||
| before _ ustop/tsh2%70 | |||||
| wave ustop/tsh2%50 | |||||
| before _ ustop/tsh2%40 | |||||
| switchvoicing dZ | switchvoicing dZ | ||||
| endphoneme | endphoneme | ||||
| vls pal afr sibilant palatal | vls pal afr sibilant palatal | ||||
| vowelin f1=0 f2=2500 300 500 f3=300 80 rate len=70 | vowelin f1=0 f2=2500 300 500 f3=300 80 rate len=70 | ||||
| lengthmod 2 | lengthmod 2 | ||||
| wave ustop/ts_pzd3 | |||||
| before _ ustop/ts_pzd3%80 | |||||
| wave ustop/ts_pzd3%50 | |||||
| before _ ustop/ts_pzd3%50 | |||||
| switchvoicing dZ; | switchvoicing dZ; | ||||
| endphoneme | endphoneme | ||||
| vcd pla frc sibilant | vcd pla frc sibilant | ||||
| vowelin f1=0 f2=2000 0 300 f3=-200 80 | vowelin f1=0 f2=2000 0 300 f3=-200 80 | ||||
| vowelout f1=2 f2=2000 0 300 f3=-200 80 brk | 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 | lengthmod 6 | ||||
| switchvoicing S | switchvoicing S | ||||
| endphoneme | endphoneme | ||||
| vcd pla afr sibilant | vcd pla afr sibilant | ||||
| vowelin f1=2 f2=1900 100 300 f3=100 80 | vowelin f1=2 f2=1900 100 300 f3=100 80 | ||||
| vowelout f1=2 f2=1900 100 300 f3=100 80 brk | 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 _ NULL | ||||
| after @ dzh/xdzh | after @ dzh/xdzh | ||||
| lengthmod 5 | lengthmod 5 | ||||
| phoneme dZ; // letter đ | phoneme dZ; // letter đ | ||||
| vcd pla afr sibilant palatal | vcd pla afr sibilant palatal | ||||
| vowelin f1=2 f2=2500 300 500 f3=300 80 rate len=70 | 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 _ NULL | ||||
| after @ dzh/xdzh | after @ dzh/xdzh | ||||
| lengthmod 5 | lengthmod 5 |
| phoneme V | phoneme V | ||||
| vowel starttype (a) endtype (@) | vowel starttype (a) endtype (@) | ||||
| length 155 | |||||
| length 160 | |||||
| formants vowel/V_6 | formants vowel/V_6 | ||||
| reduceto @ 0 | reduceto @ 0 | ||||
| endphoneme | endphoneme |
| unsigned int word; // bit 7=last command for this word, bits 5,6 sign, bits 0-4 command | unsigned int word; // bit 7=last command for this word, bits 5,6 sign, bits 0-4 command | ||||
| unsigned int value; | unsigned int value; | ||||
| int command; | int command; | ||||
| int sign=0; | |||||
| do { | do { | ||||
| word = embedded_list[embix++]; | word = embedded_list[embix++]; | ||||
| value = word >> 8; | 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) | switch(command & 0x1f) | ||||
| { | { |
| #include "translate.h" | #include "translate.h" | ||||
| #include "wave.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; | const int version_phdata = 0x013400; | ||||
| int option_device_number = -1; | int option_device_number = -1; |