Conflicts: dictsource/dict_phonemes phsource/compile_reportmaster
| _‼ Ekskla#m'eIS@nz | _‼ Ekskla#m'eIS@nz | ||||
| _₠ jU@roU | _₠ jU@roU | ||||
| + plVs $max3 | |||||
| + plVs | |||||
| # haS $max3 | # haS $max3 | ||||
| @ _at_ $u+ | @ _at_ $u+ | ||||
| & _and $u+ | & _and $u+ | ||||
| converse $1 $only | converse $1 $only | ||||
| converse $verb | converse $verb | ||||
| convert $1 $noun | convert $1 $noun | ||||
| convict $1 | |||||
| convict $2 $verb | convict $2 $verb | ||||
| convolute k0nv@l'u:t | convolute k0nv@l'u:t | ||||
| coop ku:p | coop ku:p | ||||
| //mercenary m3:s@n@rI | //mercenary m3:s@n@rI | ||||
| merest mi@r@st | merest mi@r@st | ||||
| meringue m@raN | meringue m@raN | ||||
| meson mi:z0n | |||||
| metabolic mEt@b'0lIk | metabolic mEt@b'0lIk | ||||
| metaphor mEt@fO@ | metaphor mEt@fO@ | ||||
| metastable $alt1 | metastable $alt1 |
| // *************************************************************************** | // *************************************************************************** | ||||
| // * Copyright (C) 2005 to 2010 by Jonathan Duddington * | |||||
| // * Copyright (C) 2005 to 2013 by Jonathan Duddington * | |||||
| // * email: [email protected] * | // * email: [email protected] * | ||||
| // * * | // * * | ||||
| // * This program is free software; you can redistribute it and/or modify * | // * This program is free software; you can redistribute it and/or modify * | ||||
| co (ntrol+ k@ | co (ntrol+ k@ | ||||
| conva (l k0nv@ | conva (l k0nv@ | ||||
| _) co (nvenA k@ | _) co (nvenA k@ | ||||
| _) co (nvi k0# | |||||
| _) con (vi k%0#n | |||||
| _) co (nvoy k0 | _) co (nvoy k0 | ||||
| _) co (nw k0 | _) co (nw k0 | ||||
| _) copy k0pI | _) copy k0pI | ||||
| _) des (k dEs | _) des (k dEs | ||||
| des (ol dEs | des (ol dEs | ||||
| des (pot dEs | des (pot dEs | ||||
| _) dess dI2z | |||||
| _) dess (er dI2z | |||||
| desta (b d%i:steI | desta (b d%i:steI | ||||
| desti dEstI | desti dEstI | ||||
| des (ul d%i:s | des (ul d%i:s | ||||
| v) es (t+ Es | v) es (t+ Es | ||||
| harv) es (t Is | harv) es (t Is | ||||
| esti (m EstI# | esti (m EstI# | ||||
| es (ty @s | |||||
| &) es (ty @s | |||||
| .group et | .group et | ||||
| _) et (on i:t | _) et (on i:t | ||||
| iah (_ 'aI@ | iah (_ 'aI@ | ||||
| ia (m i@ | ia (m i@ | ||||
| &) ia (n i@ | &) ia (n i@ | ||||
| @) ia (nd I'a | |||||
| @) ia (nic I'a | @) ia (nic I'a | ||||
| @) ia (nit I'a | @) ia (nit I'a | ||||
| @) ia (na_ i:'a | @) ia (na_ i:'a | ||||
| iority I'0rI2t%I | iority I'0rI2t%I | ||||
| iou (rA j@ | iou (rA j@ | ||||
| iour (K j3 | iour (K j3 | ||||
| @) ious (_ =I2@s | |||||
| g) ious (_ =@s | |||||
| @) ious =I2@s | |||||
| g) ious =@s | |||||
| ioux u: | ioux u: | ||||
| _r) io (t aI@ | _r) io (t aI@ | ||||
| io (t_ I|@ | io (t_ I|@ | ||||
| &d) Ed (_S2vei I#d | &d) Ed (_S2vei I#d | ||||
| &ch) Ed (_S2vei t | &ch) Ed (_S2vei t | ||||
| &k) Ed (_S2vei t | &k) Ed (_S2vei t | ||||
| ril) Ed (_S2 d | |||||
| &@@om) Ed (_S2v d | &@@om) Ed (_S2v d | ||||
| &p) Ed (_S2vei t | &p) Ed (_S2vei t | ||||
| &t) Ed (_S2vei I#d | &t) Ed (_S2vei I#d |
| // Numbers | // Numbers | ||||
| // devanagari numbers are changed to latin characters before translation | // devanagari numbers are changed to latin characters before translation | ||||
| _0 S'u:n.jV | |||||
| _0 s'u:n.jV | |||||
| _1 'e:k | _1 'e:k | ||||
| _2 d'o: | _2 d'o: | ||||
| _3 t'i:n | _3 t'i:n | ||||
| _4 c'a:r: | |||||
| _5 p'a:nc | |||||
| _4 c:'a:r: | |||||
| _5 'pa~c | |||||
| _6 ch'@2 | _6 ch'@2 | ||||
| _7 s'a:t | _7 s'a:t | ||||
| _8 'a:th. | _8 'a:th. | ||||
| ?3 _9 n'aU | ?3 _9 n'aU | ||||
| _10 d'Vs | _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 | _19 Unn'Is | ||||
| _20 b'i:s | _20 b'i:s | ||||
| _21 Ik:'Is | _21 Ik:'Is | ||||
| _22 b'a:Is | _22 b'a:Is | ||||
| _23 t'e:Is | |||||
| _23 t'ue:Is | |||||
| _24 c'O:bIs | _24 c'O:bIs | ||||
| _25 p@c:'Is | _25 p@c:'Is | ||||
| _26 ch@bb'i:rs | _26 ch@bb'i:rs | ||||
| _27 s@t:'a:Is | _27 s@t:'a:Is | ||||
| _28 ath:'a:Is | _28 ath:'a:Is | ||||
| _29 Unt'Is | |||||
| _29 ,Unt'Is | |||||
| _30 t'i:s | _30 t'i:s | ||||
| _31 Ik@t:'Is | _31 Ik@t:'Is | ||||
| _32 bat:'Is | |||||
| _32 b'at:'I'S | |||||
| _33 tE~t'Is // E~ ? | _33 tE~t'Is // E~ ? | ||||
| _34 cO~t'Is | _34 cO~t'Is | ||||
| _35 pE~t'Is | _35 pE~t'Is | ||||
| _54 c'Ou:wVn | _54 c'Ou:wVn | ||||
| _55 p'achpVn | _55 p'achpVn | ||||
| _56 chh@p:'Vn | _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 | _59 Uns'Vth | ||||
| _60 s'a:th. | _60 s'a:th. | ||||
| _61 'Iks@th. | _61 'Iks@th. | ||||
| _62 b'a:s@th. | _62 b'a:s@th. | ||||
| _63 t'Irs@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. | _66 ch'Ija:s@th. | ||||
| _67 s'Vrs@th. | _67 s'Vrs@th. | ||||
| _68 ars@th. | _68 ars@th. | ||||
| _79 ,Un^Ia:s'i: | _79 ,Un^Ia:s'i: | ||||
| _80 ,Vss'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: | _90 nVb:'e: | ||||
| _91 Ikj'a:n@we: | _91 Ikj'a:n@we: | ||||
| _99 nIn^j'a:n@we: | _99 nIn^j'a:n@we: | ||||
| _0C s'O: | _0C s'O: | ||||
| _0M1 h@z'a:r | |||||
| _0M1 h@J,a:r | |||||
| _0M2 l'a:kh | _0M2 l'a:kh | ||||
| _0M3 cr'ore | |||||
| _0M3 k@ro:r.V | |||||
| _0M4 'Vr@b | _0M4 'Vr@b | ||||
| _0M5 kh'Vr@b | _0M5 kh'Vr@b | ||||
| _dpt _d@s@ml'o:_ // ?? what is Hi for "." ? | _dpt _d@s@ml'o:_ // ?? what is Hi for "." ? | ||||
| श S@ | श S@ | ||||
| ष s.@ // retroflex [S] | ष s.@ // retroflex [S] | ||||
| स s@ | स s@ | ||||
| ह H@ | |||||
| ह H@- | |||||
| क़ q@ | क़ q@ | ||||
| ख़ x@ | ख़ x@ | ||||
| ग़ Q@ | ग़ Q@ | ||||
| । dVn.d.V | । dVn.d.V | ||||
| // Pronouns | // Pronouns | ||||
| मैं $u // main: I | |||||
| मैं $u // main: IrI | |||||
| मुझे $u | मुझे $u | ||||
| मेरा $u | मेरा $u | ||||
| मेरी $u | मेरी $u | ||||
| मेरे $u | मेरे $u | ||||
| हम $u // we | हम $u // we | ||||
| हमें $u | |||||
| हमे $u | |||||
| हमारा $u | हमारा $u | ||||
| हमारी $u | हमारी $u | ||||
| हमारे $u | हमारे $u | ||||
| इसका $u | इसका $u | ||||
| ये $u // they | ये $u // they | ||||
| इन्हें $u | |||||
| इन्हें $u | |||||
| इनका $u | इनका $u | ||||
| वह $u // he/she/it | वह $u // he/she/it | ||||
| वे $u // they | वे $u // they | ||||
| वो $u | वो $u | ||||
| उन्हें $u // unheṃ: them | |||||
| उन्हे $u // unheṃ: them | |||||
| उनका $u | उनका $u | ||||
| उनकी $u | उनकी $u | ||||
| उनके $u | उनके $u |
| // This file is UTF8 encoded | |||||
| // This file is UTF8 encoded | |||||
| // letter groups: | // letter groups: | ||||
| // A vowel letters and vowel signs | // A vowel letters and vowel signs | ||||
| // Vowels | // Vowels | ||||
| .group अ | .group अ | ||||
| अ V | |||||
| अ (ह E // (h | |||||
| अह) अ E | |||||
| अ V | |||||
| अ (ह E // (h | |||||
| अह) अ E | |||||
| .group आ | .group आ | ||||
| आ a: | |||||
| आ a: | |||||
| .group इ | .group इ | ||||
| इ I | |||||
| इ I | |||||
| // इँ i~ | // इँ i~ | ||||
| // इं i~ | // इं i~ | ||||
| .group ई | .group ई | ||||
| ई i: | |||||
| ई (_ i | |||||
| ई i: | |||||
| ई (_ i | |||||
| .group उ | .group उ | ||||
| उ U | |||||
| उ U | |||||
| .group ऊ | .group ऊ | ||||
| ऊ u: | |||||
| ऊं u~ // + anusvara | |||||
| ऊँ u~ // + candrabinbu | |||||
| ऊ u | |||||
| ऊं u~ // + anusvara | |||||
| ऊँ u~ // + candrabinbu | |||||
| .group ऋ | .group ऋ | ||||
| ऋ rI | |||||
| ऋ rI | |||||
| .group ऌ | .group ऌ | ||||
| ऌ l- // vocalic l | |||||
| ऌ l- // vocalic l | |||||
| .group ऍ | .group ऍ | ||||
| ऍ E // candra e | |||||
| ऍ E // candra e | |||||
| .group ऎ | .group ऎ | ||||
| ऎ e | |||||
| ऎ e | |||||
| .group ए | .group ए | ||||
| ए e: | |||||
| ए e: | |||||
| .group ऐ | .group ऐ | ||||
| ऐ E: // ?? [aI] [E:] [&:] | |||||
| ऐं E~ | |||||
| ऐँ E~ | |||||
| ?2 ऐ aI // ?? [aI] [E:] [&:] | |||||
| ऐ E: // ?? [aI] [E:] [&:] | |||||
| ऐं E~ | |||||
| ऐँ E~ | |||||
| ?2 ऐ aI // ?? [aI] [E:] [&:] | |||||
| .group ऑ | .group ऑ | ||||
| ऑ O // candra O | |||||
| ऑ O // candra O | |||||
| .group ऒ | .group ऒ | ||||
| ऒ o | |||||
| ऒ o | |||||
| .group ओ | .group ओ | ||||
| ओ o: | |||||
| ओं o~ // +anusvara | |||||
| ओँ o~ // +candrabindu | |||||
| ओ o: | |||||
| ओं o~ // +anusvara | |||||
| ओँ o~ // +candrabindu | |||||
| .group औ | .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 | // Vowel Signs | ||||
| .group ा | .group ा | ||||
| ा a: | ा a: | ||||
| ाव aU | |||||
| ाव aU | |||||
| .group ि | .group ि | ||||
| ि I | |||||
| ि I | |||||
| // िँ i~ | // िँ i~ | ||||
| // िं i~ | // िं i~ | ||||
| .group ी | .group ी | ||||
| ी i: | |||||
| ी (_ i | |||||
| ी i: | |||||
| ी (_ i | |||||
| .group ु | .group ु | ||||
| ु U | |||||
| ु u | |||||
| .group ू | .group ू | ||||
| ू u: | |||||
| ूं u~ // or O~ ?? | |||||
| ूँ u~ | |||||
| ू u: | |||||
| ूं u~ // or O~ ?? | |||||
| ूँ u~ | |||||
| .group ृ | .group ृ | ||||
| ृ rI | |||||
| ृ rI | |||||
| .group ॄ | .group ॄ | ||||
| ॄ rI | |||||
| ॄ rI | |||||
| .group ॅ | .group ॅ | ||||
| ॅ E | |||||
| ॅ E | |||||
| .group ॆ | .group ॆ | ||||
| ॆ e | |||||
| ॆ e | |||||
| .group े | .group े | ||||
| े e: | |||||
| े e: | |||||
| .group ै | .group ै | ||||
| ै E: // ?? [aI] [E:] [&:] | |||||
| ैं E~ | |||||
| ैँ E~ | |||||
| ?2 ै aI // ?? [aI] [E:] [&:] | |||||
| ै E: // ?? [aI] [E:] [&:] | |||||
| ैं E~ | |||||
| ैँ E~ | |||||
| ?2 ै aI // ?? [aI] [E:] [&:] | |||||
| .group ॉ | .group ॉ | ||||
| ॉ O | |||||
| ॉ O | |||||
| .group ॊ | .group ॊ | ||||
| ॊ o | |||||
| ॊ o | |||||
| .group ो | .group ो | ||||
| ो o: | |||||
| ों o~ | |||||
| ोँ o~ | |||||
| ो o: | |||||
| ों o~ | |||||
| ोँ o~ | |||||
| .group ौ | .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 | .group ॢ // vowel sign l | ||||
| ॢ l- | |||||
| ॢ l- | |||||
| .group ॣ // vowel sign ll | .group ॣ // vowel sign ll | ||||
| ॣ l-: | |||||
| ॣ l-: | |||||
| .group ॐ | .group ॐ | ||||
| ॐ o~m | |||||
| ॐ o~m | |||||
| // Consonants | // Consonants | ||||
| .group क | .group क | ||||
| क kV | |||||
| क (B k | |||||
| क (्य k: | |||||
| क़ qV | |||||
| क़ (B q | |||||
| क kV | |||||
| क (B k | |||||
| क (्य k: | |||||
| क़ qV | |||||
| क़ (B q | |||||
| .group ख | .group ख | ||||
| ख khV | |||||
| ख (B kh | |||||
| ख़ xV | |||||
| ख़ (B x | |||||
| ख khV | |||||
| ख (B kh | |||||
| ख़ xV | |||||
| ख़ (B x | |||||
| .group ग | .group ग | ||||
| ग gV | |||||
| ग (B g | |||||
| ग़ QV | |||||
| ग़ (B Q | |||||
| ग gV | |||||
| ग (B g | |||||
| ग़ QV | |||||
| ग़ (B Q | |||||
| .group घ | .group घ | ||||
| घ ghV | |||||
| घ (B gh | |||||
| घ ghV | |||||
| घ (B gh | |||||
| .group ङ | .group ङ | ||||
| ङ NV | |||||
| ङ (B N | |||||
| ्) ङ (_ N@ | |||||
| ङ NV | |||||
| ङ (B N | |||||
| ्) ङ (_ N@ | |||||
| .group च | .group च | ||||
| च cV | |||||
| च (B c | |||||
| च (्य c: | |||||
| च cV | |||||
| च (B c | |||||
| च (्य c: | |||||
| .group छ | .group छ | ||||
| छ chV | |||||
| छ (B ch | |||||
| छ chV | |||||
| छ (B ch | |||||
| .group ज | .group ज | ||||
| ज JV | |||||
| ज (B J | |||||
| ज़ zV | |||||
| ज़ (B z | |||||
| ज JV | |||||
| ज (B J | |||||
| ज़ zV | |||||
| ज़ (B z | |||||
| .group झ | .group झ | ||||
| झ JhV | |||||
| झ (B Jh | |||||
| झ JhV | |||||
| झ (B Jh | |||||
| .group ञ | .group ञ | ||||
| ञ n^V | |||||
| ञ (B n^ | |||||
| ्) ञ (_ n^ | |||||
| ञ n^V | |||||
| ञ (B n^ | |||||
| ्) ञ (_ n^ | |||||
| .group ट | .group ट | ||||
| ट t.V | |||||
| ट (B t. | |||||
| ट (्य t.: | |||||
| ट t.V | |||||
| ट (B t. | |||||
| ट (्य t.: | |||||
| .group ठ | .group ठ | ||||
| ठ th.V | |||||
| ठ (B th. | |||||
| ठ th.V | |||||
| ठ (B th. | |||||
| .group ड | .group ड | ||||
| ड d.V | |||||
| ड (B d. | |||||
| ड d.V | |||||
| ड (B d. | |||||
| ड़ r.V | |||||
| ड़ (B r. | |||||
| ड़ r.V | |||||
| ड़ (B r. | |||||
| .group ढ | .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 ण | .group ण | ||||
| ण n.V // (temporary) same as dental [n] | |||||
| ण (B n. | |||||
| ्) ण (_ n.@ | |||||
| ण n.V // (temporary) same as dental [n] | |||||
| ण (B n. | |||||
| ्) ण (_ n.@ | |||||
| .group त | .group त | ||||
| त tV | |||||
| त (B t | |||||
| त (्य t: | |||||
| त tV | |||||
| त (B t | |||||
| त (्य t: | |||||
| .group थ | .group थ | ||||
| थ thV | |||||
| थ (B th | |||||
| थ thV | |||||
| थ (B th | |||||
| .group द | .group द | ||||
| द dV | |||||
| द (B d | |||||
| द dV | |||||
| द (B d | |||||
| .group ध | .group ध | ||||
| ध dhV | |||||
| ध (B dh | |||||
| ध dhV | |||||
| ध (B dh | |||||
| .group न | .group न | ||||
| न nV | |||||
| न (B n | |||||
| ्) न (_ n@ | |||||
| र्) न (_ n // r +virama | |||||
| न nV | |||||
| न (B n | |||||
| ्) न (_ n@ | |||||
| र्) न (_ n // r +virama | |||||
| .group ऩ | .group ऩ | ||||
| ऩ n: // should this be a long [n] ? | |||||
| ऩ n: // should this be a long [n] ? | |||||
| .group प | .group प | ||||
| प pV | |||||
| प (B p | |||||
| प (्य p: | |||||
| प pV | |||||
| प (B p | |||||
| प (्य p: | |||||
| .group फ | .group फ | ||||
| फ phV | |||||
| फ (B ph | |||||
| फ़ fV | |||||
| फ़ (B f | |||||
| फ phV | |||||
| फ (B ph | |||||
| फ़ fV | |||||
| फ़ (B f | |||||
| .group ब | .group ब | ||||
| ब bV | |||||
| ब (B b | |||||
| ब bV | |||||
| ब (B b | |||||
| .group भ | .group भ | ||||
| भ bhV | |||||
| भ (B bh | |||||
| भ bhV | |||||
| भ (B bh | |||||
| .group म | .group म | ||||
| म mV | |||||
| म (B m | |||||
| ्) म (_ m@ | |||||
| र्) म (_ m // r +virama | |||||
| न्) म (_ m // n +virama | |||||
| म mV | |||||
| म (B m | |||||
| ्) म (_ m@ | |||||
| र्) म (_ m // r +virama | |||||
| न्) म (_ m // n +virama | |||||
| .group य | .group य | ||||
| य jV | |||||
| य (B j | |||||
| ्) य (_ j@ | |||||
| य j@ | |||||
| य (B j | |||||
| ्) य (_ j@ | |||||
| .group र | .group र | ||||
| र rV | |||||
| र (B r | |||||
| ्) र (_ r@ | |||||
| र rV | |||||
| र (B r | |||||
| ्) र (_ r@ | |||||
| .group ऱ // rra | .group ऱ // rra | ||||
| ऱ rV // (temporary) same as [r] | |||||
| ऱ (B r | |||||
| ्) ऱ (_ r@ | |||||
| ऱ rV // (temporary) same as [r] | |||||
| ऱ (B r | |||||
| ्) ऱ (_ r@ | |||||
| .group ल | .group ल | ||||
| ल lV | |||||
| ल (B l | |||||
| ्) ल (_ l@ | |||||
| ल lV | |||||
| ल (B l | |||||
| ्) ल (_ l@ | |||||
| .group ळ | .group ळ | ||||
| ळ l.V | |||||
| ळ (B l. | |||||
| ्) ळ (_ l.@ | |||||
| ळ l.V | |||||
| ळ (B l. | |||||
| ्) ळ (_ l.@ | |||||
| .group ऴ | .group ऴ | ||||
| ऴ l.V // (temporary) same as [l.] | |||||
| ऴ (B l. | |||||
| ्) ऴ (_ l.@ | |||||
| ऴ l.V // (temporary) same as [l.] | |||||
| ऴ (B l. | |||||
| ्) ऴ (_ l.@ | |||||
| .group व | .group व | ||||
| व vV | |||||
| व (B v | |||||
| _) व wV | |||||
| _) व (B w | |||||
| _) व (् v // +virma | |||||
| व vV | |||||
| व (B v | |||||
| _) व wV | |||||
| _) व (B w | |||||
| _) व (् v // +virma | |||||
| .group श | .group श | ||||
| श SV | |||||
| श (B S | |||||
| श SV | |||||
| श (B S | |||||
| .group ष | .group ष | ||||
| ष s.V //?? or retroflex [S] | |||||
| ष (B s. //?? | |||||
| ष s.V //?? or retroflex [S] | |||||
| ष (B s. //?? | |||||
| .group स | .group स | ||||
| स sV | |||||
| स (B s | |||||
| स sV | |||||
| स (B s | |||||
| .group ह | .group ह | ||||
| ह HV | |||||
| ह (B H | |||||
| ह H | |||||
| ह (B H | |||||
| // nukta, modifies a consonant | // nukta, modifies a consonant | ||||
| .group ऽ // avagraha, lengthens a vowel ?? | .group ऽ // avagraha, lengthens a vowel ?? | ||||
| ऽ : | |||||
| ऽ : | |||||
| .group ँ | .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 ः | .group ः | ||||
| ः H // visarga | |||||
| ः H // visarga | |||||
| .group ् // virama | .group ् // virama | ||||
| ् | |||||
| ् | |||||
| // Extra consonants | // Extra consonants | ||||
| .group क़ // qa | .group क़ // qa | ||||
| क़ qV | |||||
| क़ (B q | |||||
| क़ qV | |||||
| क़ (B q | |||||
| .group ख़ // khha | .group ख़ // khha | ||||
| ख़ xV | |||||
| ख़ (B x | |||||
| ख़ xV | |||||
| ख़ (B x | |||||
| .group ग़ // ghha | .group ग़ // ghha | ||||
| ग़ QV | |||||
| ग़ (B Q | |||||
| ग़ QV | |||||
| ग़ (B Q | |||||
| .group ज़ // za | .group ज़ // za | ||||
| ज़ zV | |||||
| ज़ (B z | |||||
| ज़ zV | |||||
| ज़ (B z | |||||
| .group ड़ // dddha (should retroflex flap) | .group ड़ // dddha (should retroflex flap) | ||||
| ड़ r.V | |||||
| ड़ (B r. | |||||
| ड़ r.V | |||||
| ड़ (B r. | |||||
| .group ढ़ // rha (aspirated version of dddha) | .group ढ़ // rha (aspirated version of dddha) | ||||
| ढ़ r.hV | |||||
| ढ़ (B r.h | |||||
| ढ़ r.hV | |||||
| ढ़ (B r.h | |||||
| .group फ़ // fa | .group फ़ // fa | ||||
| फ़ fV | |||||
| फ़ (B f | |||||
| फ़ fV | |||||
| फ़ (B f | |||||
| .group य़ // yya | .group य़ // yya | ||||
| य़ jV | |||||
| य़ (B j | |||||
| य़ jV | |||||
| य़ (B j | |||||
| .group ॠ // rr | .group ॠ // rr | ||||
| ॠ V-rr | |||||
| ॠ V-rr | |||||
| .group ॡ // ll | .group ॡ // ll | ||||
| ॡ l-: // long syllabic l | |||||
| ॡ l-: // long syllabic l | |||||
| // If we find a Latin letter a-z, then translate as English | // If we find a Latin letter a-z, then translate as English | ||||
| // (This is now done automatically by the eSpeak program) | // (This is now done automatically by the eSpeak program) | ||||
| .group o | .group o | ||||
| o _^_EN | |||||
| D__) of (__D me | |||||
| o _^_EN | |||||
| D__) of (__D me | |||||
| .group | .group | ||||
| $ dOlV | |||||
| % pVsEnt | |||||
| $ dOlV | |||||
| % pVsEnt | |||||
| // numbers | // numbers | ||||
| _0 p'u:Jj@m | _0 p'u:Jj@m | ||||
| _1 'onny | _1 'onny | ||||
| _2 r'an.t.y | |||||
| _3 m'unny | |||||
| _2 r@n.d#y | |||||
| _3 m'u:nny | |||||
| _4 n'a:ly | _4 n'a:ly | ||||
| _5 'an^cy | _5 'an^cy | ||||
| _6 'aR2y | |||||
| _6 'a:R2y | |||||
| _7 'e:r.y | _7 'e:r.y | ||||
| _8 'et.t.y | _8 'et.t.y | ||||
| _9 'onpaty | _9 'onpaty | ||||
| _1X p'ati | |||||
| _10 p'atty | _10 p'atty | ||||
| _1X p'ati | |||||
| _11 p'atinonny | _11 p'atinonny | ||||
| _12 p'antran.t.y | _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 | _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 | _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 | _0M3 k'o:t.i | ||||
| _dpt _d'aS;a:mS;@m_ | _dpt _d'aS;a:mS;@m_ | ||||
| // This file is UTF8 encoded | |||||
| // This file is UTF8 encoded | |||||
| // Spelling to phoneme rules for Malayalam | // Spelling to phoneme rules for Malayalam | ||||
| // A means vowel letters (not vowel signs) | // A means vowel letters (not vowel signs) | ||||
| ൭ 7 | ൭ 7 | ||||
| ൮ 8 | ൮ 8 | ||||
| ൯ 9 | ൯ 9 | ||||
| ോ ോ | |||||
| ോ ോ | |||||
| ൊ ൊ | ൊ ൊ | ||||
| ൌ ൌ | ൌ ൌ | ||||
| .group ക | .group ക | ||||
| ക ka | |||||
| ക (B k | |||||
| ക ka | |||||
| ക (B k | |||||
| .group ഖ | .group ഖ | ||||
| ഖ kha | |||||
| ഖ (B kh | |||||
| ഖ kha | |||||
| ഖ (B kh | |||||
| .group ഗ | .group ഗ | ||||
| ഗ ga | |||||
| ഗ (B g | |||||
| ഗ ga | |||||
| ഗ (B g | |||||
| .group ഘ | .group ഘ | ||||
| ഘ gha | |||||
| ഘ (B gh | |||||
| ഘ gha | |||||
| ഘ (B gh | |||||
| .group ങ | .group ങ | ||||
| ങ Na | |||||
| ങ (B N | |||||
| ങ Na | |||||
| ങ (B N | |||||
| .group ച | .group ച | ||||
| ച ca | |||||
| ച (B c | |||||
| ച ca | |||||
| ച (B c | |||||
| .group ഛ | .group ഛ | ||||
| ഛ cha | |||||
| ഛ (B ch | |||||
| ഛ cha | |||||
| ഛ (B ch | |||||
| .group ജ | .group ജ | ||||
| ജ Ja | |||||
| ജ (B J | |||||
| ജ Ja | |||||
| ജ (B J | |||||
| .group ഝ | .group ഝ | ||||
| ഝ Jha | |||||
| ഝ (B Jh | |||||
| ഝ Jha | |||||
| ഝ (B Jh | |||||
| .group ഞ | .group ഞ | ||||
| ഞ n^a | |||||
| ഞ (B n^ | |||||
| ഞ n^a | |||||
| ഞ (B n^ | |||||
| .group ട | .group ട | ||||
| ട t.a | |||||
| ട (B t. | |||||
| ട t.a | |||||
| ട (B t. | |||||
| .group ഠ | .group ഠ | ||||
| ഠ th.a | |||||
| ഠ (B th. | |||||
| ഠ th.a | |||||
| ഠ (B th. | |||||
| .group ഡ | .group ഡ | ||||
| ഡ d.a | |||||
| ഡ (B d. | |||||
| ഡ d.a | |||||
| ഡ (B d. | |||||
| .group ഢ | .group ഢ | ||||
| ഢ dh.a | |||||
| ഢ (B dh. | |||||
| ഢ dh.a | |||||
| ഢ (B dh. | |||||
| .group ണ | .group ണ | ||||
| ണ n.a | |||||
| ണ (B n. | |||||
| ണ n.a | |||||
| ണ (B n. | |||||
| .group ത | .group ത | ||||
| ത ta | |||||
| ത (B t | |||||
| ത ta | |||||
| ത (B t | |||||
| .group ഥ | .group ഥ | ||||
| ഥ tha | |||||
| ഥ (B th | |||||
| ഥ tha | |||||
| ഥ (B th | |||||
| .group ദ | .group ദ | ||||
| ദ da | |||||
| ദ (B d | |||||
| ദ da | |||||
| ദ (B d | |||||
| .group ധ | .group ധ | ||||
| ധ dha | |||||
| ധ (B dh | |||||
| ധ dha | |||||
| ധ (B dh | |||||
| .group ന | .group ന | ||||
| ന na | |||||
| ന (B n | |||||
| ന na | |||||
| ന (B n | |||||
| .group പ | .group പ | ||||
| പ pa | |||||
| പ (B p | |||||
| പ pa | |||||
| പ (B p | |||||
| .group ഫ | .group ഫ | ||||
| ഫ pha | |||||
| ഫ (B p | |||||
| ഫ pha | |||||
| ഫ (B p | |||||
| _പ്രൊ) ഫ (സര് fa | |||||
| _പ്രൊ) ഫ (സര് fa | |||||
| .group ബ | .group ബ | ||||
| ബ ba | |||||
| ബ (B b | |||||
| ബ ba | |||||
| ബ (B b | |||||
| .group ഭ | .group ഭ | ||||
| ഭ bha | |||||
| ഭ (B bh | |||||
| ഭ bha | |||||
| ഭ (B bh | |||||
| .group മ | .group മ | ||||
| മ ma | |||||
| മ (B m | |||||
| മ ma | |||||
| മ (B m | |||||
| .group യ | .group യ | ||||
| യ ja | |||||
| യ (B j | |||||
| യ ja | |||||
| യ (B j | |||||
| .group ര | .group ര | ||||
| ര ra | |||||
| ര (B r | |||||
| ര ra | |||||
| ര (B r | |||||
| .group റ | .group റ | ||||
| റ R2a | |||||
| റ (B R2 | |||||
| ന്) റ d# | |||||
| റ്റ t.t. // ?? R2R2 = t.t. | |||||
| റ R2a | |||||
| റ (B R2 | |||||
| ന്) റ d# | |||||
| റ്റ t.t. // ?? R2R2 = t.t. | |||||
| .group ല | .group ല | ||||
| ല la | |||||
| ല (B l | |||||
| ല la | |||||
| ല (B l | |||||
| .group ള | .group ള | ||||
| ള l.a | |||||
| ള (B l. | |||||
| ള l.a | |||||
| ള (B l. | |||||
| .group ഴ // retroflex [r.] ? | .group ഴ // retroflex [r.] ? | ||||
| ഴ r.a | |||||
| ഴ (B r. | |||||
| ഴ r.a | |||||
| ഴ (B r. | |||||
| .group വ | .group വ | ||||
| വ va | |||||
| വ (B v | |||||
| വ va | |||||
| വ (B v | |||||
| .group ശ | .group ശ | ||||
| ശ S;a | |||||
| ശ (B S; | |||||
| ശ S;a | |||||
| ശ (B S; | |||||
| .group ഷ | .group ഷ | ||||
| ഷ s.a | |||||
| ഷ (B s. | |||||
| ഷ s.a | |||||
| ഷ (B s. | |||||
| .group സ | .group സ | ||||
| സ sa | |||||
| സ (B s | |||||
| സ sa | |||||
| സ (B s | |||||
| .group ഹ | .group ഹ | ||||
| ഹ ha | |||||
| ഹ (B h | |||||
| ഹ ha | |||||
| ഹ (B h | |||||
| // chillu consonants | // chillu consonants | ||||
| .group ൺ | .group ൺ | ||||
| ൺ n. | |||||
| ൺ n. | |||||
| .group ൻ | .group ൻ | ||||
| ൻ n | |||||
| ൻ n | |||||
| .group ർ | .group ർ | ||||
| ർ r | |||||
| ർ r | |||||
| .group ൽ | .group ൽ | ||||
| ൽ l | |||||
| ൽ l | |||||
| .group ൾ | .group ൾ | ||||
| ൾ l. | |||||
| ൾ l. | |||||
| .group ൿ | .group ൿ | ||||
| ൿ k | |||||
| ൿ k | |||||
| .group 0xe0b4 // characters which start with UTF-8 bytes: [e0 b4] | .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 | // combining vowel signs | ||||
| ാ a: | |||||
| ാ a: | |||||
| ി i | |||||
| ി (ല്K I | |||||
| ി i | |||||
| ി (ല്K I | |||||
| .group 0xe0b5 // characters which start with UTF-8 bytes: [e0 b5] | .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 | .group 0xe0a4 // devanagari | ||||
| 0xe0a4 _^_HI // switch to hindi voice | |||||
| 0xe0a4 _^_HI // switch to hindi voice | |||||
| .group 0xe0a5 // devanagari | .group 0xe0a5 // devanagari | ||||
| 0xe0a5 _^_HI | |||||
| 0xe0a5 _^_HI | |||||
| .group | .group | ||||
| $ do:l.ar | |||||
| $ do:l.ar |
| amarelo $alt | amarelo $alt | ||||
| ameba $alt | ameba $alt | ||||
| amores $alt2 | amores $alt2 | ||||
| antonieta $alt2 | |||||
| apego $alt2 $noun | apego $alt2 $noun | ||||
| apelo $alt $verb | apelo $alt $verb | ||||
| aposto $alt $verb | aposto $alt $verb | ||||
| colabore $alt | colabore $alt | ||||
| colete $alt2 | colete $alt2 | ||||
| colchete $alt2 | colchete $alt2 | ||||
| colher $alt $verb | |||||
| colher $alt $noun | |||||
| colheres $alt $noun | colheres $alt $noun | ||||
| colmeia $alt | colmeia $alt | ||||
| colore $alt | colore $alt | ||||
| desespero $alt2 $noun | desespero $alt2 $noun | ||||
| desfecho $alt2 | desfecho $alt2 | ||||
| desprezo $alt $verb | desprezo $alt $verb | ||||
| deva $alt2 | |||||
| devo $alt2 | |||||
| deveras $alt | deveras $alt | ||||
| dez $alt | dez $alt | ||||
| diarreia $alt | diarreia $alt | ||||
| foguete $alt2 | foguete $alt2 | ||||
| foice $alt2 | foice $alt2 | ||||
| forca $alt2 | forca $alt2 | ||||
| força $alt2 $noun | |||||
| forço $alt | |||||
| forças $alt2 | forças $alt2 | ||||
| fordes $alt2 | fordes $alt2 | ||||
| fores $alt2 | fores $alt2 |
| viv) e (L07_ e // re- | viv) e (L07_ e // re- | ||||
| qu) e (brL04_ E | qu) e (brL04_ E | ||||
| _hosp) e (dL03_ E | _hosp) e (dL03_ E | ||||
| _d) e (vL03_ e | |||||
| _gr) e (gL03_ e | _gr) e (gL03_ e | ||||
| _n) e (grL03_ e | _n) e (grL03_ e | ||||
| _estr) ei (L03_ EI | _estr) ei (L03_ EI |
| phoneme a: | phoneme a: | ||||
| vowel long starttype #a endtype #a | vowel long starttype #a endtype #a | ||||
| length 230 | |||||
| length 190 | |||||
| FMT(vowel/aa_9) | FMT(vowel/aa_9) | ||||
| endphoneme | endphoneme | ||||
| phoneme o: | phoneme o: | ||||
| vowel long starttype #o endtype #o | vowel long starttype #o endtype #o | ||||
| length 220 | |||||
| length 227 | |||||
| FMT(vowel/o_2) | FMT(vowel/o_2) | ||||
| endphoneme | endphoneme | ||||
| endphoneme | endphoneme | ||||
| phoneme r | phoneme r | ||||
| import_phoneme base/* | |||||
| import_phoneme base/** | |||||
| endphoneme | endphoneme | ||||
| phoneme R | phoneme R | ||||
| phoneme d# // 'rr' sounds like English 'd' | phoneme d# // 'rr' sounds like English 'd' | ||||
| import_phoneme base/d | import_phoneme base/d | ||||
| endphoneme | 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 | |||||
| endphoneme | 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 | endphoneme | ||||
| phonemetable hi base | phonemetable hi base | ||||
| include ph_hindi | include ph_hindi | ||||
| phonemetable bn hi | |||||
| include ph_bengali | |||||
| phonemetable ne hi | |||||
| include ph_nepali | |||||
| phonemetable ur hi | |||||
| include ph_urdu | |||||
| phonemetable ta hi | phonemetable ta hi | ||||
| include ph_tamil | include ph_tamil | ||||
| phonemetable ml hi | phonemetable ml hi | ||||
| include ph_malayalam | include ph_malayalam | ||||
| phonemetable ur hi | |||||
| include ph_urdu | |||||
| phonemetable hu base | phonemetable hu base | ||||
| include ph_hungarian | include ph_hungarian | ||||
| phonemetable rw base2 | phonemetable rw base2 | ||||
| include ph_kinyarwanda | include ph_kinyarwanda | ||||
| //phonemetable bn hi | |||||
| //include ph_bengali | |||||
| phonemetable ne hi | |||||
| include ph_nepali | |||||
| //phonemetable mr hi | //phonemetable mr hi | ||||
| //include ph_marathi | //include ph_marathi | ||||
| MNEM_TAB mnem_rules[] = { | MNEM_TAB mnem_rules[] = { | ||||
| {"unpr", 0x01}, | {"unpr", 0x01}, | ||||
| {"w_alt1", 0x11}, | {"w_alt1", 0x11}, | ||||
| {"w_alt2", 0x12}, | {"w_alt2", 0x12}, | ||||
| {"w_alt3", 0x13}, | {"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 | {"w_alt", 0x11}, // note: put longer names before their sub-strings | ||||
| {"p_alt1", 0x21}, | {"p_alt1", 0x21}, | ||||
| {"p_alt2", 0x22}, | {"p_alt2", 0x22}, | ||||
| {"p_alt3", 0x23}, | {"p_alt3", 0x23}, | ||||
| // {"p_alt4", 0x24}, | |||||
| {"p_alt4", 0x24}, | |||||
| {"p_alt5", 0x25}, | |||||
| {"p_alt6", 0x26}, | |||||
| {"p_alt", 0x21}, | {"p_alt", 0x21}, | ||||
| {NULL, -1} }; | {NULL, -1} }; | ||||
| // these set the corresponding numbered bit if dictionary_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 | // 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 | {"$combine", 23}, // Combine with the next word | ||||
| {"$dot", 24}, // ignore '.' after this word (abbreviation) | {"$dot", 24}, // ignore '.' after this word (abbreviation) | ||||
| {"$text", 29}, // word translates to replcement text, not phonemes | {"$text", 29}, // word translates to replcement text, not phonemes | ||||
| // flags in dictionary word 2 | // 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 | {"$accent", 0x2b}, // character name is base-character name + accent name | ||||
| {"$sentence",0x2d}, // only if this clause is a sentence (i.e. terminator is {. ? !} not {, ; :} | {"$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 | // doesn't set dictionary_flags | ||||
| {"$?", 100}, // conditional rule, followed by byte giving the condition number | {"$?", 100}, // conditional rule, followed by byte giving the condition number | ||||
| // PROBLEM vowel reductions are not applied to the translated phonemes | // PROBLEM vowel reductions are not applied to the translated phonemes | ||||
| // condition rules are not applied | // condition rules are not applied | ||||
| TranslateWord(translator,phonetic,0,NULL); | |||||
| TranslateWord(translator,phonetic,0,NULL,NULL); | |||||
| text_not_phonemes = 0; | text_not_phonemes = 0; | ||||
| strncpy0(encoded_ph, word_phonemes, N_WORD_BYTES-4); | strncpy0(encoded_ph, word_phonemes, N_WORD_BYTES-4); | ||||
| int no_phonemes; | int no_phonemes; | ||||
| int skipwords; | int skipwords; | ||||
| int ix; | int ix; | ||||
| int c; | |||||
| const char *word_end; | const char *word_end; | ||||
| const char *word1; | const char *word1; | ||||
| int wflags = 0; | int wflags = 0; | ||||
| // int wflags2; | |||||
| char word_buf[N_WORD_BYTES+1]; | char word_buf[N_WORD_BYTES+1]; | ||||
| if(wtab != NULL) | if(wtab != NULL) | ||||
| if((end_flags & FLAG_SUFX)==0) | if((end_flags & FLAG_SUFX)==0) | ||||
| { | { | ||||
| // no suffix has been removed | // no suffix has been removed | ||||
| if(dictionary_flags & FLAG_STEM) | |||||
| if(dictionary_flags2 & FLAG_STEM) | |||||
| continue; // this word must have a suffix | 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 | continue; // $only or $onlys, don't match if a prefix has been removed | ||||
| if(end_flags & FLAG_SUFX) | if(end_flags & FLAG_SUFX) | ||||
| { | { | ||||
| // a suffix was removed from the word | // a suffix was removed from the word | ||||
| if(dictionary_flags & FLAG_ONLY) | |||||
| if(dictionary_flags2 & FLAG_ONLY) | |||||
| continue; // no match if any suffix | 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' | // only a 's' suffix allowed, but the suffix wasn't 's' | ||||
| continue; | continue; | ||||
| continue; | 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 | // only use this pronunciation if it's the last word of the clause | ||||
| continue; | 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 | // only use this pronunciation if it's the first word of a clause | ||||
| continue; | continue; | ||||
| fprintf(f_trans,"' [%s] %s\n",ph_decoded,print_dictionary_flags(flags)); | 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); | return(word_end); | ||||
| } | } | ||||
| found = LookupDict2(tr, word, word1, ph_out, flags, end_flags, wtab); | found = LookupDict2(tr, word, word1, ph_out, flags, end_flags, wtab); | ||||
| if(flags[0] & FLAG_MAX3) | if(flags[0] & FLAG_MAX3) | ||||
| { | { | ||||
| if(strcmp(ph_out, tr->phonemes_repeat) == 0) | if(strcmp(ph_out, tr->phonemes_repeat) == 0) |
| } | } | ||||
| // translate | // translate | ||||
| TranslateWord(translator,&word1[1],0, NULL); | |||||
| TranslateWord(translator,&word1[1],0, NULL, NULL); | |||||
| DecodePhonemes(word_phonemes,phonemes); | DecodePhonemes(word_phonemes,phonemes); | ||||
| stress_posn1 = 0; | stress_posn1 = 0; | ||||
| vowel_ix++; | vowel_ix++; | ||||
| } | } | ||||
| TranslateWord(translator,&word2[1],0, NULL); | |||||
| TranslateWord(translator,&word2[1],0, NULL, NULL); | |||||
| DecodePhonemes(word_phonemes,phonemes2); | DecodePhonemes(word_phonemes,phonemes2); | ||||
| vowel_ix = 1; | vowel_ix = 1; | ||||
| } | } | ||||
| // translate | // 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 | DecodePhonemes2(word_phonemes,phonemes); // also need to change some phoneme names | ||||
| *pw1 = 0; | *pw1 = 0; | ||||
| // translate | // translate | ||||
| TranslateWord(translator, &word[2],0, NULL); | |||||
| TranslateWord(translator, &word[2],0, NULL, NULL); | |||||
| DecodePhonemes(word_phonemes,phonemes); | DecodePhonemes(word_phonemes,phonemes); | ||||
| // find the stress position in the translation | // find the stress position in the translation | ||||
| } | } | ||||
| // translate | // translate | ||||
| TranslateWord(translator, &word2[1],0, NULL); | |||||
| TranslateWord(translator, &word2[1],0, NULL, NULL); | |||||
| DecodePhonemes(word_phonemes,phonemes); | DecodePhonemes(word_phonemes,phonemes); | ||||
| // find the stress position in the translation | // find the stress position in the translation |
| // DATA MENU | // DATA MENU | ||||
| data_menu = new wxMenu; | 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, _("Compile &dictionary")); | ||||
| data_menu->Append(MENU_COMPILE_DICT_DEBUG, _("Compile dictionary (debu&g)")); | 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->AppendSeparator(); | ||||
| data_menu->Append(MENU_COMPILE_MBROLA, _("Compile &mbrola phonemes list...")); | data_menu->Append(MENU_COMPILE_MBROLA, _("Compile &mbrola phonemes list...")); | ||||
| data_menu->Append(MENU_COMPILE_INTONATION, _("Compile &intonation data")); | data_menu->Append(MENU_COMPILE_INTONATION, _("Compile &intonation data")); |
| current_alphabet = alphabet; | current_alphabet = alphabet; | ||||
| if((alphabet != NULL) && !(alphabet->flags & AL_DONT_NAME)) | 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 | 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 | // 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 | 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; | |||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| nextflags = 0; | nextflags = 0; | ||||
| if(IsAlpha(c2)) | 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))) | if((tr->prev_dict_flags & FLAG_ALT_TRANS) && ((c2 == 0) || (wtab[0].flags & FLAG_COMMA_AFTER) || iswdigit(c2))) |
| #include "translate.h" | #include "translate.h" | ||||
| #include "wave.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; | int option_device_number = -1; | ||||
| FILE *f_logespeak = NULL; | FILE *f_logespeak = NULL; |
| } | } | ||||
| break; | break; | ||||
| case L('g','a'): // irish | |||||
| { | |||||
| tr->langopts.stress_rule = STRESSPOSN_1L; | |||||
| tr->langopts.numbers = 1; | |||||
| } | |||||
| break; | |||||
| case L('h','i'): // Hindi | case L('h','i'): // Hindi | ||||
| case L('n','e'): // Nepali | case L('n','e'): // Nepali | ||||
| case L('p','a'): // Punjabi | case L('p','a'): // Punjabi |
| 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 | // word1 is terminated by space (0x20) character | ||||
| char *word1; | char *word1; | ||||
| if(dictionary_flags[0] & FLAG_TEXTMODE) | if(dictionary_flags[0] & FLAG_TEXTMODE) | ||||
| { | { | ||||
| if(word_out != NULL) | |||||
| strcpy(word_out, word1); | |||||
| first_char = word1[0]; | first_char = word1[0]; | ||||
| stress_bits = dictionary_flags[0] & 0x7f; | stress_bits = dictionary_flags[0] & 0x7f; | ||||
| found = LookupDictList(tr, &word1, phonemes, dictionary_flags2, 0, wtab); // the text replacement | found = LookupDictList(tr, &word1, phonemes, dictionary_flags2, 0, wtab); // the text replacement | ||||
| int word_flags; | int word_flags; | ||||
| int word_copy_len; | int word_copy_len; | ||||
| char word_copy[N_WORD_BYTES+1]; | char word_copy[N_WORD_BYTES+1]; | ||||
| char word_replaced[N_WORD_BYTES+1]; | |||||
| char old_dictionary_name[40]; | char old_dictionary_name[40]; | ||||
| if((f_logespeak != NULL) && (logging_type & 8)) | if((f_logespeak != NULL) && (logging_type & 8)) | ||||
| while(((c2 = word_copy[ix] = word[ix]) != ' ') && (c2 != 0) && (ix < N_WORD_BYTES)) ix++; | while(((c2 = word_copy[ix] = word[ix]) != ' ') && (c2 != 0) && (ix < N_WORD_BYTES)) ix++; | ||||
| word_copy_len = 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) | if(flags & FLAG_SPELLWORD) | ||||
| { | { | ||||
| { | { | ||||
| strcpy(ph_buf,word_phonemes); | 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)) | if((flags2[0] & FLAG_WAS_UNPRONOUNCABLE) || (word_phonemes[0] == phonSWITCH)) | ||||
| ok = 0; | ok = 0; | ||||
| if(ok) | if(ok) | ||||
| { | { | ||||
| *p2 = '-'; // replace next space by hyphen | *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))) | if((sylimit > 0) && (CountSyllables(p) > (sylimit & 0x1f))) | ||||
| { | { | ||||
| // revert to separate words | // revert to separate words | ||||
| *p2 = ' '; | *p2 = ' '; | ||||
| flags = TranslateWord(translator, word, next_pause, wtab); | |||||
| flags = TranslateWord(translator, word, next_pause, wtab, NULL); | |||||
| } | } | ||||
| else | else | ||||
| { | { | ||||
| { | { | ||||
| // re-translate the word using the new translator | // re-translate the word using the new translator | ||||
| wtab[0].flags |= FLAG_TRANSLATOR2; | 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); | // strcpy((char *)p,translator2->word_phonemes); | ||||
| if(p[0] == phonSWITCH) | if(p[0] == phonSWITCH) | ||||
| { | { |
| #define FLAG_SKIPWORDS 0x80 | #define FLAG_SKIPWORDS 0x80 | ||||
| #define FLAG_PREPAUSE 0x100 | #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_ALLOW_DOT 0x01000000 // ignore '.' after word (abbreviation) | ||||
| #define FLAG_NEEDS_DOT 0x02000000 // only if the word is followed by a dot | #define FLAG_NEEDS_DOT 0x02000000 // only if the word is followed by a dot | ||||
| #define FLAG_ACCENT 0x800 // character name is base-character name + accent name | #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_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_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_ALLCAPS 0x2a | ||||
| #define BITNUM_FLAG_HYPHENATED 0x2c | #define BITNUM_FLAG_HYPHENATED 0x2c | ||||
| #define BITNUM_FLAG_ONLY 0x2e | |||||
| #define BITNUM_FLAG_ONLY_S 0x2f | |||||
| // wordflags, flags in source word | // wordflags, flags in source word | ||||
| int Unpronouncable(Translator *tr, char *word, int posn); | int Unpronouncable(Translator *tr, char *word, int posn); | ||||
| void SetWordStress(Translator *tr, char *output, unsigned int *dictionary_flags, int tonic, int prev_stress); | 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 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); | 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); | int ReadClause(Translator *tr, FILE *f_in, char *buf, short *charix, int *charix_top, int n_buf, int *tone_type, char *voice_change); | ||||
| break; | break; | ||||
| case V_DICTRULES: // conditional dictionary rules and list entries | case V_DICTRULES: // conditional dictionary rules and list entries | ||||
| case V_NUMBERS: | |||||
| // expect a list of numbers | |||||
| while(*p != 0) | while(*p != 0) | ||||
| { | { | ||||
| while(isspace(*p)) p++; | while(isspace(*p)) p++; | ||||
| n = -1; | n = -1; | ||||
| if(((n = atoi(p)) > 0) && (n < 32)) | |||||
| if((n = atoi(p)) > 0) | |||||
| { | { | ||||
| p++; | 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++; | while(isalnum(*p)) p++; | ||||
| } | } | ||||
| new_translator->charset_a0 = charsets[value]; | new_translator->charset_a0 = charsets[value]; | ||||
| break; | break; | ||||
| case V_NUMBERS: | |||||
| sscanf(p,"%d %d",&langopts->numbers,&langopts->numbers2); | |||||
| break; | |||||
| case V_OPTION: | case V_OPTION: | ||||
| value2 = 0; | value2 = 0; | ||||
| if((sscanf(p,"%s %d %d",option_name,&value,&value2) >= 2) && ((ix = LookupMnem(options_tab, option_name)) >= 0)) | if((sscanf(p,"%s %d %d",option_name,&value,&value2) >= 2) && ((ix = LookupMnem(options_tab, option_name)) >= 0)) |
| #else | #else | ||||
| // notdef USE_SADA | // notdef USE_SADA | ||||
| void wave_init() {} | |||||
| init wave_init() {} | |||||
| void* wave_open(const char* the_api) {return (void *)1;} | void* wave_open(const char* the_api) {return (void *)1;} | ||||
| size_t wave_write(void* theHandler, char* theMono16BitsWaveBuffer, size_t theSize) {return theSize;} | size_t wave_write(void* theHandler, char* theMono16BitsWaveBuffer, size_t theSize) {return theSize;} | ||||
| int wave_close(void* theHandler) {return 0;} | int wave_close(void* theHandler) {return 0;} |