*_list Allow Hyphens in multi-word entries (aa-bb). This will only match a pair of words which are hyphenated. *_list Fix abbreviations of the form a.b.cde Recognise Armenian punctuation, allow and process Armenian punctuation inside words (affects intonation type, and marks the focus word of the clause). Mbrola: add a delay so that SAPI5 events better follow the speaking. Mbrola: generate phoneme events, and hence SAPI5 viseme events. git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@200 d46cf337-b52f-0410-862d-fd96e6ae7743master
| fu) ch (s k | fu) ch (s k | ||||
| äu) ch C | äu) ch C | ||||
| eu) ch C | eu) ch C | ||||
| C) chen (_$4 C@n | |||||
| C) chen (_S4 C@n | |||||
| ä) chen (_ C@n | ä) chen (_ C@n | ||||
| e) chen (_ C@n | e) chen (_ C@n | ||||
| ü) chen (_ C@n | ü) chen (_ C@n | ||||
| k k | k k | ||||
| k) k | k) k | ||||
| // @) keit (_$4 kaIt | |||||
| // @) keiten (_$6 kaIt@n | |||||
| // @) keit (_S4 kaIt | |||||
| // @) keiten (_S6 kaIt@n | |||||
| kolleg k%Ole:g | kolleg k%Ole:g | ||||
| _) komme (C@ k%OmE | _) komme (C@ k%OmE | ||||
| _) leit (@P4 l'aIt | _) leit (@P4 l'aIt | ||||
| _) lern (@@P4 l'E*n | _) lern (@@P4 l'E*n | ||||
| _) lexi (@ lEksi: | _) lexi (@ lEksi: | ||||
| @) lich (_$4 lIC | |||||
| @) liche (_$5 lIC@ | |||||
| @) lichem (_$6 lIC@m | |||||
| @) lichen (_$6 lIC@n | |||||
| @) licher (_$6 lIC3 | |||||
| @) liches (_$6 lIC@s | |||||
| @) lichere (_$7 lIC@*@ | |||||
| @) licherem (_$8 lIC@*@m | |||||
| @) licheren (_$8 lIC@*@n | |||||
| @) licherer (_$8 lIC@*@3 | |||||
| @) licheres (_$8 lIC@*@s | |||||
| @) lichste (_$7 lICst@ | |||||
| @) lichstem (_$8 lICst@m | |||||
| @) lichsten (_$8 lICst@n | |||||
| @) lichster (_$8 lICst@r | |||||
| @) lichstes (_$8 lICst@s | |||||
| @) lichkeit (_$8 lICk%aIt | |||||
| @) lichung (_$7 lIC%UN | |||||
| @) lich (_S4 lIC | |||||
| @) liche (_S5 lIC@ | |||||
| @) lichem (_S6 lIC@m | |||||
| @) lichen (_S6 lIC@n | |||||
| @) licher (_S6 lIC3 | |||||
| @) liches (_S6 lIC@s | |||||
| @) lichere (_S7 lIC@*@ | |||||
| @) licherem (_S8 lIC@*@m | |||||
| @) licheren (_S8 lIC@*@n | |||||
| @) licherer (_S8 lIC@*@3 | |||||
| @) licheres (_S8 lIC@*@s | |||||
| @) lichste (_S7 lICst@ | |||||
| @) lichstem (_S8 lICst@m | |||||
| @) lichsten (_S8 lICst@n | |||||
| @) lichster (_S8 lICst@r | |||||
| @) lichstes (_S8 lICst@s | |||||
| @) lichkeit (_S8 lICk%aIt | |||||
| @) lichung (_S7 lIC%UN | |||||
| @) lo (gisch l'o: | @) lo (gisch l'o: | ||||
| .group m | .group m | ||||
| _be) sp Sp | _be) sp Sp | ||||
| _ge) sp Sp | _ge) sp Sp | ||||
| _ver) sp Sp | _ver) sp Sp | ||||
| &C) st (_$2 st | |||||
| &C) st (_S2 st | |||||
| &C) ste (_S3 st@ | &C) ste (_S3 st@ | ||||
| &C) stem (_S4 st@m | &C) stem (_S4 st@m | ||||
| &C) sten (_S4 st@n | &C) sten (_S4 st@n |
| Dictionary ne_dict | Dictionary ne_dict | ||||
| @ @- @2 @3 a a: aI aU | |||||
| a~ e E e: E: E~ e~ i | |||||
| I i: i~ l- o O o: O: | |||||
| o~ O~ r- U u u: u~ V | |||||
| @ @/ @2 @3 a aI aU a~ | |||||
| e E eI eU E~ e~ i I | |||||
| i~ l- o O o: oI oU o~ | |||||
| O~ r- u uI u~ V VI VU | |||||
| V~ | |||||
| - : b c ch d d. f | - : b c ch d d. f | ||||
| g h H j J k kh l | g h H j J k kh l | ||||
| iU o O Oa oI oU u uI | iU o O Oa oI oU u uI | ||||
| y Y yI yU | y Y yI yU | ||||
| * *; b b; c C d d; | |||||
| dZ f f; g h j k l | |||||
| l; m m; n N n; p p; | |||||
| r s S S; t t; tS ts | |||||
| ts; v v; w w2 x z Z | |||||
| z; Z; | |||||
| * *; - b b; c C d | |||||
| d; dZ f f; g h j k | |||||
| l l; m m; n N n; p | |||||
| p; r s S S; t t; tS | |||||
| ts ts; v v; w w2 x z | |||||
| Z z; Z; | |||||
| Dictionary ru_dict | Dictionary ru_dict | ||||
| (u) ; C f h j k kh | (u) ; C f h j k kh | ||||
| l m n N p ph r s | l m n N p ph r s | ||||
| s. S; t th ts ts. ts. tS; | s. S; t th ts ts. ts. tS; | ||||
| tS; tsh v w x z. | |||||
| tS; tsh v w x X z. | |||||
| Dictionary zhy_dict | Dictionary zhy_dict | ||||
| i: ie iu o o: oi u u: | i: ie iu o o: oi u u: | ||||
| ui uo | ui uo | ||||
| b c d dZ f g h j | |||||
| J k l l^ m n N n^ | |||||
| p R R2 s S t tS ts | |||||
| v z Z | |||||
| : b c d dZ f g h | |||||
| j J k l l^ m n n^ | |||||
| p r R R2 s S t tS | |||||
| ts v x z Z | |||||
| Dictionary hy_dict | |||||
| @ a aI e eI i i@ o | |||||
| u W y | |||||
| ** b d dZ f g h j | |||||
| k l m n p R3 s S | |||||
| t tS ts v x z Z |
| Pyrenees pIr@n'i:z | Pyrenees pIr@n'i:z | ||||
| Qatar katA@ | Qatar katA@ | ||||
| Quebec kwI2bEk | Quebec kwI2bEk | ||||
| Raleigh rA:lI | |||||
| Reno ri:noU | Reno ri:noU | ||||
| Sahel sA:h'El | Sahel sA:h'El | ||||
| Saigon saIg'0n | Saigon saIg'0n |
| ae i: | ae i: | ||||
| ae (val 'i: | ae (val 'i: | ||||
| aea i@ | aea i@ | ||||
| @) aed (_$2 d | |||||
| @) aed (_S2 d | |||||
| _) ae (on i: | _) ae (on i: | ||||
| _) aer (o e@ | _) aer (o e@ | ||||
| ae (l eI | ae (l eI | ||||
| ab (ular 'ab | ab (ular 'ab | ||||
| b) ab (y eIb | b) ab (y eIb | ||||
| b) ab (yl ab | b) ab (yl ab | ||||
| &) able (_$4iev @b@L // suffix | |||||
| &) able (_S4iev @b@L // suffix | |||||
| &c) able (_ @b@L | &c) able (_ @b@L | ||||
| @ct) able (_ =@b@L | @ct) able (_ =@b@L | ||||
| &) ability ($7iev @b'IlI2t%I // suffix | |||||
| &) abilities ($9iev @b'IlI2t%Iz // suffix | |||||
| &) ably (_$4iefv @bl%I | |||||
| &c) ably (_$4fv @bl%I | |||||
| &) ability (S7iev @b'IlI2t%I // suffix | |||||
| &) abilities (S9iev @b'IlI2t%Iz // suffix | |||||
| &) ably (_S4iefv @bl%I | |||||
| &c) ably (_S4fv @bl%I | |||||
| .group ac | .group ac | ||||
| _) ac (@ a2k | _) ac (@ a2k | ||||
| alz alt|s | alz alt|s | ||||
| &) al (_ @L | &) al (_ @L | ||||
| ?8 &) al (_ a2l | ?8 &) al (_ a2l | ||||
| @) ally (_$2 l%I | |||||
| @@ic) ally (_$4 l%I | |||||
| @) ally (_S2 l%I | |||||
| @@ic) ally (_S4 l%I | |||||
| inst) al (_ O:l | inst) al (_ O:l | ||||
| &) al (d @L | &) al (d @L | ||||
| b) al (d O:l | b) al (d O:l | ||||
| _) anom a2n0m | _) anom a2n0m | ||||
| &) an (_ @n | &) an (_ @n | ||||
| ?8 &) an (_ a2n | ?8 &) an (_ a2n | ||||
| @u) an (_$1 n | |||||
| @i) an (_$1 n | |||||
| @u) an (_S1 n | |||||
| @i) an (_S1 n | |||||
| Cc) an (_ an | Cc) an (_ an | ||||
| l) an (_ an | l) an (_ an | ||||
| ll) an (_ @n | ll) an (_ @n | ||||
| d) ang (er eIndZ | d) ang (er eIndZ | ||||
| r) ang (e eIndZ | r) ang (e eIndZ | ||||
| r) anging eIndZIN | r) anging eIndZIN | ||||
| r) anged ($1 d | |||||
| r) anged (S1 d | |||||
| perm) an @n | perm) an @n | ||||
| ang (er aNg | ang (er aNg | ||||
| m) anoeu (v @nu: | m) anoeu (v @nu: | ||||
| su) bt (l t | su) bt (l t | ||||
| de) bt t | de) bt t | ||||
| _) bug (le bju:g | _) bug (le bju:g | ||||
| @) bury (_$4i br%I | |||||
| ?3 @) bury (_$4i bEr%I | |||||
| @) bury (_S4i br%I | |||||
| ?3 @) bury (_S4i bEr%I | |||||
| _) by baI | _) by baI | ||||
| d d | d d | ||||
| d (d | d (d | ||||
| _) d' (AP2 d | _) d' (AP2 d | ||||
| @@e) d (_$1 d // suffix | |||||
| @@e) d (_S1 d // suffix | |||||
| ddh d | ddh d | ||||
| dj dZ | dj dZ | ||||
| dg (_ dZ | dg (_ dZ | ||||
| e (quiv %I | e (quiv %I | ||||
| e'er e@ | e'er e@ | ||||
| h) e (sion 'i: | h) e (sion 'i: | ||||
| &f) e's (_$2i s | |||||
| &k) e's (_$2i s | |||||
| &p) e's (_$2i s | |||||
| &t) e's (_$2i s | |||||
| &c) e's (_$2i Iz | |||||
| &g) e's (_$2i Iz | |||||
| &ch) e's (_$2i Iz | |||||
| &ph) e's (_$2i Iz | |||||
| &s) e's (_$2i Iz | |||||
| &sh) e's (_$2i Iz | |||||
| &th) e's (_$2i z | |||||
| &r) e's (_$2i z | |||||
| &x) e's (_$2i Iz | |||||
| &C) e's (_$2i z | |||||
| &f) e's (_S2i s | |||||
| &k) e's (_S2i s | |||||
| &p) e's (_S2i s | |||||
| &t) e's (_S2i s | |||||
| &c) e's (_S2i Iz | |||||
| &g) e's (_S2i Iz | |||||
| &ch) e's (_S2i Iz | |||||
| &ph) e's (_S2i Iz | |||||
| &s) e's (_S2i Iz | |||||
| &sh) e's (_S2i Iz | |||||
| &th) e's (_S2i z | |||||
| &r) e's (_S2i z | |||||
| &x) e's (_S2i Iz | |||||
| &C) e's (_S2i z | |||||
| &Cr) e's (_ @z | &Cr) e's (_ @z | ||||
| @) e (tio i: | @) e (tio i: | ||||
| discr) e (tion E | discr) e (tion E | ||||
| _s) ew u: | _s) ew u: | ||||
| _s) ew (_ oU | _s) ew (_ oU | ||||
| e (work | e (work | ||||
| eway (_$3 weI | |||||
| eway (_S3 weI | |||||
| @) ez (_ =Ez | @) ez (_ =Ez | ||||
| .group ea | .group ea | ||||
| C) ea (ven E | C) ea (ven E | ||||
| .group ed | .group ed | ||||
| @@) ed (_$2dvei d | |||||
| @C) ed (_$2dvei d | |||||
| @c) ed (_$2vdei t | |||||
| @d) ed (_$2dvei I2d | |||||
| ?8 @d) ed (_$2dvei Ed | |||||
| &ch) ed (_$2vei t | |||||
| &sh) ed (_$2vei t | |||||
| @@) ed (_S2dvei d | |||||
| @C) ed (_S2dvei d | |||||
| @c) ed (_S2vdei t | |||||
| @d) ed (_S2dvei I2d | |||||
| ?8 @d) ed (_S2dvei Ed | |||||
| &ch) ed (_S2vei t | |||||
| &sh) ed (_S2vei t | |||||
| @Csh) ed (_ Ed | @Csh) ed (_ Ed | ||||
| @f) ed (_$2vdei t | |||||
| @g) ed (_$1vi d | |||||
| @k) ed (_$2vdei t | |||||
| &en) ed (_$2v d | |||||
| cl) ed (_$1v d | |||||
| @p) ed (_$2vdei t | |||||
| @@er) ed (_$2v d | |||||
| @ss) ed (_$2dv t | |||||
| @t) ed (_$2vdei I2d | |||||
| ?8 @t) ed (_$2vdei Ed | |||||
| @fr) ed (_$2v Id | |||||
| @f) ed (_S2vdei t | |||||
| @g) ed (_S1vi d | |||||
| @k) ed (_S2vdei t | |||||
| &en) ed (_S2v d | |||||
| cl) ed (_S1v d | |||||
| @p) ed (_S2vdei t | |||||
| @@er) ed (_S2v d | |||||
| @ss) ed (_S2dv t | |||||
| @t) ed (_S2vdei I2d | |||||
| ?8 @t) ed (_S2vdei Ed | |||||
| @fr) ed (_S2v Id | |||||
| yw) ed (_ Ed | yw) ed (_ Ed | ||||
| @x) ed (_$2vi t | |||||
| y) ed (_$2v d | |||||
| @x) ed (_S2vi t | |||||
| y) ed (_S2v d | |||||
| edly (_ Idl%I | edly (_ Idl%I | ||||
| c) ed (e_ 'i:d | c) ed (e_ 'i:d | ||||
| p) ed (e_ i:d | p) ed (e_ i:d | ||||
| .group er | .group er | ||||
| &) er 3 | &) er 3 | ||||
| @@@) er (_$2de 3 // suffix | |||||
| %C) er (_$3 3 | |||||
| ll) er (_$2 3 | |||||
| @@@) er (_S2de 3 // suffix | |||||
| %C) er (_S3 3 | |||||
| ll) er (_S2 3 | |||||
| &) er (_ 3 | &) er (_ 3 | ||||
| ?8 &) er (_ a2 // (temporary because [3] -> [a2] is only for word-final | ?8 &) er (_ a2 // (temporary because [3] -> [a2] is only for word-final | ||||
| %C) ers (_$4 3z | |||||
| ?8 %C) ers (_$4 a2z | |||||
| ss) er (_$2 3 | |||||
| %C) ers (_S4 3z | |||||
| ?8 %C) ers (_S4 a2z | |||||
| ss) er (_S2 3 | |||||
| all) er (_ 3 | all) er (_ 3 | ||||
| mb) er (_ 3 | mb) er (_ 3 | ||||
| lin) er (_S1 3 | lin) er (_S1 3 | ||||
| err (_ 3: | err (_ 3: | ||||
| .group es | .group es | ||||
| &) es (_$1i z | |||||
| &) es (_S1i z | |||||
| ese (_ i:z | ese (_ i:z | ||||
| @n) ese (_ 'i:z | @n) ese (_ 'i:z | ||||
| &f) es (_$1 s | |||||
| &k) es (_$1 s | |||||
| &p) es (_$1 s | |||||
| &t) es (_$1 s | |||||
| &c) es (_$1 I2z | |||||
| &g) es (_$1 I2z | |||||
| &ch) es (_$1 I2z | |||||
| &ph) es (_$1 I2z | |||||
| neri) es (_$2i z | |||||
| &s) es (_$1 I2z | |||||
| &us) es (_$2e I2z | |||||
| &rus) es (_$2 I2z | |||||
| &tus) es (_$2 I2z | |||||
| &ss) es (_$2 I2z | |||||
| sh) es (_$2 I2z | |||||
| &th) es (_$1 z | |||||
| &r) es (_$1 z | |||||
| &qu) es (_$1 s | |||||
| &x) es (_$2 I2z | |||||
| &z) es (_$2 I2z | |||||
| &C) es (_$1i z | |||||
| &f) es (_S1 s | |||||
| &k) es (_S1 s | |||||
| &p) es (_S1 s | |||||
| &t) es (_S1 s | |||||
| &c) es (_S1 I2z | |||||
| &g) es (_S1 I2z | |||||
| &ch) es (_S1 I2z | |||||
| &ph) es (_S1 I2z | |||||
| neri) es (_S2i z | |||||
| &s) es (_S1 I2z | |||||
| &us) es (_S2e I2z | |||||
| &rus) es (_S2 I2z | |||||
| &tus) es (_S2 I2z | |||||
| &ss) es (_S2 I2z | |||||
| sh) es (_S2 I2z | |||||
| &th) es (_S1 z | |||||
| &r) es (_S1 z | |||||
| &qu) es (_S1 s | |||||
| &x) es (_S2 I2z | |||||
| &z) es (_S2 I2z | |||||
| &C) es (_S1i z | |||||
| es (carp I2s | es (carp I2s | ||||
| es (cape %Es | es (cape %Es | ||||
| es (capi %Es | es (capi %Es | ||||
| _) eth (a ET | _) eth (a ET | ||||
| eth (ic ET | eth (ic ET | ||||
| eth (y i:T | eth (y i:T | ||||
| @C) eth (_$3e @T | |||||
| @C) eth (_S3e @T | |||||
| etta (_ 'Et@ | etta (_ 'Et@ | ||||
| ette (_ 'Et | ette (_ 'Et | ||||
| pal) ett (e @t | pal) ett (e @t | ||||
| A) han (_ h'an // places | A) han (_ h'an // places | ||||
| ha (st heI | ha (st heI | ||||
| _) he' %hi: | _) he' %hi: | ||||
| @) head (_$4 hEd | |||||
| @) head (_S4 hEd | |||||
| heir e@ | heir e@ | ||||
| _) hetero hEtroU | _) hetero hEtroU | ||||
| K) hl L | K) hl L | ||||
| &) hold (_$4 hoUld | |||||
| &) hold (_S4 hoUld | |||||
| holme hoUm | holme hoUm | ||||
| _) homeo hoUmi:oU | _) homeo hoUmi:oU | ||||
| _) homo (s h,oUmoU | _) homo (s h,oUmoU | ||||
| _) horri h0rI | _) horri h0rI | ||||
| _) horse hO@s | _) horse hO@s | ||||
| _) house (@ haUs | _) house (@ haUs | ||||
| house (_$5 haUs | |||||
| houses (_$6 haUzI2z | |||||
| house (_S5 haUs | |||||
| houses (_S6 haUzI2z | |||||
| .group i | .group i | ||||
| i I | i I | ||||
| _) i (o aI | _) i (o aI | ||||
| &) ial (_ =I2@l | &) ial (_ =I2@l | ||||
| @) ibab aIb@b | @) ibab aIb@b | ||||
| @) ible (_$4ev @b@L | |||||
| @) ibly (_$4efv @bl%I | |||||
| @) ible (_S4ev @b@L | |||||
| @) ibly (_S4efv @bl%I | |||||
| i (bilit I | i (bilit I | ||||
| l) i (bel aI | l) i (bel aI | ||||
| b) i (ble_ aI | b) i (ble_ aI | ||||
| is (o_ aIz | is (o_ aIz | ||||
| ise (_ aIz | ise (_ aIz | ||||
| iser (_ aIz3 | iser (_ aIz3 | ||||
| @) ism (_$3de Iz@m | |||||
| an) ism (_$3d Iz@m | |||||
| @iB) ism (_$3d Iz@m | |||||
| @) ism (_S3de Iz@m | |||||
| an) ism (_S3d Iz@m | |||||
| @iB) ism (_S3d Iz@m | |||||
| is (er+_ aIz | is (er+_ aIz | ||||
| iz (er_ aIz | iz (er_ aIz | ||||
| prAm) is Is | prAm) is Is | ||||
| .group ie | .group ie | ||||
| ie I | ie I | ||||
| ie (_ I | ie (_ I | ||||
| ied (_$2i d // suffix | |||||
| ied (_S2i d // suffix | |||||
| ie (c aI | ie (c aI | ||||
| ie (ce i: | ie (ce i: | ||||
| ie (_ aI | ie (_ aI | ||||
| ie (v i: | ie (v i: | ||||
| iew (_ ju: | iew (_ ju: | ||||
| iew ju: | iew ju: | ||||
| ies (_$2i z | |||||
| ies (_S2i z | |||||
| spec) ies (_ i:z | spec) ies (_ i:z | ||||
| ser) ies (_ i:z | ser) ies (_ i:z | ||||
| _ar) ies (_ i:z | _ar) ies (_ i:z | ||||
| ?3 s) im (ult aIm | ?3 s) im (ult aIm | ||||
| .group in | .group in | ||||
| @) ing (_+$3dve I2N | |||||
| @) ings (_$4dve I2Nz | |||||
| @) ingly (_$5dve I2Ng-lI | |||||
| @) ingment (_$7dve I2Ng-m@nt | |||||
| logu) ing (_$4v I2N | |||||
| x) ing (_+$3v I2N | |||||
| @@om) ing (_$3dv I2N | |||||
| en) ing (_$3v I2N | |||||
| en) ings (_$4v I2Nz | |||||
| en) ingly (_$5vf I2Ng-lI | |||||
| er) ing (_$3v I2N | |||||
| er) ings (_$4v I2Nz | |||||
| er) ingly (_$5vf I2Ng-lI | |||||
| er) ingment (_$7v I2Ng-m@nt | |||||
| @) ing (_+S3dve I2N | |||||
| @) ings (_S4dve I2Nz | |||||
| @) ingly (_S5dve I2Ng-lI | |||||
| @) ingment (_S7dve I2Ng-m@nt | |||||
| logu) ing (_S4v I2N | |||||
| x) ing (_+S3v I2N | |||||
| @@om) ing (_S3dv I2N | |||||
| en) ing (_S3v I2N | |||||
| en) ings (_S4v I2Nz | |||||
| en) ingly (_S5vf I2Ng-lI | |||||
| er) ing (_S3v I2N | |||||
| er) ings (_S4v I2Nz | |||||
| er) ingly (_S5vf I2Ng-lI | |||||
| er) ingment (_S7v I2Ng-m@nt | |||||
| Br) ing (_ IN | Br) ing (_ IN | ||||
| ?7 &) in (_ @n | ?7 &) in (_ @n | ||||
| _) llan L%an | _) llan L%an | ||||
| l (E l | l (E l | ||||
| lle (_ l | lle (_ l | ||||
| @@o) lled (_$3v d | |||||
| @@) lled (_$3v d | |||||
| @@o) lled (_S3v d | |||||
| @@) lled (_S3v d | |||||
| B) l (_ @L | B) l (_ @L | ||||
| w) l (_ l | w) l (_ l | ||||
| r) l (_ l | r) l (_ l | ||||
| ?3 _) lo (gK lO | ?3 _) lo (gK lO | ||||
| @) lo (gous =l@ | @) lo (gous =l@ | ||||
| lu (na lu: | lu (na lu: | ||||
| @) ly (_$2i l%I | |||||
| @l) ly (_$2 I2 | |||||
| @) ly (_S2i l%I | |||||
| @l) ly (_S2 I2 | |||||
| f) ly (_ laI | f) ly (_ laI | ||||
| ief) ly (_$2 l%I | |||||
| ff) ly (_$2 l%I | |||||
| of) ly (_$2 l%I | |||||
| ief) ly (_S2 l%I | |||||
| ff) ly (_S2 l%I | |||||
| of) ly (_S2 l%I | |||||
| multip) ly laI | multip) ly laI | ||||
| &p) ly (_$2 l%I | |||||
| &p) ly (_S2 l%I | |||||
| p) ly (_ laI | p) ly (_ laI | ||||
| _) ly (d lI | _) ly (d lI | ||||
| @t) le (B@ @L | @t) le (B@ @L | ||||
| tt) le (@ @-l | tt) le (@ @-l | ||||
| &C) le (ss l@ | &C) le (ss l@ | ||||
| @) less (_$4i l@s | |||||
| @) lessly (_$6i l@sl%I | |||||
| @) lessness (_$8i l@sn@s | |||||
| ?8 @) less (_$4i lEs | |||||
| ?8 @) lessly (_$6i lEsl%I | |||||
| ?8 @) lessness (_$8i lEsnEs | |||||
| @) less (_S4i l@s | |||||
| @) lessly (_S6i l@sl%I | |||||
| @) lessness (_S8i l@sn@s | |||||
| ?8 @) less (_S4i lEs | |||||
| ?8 @) lessly (_S6i lEsl%I | |||||
| ?8 @) lessness (_S8i lEsnEs | |||||
| .group m | .group m | ||||
| m m | m m | ||||
| _) mn n | _) mn n | ||||
| &B) me (_ m%I | &B) me (_ m%I | ||||
| @) men (_ mEn | @) men (_ mEn | ||||
| &) ment (_$4 m@nt | |||||
| &) ments (_$5 m@nt|s | |||||
| ?8 &) ment (_$4 mEnt | |||||
| ?8 &) ments (_$5 mEnt|s | |||||
| &) ment (_S4 m@nt | |||||
| &) ments (_S5 m@nt|s | |||||
| ?8 &) ment (_S4 mEnt | |||||
| ?8 &) ments (_S5 mEnt|s | |||||
| mEnt (_ m@nt | mEnt (_ m@nt | ||||
| tor) me (nt m'E | tor) me (nt m'E | ||||
| C) mented m'EntId | C) mented m'EntId | ||||
| _) mono m0noU | _) mono m0noU | ||||
| mon (opol m@n | mon (opol m@n | ||||
| mon (ox m0n | mon (ox m0n | ||||
| @) most(_$4 moUst | |||||
| @) most(_S4 moUst | |||||
| &) mouth (_ m@T | &) mouth (_ m@T | ||||
| _) multi mVltI | _) multi mVltI | ||||
| .group n | .group n | ||||
| n n | n n | ||||
| n) n | n) n | ||||
| &ia) n (_$1 n | |||||
| &ia) ns (_$2 nz | |||||
| &ia) n (_S1 n | |||||
| &ia) ns (_S2 nz | |||||
| @) name (_ neIm | @) name (_ neIm | ||||
| _) nano (P4 n,anoU | _) nano (P4 n,anoU | ||||
| necessit n@sEsIt | necessit n@sEsIt | ||||
| &) ness (_$4i n@s | |||||
| ?8 &) ness (_$4i nEs | |||||
| &) ness (_S4i n@s | |||||
| ?8 &) ness (_S4i nEs | |||||
| @) n (cC N | @) n (cC N | ||||
| @) n (ch n | @) n (ch n | ||||
| n (c_ N | n (c_ N | ||||
| _) on (io Vn | _) on (io Vn | ||||
| ec) on (d @n | ec) on (d @n | ||||
| m) on (d_ @n | m) on (d_ @n | ||||
| &C) oned (_$2v d | |||||
| &C) oning (_$3v I2N | |||||
| &C) oned (_S2v d | |||||
| &C) oning (_S3v I2N | |||||
| _) one w0n | _) one w0n | ||||
| _) once (_ w0ns | _) once (_ w0ns | ||||
| ?6 _) one wVn | ?6 _) one wVn | ||||
| p) or (t o@ | p) or (t o@ | ||||
| or (A o@r | or (A o@r | ||||
| &) or (ate 3r | &) or (ate 3r | ||||
| @@) or (_$2d 3 // suffix | |||||
| @@) or (_S2d 3 // suffix | |||||
| &) or (_ 3 | &) or (_ 3 | ||||
| ?8 @@) or (_$2d o@ // suffix | |||||
| ?8 @@) or (_S2d o@ // suffix | |||||
| ?8 &) or (_ o@ | ?8 &) or (_ o@ | ||||
| _c) or (@ O@ | _c) or (@ O@ | ||||
| c) or (k O@ | c) or (k O@ | ||||
| p (hole p | p (hole p | ||||
| sym) pa p@ | sym) pa p@ | ||||
| _) pico pi:koU | _) pico pi:koU | ||||
| piece (_$5 pi:s | |||||
| piece (_S5 pi:s | |||||
| por (tray p%o@ | por (tray p%o@ | ||||
| // _) post (@@P4 p,oUst // prefix | // _) post (@@P4 p,oUst // prefix | ||||
| pneu nju: | pneu nju: | ||||
| @) s (hill_ s | @) s (hill_ s | ||||
| @) s (hous s | @) s (hous s | ||||
| _) she' %Si: | _) she' %Si: | ||||
| &) ship (_$4 SIp | |||||
| &) ships (_$5 SIps | |||||
| &) shire (_$5 S@ | |||||
| ?3 &) shire (_$5 Si@ | |||||
| &) ship (_S4 SIp | |||||
| &) ships (_S5 SIps | |||||
| &) shire (_S5 S@ | |||||
| ?3 &) shire (_S5 Si@ | |||||
| sia (_ =Zi@ | sia (_ =Zi@ | ||||
| ?3 sia (_ =Z@ | ?3 sia (_ =Z@ | ||||
| ssia (_ S@ | ssia (_ S@ | ||||
| a) ssure S'U@ | a) ssure S'U@ | ||||
| ea) s (y z | ea) s (y z | ||||
| s (_ z | s (_ z | ||||
| @) s (_$1 z | |||||
| @) s (_S1 z | |||||
| _BA) s (_ s | _BA) s (_ s | ||||
| &se) s (_$1 I2z | |||||
| &sse) s (_$2 I2z | |||||
| &se) s (_S1 I2z | |||||
| &sse) s (_S2 I2z | |||||
| ss (_ s | ss (_ s | ||||
| sse (_ s | sse (_ s | ||||
| c) s (_ s | c) s (_ s | ||||
| @ce) s (_$1 Iz | |||||
| @ce) s (_S1 Iz | |||||
| f) s (_ s | f) s (_ s | ||||
| ng) s (_$1 z | |||||
| ng) s (_S1 z | |||||
| k) s (_ s | k) s (_ s | ||||
| n) s (_$1 z | |||||
| n) s (_S1 z | |||||
| p) s (_ s | p) s (_ s | ||||
| th) s (_ s | th) s (_ s | ||||
| t) s (_$1 s | |||||
| te) s (_$1 s | |||||
| &c) s (_$1 s | |||||
| &f) s (_$1 s | |||||
| &k) s (_$1 s | |||||
| &p) s (_$1 s | |||||
| &pe) s (_$1 s | |||||
| &th) s (_$1 s | |||||
| &t) s (_$1 s | |||||
| t) s (_S1 s | |||||
| te) s (_S1 s | |||||
| &c) s (_S1 s | |||||
| &f) s (_S1 s | |||||
| &k) s (_S1 s | |||||
| &p) s (_S1 s | |||||
| &pe) s (_S1 s | |||||
| &th) s (_S1 s | |||||
| &t) s (_S1 s | |||||
| _ha) s (_ z | _ha) s (_ z | ||||
| .group su | .group su | ||||
| s) t (l | s) t (l | ||||
| to (morr t@ | to (morr t@ | ||||
| _) to (nn tV | _) to (nn tV | ||||
| @) town (_$4 taUn | |||||
| @) town (_S4 taUn | |||||
| _) tri (A traI | _) tri (A traI | ||||
| _) trie traI | _) trie traI | ||||
| _) tri (CA traI | _) tri (CA traI | ||||
| wh (ol h | wh (ol h | ||||
| m) w (ich_ | m) w (ich_ | ||||
| B) wing (_ wIN | B) wing (_ wIN | ||||
| @) wise (_$4 waIz | |||||
| @) wise (_S4 waIz | |||||
| e) with (_ w'ID | e) with (_ w'ID | ||||
| with (C w%ID | with (C w%ID | ||||
| with (A w%ID | with (A w%ID | ||||
| E (BCe_ @ | E (BCe_ @ | ||||
| E (Cia 'i: | E (Cia 'i: | ||||
| Ea (_ =i@ | Ea (_ =i@ | ||||
| @@) Ed (_$2vei d | |||||
| &C) Ed (_$2vei d | |||||
| &c) Ed (_$2vei t | |||||
| &d) Ed (_$2vei Id | |||||
| &ch) Ed (_$2vei t | |||||
| &k) Ed (_$2vei t | |||||
| &@@om) Ed (_$2v d | |||||
| &p) Ed (_$2vei t | |||||
| &t) Ed (_$2vei Id | |||||
| ur) Ed (_$1vi d | |||||
| &x) Ed (_$2v t | |||||
| @@) Ed (_S2vei d | |||||
| &C) Ed (_S2vei d | |||||
| &c) Ed (_S2vei t | |||||
| &d) Ed (_S2vei Id | |||||
| &ch) Ed (_S2vei t | |||||
| &k) Ed (_S2vei t | |||||
| &@@om) Ed (_S2v d | |||||
| &p) Ed (_S2vei t | |||||
| &t) Ed (_S2vei Id | |||||
| ur) Ed (_S1vi d | |||||
| &x) Ed (_S2v t | |||||
| y) Ed (_ d | y) Ed (_ d | ||||
| Edly (_$4e Idl%I | |||||
| Edly (_S4e Idl%I | |||||
| E (dia_ i: | E (dia_ i: | ||||
| E (dic_ i: | E (dic_ i: | ||||
| nak) E (d I | nak) E (d I | ||||
| Er (C 3 | Er (C 3 | ||||
| Ery (_ @r%I | Ery (_ @r%I | ||||
| E (x_ E | E (x_ E | ||||
| &) Es (_$2e z | |||||
| c) Es (_$2e I2z | |||||
| c) E's (_$3e I2z | |||||
| f) Es (_$2e s | |||||
| g) Es (_$2e I2z | |||||
| ch) Es (_$2e I2z | |||||
| ph) Es (_$2e I2z | |||||
| k) Es (_$2e s | |||||
| p) Es (_$2e s | |||||
| s) Es (_$2e I2z | |||||
| s) E's (_$2e I2z | |||||
| sh) Es (_$2e I2z | |||||
| t) Es (_$2e s | |||||
| x) Es (_$2 I2z | |||||
| Cr) Es (_$2e @z | |||||
| &) Es (_S2e z | |||||
| c) Es (_S2e I2z | |||||
| c) E's (_S3e I2z | |||||
| f) Es (_S2e s | |||||
| g) Es (_S2e I2z | |||||
| ch) Es (_S2e I2z | |||||
| ph) Es (_S2e I2z | |||||
| k) Es (_S2e s | |||||
| p) Es (_S2e s | |||||
| s) Es (_S2e I2z | |||||
| s) E's (_S2e I2z | |||||
| sh) Es (_S2e I2z | |||||
| t) Es (_S2e s | |||||
| x) Es (_S2 I2z | |||||
| Cr) Es (_S2e @z | |||||
| Ese (_ i:z | Ese (_ i:z | ||||
| E (sia 'i: | E (sia 'i: | ||||
| Esque 'Esk | Esque 'Esk | ||||
| .group ' | .group ' | ||||
| 's (_$2 z | |||||
| f) 's (_$2 s | |||||
| p) 's (_$2 s | |||||
| t) 's (_$2 s | |||||
| k) 's (_$2 s | |||||
| se) 's (_$2 I2z | |||||
| s) 's (_$2 I2z | |||||
| ce) 's (_$2 I2z | |||||
| ch) 's (_$2 I2z | |||||
| och) 's (_$2 s | |||||
| sh) 's (_$2 I2z | |||||
| x) 's (_$2 I2z | |||||
| z) 's (_$2 I2z | |||||
| 's (_S2 z | |||||
| f) 's (_S2 s | |||||
| p) 's (_S2 s | |||||
| t) 's (_S2 s | |||||
| k) 's (_S2 s | |||||
| se) 's (_S2 I2z | |||||
| s) 's (_S2 I2z | |||||
| ce) 's (_S2 I2z | |||||
| ch) 's (_S2 I2z | |||||
| och) 's (_S2 s | |||||
| sh) 's (_S2 I2z | |||||
| x) 's (_S2 I2z | |||||
| z) 's (_S2 I2z | |||||
| 6_) 's (_ I2z | 6_) 's (_ I2z | ||||
| 16_) 's (_ z | 16_) 's (_ z | ||||
| 're (_$3 @ | |||||
| 've (_$3 v | |||||
| 'd (_$2 d | |||||
| 'll (_$3 @L | |||||
| 're (_S3 @ | |||||
| 've (_S3 v | |||||
| 'd (_S2 d | |||||
| 'll (_S3 @L | |||||
| .group 0xce // Greek letters | .group 0xce // Greek letters |
| // 2006-11-18 Gilles Casse <[email protected]> | // 2006-11-18 Gilles Casse <[email protected]> | ||||
| // | // | ||||
| // Updated 2008-10-24 Michel Such <[email protected]> | |||||
| // Updated 2008-11-06 Michel Such <[email protected]> | |||||
| // | // | ||||
| // * Numbers, a few abbreviations and exceptions. | // * Numbers, a few abbreviations and exceptions. | ||||
| // | // | ||||
| (chef d'oeuvres) chédeuvres $text | (chef d'oeuvres) chédeuvres $text | ||||
| choeur kWr | choeur kWr | ||||
| cocus koky | cocus koky | ||||
| couscous kuskus | |||||
| dernier dE2rnjer2 | dernier dE2rnjer2 | ||||
| éloquent ElokA~t2 | éloquent ElokA~t2 | ||||
| fan f'an | fan f'an |
| i (A j | i (A j | ||||
| @) i (e_ j | @) i (e_ j | ||||
| &C) i (_N$1q i/ | |||||
| &) i (_N$1q i | |||||
| &) i (-N$1q i // don't reduce to [I^] if a hyphen follows | |||||
| &C) i (_NS1q i/ | |||||
| &) i (_NS1q i | |||||
| &) i (-NS1q i // don't reduce to [I^] if a hyphen follows | |||||
| ţ) i (-Că i | ţ) i (-Că i | ||||
| ţ) i (-Ci i | ţ) i (-Ci i | ||||
| 55 phoneme tables | |||||
| 57 phoneme tables | |||||
| new total | new total | ||||
| base 100 100 | |||||
| base2 24 119 | |||||
| en 51 146 | |||||
| en_n 31 146 | |||||
| en_us 36 147 | |||||
| en_sc 39 148 | |||||
| en_rp 34 146 | |||||
| en_wm 30 146 | |||||
| en_wi 30 146 | |||||
| af 39 132 | |||||
| cy 29 126 | |||||
| de 33 127 | |||||
| eo 13 112 | |||||
| jbo 4 113 | |||||
| fi 40 131 | |||||
| fr 54 137 | |||||
| fr_ca 11 137 | |||||
| hi 51 137 | |||||
| ta 17 140 | |||||
| hu 23 116 | |||||
| nl 28 123 | |||||
| pl 18 113 | |||||
| sk 29 131 | |||||
| cs 6 131 | |||||
| hr 26 136 | |||||
| mk 3 137 | |||||
| sr 14 136 | |||||
| ru 39 131 | |||||
| it 17 122 | |||||
| la 21 118 | |||||
| es 9 120 | |||||
| es_la 1 120 | |||||
| pt 28 136 | |||||
| pt_pt 20 136 | |||||
| ro 36 143 | |||||
| el 8 119 | |||||
| grc 12 124 | |||||
| sv 25 122 | |||||
| no 28 126 | |||||
| is 33 126 | |||||
| vi 42 138 | |||||
| zhy 40 133 | |||||
| zh 65 150 | |||||
| sw 14 109 | |||||
| tr 18 124 | |||||
| ku 18 124 | |||||
| id 15 121 | |||||
| rw 15 126 | |||||
| ko 18 147 | |||||
| da 15 130 | |||||
| sq 23 128 | |||||
| ml 13 139 | |||||
| bn 59 145 | |||||
| ne 14 141 | |||||
| lv 26 121 | |||||
| base 101 101 | |||||
| base2 24 120 | |||||
| en 51 147 | |||||
| en_n 31 147 | |||||
| en_us 36 148 | |||||
| en_sc 39 149 | |||||
| en_rp 34 147 | |||||
| en_wm 30 147 | |||||
| en_wi 30 147 | |||||
| af 39 133 | |||||
| cy 29 127 | |||||
| de 33 128 | |||||
| eo 13 113 | |||||
| jbo 4 114 | |||||
| fi 40 132 | |||||
| fr 54 138 | |||||
| fr_ca 11 138 | |||||
| hi 52 139 | |||||
| ta 17 142 | |||||
| hu 23 117 | |||||
| nl 28 124 | |||||
| pl 18 114 | |||||
| sk 29 132 | |||||
| cs 6 132 | |||||
| hr 26 137 | |||||
| mk 3 138 | |||||
| sr 14 137 | |||||
| ru 39 132 | |||||
| it 17 123 | |||||
| la 21 119 | |||||
| es 9 121 | |||||
| es_la 1 121 | |||||
| pt 28 137 | |||||
| pt_pt 20 137 | |||||
| ro 36 144 | |||||
| el 8 120 | |||||
| grc 12 125 | |||||
| sv 25 123 | |||||
| no 28 127 | |||||
| is 33 127 | |||||
| vi 42 139 | |||||
| zhy 40 134 | |||||
| zh 65 151 | |||||
| sw 14 110 | |||||
| tr 18 125 | |||||
| ku 18 125 | |||||
| id 15 122 | |||||
| rw 15 127 | |||||
| ko 18 149 | |||||
| da 15 131 | |||||
| sq 23 129 | |||||
| ml 13 141 | |||||
| bn 59 147 | |||||
| ne 23 151 | |||||
| lv 28 123 | |||||
| hy 16 114 | |||||
| om 18 118 | |||||
| Data file Used by | Data file Used by | ||||
| b/b [b] base | b/b [b] base | ||||
| [R] sk | [R] sk | ||||
| [r*] sr | [r*] sr | ||||
| [x] pt | [x] pt | ||||
| [R] lv | |||||
| [R2] lv | |||||
| r3/r_trill2 [R] base | r3/r_trill2 [R] base | ||||
| [r] cy | [r] cy | ||||
| [R] hr | [R] hr | ||||
| [R] sk | [R] sk | ||||
| [r*] sr | [r*] sr | ||||
| [x] pt | [x] pt | ||||
| [R] lv | |||||
| [R2] lv | |||||
| r3/r_u [(u)] base | r3/r_u [(u)] base | ||||
| r3/rx [*] base | r3/rx [*] base | ||||
| [r/] base | [r/] base | ||||
| [x] pt_pt | [x] pt_pt | ||||
| [*;] ro | [*;] ro | ||||
| [r#] is | [r#] is | ||||
| [Q2] hy | |||||
| r3/rz_cs [R^] sk | r3/rz_cs [R^] sk | ||||
| [R^/] sk | [R^/] sk | ||||
| r3/@tap [**] base | r3/@tap [**] base | ||||
| [s#] pt | [s#] pt | ||||
| [z;] ro | [z;] ro | ||||
| [s2] is | [s2] is | ||||
| [s2] lv | |||||
| ufric/s! [s] base | ufric/s! [s] base | ||||
| [s2] fi | [s2] fi | ||||
| [s] fr | [s] fr | ||||
| [s] es | [s] es | ||||
| [s#] pt | [s#] pt | ||||
| [s2] is | [s2] is | ||||
| [s2] lv | |||||
| ufric/s_continue [s2] fi | ufric/s_continue [s2] fi | ||||
| [s2] hu | [s2] hu | ||||
| [s2] is | [s2] is | ||||
| [s2] lv | |||||
| ufric/sh [S] base | ufric/sh [S] base | ||||
| [S] fr | [S] fr | ||||
| [s#] pt_pt | [s#] pt_pt | ||||
| [x] hr | [x] hr | ||||
| ufric/x_sr [h] sr | ufric/x_sr [h] sr | ||||
| [x] sr | [x] sr | ||||
| ufric/xx3 [X] base | |||||
| [Q] hy | |||||
| ustop/c [c] base | ustop/c [c] base | ||||
| ustop/k [k] base | ustop/k [k] base | ||||
| [k] en | [k] en | ||||
| [k] sq | [k] sq | ||||
| [k] bn | [k] bn | ||||
| [k] lv | [k] lv | ||||
| [k`] om | |||||
| ustop/k_unasp_ [k] zh | ustop/k_unasp_ [k] zh | ||||
| ustop/null [?] base | ustop/null [?] base | ||||
| ustop/p [p] base | ustop/p [p] base | ||||
| [ph] hi | [ph] hi | ||||
| [ph] zh | [ph] zh | ||||
| [ph] bn | [ph] bn | ||||
| [ph] hy | |||||
| ustop/p_asp [ph] hi | ustop/p_asp [ph] hi | ||||
| [ph] hy | |||||
| ustop/percus10 [(X1] base | ustop/percus10 [(X1] base | ||||
| ustop/pl [p] base | ustop/pl [p] base | ||||
| [p] base2 | [p] base2 | ||||
| [p] bn | [p] bn | ||||
| [ph] bn | [ph] bn | ||||
| [p] lv | [p] lv | ||||
| [ph] hy | |||||
| ustop/pr [p] base | ustop/pr [p] base | ||||
| [p] base2 | [p] base2 | ||||
| [p] fi | [p] fi | ||||
| [p;] ro | [p;] ro | ||||
| [p] bn | [p] bn | ||||
| [ph] bn | [ph] bn | ||||
| [ph] hy | |||||
| ustop/p_unasp [p] base | ustop/p_unasp [p] base | ||||
| [p] base2 | [p] base2 | ||||
| [p] fi | [p] fi | ||||
| [p] sq | [p] sq | ||||
| [p] bn | [p] bn | ||||
| [p] lv | [p] lv | ||||
| [p`] om | |||||
| ustop/p_unasp_ [p] base2 | ustop/p_unasp_ [p] base2 | ||||
| [p] fi | [p] fi | ||||
| [p] hi | [p] hi | ||||
| [t] sw | [t] sw | ||||
| [t`] ko | [t`] ko | ||||
| [t] bn | [t] bn | ||||
| [t`] om | |||||
| ustop/t_dnt2 [t[] vi | ustop/t_dnt2 [t[] vi | ||||
| ustop/t_hi [t] hi | ustop/t_hi [t] hi | ||||
| [t] bn | [t] bn | ||||
| [z] zhy | [z] zhy | ||||
| [tsh] zh | [tsh] zh | ||||
| [ts] lv | [ts] lv | ||||
| [ts] hy | |||||
| ustop/tsh [tS] base | ustop/tsh [tS] base | ||||
| [c] zhy | [c] zhy | ||||
| ustop/tsh_ [tS] base | ustop/tsh_ [tS] base | ||||
| [c] hu | [c] hu | ||||
| [c`] ko | [c`] ko | ||||
| [c] bn | [c] bn | ||||
| [c`] om | |||||
| ustop/ts_pzd3 [tS;] hr | ustop/ts_pzd3 [tS;] hr | ||||
| [dZ;] hr | [dZ;] hr | ||||
| ustop/t_sr [d] sr | ustop/t_sr [d] sr | ||||
| vdiph2/eo [eo] ro | vdiph2/eo [eo] ro | ||||
| vdiph2/e[u [e[u] ro | vdiph2/e[u [e[u] ro | ||||
| vdiph2/i@ [i@] en_n | vdiph2/i@ [i@] en_n | ||||
| [i@] hy | |||||
| vdiph2/i@_2 [i@] en_wm | vdiph2/i@_2 [i@] en_wm | ||||
| vdiph2/ie [i@] en_wi | vdiph2/ie [i@] en_wi | ||||
| [ie] fi | [ie] fi | ||||
| [ou] zh | [ou] zh | ||||
| vdiph/aae [aI] en_us | vdiph/aae [aI] en_us | ||||
| vdiph/aai [aai] zhy | vdiph/aai [aai] zhy | ||||
| [aI] ne | |||||
| [ai] lv | |||||
| vdiph/aai_2 [AI] af | vdiph/aai_2 [AI] af | ||||
| [AY] cy | [AY] cy | ||||
| vdiph/aai_3 [ai] fi | vdiph/aai_3 [ai] fi | ||||
| vdiph/aau [au] fi | vdiph/aau [au] fi | ||||
| [au] lv | |||||
| vdiph/aau_2 [aU] en_wi | vdiph/aau_2 [aU] en_wi | ||||
| [aU] de | [aU] de | ||||
| [VU] nl | [VU] nl | ||||
| [aI] pt | [aI] pt | ||||
| [a:I] vi | [a:I] vi | ||||
| [aI] id | [aI] id | ||||
| [ai] lv | |||||
| [aI] hy | |||||
| vdiph/ai_2 [aI] cy | vdiph/ai_2 [aI] cy | ||||
| [aY] cy | [aY] cy | ||||
| vdiph/ai_3 [aI] no | vdiph/ai_3 [aI] no | ||||
| [EI] de | [EI] de | ||||
| [EI] nl | [EI] nl | ||||
| [EI] vi | [EI] vi | ||||
| [eI] ne | |||||
| [eI] hy | |||||
| vdiph/eei_2 [eI] eo | vdiph/eei_2 [eI] eo | ||||
| [ei] fi | [ei] fi | ||||
| [eI] id | [eI] id | ||||
| [eU] sk | [eU] sk | ||||
| [eU] pt | [eU] pt | ||||
| [eU] vi | [eU] vi | ||||
| [eU] ne | |||||
| vdiph/eu_2 [eu] fi | vdiph/eu_2 [eu] fi | ||||
| vdiph/&i [&i] fi | vdiph/&i [&i] fi | ||||
| [aI] hi | [aI] hi | ||||
| [aI] bn | [aI] bn | ||||
| [aI] ne | |||||
| vdiph/@i_2 [eI] af | vdiph/@i_2 [eI] af | ||||
| [@I] cy | [@I] cy | ||||
| [@Y] cy | [@Y] cy | ||||
| [oI] it | [oI] it | ||||
| [OI] la | [OI] la | ||||
| [oI] vi | [oI] vi | ||||
| [oI] ne | |||||
| vdiph/oi_2 [oI] af | vdiph/oi_2 [oI] af | ||||
| vdiph/ooi [OI] en | vdiph/ooi [OI] en | ||||
| [OI] en_n | [OI] en_n | ||||
| vdiph/ooi_4 [OI] en_us | vdiph/ooi_4 [OI] en_us | ||||
| vdiph/oou [oU] cs | vdiph/oou [oU] cs | ||||
| [OU] grc | [OU] grc | ||||
| [au] lv | |||||
| vdiph/ou [ou] fi | vdiph/ou [ou] fi | ||||
| [ou] zhy | [ou] zhy | ||||
| [oU] ne | |||||
| vdiph/ou_2 [oU] sk | vdiph/ou_2 [oU] sk | ||||
| [oU] ro | [oU] ro | ||||
| vdiph/ou_3 [oU] is | vdiph/ou_3 [oU] is | ||||
| [ui] fi | [ui] fi | ||||
| [uI] vi | [uI] vi | ||||
| [ui] zhy | [ui] zhy | ||||
| [uI] ne | |||||
| [ui] lv | [ui] lv | ||||
| vdiph/u-i [yI] vi | vdiph/u-i [yI] vi | ||||
| vdiph/ui_2 [uI] af | vdiph/ui_2 [uI] af | ||||
| vdiph/ui_3 [uI] cy | vdiph/ui_3 [uI] cy | ||||
| [uY] cy | [uY] cy | ||||
| vdiph/Vi [@:I] vi | vdiph/Vi [@:I] vi | ||||
| [VI] ne | |||||
| vdiph/Vu [@U] af | vdiph/Vu [@U] af | ||||
| [VU] ne | |||||
| vdiph/Vu_2 [oU] en_wm | vdiph/Vu_2 [oU] en_wm | ||||
| vdiph/Vu_3 [o:] nl | vdiph/Vu_3 [o:] nl | ||||
| vdiph/Vu_4 [@U] vi | vdiph/Vu_4 [@U] vi | ||||
| [u~] bn | [u~] bn | ||||
| [u:~] bn | [u:~] bn | ||||
| [u~] ne | [u~] ne | ||||
| vnasal/V_n [V~] ne | |||||
| vnasal/W_n [E~] fr | vnasal/W_n [E~] fr | ||||
| [W~] fr | [W~] fr | ||||
| voc/bh [B] base | voc/bh [B] base | ||||
| [x2] pt | [x2] pt | ||||
| voc/Q_less [Q] nl | voc/Q_less [Q] nl | ||||
| [x2] pt | [x2] pt | ||||
| voc/Q_ulv [Q] hy | |||||
| voc/v [v] base | voc/v [v] base | ||||
| [v] fi | [v] fi | ||||
| [v] fr | [v] fr | ||||
| [@4] hi | [@4] hi | ||||
| [@] ml | [@] ml | ||||
| [@4] bn | [@4] bn | ||||
| [@] hy | |||||
| vowel/@- [@-] base | vowel/@- [@-] base | ||||
| [r*] hr | [r*] hr | ||||
| vowel/& [a] en_rp | vowel/& [a] en_rp | ||||
| [&] sv | [&] sv | ||||
| [&] bn | [&] bn | ||||
| [&:] bn | [&:] bn | ||||
| [&:] lv | |||||
| vowel/0 [0] en | vowel/0 [0] en | ||||
| [O] hi | [O] hi | ||||
| [O] pt | [O] pt | ||||
| [8] sv | [8] sv | ||||
| vowel/8_3 [eo] zhy | vowel/8_3 [eo] zhy | ||||
| vowel/8_5 [8] ku | vowel/8_5 [8] ku | ||||
| vowel/8_7 [@] lv | |||||
| vowel/a [a] en_n | vowel/a [a] en_n | ||||
| [aa] en_n | [aa] en_n | ||||
| [a] en_wm | [a] en_wm | ||||
| [&/] pt | [&/] pt | ||||
| [a#] rw | [a#] rw | ||||
| [a/] rw | [a/] rw | ||||
| [&] lv | |||||
| [a] om | |||||
| vowel/a_2 [a] base2 | vowel/a_2 [a] base2 | ||||
| [a] en_wi | [a] en_wi | ||||
| [A:] en_wi | [A:] en_wi | ||||
| [a] is | [a] is | ||||
| [A] zh | [A] zh | ||||
| [A] da | [A] da | ||||
| [a:] om | |||||
| vowel/a#_3 [a2] en | vowel/a#_3 [a2] en | ||||
| [a2] en_n | [a2] en_n | ||||
| [a2] en_us | [a2] en_us | ||||
| [a] tr | [a] tr | ||||
| [a] sq | [a] sq | ||||
| [a:] ml | [a:] ml | ||||
| [a] lv | |||||
| vowel/a_6 [a] fr | vowel/a_6 [a] fr | ||||
| [a2] fr | [a2] fr | ||||
| vowel/aa [a] fi | vowel/aa [a] fi | ||||
| [A] no | [A] no | ||||
| [A:] no | [A:] no | ||||
| [aa] zhy | [aa] zhy | ||||
| [a] lv | |||||
| [a:] lv | |||||
| [a] hy | |||||
| vowel/aa# [O] en_us | vowel/aa# [O] en_us | ||||
| [0] en_wi | [0] en_wi | ||||
| [a2] fi | [a2] fi | ||||
| [A] zh | [A] zh | ||||
| vowel/aa_3 [A:] af | vowel/aa_3 [A:] af | ||||
| [A] sq | [A] sq | ||||
| [a:] lv | |||||
| vowel/aa_4 [O:] en_us | vowel/aa_4 [O:] en_us | ||||
| [A:] sv | [A:] sv | ||||
| [O] vi | [O] vi | ||||
| [A] fr | [A] fr | ||||
| [a] pl | [a] pl | ||||
| vowel/@_bck [@] hi | vowel/@_bck [@] hi | ||||
| [@/] hi | |||||
| [@] zh | [@] zh | ||||
| [@] bn | [@] bn | ||||
| [@/] ne | |||||
| vowel/e [e] base2 | vowel/e [e] base2 | ||||
| [e:] en | [e:] en | ||||
| [eI] en_n | [eI] en_n | ||||
| [e:] hu | [e:] hu | ||||
| [e] ku | [e] ku | ||||
| vowel/e_5 [i] en_sc | vowel/e_5 [i] en_sc | ||||
| vowel/e_6 [e] om | |||||
| vowel/e_7 [e] sq | vowel/e_7 [e] sq | ||||
| vowel/ee [E] en_n | vowel/ee [E] en_n | ||||
| [E] sv | [E] sv | ||||
| vowel/ee_6 [&] sk | vowel/ee_6 [&] sk | ||||
| [E3] sv | [E3] sv | ||||
| [E] ku | [E] ku | ||||
| [&] lv | |||||
| [&:] lv | |||||
| vowel/e_mid [E] en_rp | vowel/e_mid [E] en_rp | ||||
| [e] jbo | [e] jbo | ||||
| [E] fr | [E] fr | ||||
| [E] da | [E] da | ||||
| [E] bn | [E] bn | ||||
| [e] lv | [e] lv | ||||
| [e] hy | |||||
| vowel/e_mid2 [E] af | vowel/e_mid2 [E] af | ||||
| [E] de | [E] de | ||||
| [E2] de | [E2] de | ||||
| [e] tr | [e] tr | ||||
| [E] ko | [E] ko | ||||
| [e:] lv | [e:] lv | ||||
| [E] om | |||||
| vowel/@_fnt [@] en_wi | vowel/@_fnt [@] en_wi | ||||
| [@2] en_wi | [@2] en_wi | ||||
| [@2] hr | [@2] hr | ||||
| [i] ko | [i] ko | ||||
| [i:] ml | [i:] ml | ||||
| [i] ne | [i] ne | ||||
| [i] hy | |||||
| [i:] om | |||||
| vowel/i# [y:] cy | vowel/i# [y:] cy | ||||
| vowel/i_2 [i2] de | vowel/i_2 [i2] de | ||||
| [i:] de | [i:] de | ||||
| [I] is | [I] is | ||||
| [i] zhy | [i] zhy | ||||
| [I] ku | [I] ku | ||||
| [I] om | |||||
| vowel/ii# [Y] cy | vowel/ii# [Y] cy | ||||
| [Y] ru | [Y] ru | ||||
| [I] ku | [I] ku | ||||
| [V] bn | [V] bn | ||||
| [@2] bn | [@2] bn | ||||
| [V] ne | [V] ne | ||||
| [@/] ne | |||||
| vowel/o [o] base2 | vowel/o [o] base2 | ||||
| [o:] en | [o:] en | ||||
| [oU] en_n | [oU] en_n | ||||
| [o] ml | [o] ml | ||||
| [o:] ml | [o:] ml | ||||
| [o] bn | [o] bn | ||||
| [o] hy | |||||
| vowel/o_2 [o:] cy | vowel/o_2 [o:] cy | ||||
| [o2] fr | [o2] fr | ||||
| [o:] hi | [o:] hi | ||||
| [W] af | [W] af | ||||
| [W] de | [W] de | ||||
| [W] da | [W] da | ||||
| [W] hy | |||||
| vowel/oe_2 [W] no | vowel/oe_2 [W] no | ||||
| [W] tr | [W] tr | ||||
| vowel/oe_4 [W] sv | vowel/oe_4 [W] sv | ||||
| [o] hu | [o] hu | ||||
| [o] tr | [o] tr | ||||
| [o] ne | [o] ne | ||||
| [o:] om | |||||
| vowel/oo [O:] en_sc | vowel/oo [O:] en_sc | ||||
| [O] en_wi | [O] en_wi | ||||
| [O:] en_wi | [O:] en_wi | ||||
| [O:] hi | [O:] hi | ||||
| [O] it | [O] it | ||||
| [O] bn | [O] bn | ||||
| [O] om | |||||
| vowel/oo_5 [O] pl | vowel/oo_5 [O] pl | ||||
| [O] is | [O] is | ||||
| [O] sq | [O] sq | ||||
| [u] ml | [u] ml | ||||
| [u:] ml | [u:] ml | ||||
| [u] bn | [u] bn | ||||
| [u:] om | |||||
| vowel/u# [u:] en_sc | vowel/u# [u:] en_sc | ||||
| [Y] tr | [Y] tr | ||||
| vowel/u_2 [u1] fi | vowel/u_2 [u1] fi | ||||
| [u] sq | [u] sq | ||||
| [u:] bn | [u:] bn | ||||
| [u] ne | [u] ne | ||||
| [u] hy | |||||
| vowel/u_bck2 [u:] la | vowel/u_bck2 [u:] la | ||||
| vowel/u_fnt [u:] en_rp | vowel/u_fnt [u:] en_rp | ||||
| vowel/uu [U] en | vowel/uu [U] en | ||||
| [U] no | [U] no | ||||
| [u] zhy | [u] zhy | ||||
| [U] bn | [U] bn | ||||
| [U] om | |||||
| vowel/u_unr [u-] ko | vowel/u_unr [u-] ko | ||||
| vowel/V [3] en_sc | vowel/V [3] en_sc | ||||
| [V] ne | |||||
| vowel/V_2 [V] en | vowel/V_2 [V] en | ||||
| [a] af | [a] af | ||||
| [V] ru | [V] ru | ||||
| [V] hi | [V] hi | ||||
| [V] ta | [V] ta | ||||
| [V] bn | [V] bn | ||||
| [V] ne | |||||
| vowel/V_4 [V] en_sc | vowel/V_4 [V] en_sc | ||||
| [@:] vi | [@:] vi | ||||
| [V] da | [V] da | ||||
| [y] hu | [y] hu | ||||
| [y] grc | [y] grc | ||||
| [y] is | [y] is | ||||
| [y] hy | |||||
| vweak/@ [@#] om | |||||
| vweak/a [a#] om | |||||
| vwl_af/@ [@] af | vwl_af/@ [@] af | ||||
| vwl_af/I [I] af | vwl_af/I [I] af | ||||
| vwl_af/r@ [@] af | vwl_af/r@ [@] af | ||||
| vwl_fr/@R2 [R] fr_ca | vwl_fr/@R2 [R] fr_ca | ||||
| vwl_fr/@R3 [R] fr | vwl_fr/@R3 [R] fr | ||||
| [r] fr | [r] fr | ||||
| [Q2] hy | |||||
| vwl_fr/@R4 [R] fr | vwl_fr/@R4 [R] fr | ||||
| [r] fr | [r] fr | ||||
| [r2] fr | [r2] fr | ||||
| [Q2] hy | |||||
| vwl_fr/@R5 [r] fr | vwl_fr/@R5 [r] fr | ||||
| [Q2] hy | |||||
| vwl_fr/r_a [a] fr | vwl_fr/r_a [a] fr | ||||
| [a2] fr | [a2] fr | ||||
| [wA] fr | [wA] fr | ||||
| vwl_no/y# [Y:] no | vwl_no/y# [Y:] no | ||||
| vwl_no/y#y [Yy] no | vwl_no/y#y [Yy] no | ||||
| vwl_ro/ii- [I^] ro | vwl_ro/ii- [I^] ro | ||||
| [I#] om | |||||
| vwl_ro/li [I^] ro | vwl_ro/li [I^] ro | ||||
| vwl_ro/mi [I^] ru | vwl_ro/mi [I^] ru | ||||
| [I^] ro | [I^] ro |
| reduceto @- 0 | reduceto @- 0 | ||||
| endphoneme | endphoneme | ||||
| phoneme @/ | |||||
| vowel starttype (@) endtype (@) | |||||
| length 130 | |||||
| formants vowel/@_bck | |||||
| endphoneme | |||||
| phoneme V | phoneme V | ||||
| vowel starttype (@) endtype (@) | vowel starttype (@) endtype (@) | ||||
| length 130 | length 130 |
| switchvoicing Q | switchvoicing Q | ||||
| endphoneme | endphoneme | ||||
| phoneme X | |||||
| vls uvl frc | |||||
| lengthmod 3 | |||||
| wave ufric/xx3 | |||||
| before _ ufric/xx3%70 | |||||
| endphoneme | |||||
| phoneme h | phoneme h | ||||
| vls glt apr | vls glt apr | ||||
| phonemetable lv base | phonemetable lv base | ||||
| include ph_latvian | include ph_latvian | ||||
| phonemetable hy base | |||||
| include ph_armenian_west | |||||
| phonemetable om base | |||||
| include ph_oromo |
| break; | break; | ||||
| case 1: | case 1: | ||||
| if(c == '-') | |||||
| { | |||||
| flag_codes[n_flag_codes++] = BITNUM_FLAG_HYPHENATED; | |||||
| c = ' '; | |||||
| } | |||||
| if(isspace2(c)) | if(isspace2(c)) | ||||
| { | { | ||||
| p[0] = 0; /* terminate english word */ | p[0] = 0; /* terminate english word */ |
| // don't use the contraction if any of the words are emphasized | // don't use the contraction if any of the words are emphasized | ||||
| for(ix=0; ix <= skipwords; ix++) | for(ix=0; ix <= skipwords; ix++) | ||||
| { | { | ||||
| if((wtab != NULL) && (wtab[ix].flags & FLAG_EMPHASIZED)) | |||||
| if((wtab != NULL) && (wtab[ix].flags & FLAG_EMPHASIZED2)) | |||||
| { | { | ||||
| condition_failed = 1; | condition_failed = 1; | ||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| if(dictionary_flags2 & FLAG_HYPHENATED) | |||||
| { | |||||
| if(!(word_flags & FLAG_HYPHEN_AFTER)) | |||||
| { | |||||
| continue; | |||||
| } | |||||
| } | |||||
| if(dictionary_flags2 & FLAG_CAPITAL) | if(dictionary_flags2 & FLAG_CAPITAL) | ||||
| { | { | ||||
| if(!(word_flags & FLAG_FIRST_UPPER)) | if(!(word_flags & FLAG_FIRST_UPPER)) | ||||
| if(length > 0) | if(length > 0) | ||||
| { | { | ||||
| // found an abbreviation containing dots | // found an abbreviation containing dots | ||||
| nbytes = utf8_nbytes(word2); | |||||
| nbytes = 0; | |||||
| while(((c = word2[nbytes]) != 0) && (c != ' ')) | |||||
| { | |||||
| nbytes++; | |||||
| } | |||||
| memcpy(&word[length],word2,nbytes); | memcpy(&word[length],word2,nbytes); | ||||
| word[length+nbytes] = 0; | word[length+nbytes] = 0; | ||||
| found = LookupDict2(word, word2, ph_out, flags, end_flags, wtab); | found = LookupDict2(word, word2, ph_out, flags, end_flags, wtab); |
| while((type = events->type) != 0) | while((type = events->type) != 0) | ||||
| { | { | ||||
| fprintf(f_events,"%2d (%4d %4d) %5d %5d (%3d) ",type,events->unique_identifier,(int)events->user_data,events->audio_position,events->text_position,events->length); | |||||
| fprintf(f_events,"%2d (%4d %4ld) %5d %5d (%3d) ",type,events->unique_identifier,(long)events->user_data,events->audio_position,events->text_position,events->length); | |||||
| if((type==3) || (type==4)) | if((type==3) || (type==4)) | ||||
| fprintf(f_events,"'%s'\n",events->id.name); | fprintf(f_events,"'%s'\n",events->id.name); | ||||
| else | else |
| 0x3001, // ideograph comma | 0x3001, // ideograph comma | ||||
| 0x3002, // ideograph period | 0x3002, // ideograph period | ||||
| 0x0589, // Armenian period | |||||
| 0x055d, // Armenian comma | |||||
| 0x055c, // Armenian exclamation | |||||
| 0x055e, // Armenian question | |||||
| 0x055b, // Armenian emphasis mark | |||||
| 0xff01, // fullwidth exclamation | 0xff01, // fullwidth exclamation | ||||
| 0xff0c, // fullwidth comma | 0xff0c, // fullwidth comma | ||||
| 0xff0e, // fullwidth period | 0xff0e, // fullwidth period | ||||
| CLAUSE_COMMA+0x8000, // ideograph comma | CLAUSE_COMMA+0x8000, // ideograph comma | ||||
| CLAUSE_PERIOD+0x8000, // ideograph period | CLAUSE_PERIOD+0x8000, // ideograph period | ||||
| CLAUSE_PERIOD+0x8000, // Armenian period | |||||
| CLAUSE_COMMA, // Armenian comma | |||||
| CLAUSE_EXCLAMATION + PUNCT_IN_WORD, // Armenian exclamation | |||||
| CLAUSE_QUESTION + PUNCT_IN_WORD, // Armenian question | |||||
| CLAUSE_PERIOD + PUNCT_IN_WORD, // Armenian emphasis mark | |||||
| CLAUSE_EXCLAMATION+0x8000, // fullwidth | CLAUSE_EXCLAMATION+0x8000, // fullwidth | ||||
| CLAUSE_COMMA+0x8000, | CLAUSE_COMMA+0x8000, | ||||
| CLAUSE_PERIOD+0x8000, | CLAUSE_PERIOD+0x8000, | ||||
| {NULL,-1}}; | {NULL,-1}}; | ||||
| int Translator::ReadClause(FILE *f_in, char *buf, short *charix, int n_buf) | |||||
| {//======================================================================== | |||||
| int Translator::ReadClause(FILE *f_in, char *buf, short *charix, int n_buf, int *tone_type) | |||||
| {//======================================================================================== | |||||
| /* Find the end of the current clause. | /* Find the end of the current clause. | ||||
| Write the clause into buf | Write the clause into buf | ||||
| int any_alnum = 0; | int any_alnum = 0; | ||||
| int self_closing; | int self_closing; | ||||
| int punct_data; | int punct_data; | ||||
| int stressed_word = 0; | |||||
| const char *p; | const char *p; | ||||
| wchar_t xml_buf[N_XML_BUF+1]; | wchar_t xml_buf[N_XML_BUF+1]; | ||||
| clause_upper_count = 0; | clause_upper_count = 0; | ||||
| clause_lower_count = 0; | clause_lower_count = 0; | ||||
| end_of_input = 0; | end_of_input = 0; | ||||
| *tone_type = 0; | |||||
| f_input = f_in; // for GetC etc | f_input = f_in; // for GetC etc | ||||
| if(iswalnum(c1)) | if(iswalnum(c1)) | ||||
| any_alnum = 1; | any_alnum = 1; | ||||
| else | else | ||||
| if(iswspace(c1)) | |||||
| { | { | ||||
| char *p_word; | |||||
| if(stressed_word) | |||||
| { | |||||
| stressed_word = 0; | |||||
| c1 = CHAR_EMPHASIS; // indicate this word is strtessed | |||||
| UngetC(c2); | |||||
| c2 = ' '; | |||||
| } | |||||
| if(translator_name == 0x6a626f) | |||||
| if(iswspace(c1)) | |||||
| { | { | ||||
| // language jbo : lojban | |||||
| // treat "i" or ".i" as end-of-sentence | |||||
| p_word = &buf[ix-1]; | |||||
| if(p_word[0] == 'i') | |||||
| char *p_word; | |||||
| if(translator_name == 0x6a626f) | |||||
| { | { | ||||
| if(p_word[-1] == '.') | |||||
| p_word--; | |||||
| if(p_word[-1] == ' ') | |||||
| // language jbo : lojban | |||||
| // treat "i" or ".i" as end-of-sentence | |||||
| p_word = &buf[ix-1]; | |||||
| if(p_word[0] == 'i') | |||||
| { | { | ||||
| ungot_word = "i "; | |||||
| UngetC(c2); | |||||
| p_word[0] = 0; | |||||
| return(CLAUSE_PERIOD); | |||||
| if(p_word[-1] == '.') | |||||
| p_word--; | |||||
| if(p_word[-1] == ' ') | |||||
| { | |||||
| ungot_word = "i "; | |||||
| UngetC(c2); | |||||
| p_word[0] = 0; | |||||
| return(CLAUSE_PERIOD); | |||||
| } | |||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| if((phoneme_mode==0) && (sayas_mode==0) && ((punct = lookupwchar(punct_chars,c1)) != 0)) | if((phoneme_mode==0) && (sayas_mode==0) && ((punct = lookupwchar(punct_chars,c1)) != 0)) | ||||
| { | { | ||||
| if((iswspace(c2) || (punct_attributes[punct] & 0x8000) || IsBracket(c2) || (c2=='?') || (c2=='-') || Eof())) | |||||
| punct_data = punct_attributes[punct]; | |||||
| if(punct_data & PUNCT_IN_WORD) | |||||
| { | |||||
| // Armenian punctuation inside a word | |||||
| stressed_word = 1; | |||||
| *tone_type = punct_data >> 12 & 0xf; // override the end-of-sentence type | |||||
| continue; | |||||
| } | |||||
| if((iswspace(c2) || (punct_data & 0x8000) || IsBracket(c2) || (c2=='?') || (c2=='-') || Eof())) | |||||
| { | { | ||||
| // note: (c2='?') is for when a smart-quote has been replaced by '?' | // note: (c2='?') is for when a smart-quote has been replaced by '?' | ||||
| buf[ix] = ' '; | buf[ix] = ' '; | ||||
| return(CLAUSE_NONE); | return(CLAUSE_NONE); | ||||
| } | } | ||||
| } | } | ||||
| if(stressed_word) | |||||
| { | |||||
| ix += utf8_out(CHAR_EMPHASIS, &buf[ix]); | |||||
| } | |||||
| buf[ix] = ' '; | buf[ix] = ' '; | ||||
| buf[ix+1] = 0; | buf[ix+1] = 0; | ||||
| return(CLAUSE_EOF); // end of file | return(CLAUSE_EOF); // end of file |
| if(end_of_clause == 2) | if(end_of_clause == 2) | ||||
| { | { | ||||
| // this is the last syllable in the clause, lengthen it - more for short vowels | // this is the last syllable in the clause, lengthen it - more for short vowels | ||||
| length_mod = length_mod * (256 + (280 - p->ph->std_length)/3)/256; | |||||
| len = p->ph->std_length; | |||||
| if(langopts.stress_flags & 0x40000) | |||||
| len=200; // don't lengthen short vowels more than long vowels at end-of-clause | |||||
| length_mod = length_mod * (256 + (280 - len)/3)/256; | |||||
| } | } | ||||
| if(p->type != phVOWEL) | if(p->type != phVOWEL) |
| ep->text_position = char_position & 0xffff; | ep->text_position = char_position & 0xffff; | ||||
| ep->length = char_position >> 24; | ep->length = char_position >> 24; | ||||
| time = (double(count_samples + (out_ptr - out_start)/2)*1000.0)/samplerate; | |||||
| time = (double(count_samples + mbrola_delay + (out_ptr - out_start)/2)*1000.0)/samplerate; | |||||
| ep->audio_position = int(time); | ep->audio_position = int(time); | ||||
| ep->sample = (count_samples + (out_ptr - out_start)/2); | |||||
| ep->sample = (count_samples + mbrola_delay + (out_ptr - out_start)/2); | |||||
| SHOW("MarkerEvent > count_samples=%d, out_ptr=%x, out_start=0x%x\n",count_samples, out_ptr, out_start); | SHOW("MarkerEvent > count_samples=%d, out_ptr=%x, out_start=0x%x\n",count_samples, out_ptr, out_start); | ||||
| SHOW("*** MarkerEvent > type=%s, uid=%d, text_pos=%d, length=%d, audio_position=%d, sample=%d\n", | SHOW("*** MarkerEvent > type=%s, uid=%d, text_pos=%d, length=%d, audio_position=%d, sample=%d\n", |
| char path[sizeof(path_home)+15]; | char path[sizeof(path_home)+15]; | ||||
| mbrola_name[0] = 0; | mbrola_name[0] = 0; | ||||
| mbrola_delay = 0; | |||||
| if(mbrola_voice == NULL) | if(mbrola_voice == NULL) | ||||
| { | { | ||||
| samplerate = samplerate_native; | samplerate = samplerate_native; | ||||
| else | else | ||||
| SetParameter(espeakVOICETYPE,1,0); | SetParameter(espeakVOICETYPE,1,0); | ||||
| strcpy(mbrola_name,mbrola_voice); | strcpy(mbrola_name,mbrola_voice); | ||||
| mbrola_delay = 3800; // improve synchronization of events | |||||
| return(EE_OK); | return(EE_OK); | ||||
| } // end of LoadMbrolaTable | } // end of LoadMbrolaTable | ||||
| else | else | ||||
| len = (80 * speed_factor2)/256; | len = (80 * speed_factor2)/256; | ||||
| #ifdef USE_MBROLA_LIB | |||||
| MbrolaMarker(espeakEVENT_PHONEME, (p->sourceix & 0x7ff) + clause_start_char, 0, ph->mnemonic); | |||||
| #endif | |||||
| sprintf(buf,"%s\t",WordToString(name)); | sprintf(buf,"%s\t",WordToString(name)); | ||||
| strcat(mbr_buf,buf); | strcat(mbr_buf,buf); | ||||
| #include "translate.h" | #include "translate.h" | ||||
| #include "wave.h" | #include "wave.h" | ||||
| const char *version_string = "1.39.14 02.Nov.08"; | |||||
| const char *version_string = "1.39.18 06.Nov.08"; | |||||
| const int version_phdata = 0x013900; | const int version_phdata = 0x013900; | ||||
| int option_device_number = -1; | int option_device_number = -1; |
| int n_phoneme_list=0; | int n_phoneme_list=0; | ||||
| PHONEME_LIST phoneme_list[N_PHONEME_LIST]; | PHONEME_LIST phoneme_list[N_PHONEME_LIST]; | ||||
| int mbrola_delay; | |||||
| char mbrola_name[20]; | char mbrola_name[20]; | ||||
| int speed_factor1; | int speed_factor1; |
| extern int vowel_transition[4]; | extern int vowel_transition[4]; | ||||
| extern int vowel_transition0, vowel_transition1; | extern int vowel_transition0, vowel_transition1; | ||||
| extern int mbrola_delay; | |||||
| extern char mbrola_name[20]; | extern char mbrola_name[20]; | ||||
| // from synthdata file | // from synthdata file |
| // start of unicode pages for character sets | // start of unicode pages for character sets | ||||
| #define OFFSET_GREEK 0x380 | #define OFFSET_GREEK 0x380 | ||||
| #define OFFSET_CYRILLIC 0x420 | #define OFFSET_CYRILLIC 0x420 | ||||
| #define OFFSET_ARMENIAN 0x530 | |||||
| #define OFFSET_DEVANAGARI 0x900 | #define OFFSET_DEVANAGARI 0x900 | ||||
| #define OFFSET_BENGALI 0x980 | #define OFFSET_BENGALI 0x980 | ||||
| #define OFFSET_TAMIL 0xb80 | #define OFFSET_TAMIL 0xb80 | ||||
| } | } | ||||
| break; | break; | ||||
| case L('h','y'): // Armenian | |||||
| { | |||||
| static const char hy_vowels[] = {0x31, 0x35, 0x37, 0x38, 0x3b, 0x48, 0x55, 0}; | |||||
| static const char hy_consonants[] = {0x32,0x33,0x34,0x36,0x39,0x3a,0x3c,0x3d,0x3e,0x3f, | |||||
| 0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,0x50,0x51,0x52,0x53,0x54,0x56,0}; | |||||
| tr = new Translator(); | |||||
| tr->langopts.stress_rule = 3; // default stress on final syllable | |||||
| tr->letter_bits_offset = OFFSET_ARMENIAN; | |||||
| memset(tr->letter_bits,0,sizeof(tr->letter_bits)); | |||||
| SetLetterBits(tr,LETTERGP_A,hy_vowels); | |||||
| SetLetterBits(tr,LETTERGP_C,hy_consonants); | |||||
| tr->langopts.max_initial_consonants = 4; | |||||
| } | |||||
| break; | |||||
| case L('i','d'): // Indonesian | case L('i','d'): // Indonesian | ||||
| { | { | ||||
| static const short stress_lengths_id[8] = {160, 200, 180, 180, 0, 0, 220, 240}; | static const short stress_lengths_id[8] = {160, 200, 180, 180, 0, 0, 220, 240}; | ||||
| tr->langopts.stress_rule = 0; | tr->langopts.stress_rule = 0; | ||||
| tr->langopts.spelling_stress = 1; | tr->langopts.spelling_stress = 1; | ||||
| tr->charset_a0 = charsets[4]; // ISO-8859-4 | tr->charset_a0 = charsets[4]; // ISO-8859-4 | ||||
| tr->langopts.numbers = 0x409; | |||||
| tr->langopts.stress_flags = 0x16; | |||||
| tr->langopts.numbers = 0x409 + 0x8000 + 0x10000; | |||||
| tr->langopts.stress_flags = 0x16 + 0x40000; | |||||
| } | } | ||||
| break; | break; | ||||
| dictionary_flags[0] &= ~FLAG_PAUSE1; | dictionary_flags[0] &= ~FLAG_PAUSE1; | ||||
| } | } | ||||
| if(wflags & FLAG_EMPHASIZED) | |||||
| if(wflags & FLAG_EMPHASIZED2) | |||||
| { | { | ||||
| // A word is indicated in the source text as stressed | // A word is indicated in the source text as stressed | ||||
| // Give it stress level 6 (for the intonation module) | // Give it stress level 6 (for the intonation module) | ||||
| ChangeWordStress(this,word_phonemes,6); | ChangeWordStress(this,word_phonemes,6); | ||||
| // if(!(wflags & FLAG_LAST_WORD)) // ?? omit pre-pause if it's the last word in the sentence? | |||||
| if(wflags & FLAG_EMPHASIZED) | |||||
| dictionary_flags[0] |= FLAG_PAUSE1; // precede by short pause | dictionary_flags[0] |= FLAG_PAUSE1; // precede by short pause | ||||
| } | } | ||||
| else | else | ||||
| int terminator; | int terminator; | ||||
| int tone; | int tone; | ||||
| int tone2; | |||||
| p_textinput = (char *)vp_input; | p_textinput = (char *)vp_input; | ||||
| p_wchar_input = (wchar_t *)vp_input; | p_wchar_input = (wchar_t *)vp_input; | ||||
| for(ix=0; ix<N_TR_SOURCE; ix++) | for(ix=0; ix<N_TR_SOURCE; ix++) | ||||
| charix[ix] = 0; | charix[ix] = 0; | ||||
| terminator = translator->ReadClause(f_text,source,charix,N_TR_SOURCE); | |||||
| terminator = translator->ReadClause(f_text, source, charix, N_TR_SOURCE, &tone2); | |||||
| charix[N_TR_SOURCE] = count_characters; | charix[N_TR_SOURCE] = count_characters; | ||||
| clause_pause = (terminator & 0xfff) * 10; // mS | clause_pause = (terminator & 0xfff) * 10; // mS | ||||
| tone = (terminator >> 12) & 0xf; | tone = (terminator >> 12) & 0xf; | ||||
| if(tone2 != 0) | |||||
| { | |||||
| // override the tone type | |||||
| tone = tone2; | |||||
| } | |||||
| for(p=source; *p != 0; p++) | for(p=source; *p != 0; p++) | ||||
| { | { | ||||
| c = '\''; | c = '\''; | ||||
| } | } | ||||
| if(c == CHAR_EMPHASIS) | |||||
| { | |||||
| // this character is a marker that the previous word is the focus of the clause | |||||
| c = ' '; | |||||
| word_flags |= FLAG_FOCUS; | |||||
| } | |||||
| c = TranslateChar(&source[source_index], prev_in,c, next_in, &char_inserted); // optional language specific function | c = TranslateChar(&source[source_index], prev_in,c, next_in, &char_inserted); // optional language specific function | ||||
| if(c == 8) | if(c == 8) | ||||
| continue; // ignore this character | continue; // ignore this character |
| #define FLAG_CAPITAL 0x200 /* pronunciation if initial letter is upper case */ | #define FLAG_CAPITAL 0x200 /* pronunciation if initial letter is upper case */ | ||||
| #define FLAG_ALLCAPS 0x400 // only if the word is all capitals | #define FLAG_ALLCAPS 0x400 // only if the word is all capitals | ||||
| #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 BITNUM_FLAG_HYPHENATED 0x2c | |||||
| // wordflags, flags in source word | // wordflags, flags in source word | ||||
| #define FLAG_HAS_PLURAL 0x4 /* upper-case word with s or 's lower-case ending */ | #define FLAG_HAS_PLURAL 0x4 /* upper-case word with s or 's lower-case ending */ | ||||
| #define FLAG_PHONEMES 0x8 /* word is phonemes */ | #define FLAG_PHONEMES 0x8 /* word is phonemes */ | ||||
| #define FLAG_LAST_WORD 0x10 /* last word in clause */ | #define FLAG_LAST_WORD 0x10 /* last word in clause */ | ||||
| //#define FLAG_SPELLING 0x20 // speak the word as individual letters | |||||
| #define FLAG_EMBEDDED 0x40 /* word is preceded by embedded commands */ | #define FLAG_EMBEDDED 0x40 /* word is preceded by embedded commands */ | ||||
| #define FLAG_HYPHEN 0x80 | #define FLAG_HYPHEN 0x80 | ||||
| #define FLAG_NOSPACE 0x100 // word is not seperated from previous word by a space | #define FLAG_NOSPACE 0x100 // word is not seperated from previous word by a space | ||||
| #define FLAG_FIRST_WORD 0x200 // first word in clause | #define FLAG_FIRST_WORD 0x200 // first word in clause | ||||
| #define FLAG_FOCUS 0x400 // the focus word of a clause | |||||
| #define FLAG_EMPHASIZED 0x800 | |||||
| #define FLAG_EMPHASIZED2 0xc00 // FLAG_FOCUS | FLAG_EMPHASIZED | |||||
| #define FLAG_DONT_SWITCH_TRANSLATOR 0x1000 | #define FLAG_DONT_SWITCH_TRANSLATOR 0x1000 | ||||
| #define FLAG_SUFFIX_REMOVED 0x2000 | #define FLAG_SUFFIX_REMOVED 0x2000 | ||||
| #define FLAG_HYPHEN_AFTER 0x4000 | #define FLAG_HYPHEN_AFTER 0x4000 | ||||
| #define FLAG_EMPHASIZED 0x8000 | |||||
| #define FLAG_NO_TRACE 0x10000 // passed to TranslateRules() to suppress dictionary lookup printout | #define FLAG_NO_TRACE 0x10000 // passed to TranslateRules() to suppress dictionary lookup printout | ||||
| #define FLAG_NO_PREFIX 0x20000 | #define FLAG_NO_PREFIX 0x20000 | ||||
| // bits 0-7 pause x 10mS, bits 12-14 intonation type, | // bits 0-7 pause x 10mS, bits 12-14 intonation type, | ||||
| // bit 19=sentence, bit 18=clause, bits 17=voice change | // bit 19=sentence, bit 18=clause, bits 17=voice change | ||||
| // bit 16 used to distinguish otherwise identical types | // bit 16 used to distinguish otherwise identical types | ||||
| // bit 20= punctuation character can be inside a word (Armenian) | |||||
| #define CLAUSE_BIT_SENTENCE 0x80000 | #define CLAUSE_BIT_SENTENCE 0x80000 | ||||
| #define CLAUSE_BIT_VOICE 0x20000 | #define CLAUSE_BIT_VOICE 0x20000 | ||||
| #define PUNCT_IN_WORD 0x100000 | |||||
| #define CLAUSE_NONE 0 + 0x04000 | #define CLAUSE_NONE 0 + 0x04000 | ||||
| #define CLAUSE_PARAGRAPH 70 + 0x80000 | #define CLAUSE_PARAGRAPH 70 + 0x80000 | ||||
| #define SAYAS_DIGITS 0x40 // + number of digits | #define SAYAS_DIGITS 0x40 // + number of digits | ||||
| #define SAYAS_DIGITS1 0xc1 | #define SAYAS_DIGITS1 0xc1 | ||||
| #define CHAR_EMPHASIS 0x0530 // this is an unused character code | |||||
| // Rule: | // Rule: | ||||
| // [4] [match] [1 pre] [2 post] [3 phonemes] 0 | // [4] [match] [1 pre] [2 post] [3 phonemes] 0 | ||||
| // match 1 pre 2 post 0 - use common phoneme string | // match 1 pre 2 post 0 - use common phoneme string | ||||
| // bit15= Give stress to the first unstressed syllable | // bit15= Give stress to the first unstressed syllable | ||||
| // bit16= Don't diminish consecutive syllables within a word. | // bit16= Don't diminish consecutive syllables within a word. | ||||
| // bit17= "priority" stress reduces other primary stress to "unstressed" not "secondary" | // bit17= "priority" stress reduces other primary stress to "unstressed" not "secondary" | ||||
| // bit18= don't lengthen short vowels more than long vowels at end-of-clause | |||||
| int stress_flags; | int stress_flags; | ||||
| int unstressed_wd1; // stress for $u word of 1 syllable | int unstressed_wd1; // stress for $u word of 1 syllable | ||||
| void MakePhonemeList(int post_pause, int new_sentence); | void MakePhonemeList(int post_pause, int new_sentence); | ||||
| int SubstitutePhonemes(PHONEME_LIST2 *plist_out); | int SubstitutePhonemes(PHONEME_LIST2 *plist_out); | ||||
| int ReadClause(FILE *f_in, char *buf, short *charix, int n_buf); | |||||
| int ReadClause(FILE *f_in, char *buf, short *charix, int n_buf, int *tone_type); | |||||
| int AnnouncePunctuation(int c1, int c2, char *buf, int ix); | int AnnouncePunctuation(int c1, int c2, char *buf, int ix); | ||||
| const char *LookupDict2(const char *word, const char *word2, char *phonetic, unsigned int *flags, int end_flags, WORD_TAB *wtab); | const char *LookupDict2(const char *word, const char *word2, char *phonetic, unsigned int *flags, int end_flags, WORD_TAB *wtab); |