Fixes to speaking characters from foreign alphabets. Allow $textmode and $text to translate between words in different alphabets. git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@305 d46cf337-b52f-0410-862d-fd96e6ae7743master
@@ -103,7 +103,7 @@ p Q r R s s; t T | |||
ts v x z | |||
Dictionary en_dict 2013-02-27 | |||
Dictionary en_dict 2013-03-01 | |||
0 0# 3 3: @ @- @2 @5 | |||
@L a a# A: A@ aa aI aI3 | |||
@@ -190,12 +190,12 @@ N n^ p r R R2 s S | |||
t tS ts tS; v x z Z | |||
Dictionary hi_dict 2012-04-12 | |||
Dictionary hi_dict 2013-03-01 | |||
@ @2 a a: aI aU e E | |||
e: E: E~ i I i: l- o | |||
O o: O: O~ o~ r- U u: | |||
u~ V | |||
@ @- @2 a a: aI aU a~ | |||
e E e: E: E~ i I i: | |||
l- o O o: O: O~ o~ r- | |||
u U u: u~ V | |||
#X1 #X2 - : b bh c ch | |||
d d. dh dh. f g gh h | |||
@@ -378,7 +378,7 @@ S s; S; t t; tS ts tS; | |||
ts; v w x z Z Z; | |||
Dictionary pt_dict 2013-02-25 | |||
Dictionary pt_dict 2013-02-27 | |||
& &/ &U~ &~ @ @- a A | |||
aI aU e E eI EI eU EU | |||
@@ -539,7 +539,7 @@ n^ p p` r s S t t` | |||
tS tS` v w x z Z | |||
Dictionary ml_dict 2011-12-05 | |||
Dictionary ml_dict 2013-02-28 | |||
@ a a# a: aI aU e E | |||
e: i I i: o o: r- u | |||
@@ -569,18 +569,18 @@ r r. s S s. t t. th | |||
th. v w x z | |||
Dictionary pa_dict 2012-05-04 | |||
Dictionary pa_dict 2013-03-01 | |||
@ a a~ e E eI e~ E~ | |||
i I i: i~ I~ o O O~ | |||
o~ r- u U U~ u~ V V~ | |||
@ a a~ e E e~ E~ i | |||
I i~ I~ o O O~ o~ r- | |||
u U U~ u~ V V~ | |||
: ; b bh c ch d d. | |||
dh dh. dZ f g gh h H | |||
j J Jh k kh l l. m | |||
n N n. n^ p ph Q r | |||
R R2 s S t t. th th. | |||
v w x z | |||
dh dh. f g gh h H j | |||
J Jh k kh l l. m n | |||
N n. n^ p ph Q R R2 | |||
s S t t. th th. v x | |||
z | |||
Dictionary prs_dict 2009-12-01 | |||
@@ -602,7 +602,7 @@ N n^ p q R s S S; | |||
t tS v w x z | |||
Dictionary ur_dict 2013-02-08 | |||
Dictionary ur_dict 2013-03-01 | |||
@ a a: aI aU e E e: | |||
i I i: O o: U u: V | |||
@@ -869,3 +869,17 @@ b B d D f g j k | |||
l l^ m n n^ p Q r | |||
R R2 s S t T t# tS | |||
w x | |||
Dictionary bn_dict 2013-02-28 | |||
@ a a: aI a~ e E e: | |||
E: E~ i I i: i~ o O | |||
o: O: O~ o~ r- u U u: | |||
u~ V | |||
#X1 #X2 : b bh c ch d | |||
d. dh dh. g gh h H j | |||
J Jh k kh l m n N | |||
n. n^ p ph r r. s S | |||
s. t t. th th. v w z |
@@ -187,7 +187,7 @@ _‴ trIp@LpraIm | |||
_‼ Ekskla#m'eIS@nz | |||
_₠ jU@roU | |||
+ plVs $max3 | |||
+ plVs | |||
# haS $max3 | |||
@ _at_ $u+ | |||
& _and $u+ | |||
@@ -1196,6 +1196,7 @@ convent k0nv@nt | |||
converse $1 $only | |||
converse $verb | |||
convert $1 $noun | |||
convict $1 | |||
convict $2 $verb | |||
convolute k0nv@l'u:t | |||
coop ku:p | |||
@@ -1961,6 +1962,7 @@ mercedes m3:s'eIdi:z | |||
//mercenary m3:s@n@rI | |||
merest mi@r@st | |||
meringue m@raN | |||
meson mi:z0n | |||
metabolic mEt@b'0lIk | |||
metaphor mEt@fO@ | |||
metastable $alt1 |
@@ -1,6 +1,6 @@ | |||
// *************************************************************************** | |||
// * Copyright (C) 2005 to 2010 by Jonathan Duddington * | |||
// * Copyright (C) 2005 to 2013 by Jonathan Duddington * | |||
// * email: [email protected] * | |||
// * * | |||
// * This program is free software; you can redistribute it and/or modify * | |||
@@ -1601,7 +1601,7 @@ | |||
co (ntrol+ k@ | |||
conva (l k0nv@ | |||
_) co (nvenA k@ | |||
_) co (nvi k0# | |||
_) con (vi k%0#n | |||
_) co (nvoy k0 | |||
_) co (nw k0 | |||
_) copy k0pI | |||
@@ -1734,7 +1734,7 @@ | |||
_) des (k dEs | |||
des (ol dEs | |||
des (pot dEs | |||
_) dess dI2z | |||
_) dess (er dI2z | |||
desta (b d%i:steI | |||
desti dEstI | |||
des (ul d%i:s | |||
@@ -2547,7 +2547,7 @@ | |||
v) es (t+ Es | |||
harv) es (t Is | |||
esti (m EstI# | |||
es (ty @s | |||
&) es (ty @s | |||
.group et | |||
_) et (on i:t | |||
@@ -2994,6 +2994,7 @@ | |||
iah (_ 'aI@ | |||
ia (m i@ | |||
&) ia (n i@ | |||
@) ia (nd I'a | |||
@) ia (nic I'a | |||
@) ia (nit I'a | |||
@) ia (na_ i:'a | |||
@@ -3394,8 +3395,8 @@ | |||
iority I'0rI2t%I | |||
iou (rA j@ | |||
iour (K j3 | |||
@) ious (_ =I2@s | |||
g) ious (_ =@s | |||
@) ious =I2@s | |||
g) ious =@s | |||
ioux u: | |||
_r) io (t aI@ | |||
io (t_ I|@ | |||
@@ -5881,6 +5882,7 @@ | |||
&d) Ed (_S2vei I#d | |||
&ch) Ed (_S2vei t | |||
&k) Ed (_S2vei t | |||
ril) Ed (_S2 d | |||
&@@om) Ed (_S2v d | |||
&p) Ed (_S2vei t | |||
&t) Ed (_S2vei I#d |
@@ -2,12 +2,12 @@ | |||
// Numbers | |||
// devanagari numbers are changed to latin characters before translation | |||
_0 S'u:n.jV | |||
_0 s'u:n.jV | |||
_1 'e:k | |||
_2 d'o: | |||
_3 t'i:n | |||
_4 c'a:r: | |||
_5 p'a:nc | |||
_4 c:'a:r: | |||
_5 'pa~c | |||
_6 ch'@2 | |||
_7 s'a:t | |||
_8 'a:th. | |||
@@ -15,30 +15,30 @@ _9 n'O: | |||
?3 _9 n'aU | |||
_10 d'Vs | |||
_11 gj'a:r@2 | |||
_12 b'a:r@2 | |||
_13 t'E:r@2 | |||
_14 ch'O:d@2 | |||
_15 p'Vndr@2 | |||
_16 s'o:l@2 | |||
_17 s'Vt:r@2 | |||
_18 Vth.:'a:r@2 | |||
_11 gj'a:r-ah | |||
_12 b'a:rah | |||
_13 t'e:r@2h | |||
_14 ch'O:d@2h | |||
_15 p'Vndr@2h | |||
_16 s'o:l@2h | |||
_17 sVtr@2h | |||
_18 a:th:arah | |||
_19 Unn'Is | |||
_20 b'i:s | |||
_21 Ik:'Is | |||
_22 b'a:Is | |||
_23 t'e:Is | |||
_23 t'ue:Is | |||
_24 c'O:bIs | |||
_25 p@c:'Is | |||
_26 ch@bb'i:rs | |||
_27 s@t:'a:Is | |||
_28 ath:'a:Is | |||
_29 Unt'Is | |||
_29 ,Unt'Is | |||
_30 t'i:s | |||
_31 Ik@t:'Is | |||
_32 bat:'Is | |||
_32 b'at:'I'S | |||
_33 tE~t'Is // E~ ? | |||
_34 cO~t'Is | |||
_35 pE~t'Is | |||
@@ -65,16 +65,16 @@ _53 t'IrpVn | |||
_54 c'Ou:wVn | |||
_55 p'achpVn | |||
_56 chh@p:'Vn | |||
_57 sVt:'a:w@n | |||
_58 ath:'a:w@n | |||
_57 santa:'w@n | |||
_58 ath:a:'w@n | |||
_59 Uns'Vth | |||
_60 s'a:th. | |||
_61 'Iks@th. | |||
_62 b'a:s@th. | |||
_63 t'Irs@th. | |||
_64 c'O~s@th. | |||
_65 paIns@th. | |||
_64 cO:'s@th. | |||
_65 paI's@th. | |||
_66 ch'Ija:s@th. | |||
_67 s'Vrs@th. | |||
_68 ars@th. | |||
@@ -92,15 +92,15 @@ _78 athhat:'Vr: | |||
_79 ,Un^Ia:s'i: | |||
_80 ,Vss'i: | |||
_81 Ikja:s'i: | |||
_82 baIa:s'i: | |||
_83 tIra:s'i: | |||
_84 cO:ra:s'i: | |||
_85 pI'ca:s'i: | |||
_86 chIja:s'i: | |||
_87 sVt:a:s'i: | |||
_88 ath:a:s'i: | |||
_89 nVwa:s'i: | |||
_81 Ikja:s'i | |||
_82 baIa:s'i | |||
_83 tIra:s'i | |||
_84 cO:ra:s'i | |||
_85 pI'ca:s'i | |||
_86 chIja:s'i | |||
_87 sVt:a:s'i | |||
_88 ath:a:s'i | |||
_89 nVwa:s'i | |||
_90 nVb:'e: | |||
_91 Ikj'a:n@we: | |||
@@ -114,9 +114,9 @@ _98 ath:'a:n@we: | |||
_99 nIn^j'a:n@we: | |||
_0C s'O: | |||
_0M1 h@z'a:r | |||
_0M1 h@J,a:r | |||
_0M2 l'a:kh | |||
_0M3 cr'ore | |||
_0M3 k@ro:r.V | |||
_0M4 'Vr@b | |||
_0M5 kh'Vr@b | |||
_dpt _d@s@ml'o:_ // ?? what is Hi for "." ? | |||
@@ -162,7 +162,7 @@ _dpt _d@s@ml'o:_ // ?? what is Hi for "." ? | |||
श S@ | |||
ष s.@ // retroflex [S] | |||
स s@ | |||
ह H@ | |||
ह H@- | |||
क़ q@ | |||
ख़ x@ | |||
ग़ Q@ | |||
@@ -199,14 +199,14 @@ _dpt _d@s@ml'o:_ // ?? what is Hi for "." ? | |||
। dVn.d.V | |||
// Pronouns | |||
मैं $u // main: I | |||
मैं $u // main: IrI | |||
मुझे $u | |||
मेरा $u | |||
मेरी $u | |||
मेरे $u | |||
हम $u // we | |||
हमें $u | |||
हमे $u | |||
हमारा $u | |||
हमारी $u | |||
हमारे $u | |||
@@ -234,7 +234,7 @@ _dpt _d@s@ml'o:_ // ?? what is Hi for "." ? | |||
इसका $u | |||
ये $u // they | |||
इन्हें $u | |||
इन्हें $u | |||
इनका $u | |||
वह $u // he/she/it | |||
@@ -246,7 +246,7 @@ _dpt _d@s@ml'o:_ // ?? what is Hi for "." ? | |||
वे $u // they | |||
वो $u | |||
उन्हें $u // unheṃ: them | |||
उन्हे $u // unheṃ: them | |||
उनका $u | |||
उनकी $u | |||
उनके $u |
@@ -1,5 +1,5 @@ | |||
// This file is UTF8 encoded | |||
// This file is UTF8 encoded | |||
// letter groups: | |||
// A vowel letters and vowel signs | |||
@@ -28,423 +28,423 @@ | |||
// Vowels | |||
.group अ | |||
अ V | |||
अ (ह E // (h | |||
अह) अ E | |||
अ V | |||
अ (ह E // (h | |||
अह) अ E | |||
.group आ | |||
आ a: | |||
आ a: | |||
.group इ | |||
इ I | |||
इ I | |||
// इँ i~ | |||
// इं i~ | |||
.group ई | |||
ई i: | |||
ई (_ i | |||
ई i: | |||
ई (_ i | |||
.group उ | |||
उ U | |||
उ U | |||
.group ऊ | |||
ऊ u: | |||
ऊं u~ // + anusvara | |||
ऊँ u~ // + candrabinbu | |||
ऊ u | |||
ऊं u~ // + anusvara | |||
ऊँ u~ // + candrabinbu | |||
.group ऋ | |||
ऋ rI | |||
ऋ rI | |||
.group ऌ | |||
ऌ l- // vocalic l | |||
ऌ l- // vocalic l | |||
.group ऍ | |||
ऍ E // candra e | |||
ऍ E // candra e | |||
.group ऎ | |||
ऎ e | |||
ऎ e | |||
.group ए | |||
ए e: | |||
ए e: | |||
.group ऐ | |||
ऐ E: // ?? [aI] [E:] [&:] | |||
ऐं E~ | |||
ऐँ E~ | |||
?2 ऐ aI // ?? [aI] [E:] [&:] | |||
ऐ E: // ?? [aI] [E:] [&:] | |||
ऐं E~ | |||
ऐँ E~ | |||
?2 ऐ aI // ?? [aI] [E:] [&:] | |||
.group ऑ | |||
ऑ O // candra O | |||
ऑ O // candra O | |||
.group ऒ | |||
ऒ o | |||
ऒ o | |||
.group ओ | |||
ओ o: | |||
ओं o~ // +anusvara | |||
ओँ o~ // +candrabindu | |||
ओ o: | |||
ओं o~ // +anusvara | |||
ओँ o~ // +candrabindu | |||
.group औ | |||
औ O: // ?? [aU] [O:] | |||
औं O~ // +anusvara | |||
औँ O~ // +candrabindu | |||
?3 औ aU // ?? [aU] [O:] | |||
औ O: // ?? [aU] [O:] | |||
औं O~ // +anusvara | |||
औँ O~ // +candrabindu | |||
?3 औ aU // ?? [aU] [O:] | |||
// Vowel Signs | |||
.group ा | |||
ा a: | |||
ाव aU | |||
ाव aU | |||
.group ि | |||
ि I | |||
ि I | |||
// िँ i~ | |||
// िं i~ | |||
.group ी | |||
ी i: | |||
ी (_ i | |||
ी i: | |||
ी (_ i | |||
.group ु | |||
ु U | |||
ु u | |||
.group ू | |||
ू u: | |||
ूं u~ // or O~ ?? | |||
ूँ u~ | |||
ू u: | |||
ूं u~ // or O~ ?? | |||
ूँ u~ | |||
.group ृ | |||
ृ rI | |||
ृ rI | |||
.group ॄ | |||
ॄ rI | |||
ॄ rI | |||
.group ॅ | |||
ॅ E | |||
ॅ E | |||
.group ॆ | |||
ॆ e | |||
ॆ e | |||
.group े | |||
े e: | |||
े e: | |||
.group ै | |||
ै E: // ?? [aI] [E:] [&:] | |||
ैं E~ | |||
ैँ E~ | |||
?2 ै aI // ?? [aI] [E:] [&:] | |||
ै E: // ?? [aI] [E:] [&:] | |||
ैं E~ | |||
ैँ E~ | |||
?2 ै aI // ?? [aI] [E:] [&:] | |||
.group ॉ | |||
ॉ O | |||
ॉ O | |||
.group ॊ | |||
ॊ o | |||
ॊ o | |||
.group ो | |||
ो o: | |||
ों o~ | |||
ोँ o~ | |||
ो o: | |||
ों o~ | |||
ोँ o~ | |||
.group ौ | |||
ौ O: // [O:] or [aU] ?? | |||
ौं O~ | |||
ौँ O~ | |||
?3 ौ aU // [O:] or [aU] ?? | |||
ौ O: // [O:] or [aU] ?? | |||
ौं O~ | |||
ौँ O~ | |||
?3 ौ aU // [O:] or [aU] ?? | |||
.group ॢ // vowel sign l | |||
ॢ l- | |||
ॢ l- | |||
.group ॣ // vowel sign ll | |||
ॣ l-: | |||
ॣ l-: | |||
.group ॐ | |||
ॐ o~m | |||
ॐ o~m | |||
// Consonants | |||
.group क | |||
क kV | |||
क (B k | |||
क (्य k: | |||
क़ qV | |||
क़ (B q | |||
क kV | |||
क (B k | |||
क (्य k: | |||
क़ qV | |||
क़ (B q | |||
.group ख | |||
ख khV | |||
ख (B kh | |||
ख़ xV | |||
ख़ (B x | |||
ख khV | |||
ख (B kh | |||
ख़ xV | |||
ख़ (B x | |||
.group ग | |||
ग gV | |||
ग (B g | |||
ग़ QV | |||
ग़ (B Q | |||
ग gV | |||
ग (B g | |||
ग़ QV | |||
ग़ (B Q | |||
.group घ | |||
घ ghV | |||
घ (B gh | |||
घ ghV | |||
घ (B gh | |||
.group ङ | |||
ङ NV | |||
ङ (B N | |||
्) ङ (_ N@ | |||
ङ NV | |||
ङ (B N | |||
्) ङ (_ N@ | |||
.group च | |||
च cV | |||
च (B c | |||
च (्य c: | |||
च cV | |||
च (B c | |||
च (्य c: | |||
.group छ | |||
छ chV | |||
छ (B ch | |||
छ chV | |||
छ (B ch | |||
.group ज | |||
ज JV | |||
ज (B J | |||
ज़ zV | |||
ज़ (B z | |||
ज JV | |||
ज (B J | |||
ज़ zV | |||
ज़ (B z | |||
.group झ | |||
झ JhV | |||
झ (B Jh | |||
झ JhV | |||
झ (B Jh | |||
.group ञ | |||
ञ n^V | |||
ञ (B n^ | |||
्) ञ (_ n^ | |||
ञ n^V | |||
ञ (B n^ | |||
्) ञ (_ n^ | |||
.group ट | |||
ट t.V | |||
ट (B t. | |||
ट (्य t.: | |||
ट t.V | |||
ट (B t. | |||
ट (्य t.: | |||
.group ठ | |||
ठ th.V | |||
ठ (B th. | |||
ठ th.V | |||
ठ (B th. | |||
.group ड | |||
ड d.V | |||
ड (B d. | |||
ड d.V | |||
ड (B d. | |||
ड़ r.V | |||
ड़ (B r. | |||
ड़ r.V | |||
ड़ (B r. | |||
.group ढ | |||
ढ dh.V | |||
ढ (B dh. | |||
ढ़ r.hV // nukta (should retroflex flap) | |||
ढ़ (B r.h // nukta | |||
ढ dh.V | |||
ढ (B dh. | |||
ढ़ r.hV // nukta (should retroflex flap) | |||
ढ़ (B r.h // nukta | |||
.group ण | |||
ण n.V // (temporary) same as dental [n] | |||
ण (B n. | |||
्) ण (_ n.@ | |||
ण n.V // (temporary) same as dental [n] | |||
ण (B n. | |||
्) ण (_ n.@ | |||
.group त | |||
त tV | |||
त (B t | |||
त (्य t: | |||
त tV | |||
त (B t | |||
त (्य t: | |||
.group थ | |||
थ thV | |||
थ (B th | |||
थ thV | |||
थ (B th | |||
.group द | |||
द dV | |||
द (B d | |||
द dV | |||
द (B d | |||
.group ध | |||
ध dhV | |||
ध (B dh | |||
ध dhV | |||
ध (B dh | |||
.group न | |||
न nV | |||
न (B n | |||
्) न (_ n@ | |||
र्) न (_ n // r +virama | |||
न nV | |||
न (B n | |||
्) न (_ n@ | |||
र्) न (_ n // r +virama | |||
.group ऩ | |||
ऩ n: // should this be a long [n] ? | |||
ऩ n: // should this be a long [n] ? | |||
.group प | |||
प pV | |||
प (B p | |||
प (्य p: | |||
प pV | |||
प (B p | |||
प (्य p: | |||
.group फ | |||
फ phV | |||
फ (B ph | |||
फ़ fV | |||
फ़ (B f | |||
फ phV | |||
फ (B ph | |||
फ़ fV | |||
फ़ (B f | |||
.group ब | |||
ब bV | |||
ब (B b | |||
ब bV | |||
ब (B b | |||
.group भ | |||
भ bhV | |||
भ (B bh | |||
भ bhV | |||
भ (B bh | |||
.group म | |||
म mV | |||
म (B m | |||
्) म (_ m@ | |||
र्) म (_ m // r +virama | |||
न्) म (_ m // n +virama | |||
म mV | |||
म (B m | |||
्) म (_ m@ | |||
र्) म (_ m // r +virama | |||
न्) म (_ m // n +virama | |||
.group य | |||
य jV | |||
य (B j | |||
्) य (_ j@ | |||
य j@ | |||
य (B j | |||
्) य (_ j@ | |||
.group र | |||
र rV | |||
र (B r | |||
्) र (_ r@ | |||
र rV | |||
र (B r | |||
्) र (_ r@ | |||
.group ऱ // rra | |||
ऱ rV // (temporary) same as [r] | |||
ऱ (B r | |||
्) ऱ (_ r@ | |||
ऱ rV // (temporary) same as [r] | |||
ऱ (B r | |||
्) ऱ (_ r@ | |||
.group ल | |||
ल lV | |||
ल (B l | |||
्) ल (_ l@ | |||
ल lV | |||
ल (B l | |||
्) ल (_ l@ | |||
.group ळ | |||
ळ l.V | |||
ळ (B l. | |||
्) ळ (_ l.@ | |||
ळ l.V | |||
ळ (B l. | |||
्) ळ (_ l.@ | |||
.group ऴ | |||
ऴ l.V // (temporary) same as [l.] | |||
ऴ (B l. | |||
्) ऴ (_ l.@ | |||
ऴ l.V // (temporary) same as [l.] | |||
ऴ (B l. | |||
्) ऴ (_ l.@ | |||
.group व | |||
व vV | |||
व (B v | |||
_) व wV | |||
_) व (B w | |||
_) व (् v // +virma | |||
व vV | |||
व (B v | |||
_) व wV | |||
_) व (B w | |||
_) व (् v // +virma | |||
.group श | |||
श SV | |||
श (B S | |||
श SV | |||
श (B S | |||
.group ष | |||
ष s.V //?? or retroflex [S] | |||
ष (B s. //?? | |||
ष s.V //?? or retroflex [S] | |||
ष (B s. //?? | |||
.group स | |||
स sV | |||
स (B s | |||
स sV | |||
स (B s | |||
.group ह | |||
ह HV | |||
ह (B H | |||
ह H | |||
ह (B H | |||
// nukta, modifies a consonant | |||
.group ऽ // avagraha, lengthens a vowel ?? | |||
ऽ : | |||
ऽ : | |||
.group ँ | |||
ँ n // candrabindu | |||
.group ं | |||
ं n // anusvara | |||
ं (प m | |||
ं (फ m | |||
ं (ब m | |||
ं (भ m | |||
ं (म m | |||
ं (ट n. | |||
ं (ठ n. | |||
ं (ड n. | |||
ं (ढ n. | |||
ं (ण n. | |||
ं (च n^ | |||
ं (छ n^ | |||
ं (ज n^ | |||
ं (झ n^ | |||
ं (ञ n^ | |||
ं (य n^ | |||
ं (क N | |||
ं (ख N | |||
ं (ग N | |||
ं (घ N | |||
ं (ङ N | |||
ं (ह N | |||
ँ n // candrabindu | |||
.group ं | |||
ं n // anusvara | |||
ं (प m | |||
ं (फ m | |||
ं (ब m | |||
ं (भ m | |||
ं (म m | |||
ं (ट n. | |||
ं (ठ n. | |||
ं (ड n. | |||
ं (ढ n. | |||
ं (ण n. | |||
ं (च n^ | |||
ं (छ n^ | |||
ं (ज n^ | |||
ं (झ n^ | |||
ं (ञ n^ | |||
ं (य n^ | |||
ं (क N | |||
ं (ख N | |||
ं (ग N | |||
ं (घ N | |||
ं (ङ N | |||
.group ः | |||
ः H // visarga | |||
ः H // visarga | |||
.group ् // virama | |||
् | |||
् | |||
// Extra consonants | |||
.group क़ // qa | |||
क़ qV | |||
क़ (B q | |||
क़ qV | |||
क़ (B q | |||
.group ख़ // khha | |||
ख़ xV | |||
ख़ (B x | |||
ख़ xV | |||
ख़ (B x | |||
.group ग़ // ghha | |||
ग़ QV | |||
ग़ (B Q | |||
ग़ QV | |||
ग़ (B Q | |||
.group ज़ // za | |||
ज़ zV | |||
ज़ (B z | |||
ज़ zV | |||
ज़ (B z | |||
.group ड़ // dddha (should retroflex flap) | |||
ड़ r.V | |||
ड़ (B r. | |||
ड़ r.V | |||
ड़ (B r. | |||
.group ढ़ // rha (aspirated version of dddha) | |||
ढ़ r.hV | |||
ढ़ (B r.h | |||
ढ़ r.hV | |||
ढ़ (B r.h | |||
.group फ़ // fa | |||
फ़ fV | |||
फ़ (B f | |||
फ़ fV | |||
फ़ (B f | |||
.group य़ // yya | |||
य़ jV | |||
य़ (B j | |||
य़ jV | |||
य़ (B j | |||
.group ॠ // rr | |||
ॠ V-rr | |||
ॠ V-rr | |||
.group ॡ // ll | |||
ॡ l-: // long syllabic l | |||
ॡ l-: // long syllabic l | |||
// If we find a Latin letter a-z, then translate as English | |||
// (This is now done automatically by the eSpeak program) | |||
.group o | |||
o _^_EN | |||
D__) of (__D me | |||
o _^_EN | |||
D__) of (__D me | |||
.group | |||
$ dOlV | |||
% pVsEnt | |||
$ dOlV | |||
% pVsEnt | |||
@@ -87,33 +87,65 @@ _! a:S;c@rjacihn@m | |||
// numbers | |||
_0 p'u:Jj@m | |||
_1 'onny | |||
_2 r'an.t.y | |||
_3 m'unny | |||
_2 r@n.d#y | |||
_3 m'u:nny | |||
_4 n'a:ly | |||
_5 'an^cy | |||
_6 'aR2y | |||
_6 'a:R2y | |||
_7 'e:r.y | |||
_8 'et.t.y | |||
_9 'onpaty | |||
_1X p'ati | |||
_10 p'atty | |||
_1X p'ati | |||
_11 p'atinonny | |||
_12 p'antran.t.y | |||
_15 p'atinan^cy | |||
_16 p'atinaR2y | |||
_17 p'atine:R2y | |||
_18 p'atine:t.t.y | |||
_19 p'attompatu | |||
_2X 'irupat | |||
_3X m'uppat | |||
_4X n'a:lppat | |||
_5X 'anpat | |||
_6X 'aR2upat | |||
_7X 'er.upat | |||
_8X 'en.pat | |||
_9X t'on.n.u:R2 | |||
_20 'irup'aty | |||
_2X 'irupatti | |||
_30 m'uppaty | |||
_3X m'uppatti': | |||
_40 n'a:lppaty | |||
_4X n'a:lppatti | |||
_50 'anpaty | |||
_5X 'anpatti | |||
_60 'aR2upaty | |||
_6X 'aR2upatti | |||
_70 'er.'upaty | |||
_7X 'er.'upatti | |||
_80 'en.paty | |||
_8X 'en.patti | |||
_90 t'on.n.u:r: | |||
_9X t'on.n.u:t.t.i | |||
_0C n'u:R | |||
_0M1 'a:jiRam | |||
_0M2 l'aks.am | |||
_1C0 n'u:r: | |||
_1C n'u:t.t.i | |||
_2C0 irunn'u:r | |||
_2C irunn'u:t.t.i | |||
_3C0 munn'u:r | |||
_3C munn'u:t.t.i | |||
_4C0 na:nnu:r | |||
_4C na:nnu:t.t.i | |||
_5C0 'an^cu:r | |||
_5C 'an^cu:t.t.i | |||
_6C0 aR2unu:r | |||
_6C aR2unu:t.t.i | |||
_7C0 'er.'unu:r | |||
_7C 'er.'unu:t.t.i | |||
_8C0 'en.n.u:r | |||
_8C 'en.n.u:t.t.i | |||
_9C0 tol.l.'a:jiRam | |||
_9C tol.l.'a:jiRatti | |||
_0M1x 'a:jiRam | |||
_0M1 'a:jiRat.t.i | |||
_0M2x l'aks.am | |||
_0M2 l'aks.at.t.i | |||
_0M3 k'o:t.i | |||
_dpt _d'aS;a:mS;@m_ | |||
@@ -1,5 +1,5 @@ | |||
// This file is UTF8 encoded | |||
// This file is UTF8 encoded | |||
// Spelling to phoneme rules for Malayalam | |||
// A means vowel letters (not vowel signs) | |||
@@ -17,266 +17,267 @@ | |||
൭ 7 | |||
൮ 8 | |||
൯ 9 | |||
ോ ോ | |||
ോ ോ | |||
ൊ ൊ | |||
ൌ ൌ | |||
.group ക | |||
ക ka | |||
ക (B k | |||
ക ka | |||
ക (B k | |||
.group ഖ | |||
ഖ kha | |||
ഖ (B kh | |||
ഖ kha | |||
ഖ (B kh | |||
.group ഗ | |||
ഗ ga | |||
ഗ (B g | |||
ഗ ga | |||
ഗ (B g | |||
.group ഘ | |||
ഘ gha | |||
ഘ (B gh | |||
ഘ gha | |||
ഘ (B gh | |||
.group ങ | |||
ങ Na | |||
ങ (B N | |||
ങ Na | |||
ങ (B N | |||
.group ച | |||
ച ca | |||
ച (B c | |||
ച ca | |||
ച (B c | |||
.group ഛ | |||
ഛ cha | |||
ഛ (B ch | |||
ഛ cha | |||
ഛ (B ch | |||
.group ജ | |||
ജ Ja | |||
ജ (B J | |||
ജ Ja | |||
ജ (B J | |||
.group ഝ | |||
ഝ Jha | |||
ഝ (B Jh | |||
ഝ Jha | |||
ഝ (B Jh | |||
.group ഞ | |||
ഞ n^a | |||
ഞ (B n^ | |||
ഞ n^a | |||
ഞ (B n^ | |||
.group ട | |||
ട t.a | |||
ട (B t. | |||
ട t.a | |||
ട (B t. | |||
.group ഠ | |||
ഠ th.a | |||
ഠ (B th. | |||
ഠ th.a | |||
ഠ (B th. | |||
.group ഡ | |||
ഡ d.a | |||
ഡ (B d. | |||
ഡ d.a | |||
ഡ (B d. | |||
.group ഢ | |||
ഢ dh.a | |||
ഢ (B dh. | |||
ഢ dh.a | |||
ഢ (B dh. | |||
.group ണ | |||
ണ n.a | |||
ണ (B n. | |||
ണ n.a | |||
ണ (B n. | |||
.group ത | |||
ത ta | |||
ത (B t | |||
ത ta | |||
ത (B t | |||
.group ഥ | |||
ഥ tha | |||
ഥ (B th | |||
ഥ tha | |||
ഥ (B th | |||
.group ദ | |||
ദ da | |||
ദ (B d | |||
ദ da | |||
ദ (B d | |||
.group ധ | |||
ധ dha | |||
ധ (B dh | |||
ധ dha | |||
ധ (B dh | |||
.group ന | |||
ന na | |||
ന (B n | |||
ന na | |||
ന (B n | |||
.group പ | |||
പ pa | |||
പ (B p | |||
പ pa | |||
പ (B p | |||
.group ഫ | |||
ഫ pha | |||
ഫ (B p | |||
ഫ pha | |||
ഫ (B p | |||
_പ്രൊ) ഫ (സര് fa | |||
_പ്രൊ) ഫ (സര് fa | |||
.group ബ | |||
ബ ba | |||
ബ (B b | |||
ബ ba | |||
ബ (B b | |||
.group ഭ | |||
ഭ bha | |||
ഭ (B bh | |||
ഭ bha | |||
ഭ (B bh | |||
.group മ | |||
മ ma | |||
മ (B m | |||
മ ma | |||
മ (B m | |||
.group യ | |||
യ ja | |||
യ (B j | |||
യ ja | |||
യ (B j | |||
.group ര | |||
ര ra | |||
ര (B r | |||
ര ra | |||
ര (B r | |||
.group റ | |||
റ R2a | |||
റ (B R2 | |||
ന്) റ d# | |||
റ്റ t.t. // ?? R2R2 = t.t. | |||
റ R2a | |||
റ (B R2 | |||
ന്) റ d# | |||
റ്റ t.t. // ?? R2R2 = t.t. | |||
.group ല | |||
ല la | |||
ല (B l | |||
ല la | |||
ല (B l | |||
.group ള | |||
ള l.a | |||
ള (B l. | |||
ള l.a | |||
ള (B l. | |||
.group ഴ // retroflex [r.] ? | |||
ഴ r.a | |||
ഴ (B r. | |||
ഴ r.a | |||
ഴ (B r. | |||
.group വ | |||
വ va | |||
വ (B v | |||
വ va | |||
വ (B v | |||
.group ശ | |||
ശ S;a | |||
ശ (B S; | |||
ശ S;a | |||
ശ (B S; | |||
.group ഷ | |||
ഷ s.a | |||
ഷ (B s. | |||
ഷ s.a | |||
ഷ (B s. | |||
.group സ | |||
സ sa | |||
സ (B s | |||
സ sa | |||
സ (B s | |||
.group ഹ | |||
ഹ ha | |||
ഹ (B h | |||
ഹ ha | |||
ഹ (B h | |||
// chillu consonants | |||
.group ൺ | |||
ൺ n. | |||
ൺ n. | |||
.group ൻ | |||
ൻ n | |||
ൻ n | |||
.group ർ | |||
ർ r | |||
ർ r | |||
.group ൽ | |||
ൽ l | |||
ൽ l | |||
.group ൾ | |||
ൾ l. | |||
ൾ l. | |||
.group ൿ | |||
ൿ k | |||
ൿ k | |||
.group 0xe0b4 // characters which start with UTF-8 bytes: [e0 b4] | |||
ഽ // avagraha | |||
ഽ // avagraha | |||
ം m // anusvara (this should nasalize the vowel) | |||
ം m // anusvara (this should nasalize the vowel) | |||
ഃ h // visarga | |||
ഃ h // visarga | |||
അ a | |||
അ a | |||
ആ a: | |||
ആ a: | |||
ഇ i | |||
ഇ i | |||
ഈ i: | |||
ഈ i: | |||
ഉ u | |||
ഉ u | |||
ഊ u: | |||
ഊ u: | |||
ഋ Ry | |||
ഋ Ry | |||
എ e | |||
_) എ ;e | |||
എ e | |||
_) എ ;e | |||
ഏ e: | |||
_) ഏ ;e: | |||
ഏ e: | |||
_) ഏ ;e: | |||
ഐ aI | |||
ഐ aI | |||
ഒ o | |||
ഒ o | |||
ഓ o: | |||
ഓ o: | |||
ഔ aU | |||
ഔ aU | |||
// combining vowel signs | |||
ാ a: | |||
ാ a: | |||
ി i | |||
ി (ല്K I | |||
ി i | |||
ി (ല്K I | |||
.group 0xe0b5 // characters which start with UTF-8 bytes: [e0 b5] | |||
ീ i: | |||
ീ i: | |||
ു u | |||
ു u | |||
ൂ u: | |||
ൂ u: | |||
ൃ r- | |||
ൃ r- | |||
ൄ r-: | |||
ൄ r-: | |||
െ e | |||
െ e | |||
േ e: | |||
േ e: | |||
ൈ aI | |||
ൈ aI | |||
ൊ o | |||
ൊ o | |||
ോ o: | |||
ോ o: | |||
ൌ aU | |||
ൗ aU // au length mark, treat at [aU] ? | |||
ൌ aU | |||
ൗ aU // au length mark, treat at [aU] ? | |||
് // virama | |||
ൎ // chillu-virama (unofficial) | |||
്് // espeak uses double-virama for "virama + U+200d" (zero-width joiner), to indicate a chillu character | |||
് (_ y // epenthetic vowel at end of word | |||
് // virama | |||
ൎ // chillu-virama (unofficial) | |||
്് // espeak uses double-virama for "virama + U+200d" (zero-width joiner), to indicate a chillu character | |||
് (_ y // epenthetic vowel at end of word | |||
ൠ Ry: | |||
ൠ Ry: | |||
ൡ ly: | |||
ൡ ly: | |||
.group 0xe0a4 // devanagari | |||
0xe0a4 _^_HI // switch to hindi voice | |||
0xe0a4 _^_HI // switch to hindi voice | |||
.group 0xe0a5 // devanagari | |||
0xe0a5 _^_HI | |||
0xe0a5 _^_HI | |||
.group | |||
$ do:l.ar | |||
$ do:l.ar |
@@ -647,6 +647,7 @@ almoço $alt $verb | |||
amarelo $alt | |||
ameba $alt | |||
amores $alt2 | |||
antonieta $alt2 | |||
apego $alt2 $noun | |||
apelo $alt $verb | |||
aposto $alt $verb | |||
@@ -723,7 +724,7 @@ coice $alt2 | |||
colabore $alt | |||
colete $alt2 | |||
colchete $alt2 | |||
colher $alt $verb | |||
colher $alt $noun | |||
colheres $alt $noun | |||
colmeia $alt | |||
colore $alt | |||
@@ -762,8 +763,6 @@ descordo $alt | |||
desespero $alt2 $noun | |||
desfecho $alt2 | |||
desprezo $alt $verb | |||
deva $alt2 | |||
devo $alt2 | |||
deveras $alt | |||
dez $alt | |||
diarreia $alt | |||
@@ -839,6 +838,8 @@ fogos $alt | |||
foguete $alt2 | |||
foice $alt2 | |||
forca $alt2 | |||
força $alt2 $noun | |||
forço $alt | |||
forças $alt2 | |||
fordes $alt2 | |||
fores $alt2 |
@@ -407,6 +407,7 @@ respond) e (L07_ e // cor- | |||
viv) e (L07_ e // re- | |||
qu) e (brL04_ E | |||
_hosp) e (dL03_ E | |||
_d) e (vL03_ e | |||
_gr) e (gL03_ e | |||
_n) e (grL03_ e | |||
_estr) ei (L03_ EI |
@@ -1,5 +1,5 @@ | |||
87 phoneme tables | |||
88 phoneme tables | |||
new total | |||
base 109 109 | |||
consonants 10 118 | |||
@@ -22,10 +22,12 @@ consonants 10 118 | |||
fr 64 146 | |||
fr-ca 11 146 | |||
hi 57 150 | |||
bn 5 150 | |||
ne 18 158 | |||
ur 6 150 | |||
ta 23 154 | |||
kn 17 150 | |||
ml 21 153 | |||
ur 6 150 | |||
ml 22 154 | |||
hu 25 124 | |||
lt 44 139 | |||
lv 29 127 | |||
@@ -65,7 +67,6 @@ consonants 10 118 | |||
da 36 131 | |||
ka 20 114 | |||
rw 15 132 | |||
ne 18 158 | |||
pa 15 152 | |||
prs 8 113 | |||
sl 10 137 | |||
@@ -432,7 +433,7 @@ l/l_ [l] base | |||
[l/] fr | |||
l/l_@ [l/3] base | |||
[l/] fr | |||
l/l@ [h6r] base | |||
l/l@ [] base | |||
[l#] base | |||
[l] fr | |||
[l/2] fr | |||
@@ -466,7 +467,7 @@ l/L2_oL [l/2] base | |||
l/L2_uL [l/2] base | |||
l/l_3 [l/] de | |||
l/l_4 [ll] sq | |||
l/la [h6r] base | |||
l/la [] base | |||
[l#] base | |||
[l] fr | |||
[l/2] fr | |||
@@ -474,7 +475,7 @@ l/la [h6r] base | |||
[K] tn | |||
l/l_a [l/3] base | |||
[l/] fr | |||
l/le [h6r] base | |||
l/le [] base | |||
[l#] base | |||
[l] fr | |||
[l/2] fr | |||
@@ -486,7 +487,7 @@ l/L_eL_af [&] af | |||
[&:] af | |||
l/l_front [L] sq | |||
l/l_front_ [l/4] sq | |||
l/li [h6r] base | |||
l/li [] base | |||
[l#] base | |||
[l] fr | |||
[l/2] fr | |||
@@ -500,7 +501,7 @@ ll/ll [L] base | |||
ll/_ll [L] base | |||
l/l_long [l] base | |||
[l] fr | |||
l/lo [h6r] base | |||
l/lo [] base | |||
[l#] base | |||
[l/2] fr | |||
[K] nso | |||
@@ -511,7 +512,7 @@ l^/l_rfx [l.] base | |||
[l;] lt | |||
[l] ru | |||
[l^] ru | |||
l/lu [h6r] base | |||
l/lu [] base | |||
[l#] base | |||
[l] fr | |||
[l/2] fr | |||
@@ -673,7 +674,6 @@ r3/r_trill [R2] base | |||
[R] pl | |||
[r*] sr | |||
[r] ru | |||
[x] pt | |||
[r] tn | |||
r3/r_trill2 [R] base | |||
[r] cy | |||
@@ -690,7 +690,6 @@ r3/r_trill.wav [R2] base | |||
[R] pl | |||
[r*] sr | |||
[r] ru | |||
[x] pt | |||
r3/r_uvl [r"] base | |||
[r2] de | |||
r3/r_uvl.wav [r"] base | |||
@@ -854,7 +853,8 @@ ustop/k_asp [kh] consonants | |||
[gh] hi | |||
[kh] zh | |||
[kh] tn | |||
ustop/k_asp2 [k#] ka | |||
ustop/k_asp2 [kh2] ml | |||
[k#] ka | |||
ustop/k_ejc [k`] am | |||
ustop/ki [k] base | |||
[k] base2 | |||
@@ -873,6 +873,7 @@ ustop/kl [k] base | |||
[k] base2 | |||
[k] et | |||
[k] fr | |||
[kh2] ml | |||
[k] lv | |||
[k] el | |||
[k] zhy | |||
@@ -1124,11 +1125,11 @@ vdiph2/y-y# [yY] fi | |||
vdiph/8u [oU] en-us | |||
[ou] zh | |||
vdiph/aae [aI] en-us | |||
vdiph/aai [ai] lt | |||
vdiph/aai [aI] ne | |||
[ai] lt | |||
[ai] lv | |||
[aai] zhy | |||
[aI] sq | |||
[aI] ne | |||
vdiph/aai_2 [AI] af | |||
[AY] cy | |||
vdiph/aai_3 [ai] fi | |||
@@ -1144,9 +1145,9 @@ vdiph/aau_2 [aU] en-wi | |||
[aU] la | |||
[aau] zhy | |||
vdiph/aau_3 [aU] hi | |||
[aU] ne | |||
[aU] kn | |||
[aU] ml | |||
[aU] ne | |||
[aU] te | |||
vdiph/aau_4 [aU] vi | |||
vdiph/aau_6 [aU] de | |||
@@ -1206,10 +1207,10 @@ vdiph/ee-e [E:] hi | |||
vdiph/eei [EI] base2 | |||
[eI] en | |||
[EI] de | |||
[eI] ne | |||
[EI] nl | |||
[EI] vi | |||
[eI] hy | |||
[eI] ne | |||
[eI] prs | |||
vdiph/eei_2 [eI] eo | |||
[ei] fi | |||
@@ -1244,12 +1245,12 @@ vdiph/ei [eI] base2 | |||
vdiph/eu [eU] base2 | |||
[eU] cy | |||
[eU] eo | |||
[eU] ne | |||
[eU] lt | |||
[eU] nl | |||
[eU] sk | |||
[eU] pt | |||
[eU] vi | |||
[eU] ne | |||
vdiph/eu_2 [eu] fi | |||
[eu] mt | |||
vdiph/@i [Yi] et | |||
@@ -1274,11 +1275,11 @@ vdiph/i#i [yI] ro | |||
vdiph/oi [oI] base2 | |||
[OI] en-wm | |||
[OY] de | |||
[oI] ne | |||
[oI] it | |||
[OI] la | |||
[OI] is | |||
[oI] vi | |||
[oI] ne | |||
vdiph/oi_2 [oI] af | |||
vdiph/ooi [OI] en | |||
[OI] en-n | |||
@@ -1299,8 +1300,8 @@ vdiph/ooi_4 [OI] en-us | |||
vdiph/oou [oU] cs | |||
[OU] grc | |||
vdiph/ou [ou] fi | |||
[ou] zhy | |||
[oU] ne | |||
[ou] zhy | |||
[ou] mt | |||
vdiph/ou_2 [oU] lt | |||
[oU] sk | |||
@@ -1319,11 +1320,11 @@ vdiph/@u_en [oU] en | |||
[@U] id | |||
vdiph/ui [uI] base2 | |||
[uI] eo | |||
[uI] ne | |||
[ui] lt | |||
[ui] lv | |||
[uI] vi | |||
[ui] zhy | |||
[uI] ne | |||
vdiph/u-i [yI] vi | |||
vdiph/ui_2 [uI] af | |||
vdiph/ui_3 [uI] cy | |||
@@ -1535,9 +1536,9 @@ vowel/@_3 [@#] en | |||
[@2] en-sc | |||
[@5] en-sc | |||
[@3] hi | |||
[@3] ne | |||
[@3] ur | |||
[@] da | |||
[@3] ne | |||
[@] am | |||
vowel/3_2 [3:] en-n | |||
[@] zh | |||
@@ -1723,17 +1724,19 @@ vowel/aa_8 [0] en-us | |||
vowel/aa_9 [a] fi | |||
[a] et | |||
[a:] hi | |||
[a:] bn | |||
[a] ne | |||
[a] pa | |||
[a] ak | |||
[a] mt | |||
[A] kk | |||
vowel/@_bck [@] hi | |||
[@] bn | |||
[V] ne | |||
[@/] ne | |||
[@] ur | |||
[@] bg | |||
[@] zh | |||
[V] ne | |||
[@/] ne | |||
[@] pa | |||
vowel/e [e] base | |||
[e] base2 | |||
@@ -1744,6 +1747,7 @@ vowel/e [e] base | |||
[eI] en-wi | |||
[e:] af | |||
[e:] cy | |||
[e] ne | |||
[e] ta | |||
[e:] ta | |||
[e] kn | |||
@@ -1764,7 +1768,6 @@ vowel/e [e] base | |||
[?e] da | |||
[e] rw | |||
[e#] rw | |||
[e] ne | |||
[e] wo | |||
[e:] wo | |||
[e] dv | |||
@@ -1918,6 +1921,7 @@ vowel/i [i] base | |||
[i] en-wi | |||
[i:] cy | |||
[i] eo | |||
[i] ne | |||
[i:] ta | |||
[i:] kn | |||
[i:] ml | |||
@@ -1935,7 +1939,6 @@ vowel/i [i] base | |||
[i] ka | |||
[i] rw | |||
[i#] rw | |||
[i] ne | |||
[i] prs | |||
[i] nso | |||
[i] ak | |||
@@ -2074,14 +2077,15 @@ vowel/@_low [@] en-rp | |||
[@] hi | |||
[V] hi | |||
[@2] hi | |||
[@] ml | |||
[@] bn | |||
[V] ne | |||
[@/] ne | |||
[@] ur | |||
[@2] ur | |||
[@] ml | |||
[@] ro | |||
[a#] no | |||
[@] id | |||
[V] ne | |||
[@/] ne | |||
[@] pa | |||
[V] pa | |||
[@] si | |||
@@ -2123,6 +2127,7 @@ vowel/o [o] base2 | |||
[o] kl | |||
vowel/o_2 [o:] cy | |||
[o:] hi | |||
[o:] bn | |||
[o:] hu | |||
[o:] la | |||
[o:] no | |||
@@ -2155,10 +2160,10 @@ vowel/oe_4 [W] sv | |||
vowel/o_mid [U@] en-rp | |||
[o] et | |||
[O] fr | |||
[o] ne | |||
[o] hu | |||
[o] bg | |||
[o] tr | |||
[o] ne | |||
[o] az | |||
[o] dv | |||
[o:] dv | |||
@@ -2313,6 +2318,7 @@ vowel/u_bck [u] base2 | |||
[u] fi | |||
[u] fr-ca | |||
[u:] hi | |||
[u] ne | |||
[u:] hu | |||
[u:] lt | |||
[u] nl | |||
@@ -2337,7 +2343,6 @@ vowel/u_bck [u] base2 | |||
[u] ka | |||
[u] rw | |||
[u#] rw | |||
[u] ne | |||
[u] pa | |||
[u] mt | |||
[u:] ga |
@@ -136,7 +136,7 @@ endphoneme | |||
phoneme a: | |||
vowel long starttype #a endtype #a | |||
length 230 | |||
length 190 | |||
FMT(vowel/aa_9) | |||
endphoneme | |||
@@ -149,7 +149,7 @@ endphoneme | |||
phoneme o: | |||
vowel long starttype #o endtype #o | |||
length 220 | |||
length 227 | |||
FMT(vowel/o_2) | |||
endphoneme | |||
@@ -132,7 +132,7 @@ phoneme v | |||
endphoneme | |||
phoneme r | |||
import_phoneme base/* | |||
import_phoneme base/** | |||
endphoneme | |||
phoneme R | |||
@@ -142,3 +142,20 @@ endphoneme | |||
phoneme d# // 'rr' sounds like English 'd' | |||
import_phoneme base/d | |||
endphoneme | |||
phoneme kh2 | |||
vls vel stop | |||
lengthmod 2 | |||
voicingswitch g | |||
Vowelin f1=0 f2=2300 200 300 f3=-150 80 | |||
Vowelout f1=0 f2=2300 300 400 f3=-150 80 rms=20 | |||
IF nextPh(isPause2) THEN | |||
WAV(ustop/k_asp2, 50) | |||
ENDIF | |||
IF nextPh(l) THEN | |||
WAV(ustop/kl) | |||
ENDIF | |||
WAV(ustop/k_asp2, 90) | |||
endphoneme | |||
@@ -189,18 +189,8 @@ phoneme l | |||
endphoneme | |||
phoneme x // this is [R] from Slovak/Czech | |||
liquid | |||
trill | |||
ipa ʁ | |||
lengthmod 6 | |||
IF thisPh(isWordStart) THEN | |||
ChangePhoneme(h) // Change by Cleverson 22.09.2012 | |||
ENDIF | |||
Vowelin f1=0 f2=1700 -300 300 f3=-300 80 | |||
Vowelout f1=2 f2=1700 -300 300 f3=-300 80 brk | |||
FMT(r3/r_trill) addWav(r3/r_trill.wav, 50) | |||
phoneme x // (previously [R] from Slovak/Czech) | |||
import_phoneme base/h | |||
endphoneme | |||
@@ -1718,6 +1718,15 @@ include ph_french_ca | |||
phonemetable hi base | |||
include ph_hindi | |||
phonemetable bn hi | |||
include ph_bengali | |||
phonemetable ne hi | |||
include ph_nepali | |||
phonemetable ur hi | |||
include ph_urdu | |||
phonemetable ta hi | |||
include ph_tamil | |||
@@ -1727,9 +1736,6 @@ include ph_kannada | |||
phonemetable ml hi | |||
include ph_malayalam | |||
phonemetable ur hi | |||
include ph_urdu | |||
phonemetable hu base | |||
include ph_hungarian | |||
@@ -1857,12 +1863,6 @@ include ph_georgian | |||
phonemetable rw base2 | |||
include ph_kinyarwanda | |||
//phonemetable bn hi | |||
//include ph_bengali | |||
phonemetable ne hi | |||
include ph_nepali | |||
//phonemetable mr hi | |||
//include ph_marathi | |||
@@ -51,15 +51,21 @@ static char letterGroupsDefined[N_LETTER_GROUPS]; | |||
MNEM_TAB mnem_rules[] = { | |||
{"unpr", 0x01}, | |||
{"w_alt1", 0x11}, | |||
{"w_alt2", 0x12}, | |||
{"w_alt3", 0x13}, | |||
// {"w_alt4", 0x14}, | |||
{"w_alt4", 0x14}, | |||
{"w_alt5", 0x15}, | |||
{"w_alt6", 0x16}, | |||
{"w_alt", 0x11}, // note: put longer names before their sub-strings | |||
{"p_alt1", 0x21}, | |||
{"p_alt2", 0x22}, | |||
{"p_alt3", 0x23}, | |||
// {"p_alt4", 0x24}, | |||
{"p_alt4", 0x24}, | |||
{"p_alt5", 0x25}, | |||
{"p_alt6", 0x26}, | |||
{"p_alt", 0x21}, | |||
{NULL, -1} }; | |||
@@ -83,24 +89,22 @@ MNEM_TAB mnem_flags[] = { | |||
// these set the corresponding numbered bit if dictionary_flags | |||
{"$pause", 8}, /* ensure pause before this word */ | |||
{"$only", 9}, /* only match on this word without suffix */ | |||
{"$onlys", 10}, /* only match with none, or with 's' suffix */ | |||
{"$strend", 11}, /* full stress if at end of clause */ | |||
{"$strend2", 12}, /* full stress if at end of clause, or only followed by unstressed */ | |||
{"$unstressend",13}, /* reduce stress at end of clause */ | |||
{"$atend", 14}, /* use this pronunciation if at end of clause */ | |||
{"$atstart", 15}, // use this pronunciation at start of clause | |||
{"$abbrev", 17}, /* use this pronuciation rather than split into letters */ | |||
{"$stem", 18}, // must have a suffix | |||
{"$pause", 8}, // ensure pause before this word | |||
{"$strend", 9}, // full stress if at end of clause | |||
{"$strend2", 10}, // full stress if at end of clause, or only followed by unstressed | |||
{"$unstressend",11}, // reduce stress at end of clause | |||
{"$abbrev", 13}, // use this pronuciation rather than split into letters | |||
// language specific | |||
{"$double", 19}, // IT double the initial consonant of next word | |||
{"$alt", 20}, // use alternative pronunciation | |||
{"$alt1", 20}, // synonym for $alt | |||
{"$alt2", 21}, | |||
{"$alt3", 22}, | |||
{"$double", 14}, // IT double the initial consonant of next word | |||
{"$alt", 15}, // use alternative pronunciation | |||
{"$alt1", 15}, // synonym for $alt | |||
{"$alt2", 16}, | |||
{"$alt3", 17}, | |||
{"$alt4", 18}, | |||
{"$alt5", 19}, | |||
{"$alt6", 20}, | |||
{"$combine", 23}, // Combine with the next word | |||
{"$dot", 24}, // ignore '.' after this word (abbreviation) | |||
@@ -111,18 +115,23 @@ MNEM_TAB mnem_flags[] = { | |||
{"$text", 29}, // word translates to replcement text, not phonemes | |||
// flags in dictionary word 2 | |||
{"$verbf", 0x20}, /* verb follows */ | |||
{"$verbsf", 0x21}, /* verb follows, allow -s suffix */ | |||
{"$nounf", 0x22}, /* noun follows */ | |||
{"$pastf", 0x23}, /* past tense follows */ | |||
{"$verb", 0x24}, /* use this pronunciation when its a verb */ | |||
{"$noun", 0x25}, /* use this pronunciation when its a noun */ | |||
{"$past", 0x26}, /* use this pronunciation when its past tense */ | |||
{"$verbextend",0x28}, /* extend influence of 'verb follows' */ | |||
{"$capital", 0x29}, /* use this pronunciation if initial letter is upper case */ | |||
{"$allcaps", 0x2a}, /* use this pronunciation if initial letter is upper case */ | |||
{"$verbf", 0x20}, // verb follows | |||
{"$verbsf", 0x21}, // verb follows, allow -s suffix | |||
{"$nounf", 0x22}, // noun follows | |||
{"$pastf", 0x23}, // past tense follows | |||
{"$verb", 0x24}, // use this pronunciation when its a verb | |||
{"$noun", 0x25}, // use this pronunciation when its a noun | |||
{"$past", 0x26}, // use this pronunciation when its past tense | |||
{"$verbextend",0x28}, // extend influence of 'verb follows' | |||
{"$capital", 0x29}, // use this pronunciation if initial letter is upper case | |||
{"$allcaps", 0x2a}, // use this pronunciation if initial letter is upper case | |||
{"$accent", 0x2b}, // character name is base-character name + accent name | |||
{"$sentence",0x2d}, // only if this clause is a sentence (i.e. terminator is {. ? !} not {, ; :} | |||
{"$only", 0x2e}, // only match on this word without suffix | |||
{"$onlys", 0x2f}, // only match with none, or with 's' suffix | |||
{"$stem", 0x30}, // must have a suffix | |||
{"$atend", 0x31}, // use this pronunciation if at end of clause | |||
{"$atstart", 0x32}, // use this pronunciation at start of clause | |||
// doesn't set dictionary_flags | |||
{"$?", 100}, // conditional rule, followed by byte giving the condition number | |||
@@ -611,7 +620,7 @@ static char nullstring[] = {0}; | |||
// PROBLEM vowel reductions are not applied to the translated phonemes | |||
// condition rules are not applied | |||
TranslateWord(translator,phonetic,0,NULL); | |||
TranslateWord(translator,phonetic,0,NULL,NULL); | |||
text_not_phonemes = 0; | |||
strncpy0(encoded_ph, word_phonemes, N_WORD_BYTES-4); | |||
@@ -3012,10 +3012,10 @@ static const char *LookupDict2(Translator *tr, const char *word, const char *wor | |||
int no_phonemes; | |||
int skipwords; | |||
int ix; | |||
int c; | |||
const char *word_end; | |||
const char *word1; | |||
int wflags = 0; | |||
// int wflags2; | |||
char word_buf[N_WORD_BYTES+1]; | |||
if(wtab != NULL) | |||
@@ -3165,20 +3165,20 @@ static const char *LookupDict2(Translator *tr, const char *word, const char *wor | |||
if((end_flags & FLAG_SUFX)==0) | |||
{ | |||
// no suffix has been removed | |||
if(dictionary_flags & FLAG_STEM) | |||
if(dictionary_flags2 & FLAG_STEM) | |||
continue; // this word must have a suffix | |||
} | |||
if((end_flags & SUFX_P) && (dictionary_flags & (FLAG_ONLY | FLAG_ONLY_S))) | |||
if((end_flags & SUFX_P) && (dictionary_flags2 & (FLAG_ONLY | FLAG_ONLY_S))) | |||
continue; // $only or $onlys, don't match if a prefix has been removed | |||
if(end_flags & FLAG_SUFX) | |||
{ | |||
// a suffix was removed from the word | |||
if(dictionary_flags & FLAG_ONLY) | |||
if(dictionary_flags2 & FLAG_ONLY) | |||
continue; // no match if any suffix | |||
if((dictionary_flags & FLAG_ONLY_S) && ((end_flags & FLAG_SUFX_S)==0)) | |||
if((dictionary_flags2 & FLAG_ONLY_S) && ((end_flags & FLAG_SUFX_S)==0)) | |||
{ | |||
// only a 's' suffix allowed, but the suffix wasn't 's' | |||
continue; | |||
@@ -3212,13 +3212,13 @@ static const char *LookupDict2(Translator *tr, const char *word, const char *wor | |||
continue; | |||
} | |||
if((dictionary_flags & FLAG_ATEND) && (word_end < tr->clause_end)) | |||
if((dictionary_flags2 & FLAG_ATEND) && (word_end < tr->clause_end)) | |||
{ | |||
// only use this pronunciation if it's the last word of the clause | |||
continue; | |||
} | |||
if((dictionary_flags & FLAG_ATSTART) && !(wtab->flags & FLAG_FIRST_WORD)) | |||
if((dictionary_flags2 & FLAG_ATSTART) && !(wtab->flags & FLAG_FIRST_WORD)) | |||
{ | |||
// only use this pronunciation if it's the first word of a clause | |||
continue; | |||
@@ -3318,6 +3318,12 @@ static const char *LookupDict2(Translator *tr, const char *word, const char *wor | |||
fprintf(f_trans,"' [%s] %s\n",ph_decoded,print_dictionary_flags(flags)); | |||
} | |||
} | |||
ix = utf8_in(&c, word); | |||
if((word[ix] == 0) && !IsAlpha(c)) | |||
{ | |||
flags[0] |= FLAG_MAX3; | |||
} | |||
return(word_end); | |||
} | |||
@@ -3390,6 +3396,7 @@ int LookupDictList(Translator *tr, char **wordptr, char *ph_out, unsigned int *f | |||
found = LookupDict2(tr, word, word1, ph_out, flags, end_flags, wtab); | |||
if(flags[0] & FLAG_MAX3) | |||
{ | |||
if(strcmp(ph_out, tr->phonemes_repeat) == 0) |
@@ -464,7 +464,7 @@ void Lexicon_It(int pass) | |||
} | |||
// translate | |||
TranslateWord(translator,&word1[1],0, NULL); | |||
TranslateWord(translator,&word1[1],0, NULL, NULL); | |||
DecodePhonemes(word_phonemes,phonemes); | |||
stress_posn1 = 0; | |||
@@ -487,7 +487,7 @@ void Lexicon_It(int pass) | |||
vowel_ix++; | |||
} | |||
TranslateWord(translator,&word2[1],0, NULL); | |||
TranslateWord(translator,&word2[1],0, NULL, NULL); | |||
DecodePhonemes(word_phonemes,phonemes2); | |||
vowel_ix = 1; | |||
@@ -802,7 +802,7 @@ void Lexicon_De() | |||
} | |||
// translate | |||
TranslateWord(translator,&word2[1],0, NULL); | |||
TranslateWord(translator,&word2[1],0, NULL, NULL); | |||
DecodePhonemes2(word_phonemes,phonemes); // also need to change some phoneme names | |||
@@ -1042,7 +1042,7 @@ void Lexicon_Bg() | |||
*pw1 = 0; | |||
// translate | |||
TranslateWord(translator, &word[2],0, NULL); | |||
TranslateWord(translator, &word[2],0, NULL, NULL); | |||
DecodePhonemes(word_phonemes,phonemes); | |||
// find the stress position in the translation | |||
@@ -1300,7 +1300,7 @@ void Lexicon_Ru() | |||
} | |||
// translate | |||
TranslateWord(translator, &word2[1],0, NULL); | |||
TranslateWord(translator, &word2[1],0, NULL, NULL); | |||
DecodePhonemes(word_phonemes,phonemes); | |||
// find the stress position in the translation |
@@ -89,10 +89,10 @@ wxMenuBar *MakeMenu(int type, const char *dict_name) | |||
// DATA MENU | |||
data_menu = new wxMenu; | |||
data_menu->Append(MENU_COMPILE_PH, _("Compile &phoneme data")); | |||
data_menu->Append(MENU_COMPILE_PH2, _("Change sample &rate")); | |||
data_menu->Append(MENU_COMPILE_DICT, _("Compile &dictionary")); | |||
data_menu->Append(MENU_COMPILE_DICT_DEBUG, _("Compile dictionary (debu&g)")); | |||
data_menu->Append(MENU_COMPILE_PH, _("Compile &phoneme data")); | |||
data_menu->Append(MENU_COMPILE_PH2, _("Change sample &rate")); | |||
data_menu->AppendSeparator(); | |||
data_menu->Append(MENU_COMPILE_MBROLA, _("Compile &mbrola phonemes list...")); | |||
data_menu->Append(MENU_COMPILE_INTONATION, _("Compile &intonation data")); |
@@ -656,20 +656,32 @@ int TranslateLetter(Translator *tr, char *word, char *phonemes, int control) | |||
current_alphabet = alphabet; | |||
if((alphabet != NULL) && !(alphabet->flags & AL_DONT_NAME)) | |||
{ | |||
phontab_1 = tr->phoneme_tab_ix; | |||
ph_buf2[0] = 0; | |||
if(Lookup(translator, alphabet->name, ph_alphabet) == 0) // the original language for the current voice | |||
{ | |||
// Can't find the local name for this alphabet, use the English name | |||
phontab_1 = tr->phoneme_tab_ix; | |||
ph_alphabet[2] = SetTranslator2("en"); // overwrites previous contents of translator2 | |||
if(Lookup(translator2, alphabet->name, &ph_alphabet[3]) != 0) | |||
{ | |||
ph_alphabet[0] = phonPAUSE; | |||
ph_alphabet[1] = phonSWITCH; | |||
len = strlen(&ph_alphabet[3]) + 3; | |||
ph_alphabet[len] = phonSWITCH; // switch back | |||
ph_alphabet[len+1] = phontab_1; | |||
ph_alphabet[len+2] = 0; | |||
} | |||
Lookup(translator2, alphabet->name, ph_buf2); | |||
} | |||
else | |||
if(translator != tr) | |||
{ | |||
phontab_1 = tr->phoneme_tab_ix; | |||
strcpy(ph_buf2, ph_alphabet); | |||
ph_alphabet[2] = translator->phoneme_tab_ix; | |||
} | |||
if(ph_buf2[0] != 0) | |||
{ | |||
// we used a different language for the alphabet name (now in ph_buf2) | |||
ph_alphabet[0] = phonPAUSE; | |||
ph_alphabet[1] = phonSWITCH; | |||
strcpy(&ph_alphabet[3], ph_buf2); | |||
len = strlen(ph_buf2) + 3; | |||
ph_alphabet[len] = phonSWITCH; | |||
ph_alphabet[len+1] = phontab_1; | |||
ph_alphabet[len+2] = 0; | |||
} | |||
} | |||
} | |||
@@ -876,7 +888,7 @@ static int CheckDotOrdinal(Translator *tr, char *word, char *word_end, WORD_TAB | |||
nextflags = 0; | |||
if(IsAlpha(c2)) | |||
{ | |||
nextflags = TranslateWord(tr, &word_end[2], 0, NULL); | |||
nextflags = TranslateWord(tr, &word_end[2], 0, NULL, NULL); | |||
} | |||
if((tr->prev_dict_flags & FLAG_ALT_TRANS) && ((c2 == 0) || (wtab[0].flags & FLAG_COMMA_AFTER) || iswdigit(c2))) |
@@ -35,8 +35,8 @@ | |||
#include "translate.h" | |||
#include "wave.h" | |||
const char *version_string = "1.46.38 27.Feb.13"; | |||
const int version_phdata = 0x014636; | |||
const char *version_string = "1.46.39 01.Mar.13"; | |||
const int version_phdata = 0x014639; | |||
int option_device_number = -1; | |||
FILE *f_logespeak = NULL; |
@@ -808,6 +808,13 @@ Translator *SelectTranslator(const char *name) | |||
} | |||
break; | |||
case L('g','a'): // irish | |||
{ | |||
tr->langopts.stress_rule = STRESSPOSN_1L; | |||
tr->langopts.numbers = 1; | |||
} | |||
break; | |||
case L('h','i'): // Hindi | |||
case L('n','e'): // Nepali | |||
case L('p','a'): // Punjabi |
@@ -807,8 +807,8 @@ int ChangeEquivalentPhonemes(Translator *tr, int lang2, char *phonemes) | |||
int TranslateWord(Translator *tr, char *word_start, int next_pause, WORD_TAB *wtab) | |||
{//=========================================================================== | |||
int TranslateWord(Translator *tr, char *word_start, int next_pause, WORD_TAB *wtab, char *word_out) | |||
{//================================================================================================== | |||
// word1 is terminated by space (0x20) character | |||
char *word1; | |||
@@ -943,6 +943,9 @@ int TranslateWord(Translator *tr, char *word_start, int next_pause, WORD_TAB *wt | |||
if(dictionary_flags[0] & FLAG_TEXTMODE) | |||
{ | |||
if(word_out != NULL) | |||
strcpy(word_out, word1); | |||
first_char = word1[0]; | |||
stress_bits = dictionary_flags[0] & 0x7f; | |||
found = LookupDictList(tr, &word1, phonemes, dictionary_flags2, 0, wtab); // the text replacement | |||
@@ -1760,6 +1763,7 @@ static int TranslateWord2(Translator *tr, char *word, WORD_TAB *wtab, int pre_pa | |||
int word_flags; | |||
int word_copy_len; | |||
char word_copy[N_WORD_BYTES+1]; | |||
char word_replaced[N_WORD_BYTES+1]; | |||
char old_dictionary_name[40]; | |||
if((f_logespeak != NULL) && (logging_type & 8)) | |||
@@ -1871,7 +1875,8 @@ static int TranslateWord2(Translator *tr, char *word, WORD_TAB *wtab, int pre_pa | |||
while(((c2 = word_copy[ix] = word[ix]) != ' ') && (c2 != 0) && (ix < N_WORD_BYTES)) ix++; | |||
word_copy_len = ix; | |||
flags = TranslateWord(translator, word, next_pause, wtab); | |||
word_replaced[2] = 0; | |||
flags = TranslateWord(translator, word, next_pause, wtab, &word_replaced[2]); | |||
if(flags & FLAG_SPELLWORD) | |||
{ | |||
@@ -1906,7 +1911,7 @@ static int TranslateWord2(Translator *tr, char *word, WORD_TAB *wtab, int pre_pa | |||
{ | |||
strcpy(ph_buf,word_phonemes); | |||
flags2[0] = TranslateWord(translator, p2+1, 0, wtab+1); | |||
flags2[0] = TranslateWord(translator, p2+1, 0, wtab+1, NULL); | |||
if((flags2[0] & FLAG_WAS_UNPRONOUNCABLE) || (word_phonemes[0] == phonSWITCH)) | |||
ok = 0; | |||
@@ -1934,12 +1939,12 @@ static int TranslateWord2(Translator *tr, char *word, WORD_TAB *wtab, int pre_pa | |||
if(ok) | |||
{ | |||
*p2 = '-'; // replace next space by hyphen | |||
flags = TranslateWord(translator, word, next_pause, wtab); // translate the combined word | |||
flags = TranslateWord(translator, word, next_pause, wtab, NULL); // translate the combined word | |||
if((sylimit > 0) && (CountSyllables(p) > (sylimit & 0x1f))) | |||
{ | |||
// revert to separate words | |||
*p2 = ' '; | |||
flags = TranslateWord(translator, word, next_pause, wtab); | |||
flags = TranslateWord(translator, word, next_pause, wtab, NULL); | |||
} | |||
else | |||
{ | |||
@@ -1967,7 +1972,14 @@ static int TranslateWord2(Translator *tr, char *word, WORD_TAB *wtab, int pre_pa | |||
{ | |||
// re-translate the word using the new translator | |||
wtab[0].flags |= FLAG_TRANSLATOR2; | |||
flags = TranslateWord(translator2, word, next_pause, wtab); | |||
if(word_replaced[2] != 0) | |||
{ | |||
word_replaced[0] = 0; // byte before the start of the word | |||
word_replaced[1] = ' '; | |||
flags = TranslateWord(translator2, &word_replaced[1], next_pause, wtab, NULL); | |||
} | |||
else | |||
flags = TranslateWord(translator2, word, next_pause, wtab, NULL); | |||
// strcpy((char *)p,translator2->word_phonemes); | |||
if(p[0] == phonSWITCH) | |||
{ |
@@ -37,26 +37,18 @@ | |||
#define FLAG_SKIPWORDS 0x80 | |||
#define FLAG_PREPAUSE 0x100 | |||
#define FLAG_ONLY 0x200 | |||
#define FLAG_ONLY_S 0x400 | |||
#define BITNUM_FLAG_ONLY 9 // bit 9 is set | |||
#define BITNUM_FLAG_ONLY_S 10 // bit 10 is set | |||
#define FLAG_STRESS_END 0x800 /* full stress if at end of clause */ | |||
#define FLAG_STRESS_END2 0x1000 /* full stress if at end of clause, or only followed by unstressed */ | |||
#define FLAG_UNSTRESS_END 0x2000 /* reduce stress at end of clause */ | |||
#define FLAG_ATEND 0x4000 /* use this pronunciation if at end of clause */ | |||
#define FLAG_ATSTART 0x8000 // use this pronunciation if at start of clause | |||
#define FLAG_SPELLWORD 0x10000 // re-translate the word as individual letters, separated by spaces | |||
#define FLAG_ABBREV 0x20000 // spell as letters, even with a vowel, OR use specified pronunciation rather than split into letters | |||
#define FLAG_STEM 0x40000 // must have a suffix | |||
#define FLAG_DOUBLING 0x80000 // doubles the following consonant | |||
#define BITNUM_FLAG_ALT 19 // bit number of FLAG_ALT_TRANS - 1 | |||
#define FLAG_ALT_TRANS 0x100000 // language specific | |||
#define FLAG_ALT2_TRANS 0x200000 // language specific | |||
#define FLAG_ALT3_TRANS 0x400000 // language specific | |||
#define FLAG_COMBINE 0x800000 // combine with the next word | |||
#define FLAG_STRESS_END 0x200 // full stress if at end of clause | |||
#define FLAG_STRESS_END2 0x400 // full stress if at end of clause, or only followed by unstressed | |||
#define FLAG_UNSTRESS_END 0x800 // reduce stress at end of clause | |||
#define FLAG_SPELLWORD 0x1000 // re-translate the word as individual letters, separated by spaces | |||
#define FLAG_ABBREV 0x2000 // spell as letters, even with a vowel, OR use specified pronunciation rather than split into letters | |||
#define FLAG_DOUBLING 0x4000 // doubles the following consonant | |||
#define BITNUM_FLAG_ALT 14 // bit number of FLAG_ALT_TRANS - 1 | |||
#define FLAG_ALT_TRANS 0x8000 // language specific | |||
#define FLAG_ALT2_TRANS 0x10000 // language specific | |||
#define FLAG_ALT3_TRANS 0x20000 // language specific | |||
#define FLAG_COMBINE 0x40000 // combine with the next word | |||
#define FLAG_ALLOW_DOT 0x01000000 // ignore '.' after word (abbreviation) | |||
#define FLAG_NEEDS_DOT 0x02000000 // only if the word is followed by a dot | |||
@@ -83,8 +75,16 @@ | |||
#define FLAG_ACCENT 0x800 // character name is base-character name + accent name | |||
#define FLAG_HYPHENATED 0x1000 // multiple-words, but needs hyphen between parts 1 and 2 | |||
#define FLAG_SENTENCE 0x2000 // only if the clause is a sentence | |||
#define FLAG_ONLY 0x4000 | |||
#define FLAG_ONLY_S 0x8000 | |||
#define FLAG_STEM 0x10000 // must have a suffix | |||
#define FLAG_ATEND 0x20000 /* use this pronunciation if at end of clause */ | |||
#define FLAG_ATSTART 0x30000 // use this pronunciation if at start of clause | |||
#define BITNUM_FLAG_ALLCAPS 0x2a | |||
#define BITNUM_FLAG_HYPHENATED 0x2c | |||
#define BITNUM_FLAG_ONLY 0x2e | |||
#define BITNUM_FLAG_ONLY_S 0x2f | |||
// wordflags, flags in source word | |||
@@ -714,7 +714,7 @@ int RemoveEnding(Translator *tr, char *word, int end_type, char *word_copy); | |||
int Unpronouncable(Translator *tr, char *word, int posn); | |||
void SetWordStress(Translator *tr, char *output, unsigned int *dictionary_flags, int tonic, int prev_stress); | |||
int TranslateRules(Translator *tr, char *p, char *phonemes, int size, char *end_phonemes, int end_flags, unsigned int *dict_flags); | |||
int TranslateWord(Translator *tr, char *word1, int next_pause, WORD_TAB *wtab); | |||
int TranslateWord(Translator *tr, char *word1, int next_pause, WORD_TAB *wtab, char *word_out); | |||
void *TranslateClause(Translator *tr, FILE *f_text, const void *vp_input, int *tone, char **voice_change); | |||
int ReadClause(Translator *tr, FILE *f_in, char *buf, short *charix, int *charix_top, int n_buf, int *tone_type, char *voice_change); | |||
@@ -798,14 +798,25 @@ voice_t *LoadVoice(const char *vname, int control) | |||
break; | |||
case V_DICTRULES: // conditional dictionary rules and list entries | |||
case V_NUMBERS: | |||
// expect a list of numbers | |||
while(*p != 0) | |||
{ | |||
while(isspace(*p)) p++; | |||
n = -1; | |||
if(((n = atoi(p)) > 0) && (n < 32)) | |||
if((n = atoi(p)) > 0) | |||
{ | |||
p++; | |||
conditional_rules |= (1 << n); | |||
if((key==V_DICTRULES) && (n < 32)) | |||
conditional_rules |= (1 << n); | |||
else | |||
if((key==V_NUMBERS) && (n < 32)) | |||
langopts->numbers |= (1 << n); | |||
else | |||
if((key==V_NUMBERS) && (n < 64)) | |||
langopts->numbers |= (1 << (n-32)); | |||
else | |||
fprintf(stderr,"Bad option number %d\n", n); | |||
} | |||
while(isalnum(*p)) p++; | |||
} | |||
@@ -837,10 +848,6 @@ voice_t *LoadVoice(const char *vname, int control) | |||
new_translator->charset_a0 = charsets[value]; | |||
break; | |||
case V_NUMBERS: | |||
sscanf(p,"%d %d",&langopts->numbers,&langopts->numbers2); | |||
break; | |||
case V_OPTION: | |||
value2 = 0; | |||
if((sscanf(p,"%s %d %d",option_name,&value,&value2) >= 2) && ((ix = LookupMnem(options_tab, option_name)) >= 0)) |
@@ -535,7 +535,7 @@ int wave_get_remaining_time(uint32_t sample, uint32_t* time) | |||
#else | |||
// notdef USE_SADA | |||
void wave_init() {} | |||
init wave_init() {} | |||
void* wave_open(const char* the_api) {return (void *)1;} | |||
size_t wave_write(void* theHandler, char* theMono16BitsWaveBuffer, size_t theSize) {return theSize;} | |||
int wave_close(void* theHandler) {return 0;} |