Browse Source

Merge branch 'upstream' into development

Conflicts:
	dictsource/dict_phonemes
master
Reece H. Dunn 12 years ago
parent
commit
64bed76f18

+ 24
- 17
dictsource/en_list View File

accusation akju:z'eIS@n accusation akju:z'eIS@n
acer eIs3 acer eIs3
acetylene a#sEt@li:n acetylene a#sEt@li:n
accurate akjUr@t
accurate $alt2
accursed a#k3:sI#d accursed a#k3:sI#d
?5 accursed a#kVRsI#d ?5 accursed a#kVRsI#d
achille a#kIli: achille a#kIli:
apprentice a#prEnt2Is apprentice a#prEnt2Is
approximate a#pr0ksIm@t $only approximate a#pr0ksIm@t $only
approximate a#pr0ksImeIt $verb approximate a#pr0ksImeIt $verb
approximately a#pr0ksIm@tli
aqueduct akwI#dVkt aqueduct akwI#dVkt
arab ar@b arab ar@b
arabic $1 arabic $1
chimpanzee $3 chimpanzee $3
chipotle tSI2poUtleI chipotle tSI2poUtleI
chisel tSIz@L chisel tSIz@L
chivalrous SIv@Lr@s
chloroplast $1 chloroplast $1
chocolate tS0kl@t chocolate tS0kl@t
cholera k0l@r@ cholera k0l@r@
collage k0l'A:Z collage k0l'A:Z
collarbone k0l3boUn collarbone k0l3boUn
college k0lI2dZ college k0lI2dZ
collegiate k@li:dZI@t
colloquial k@loUkwI@L colloquial k@loUkwI@L
colon koUl@n colon koUl@n
color kVl3 color kVl3
corolla k@roUl@ corolla k@roUl@
corollary $2 corollary $2
corporal kO@pr@L corporal kO@pr@L
corporate kO@p@r@t
corporate $alt2
corps kO@ $only corps kO@ $only
corral k@r'al corral k@r'al
corsage kO@s'A:Z corsage kO@s'A:Z
?3 deity di:@t2i ?3 deity di:@t2i
deja deIZA: $only deja deIZA: $only
deli dElI deli dElI
deliberate dI2lIb@r@t
delicate dElI2k@t
deliberate $alt2
delicate $alt2
delimit dI2lImIt // delimited delimit dI2lImIt // delimited
delivery $alt2 delivery $alt2
demolish dI2m0lIS demolish dI2m0lIS
fi f,aI // as in "hi-fi" fi f,aI // as in "hi-fi"
fiasco fi:'askoU fiasco fi:'askoU
fiat fi:@t fiat fi:@t
ficus fIk@s
fiery faI3rI fiery faI3rI
?3 fillet fI2leI ?3 fillet fI2leI
finagle fI#neIg@L finagle fI#neIg@L
freelance fri:laans freelance fri:laans
freon fri:0n freon fri:0n
fricassee frIka#seI fricassee frIka#seI
frigate frIg@t
frigate $alt2
fringer frIndZ3 // infringer fringer frIndZ3 // infringer
fringing frIndZIN fringing frIndZIN
frisson fri:s'O~ frisson fri:s'O~
goto goUtu: goto goUtu:
gourmand gU@mA:nd gourmand gU@mA:nd
gourmet gU@meI gourmet gU@meI
graduate gradju:@t
graduate $alt2
graduate gradju:eIt $verb graduate gradju:eIt $verb
graffiti $alt3 graffiti $alt3
grandson gr'andsVn grandson gr'andsVn
gurus gu:ru:z gurus gu:ru:z


habitual $alt3 habitual $alt3
hacienda hasI'End@
hacienda hA:sI'End@
haggis hagIs haggis hagIs
haha hA:h'A: haha hA:h'A:
halation $alt3 // in- halation $alt3 // in-
impinging Imp'IndZIN impinging Imp'IndZIN
implacable Impl'ak@b@L implacable Impl'ak@b@L
imprecise ImprIs'aIs imprecise ImprIs'aIs
inanimate In'anIm@t
inappropriate ,Ina#proUpri@t
inanimate $alt2
inappropriate Ina#pr'oUpri@t
incense Ins'Ens $verb incense Ins'Ens $verb
incoming InkVmIN incoming InkVmIN
increase Inkr'i:s $verb increase Inkr'i:s $verb
indefine $3 indefine $3
indeterminate IndI2t'3:mI2n@t
indeterminate $alt2
indicative $2 indicative $2
indices IndI2si:z indices IndI2si:z
indict Ind'aIt indict Ind'aIt
indie Indi indie Indi
indirect $3 indirect $3
?3 indirect Ind3r'Ekt ?3 indirect Ind3r'Ekt
indiscriminate IndI2skr'ImI2n@t
indiscriminate $alt2
indo IndoU indo IndoU
indoor $1 $only indoor $1 $only
industry IndVstrI industry IndVstrI
iron aI3n iron aI3n
irony aIr@nI irony aIr@nI
isosceles aIs'0s@li:z isosceles aIs'0s@li:z
itinerary aIt'In@r@rI


ja jA: ja jA:
jagged dZagI#d jagged dZagI#d
laborer leIb@r3 laborer leIb@r3
laborious $alt3 laborious $alt3
labyrinth lab3rInT labyrinth lab3rInT
lascivious $alt3
lager lA:g3 lager lA:g3
lagoon $alt3
laity leI@ti laity leI@ti
landowner l'and,oUn3 landowner l'and,oUn3
lapel $alt3 lapel $alt3
//mercenary m3:s@n@rI //mercenary m3:s@n@rI
merest mi@r@st merest mi@r@st
meringue m@raN meringue m@raN
merlot me@l'oU
merlot m3:l'oU
mesa meIs@ mesa meIs@
meson mi:z0n meson mi:z0n
metabolic mEt@b'0lIk metabolic mEt@b'0lIk
obesity oUb'i:s@ti obesity oUb'i:s@ti
obey oUb'eI obey oUb'eI
obituary 0b'ItSU@i obituary 0b'ItSU@i
?3 obituary oUb'ItSUe@i
?3 obituary oUb'ItSu:e@i
object $1 $onlys object $1 $onlys
object $verb object $verb
obsolete 0bs@li:t obsolete 0bs@li:t
orion 0r'aI@n orion 0r'aI@n
ornate $2 ornate $2
orphan O@f@n // orphaned orphan O@f@n // orphaned
ottoman 0t@m@n
outage aUtI2dZ outage aUtI2dZ
outback $1 outback $1
outcome $1 outcome $1
spoonfed spu:nfEd spoonfed spu:nfEd
squirrel skwIr@L squirrel skwIr@L
staccato $alt3 staccato $alt3
stasis steIsI#s
standby standbaI standby standbaI
stagnate $2 stagnate $2
?3 stalagmite $alt3 ?3 stalagmite $alt3
telephon tElI2foUn // for telephoning telephon tElI2foUn // for telephoning
temperature tEmprI2tS3 temperature tEmprI2tS3
?!3 temporary tEmpr@rI ?!3 temporary tEmpr@rI
?3 template tEmpl@t
?3 template $alt2
tetanus tEt@n@s tetanus tEt@n@s
therefore $1 therefore $1
thereof De@r'0v thereof De@r'0v
Alamo al@moU Alamo al@moU
Albuquerque alb@k3:ki Albuquerque alb@k3:ki
Algiers $2 Algiers $2
Altura O:lt'U@r@
Amman a#m'A:n Amman a#m'A:n
Andes andi:z Andes andi:z
Angeles andZ@li:s Angeles andZ@li:s
Monte m0nt2i Monte m0nt2i
Munich mju:nIk Munich mju:nIk
Myanmar mjA:nmA@ Myanmar mjA:nmA@
Niagara naI'agr@
Nairobi naIr'oUbi Nairobi naIr'oUbi
Naples neIp@Lz Naples neIp@Lz
Nauru naUru: Nauru naUru:
upon @p0n $u2 upon @p0n $u2
from fr0m $u from fr0m $u
?3 from frVm $u ?3 from frVm $u
(from the) fr,VmD@
(from the) %frVmD@2
(from where) %frVm||w'e@ $pause (from where) %frVm||w'e@ $pause
(from which) %frVm||w'ItS $pause (from which) %frVm||w'ItS $pause
up ,Vp $strend2 up ,Vp $strend2

+ 9
- 3
dictsource/en_rules View File

_s) ata (n eIt@ _s) ata (n eIt@
_g) ator eIt3 _g) ator eIt3
&) ate (_$w_alt2 @t &) ate (_$w_alt2 @t
&) ately (_ @tli
der) ated (_ eItI#d der) ated (_ eItI#d
pal) ate (_ @t pal) ate (_ @t
consul) ate (_ @t consul) ate (_ @t
g) au (s aU g) au (s aU
?!3 s) au (s 0 ?!3 s) au (s 0
?!3 au (str 0 ?!3 au (str 0
au (sch aU
au (_ aU au (_ aU
_) auch %O:x _) auch %O:x
aud (_ 'O:d aud (_ 'O:d
_) co (nw k0 _) co (nw k0
_) copy k0pI _) copy k0pI
_) copoly k'oUp,0lI _) copoly k'oUp,0lI
?!3 _) co (rL03 k0#
coro (ll k0#r0 coro (ll k0#r0
co (rrect k@ co (rrect k@
correspo k,0rIsp'0 correspo k,0rIsp'0
_) co (rri k0
_) co (rr k0
co (rro k@ co (rro k@
co (rrup k@ co (rrup k@
_) co (sm k0 _) co (sm k0
l) ith (er ID l) ith (er ID
_t) ith aID _t) ith aID
it (i_ 'i:t it (i_ 'i:t
_) it (iner %aIt
itius (_ 'IS@s itius (_ 'IS@s
itis (_ 'aItIs itis (_ 'aItIs
&) it (ive_ =I2t &) it (ive_ =I2t
&) name (_S4 neIm &) name (_S4 neIm
_) nano (P4 n,anoU _) nano (P4 n,anoU
nause nO:sI nause nO:sI
_) navig navIg
necessit n@sEsIt necessit n@sEsIt
&) ness (_S4im n@s &) ness (_S4im n@s
?8 &) ness (_S4im nEs ?8 &) ness (_S4im nEs
rEr (_ r3 rEr (_ r3
C) rh r C) rh r
rheu ru: rheu ru:
rhi (n raI
rhi (n# raI
rhi (z raI rhi (z raI
_) rho (d roU _) rho (d roU
_) rhodo (@ roUd@ _) rhodo (@ roUd@
th (ill th th (ill th
ee) thing DI2N ee) thing DI2N
the (_ D the (_ D
&) th (L03_ =T
ou) thed (_ Dd ou) thed (_ Dd
th (en_ D th (en_ D
g) th (en_ T g) th (en_ T
%B) y (_S1d I %B) y (_S1d I
_C) y (Ce aI _C) y (Ce aI
C) y (i I C) y (i I
&C) y (an_ =I
&C) y (en_ =I
y (iC_ j y (iC_ j
sf) y (_ aI sf) y (_ aI
Cf) y (_ %I Cf) y (_ %I

+ 4
- 0
dictsource/ml_list View File

_0C0 n'u:r:y _0C0 n'u:r:y
_0C nu:t.t.i _0C nu:t.t.i
_1C0 orynu:ry
_1C orynu:t.t.i
_2C0 iRynn'u:ry _2C0 iRynn'u:ry
_2C irunnu:t.t.i _2C irunnu:t.t.i
_3C0 munn'u:ry _3C0 munn'u:ry
_12f p'antran.t _12f p'antran.t
_13f p'atimu:v _13f p'atimu:v
_14f p'atina:l _14f p'atina:l
_15f patin'ai:j
_18f patin'enn
_19f p'attomp'atin _19f p'attomp'atin
_20f 'iruvatin _20f 'iruvatin
_2Xf 'iruvatt _2Xf 'iruvatt

+ 5
- 2
dictsource/pt_list View File

me $u $verbf // reflexive me $u $verbf // reflexive
te $u $verbf te $u $verbf
nos $u $nounf nos $u $nounf
vos vus $u
vos $u
la $u la $u
lo lU $u lo lU $u
las $u las $u
quarteto $alt2 quarteto $alt2
queda $alt queda $alt
quede $alt2 quede $alt2
quimera $alt
quitinete $alt quitinete $alt
quinteto $alt2 quinteto $alt2
ramalhete $alt2 ramalhete $alt2
recordo $alt recordo $alt
recorto $alt recorto $alt
rede $alt2 rede $alt2
reembolso $alt $verb
reembolso $alt2
reembolso $alt $verb
reforço $alt $verb reforço $alt $verb
reforços $alt reforços $alt
refresco $alt $verb refresco $alt $verb
soco $alt2 soco $alt2
soco $alt $verb soco $alt $verb
sogra $alt sogra $alt
sopa $alt2
sopro $alt2 $noun sopro $alt2 $noun
soro $alt2 soro $alt2
sorvete $alt2 sorvete $alt2

+ 14
- 10
dictsource/pt_rules View File

ib) e (rL04_ E ib) e (rL04_ E
d) e (rL04_ E d) e (rL04_ E
ed) e (rL04_ e ed) e (rL04_ e
m) e (rL04_ E
iv) e (rL04_ E iv) e (rL04_ E
pod) e (rA_ e pod) e (rA_ e


êCC) e (C@ e êCC) e (C@ e
ôC) e (C@ e ôC) e (C@ e
áC) e (C@ e áC) e (C@ e
áCC) e (C@ e
áCC) e (CA_ e
éCC) e (CA_ e
éCCC) e (C@ e éCCC) e (C@ e
íC) el (_ eU íC) el (_ eU
íC) e (C@ e íC) e (C@ e
íCC) e (C@ e íCC) e (C@ e
óC) e (C@ e óC) e (C@ e
óCC) e (C@ e
óCC) e (CA_ e
úC) e (C@ e úC) e (C@ e
úC) el (_ eU úC) el (_ eU
ection (_ 'EkS&~N ection (_ 'EkS&~N
ad) e (quL04_ E ad) e (quL04_ E
_dig) e (rL02_ E _dig) e (rL02_ E
_ing) e (rL02_ E _ing) e (rL02_ E
_m) e (rL03_ E
_sev) e (rL03_ E _sev) e (rL03_ E
_reit) e (rL03_ E _reit) e (rL03_ E
_sinc) e (rL03_ E _sinc) e (rL03_ E
gen) e (rL04_ E // de- re- gen) e (rL04_ E // de- re-
_alt) e (rL04_ E _alt) e (rL04_ E
_enc) e (rL04_ E _enc) e (rL04_ E
_esm) e (rL04_ E
_esm) e (rL04_ E
_imp) e (rL04_ E _imp) e (rL04_ E
_min) e (rL04_ E _min) e (rL04_ E
_sug) e (rL04_ E _sug) e (rL04_ E
eson) e (rL04_ E eson) e (rL04_ E
_apod) e (rL04_ E _apod) e (rL04_ E
_coop) e (rL04_ E _coop) e (rL04_ E
_enum) e (rL04_ E
_exub) e (rL04_ E _exub) e (rL04_ E
_temp) e (rL04_ E _temp) e (rL04_ E
_adult) e (rL04_ E _adult) e (rL04_ E
_aglom) e (rL04_ E
_dilac) e (rL04_ E _dilac) e (rL04_ E
_encarc) e (rL04_ E _encarc) e (rL04_ E
_incin) e (rL04_ E _incin) e (rL04_ E
//endsort //endsort





.group é .group é
é ''E é ''E
éi ''EI éi ''EI
?2 _) os (_ Us ?2 _) os (_ Us
?2 _) os (_A Uz ?2 _) os (_A Uz
?2 _) os (_G Uz ?2 _) os (_G Uz
?2 _v) os (_ us
?2 _v) os (_A uz
?2 _v) os (_G uz
ou ow ou ow
oi oI oi oI
oi ($w_alt OI oi ($w_alt OI
v) o (re_ o v) o (re_ o
b) o (rL04_ O b) o (rL04_ O
o (p_ O o (p_ O
C) o (pL04_ 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.
_engl) o (bL04_ O _engl) o (bL04_ O
_sal) o (brL03_ o _sal) o (brL03_ o
_) o (cL03_ o _) o (cL03_ o
_barr) o (cL03_ o
_m) o (fL01_ O _m) o (fL01_ O
_m) o (fL02_ O _m) o (fL02_ O
_af) o (fL04_ O _af) o (fL04_ O
_emp) o (lgL04_ O _emp) o (lgL04_ O
_) o (lhL04_ O _) o (lhL04_ O
m) o (lhL04_ O m) o (lhL04_ O
emb) o (lsL02_ O
emb) o (lsL04_ O
_env) o (ltL03_ o _env) o (ltL03_ o
ent) o (pL02_ O
_c) o (pL03_ O
_t) o (pL04_ O
_ens) o (pL04_ O
_gal) o (pL04_ O
_s) o (prL04_ O _s) o (prL04_ O
_al) o (prL04_ O _al) o (prL04_ O
_ass) o (prL04_ O _ass) o (prL04_ O

+ 9
- 0
dictsource/sl_list View File

skozi sko+zi $u+ skozi sko+zi $u+
za $u+ za $u+


le lE


// conjunctions
če tSE $u
ker kER
ter tER $u+
vseeno us'E:Eno



// verb: to be // verb: to be
sem s@m $u sem s@m $u

+ 7
- 2
dictsource/sl_rules View File

.group e .group e
e e: e e:
e (X$w_alt3+ 'E e (X$w_alt3+ 'E
ee i:
ee i:
_n) ee E:E
_r) ee E:E
_pr) ee E:E

e (X$w_alt4 @ e (X$w_alt4 @
@) e (n_ E# @) e (n_ E#
@C) e (r_ E# @C) e (r_ E#
o (č_ 'o: o (č_ 'o:
o (j_ 'o: o (j_ 'o:
o (l_ 'o: o (l_ 'o:
oo u:
o (oč o:

.group p .group p
p p p p

+ 3
- 1
phsource/ph_slovenian View File

Vowelout f1=0 f2=2300 200 300 f3=-200 80 rms=20 Vowelout f1=0 f2=2300 200 300 f3=-200 80 rms=20
ENDIF ENDIF


IF nextPh(isPause2) AND prevPhW(isVowel) THEN
IF thisPh(isWordEnd) THEN
WAV(ustop/k)
ELIF nextPh(isPause2) THEN
WAV(ustop/k_) WAV(ustop/k_)
ELIF nextPh(r) OR nextPh(R) OR nextPh(R2) THEN ELIF nextPh(r) OR nextPh(R) OR nextPh(R2) THEN
WAV(ustop/kr) WAV(ustop/kr)

+ 77
- 75
src/dictionary.cpp View File

0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x303,0x7f 0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x303,0x7f
}; };


#define N_PHON_OUT 500
static char *phon_out_buf = NULL;
static int phon_out_size = 0;



char *WritePhMnemonic(char *phon_out, PHONEME_TAB *ph, PHONEME_LIST *plist, int use_ipa, int *flags) char *WritePhMnemonic(char *phon_out, PHONEME_TAB *ph, PHONEME_LIST *plist, int use_ipa, int *flags)
{//=================================================================================================== {//===================================================================================================






void GetTranslatedPhonemeString(char *phon_out, int n_phon_out, int phoneme_mode)
{//===============================================================================
const char *GetTranslatedPhonemeString(int phoneme_mode)
{//=======================================================
/* Called after a clause has been translated into phonemes, in order /* Called after a clause has been translated into phonemes, in order
to display the clause in phoneme mnemonic form. to display the clause in phoneme mnemonic form.




int ix; int ix;
unsigned int len; unsigned int len;
unsigned int max_len;
int phon_out_ix=0; int phon_out_ix=0;
int stress; int stress;
int c; int c;
use_tie = 0; use_tie = 0;
} }


if(phon_out != NULL)
for(ix=1; ix<(n_phoneme_list-2); ix++)
{ {
for(ix=1; ix<(n_phoneme_list-2); ix++)
{
buf = phon_buf;
buf = phon_buf;


plist = &phoneme_list[ix];
plist = &phoneme_list[ix];


WritePhMnemonic(phon_buf2, plist->ph, plist, use_ipa, &flags);
if(plist->newword)
*buf++ = ' ';
else
WritePhMnemonic(phon_buf2, plist->ph, plist, use_ipa, &flags);
if(plist->newword)
*buf++ = ' ';
else
{
if((separate_phonemes != 0) && (ix > 1))
{ {
if((separate_phonemes != 0) && (ix > 1))
utf8_in(&c, phon_buf2);
if((c < 0x2b0) || (c > 0x36f)) // not if the phoneme starts with a superscript letter
{ {
utf8_in(&c, phon_buf2);
if((c < 0x2b0) || (c > 0x36f)) // not if the phoneme starts with a superscript letter
{
*buf++ = separate_phonemes;
}
*buf++ = separate_phonemes;
} }
} }
}


if(plist->synthflags & SFLAG_SYLLABLE)
if(plist->synthflags & SFLAG_SYLLABLE)
{
if((stress = plist->stresslevel) > 1)
{ {
if((stress = plist->stresslevel) > 1)
{
c = 0;
if(stress > 5) stress = 5;
c = 0;
if(stress > 5) stress = 5;


if(use_ipa)
{
c = 0x2cc; // ipa, secondary stress
if(stress > 3)
c = 0x02c8; // ipa, primary stress
}
else
{
c = stress_chars[stress];
}
if(use_ipa)
{
c = 0x2cc; // ipa, secondary stress
if(stress > 3)
c = 0x02c8; // ipa, primary stress
}
else
{
c = stress_chars[stress];
}


if(c != 0)
{
buf += utf8_out(c, buf);
if(c != 0)
{
buf += utf8_out(c, buf);
// if(separate_phonemes) // if(separate_phonemes)
// *buf++ = separate_phonemes; // *buf++ = separate_phonemes;
}
} }
} }
}


flags = 0;
count = 0;
for(p=phon_buf2; *p != 0;)
flags = 0;
count = 0;
for(p=phon_buf2; *p != 0;)
{
p += utf8_in(&c, p);
if(use_tie > 0)
{ {
p += utf8_in(&c, p);
if(use_tie > 0)
// look for non-inital alphabetic character, but not diacritic, superscript etc.
if((count>0) && !(flags & (1 << (count-1))) && ((c < 0x2b0) || (c > 0x36f)) && iswalpha2(c))
{ {
// look for non-inital alphabetic character, but not diacritic, superscript etc.
if((count>0) && !(flags & (1 << (count-1))) && ((c < 0x2b0) || (c > 0x36f)) && iswalpha2(c))
{
buf += utf8_out(char_tie[use_tie-1], buf);
}
buf += utf8_out(char_tie[use_tie-1], buf);
} }
buf += utf8_out(c, buf);
count++;
} }
buf += utf8_out(c, buf);
count++;
}


if(plist->ph->code != phonSWITCH)
if(plist->ph->code != phonSWITCH)
{
if(plist->synthflags & SFLAG_LENGTHEN)
{ {
if(plist->synthflags & SFLAG_LENGTHEN)
{
buf = WritePhMnemonic(buf, phoneme_tab[phonLENGTHEN], NULL, use_ipa, NULL);
}
if((plist->synthflags & SFLAG_SYLLABLE) && (plist->type != phVOWEL))
{
// syllablic consonant
buf = WritePhMnemonic(buf, phoneme_tab[phonSYLLABIC], NULL, use_ipa, NULL);
}
if(plist->tone_ph > 0)
{
buf = WritePhMnemonic(buf, phoneme_tab[plist->tone_ph], NULL, use_ipa, NULL);
}
buf = WritePhMnemonic(buf, phoneme_tab[phonLENGTHEN], NULL, use_ipa, NULL);
} }

len = buf - phon_buf;
max_len = (n_phon_out - phon_out_ix - 5); // allow for " ..." and zero byte terminator
if(len > max_len)
if((plist->synthflags & SFLAG_SYLLABLE) && (plist->type != phVOWEL))
{
// syllablic consonant
buf = WritePhMnemonic(buf, phoneme_tab[phonSYLLABIC], NULL, use_ipa, NULL);
}
if(plist->tone_ph > 0)
{ {
strcpy(&phon_buf[max_len], " ...");
len = max_len + 4;
buf = WritePhMnemonic(buf, phoneme_tab[plist->tone_ph], NULL, use_ipa, NULL);
} }
phon_buf[len] = 0;
strcpy(&phon_out[phon_out_ix], phon_buf);
phon_out_ix += len;
}


if(len > max_len)
len = buf - phon_buf;
if((phon_out_ix + len) >= phon_out_size)
{
// enlarge the phoneme buffer
phon_out_size = phon_out_ix + len + N_PHON_OUT;
if((phon_out_buf = (char *)realloc(phon_out_buf, phon_out_size)) == NULL)
{ {
break;
phon_out_size = 0;
return("");
} }
} }
phon_out[phon_out_ix] = 0;

phon_buf[len] = 0;
strcpy(&phon_out_buf[phon_out_ix], phon_buf);
phon_out_ix += len;
} }
phon_out_buf[phon_out_ix] = 0;

return(phon_out_buf);
} // end of GetTranslatedPhonemeString } // end of GetTranslatedPhonemeString





+ 15
- 11
src/numbers.cpp View File

} }
else else
{ {
if((!found) && (tensunits == 0))
if((hundreds==1) && (tr->langopts.numbers2 & NUM2_OMIT_1_HUNDRED_ONLY) && ((control & 1)==0))
{ {
// is there a special pronunciation for exactly n00 ?
sprintf(string,"_%dC0",hundreds);
found = Lookup(tr, string, ph_digits);
// only look for special 100 if there are previous thousands
} }

if(!found)
else
{ {
sprintf(string,"_%dC",hundreds);
found = Lookup(tr, string, ph_digits); // is there a specific pronunciation for n-hundred ?
if((!found) && (tensunits == 0))
{
// is there a special pronunciation for exactly n00 ?
sprintf(string,"_%dC0",hundreds);
found = Lookup(tr, string, ph_digits);
}

if(!found)
{
sprintf(string,"_%dC",hundreds);
found = Lookup(tr, string, ph_digits); // is there a specific pronunciation for n-hundred ?
}
} }


if(found) if(found)
{ {
if((tr->langopts.numbers & NUM_OMIT_1_HUNDRED) != 0) if((tr->langopts.numbers & NUM_OMIT_1_HUNDRED) != 0)
say_one_hundred = 0; say_one_hundred = 0;

if(((tr->langopts.numbers2 & NUM2_OMIT_1_HUNDRED_ONLY) != 0) && ((control & 1)==0))
say_one_hundred = 0;
} }


if(say_one_hundred != 0) if(say_one_hundred != 0)

+ 5
- 4
src/speak_lib.cpp View File

} // end of espeak_SetPhonemes } // end of espeak_SetPhonemes




ESPEAK_API void espeak_TextToPhonemes(const void *text, char *buffer, int size, int textmode, int phonememode)
{//==============================================================================================================
ESPEAK_API const char *espeak_TextToPhonemes(const void **textptr, int textmode, int phonememode)
{//=================================================================================================
/* phoneme_mode bits 0-3: 0=only phoneme names, 1=ties, 2=ZWJ, 3=underscore separator /* phoneme_mode bits 0-3: 0=only phoneme names, 1=ties, 2=ZWJ, 3=underscore separator
bits 4-7: 0=eSpeak phoneme names, 1=IPA bits 4-7: 0=eSpeak phoneme names, 1=IPA
*/ */

option_multibyte = textmode & 7; option_multibyte = textmode & 7;
TranslateClause(translator, NULL, text, NULL, NULL);
GetTranslatedPhonemeString(buffer, size, phonememode);
*textptr = TranslateClause(translator, NULL, *textptr, NULL, NULL);
return(GetTranslatedPhonemeString(phonememode));
} }





+ 4
- 1
src/speak_lib.h View File

#define ESPEAK_API #define ESPEAK_API
#endif #endif


#define ESPEAK_API_REVISION 7
#define ESPEAK_API_REVISION 9
/* /*
Revision 2 Revision 2
Added parameter "options" to eSpeakInitialize() Added parameter "options" to eSpeakInitialize()
Revision 8 26.Apr.2013 Revision 8 26.Apr.2013
Added function espeak_TextToPhonemes(). Added function espeak_TextToPhonemes().


Revision 9 30.May.2013
Changed function espeak_TextToPhonemes().

*/ */
/********************/ /********************/
/* Initialization */ /* Initialization */

+ 1
- 1
src/synthdata.cpp View File

#include "translate.h" #include "translate.h"
#include "wave.h" #include "wave.h"


const char *version_string = "1.47.11b 28.May.13";
const char *version_string = "1.47.11c 31.May.13";
const int version_phdata = 0x014709; const int version_phdata = 0x014709;


int option_device_number = -1; int option_device_number = -1;

+ 4
- 3
src/synthesize.cpp View File

char *voice_change; char *voice_change;
static FILE *f_text=NULL; static FILE *f_text=NULL;
static const void *p_text=NULL; static const void *p_text=NULL;
const char *phon_out;


if(control == 4) if(control == 4)
{ {
if(option_phonemes >= 3) if(option_phonemes >= 3)
phoneme_mode = 0x10 + option_phonemes-3; // 0x10=ipa, 0x11=ipa with tie, 0x12=ipa with ZWJ, 0x13=ipa with separators phoneme_mode = 0x10 + option_phonemes-3; // 0x10=ipa, 0x11=ipa with tie, 0x12=ipa with ZWJ, 0x13=ipa with separators


GetTranslatedPhonemeString(translator->phon_out, sizeof(translator->phon_out), phoneme_mode);
phon_out = GetTranslatedPhonemeString(phoneme_mode);
if(option_phonemes > 0) if(option_phonemes > 0)
{ {
fprintf(f_trans,"%s\n",translator->phon_out);
fprintf(f_trans,"%s\n",phon_out);
} }
if(phoneme_callback != NULL) if(phoneme_callback != NULL)
{ {
phoneme_callback(translator->phon_out);
phoneme_callback(phon_out);
} }
} }



+ 1
- 1
src/tr_languages.cpp View File

if(name2 == L('m','l')) if(name2 == L('m','l'))
{ {
tr->letter_bits_offset = OFFSET_MALAYALAM; tr->letter_bits_offset = OFFSET_MALAYALAM;
tr->langopts.numbers = NUM_OMIT_1_THOUSAND;
tr->langopts.numbers = NUM_OMIT_1_THOUSAND | NUM_OMIT_1_HUNDRED;
tr->langopts.numbers2 = NUM2_OMIT_1_HUNDRED_ONLY; tr->langopts.numbers2 = NUM2_OMIT_1_HUNDRED_ONLY;
} }
else else

+ 2
- 2
src/translate.cpp View File

c = ' '; c = ' ';
pre_pause_add = 4; pre_pause_add = 4;
} }
else if((prev_out == ' ') && IsAlpha(sbuf[ix-2]) && !IsAlpha(prev_in))
else if((prev_out == ' ') && IsAlpha(prev_out2) && !IsAlpha(prev_in))
{ {
// insert extra space between a word + space + hyphen, to distinguish 'a -2' from 'a-2' // insert extra space between a word + space + hyphen, to distinguish 'a -2' from 'a-2'
sbuf[ix++] = ' '; sbuf[ix++] = ' ';
decimal_sep_count = 1; decimal_sep_count = 1;
} }
} }
else if((prev_out == ' ') && IsAlpha(sbuf[ix-2]) && !IsAlpha(prev_in))
else if((prev_out == ' ') && IsAlpha(prev_out2) && !IsAlpha(prev_in))
{ {
// insert extra space between a word and a number, to distinguish 'a 2' from 'a2' // insert extra space between a word and a number, to distinguish 'a 2' from 'a2'
sbuf[ix++] = ' '; sbuf[ix++] = ' ';

+ 1
- 2
src/translate.h View File

const char *transpose_map; const char *transpose_map;
char dictionary_name[40]; char dictionary_name[40];


char phon_out[500];
char phonemes_repeat[20]; char phonemes_repeat[20];
int phonemes_repeat_count; int phonemes_repeat_count;
int phoneme_tab_ix; int phoneme_tab_ix;
int iswupper2(int c); int iswupper2(int c);
int towlower2(unsigned int c); int towlower2(unsigned int c);
int towupper2(unsigned int c); int towupper2(unsigned int c);
void GetTranslatedPhonemeString(char *phon_out, int n_phon_out, int phoneme_mode);
const char *GetTranslatedPhonemeString(int phoneme_mode);
const char *WordToString2(unsigned int word); const char *WordToString2(unsigned int word);
ALPHABET *AlphabetFromChar(int c); ALPHABET *AlphabetFromChar(int c);
ALPHABET *AlphabetFromName(const char *name); ALPHABET *AlphabetFromName(const char *name);

+ 4
- 3
src/transldlg.cpp View File

int translate_text = 0; int translate_text = 0;
char buf[1000]; char buf[1000];
char phon_out[N_PH_LIST*2]; char phon_out[N_PH_LIST*2];
const char *phon_out2;
int clause_tone; int clause_tone;
int clause_count; int clause_count;
int use_ipa = 0; int use_ipa = 0;
CalcPitches(translator,clause_tone); CalcPitches(translator,clause_tone);
CalcLengths(translator); CalcLengths(translator);


GetTranslatedPhonemeString(translator->phon_out, sizeof(translator->phon_out), use_ipa);
phon_out2 = GetTranslatedPhonemeString(use_ipa);
if(clause_count++ > 0) if(clause_count++ > 0)
strcat(phon_out," ||"); strcat(phon_out," ||");
strcat(phon_out,translator->phon_out);
t_phonetic->SetValue(wxString(translator->phon_out,wxConvUTF8));
strcat(phon_out, phon_out2);
t_phonetic->SetValue(wxString(phon_out2, wxConvUTF8));


if((n_ph_list + n_phoneme_list) >= N_PH_LIST) if((n_ph_list + n_phoneme_list) >= N_PH_LIST)
{ {

Loading…
Cancel
Save