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; |