 Reece Dunn
					
					14 years ago
						Reece Dunn
					
					14 years ago
				| durch $u+ $pause | durch $u+ $pause | ||||
| für fy:r $u+ $pause $only | für fy:r $u+ $pause $only | ||||
| gegen ge:g@n $u+ $pause | gegen ge:g@n $u+ $pause | ||||
| gegend ge:g@nt | |||||
| hin hIn | hin hIn | ||||
| in In $u+ $brk | in In $u+ $brk | ||||
| //(in die) %Ind%i: | //(in die) %Ind%i: | 
| // ***************************************************************************/ | // ***************************************************************************/ | ||||
| .L01 l r | .L01 l r | ||||
| .L02 c f h k p q s t z // unvoiced, except s+vowel | |||||
| .L02 c f h k p q s t z // unvoiced, except s+vowel | |||||
| // This file is UTF-8 encoded | // This file is UTF-8 encoded | ||||
| _) abb (a %ab | _) abb (a %ab | ||||
| _) abb (rev ab | _) abb (rev ab | ||||
| _) abd (+ apd | _) abd (+ apd | ||||
| _) abend A:b@nt | |||||
| _) aben (d A:b@n | |||||
| _) aberr ab_|Er | _) aberr ab_|Er | ||||
| _) ab (er@P2 'ap | _) ab (er@P2 'ap | ||||
| _) ab (i ap | _) ab (i ap | ||||
| a (C_ A: | a (C_ A: | ||||
| @) a (bl_ 'A: | @) a (bl_ 'A: | ||||
| @) a (bel_ 'A: | @) a (bel_ 'A: | ||||
| s) a (g A:Spionage | |||||
| s) a (g A: | |||||
| @l) a (g A: | @l) a (g A: | ||||
| schl) ag (ge A:k | schl) ag (ge A:k | ||||
| scl) a (g A: | scl) a (g A: | ||||
| b) b | b) b | ||||
| b (_N p | b (_N p | ||||
| b (L02 p | b (L02 p | ||||
| blich plIC | |||||
| b (sA b | b (sA b | ||||
| bt (_N pt | bt (_N pt | ||||
| ck k | ck k | ||||
| _) c (el S | _) c (el S | ||||
| fa) c (et ts | |||||
| _) cey tsaI | _) cey tsaI | ||||
| chef (_ SEf | chef (_ SEf | ||||
| _) c (ent ts | _) c (ent ts | ||||
| chip (_ tSIp // English | chip (_ tSIp // English | ||||
| bre) ch (en x | bre) ch (en x | ||||
| ch (ord k | |||||
| ch (or_ k | |||||
| ch (ör k | |||||
| chro kro: | chro kro: | ||||
| nä) chs (t Cs | nä) chs (t Cs | ||||
| wa) chstu (m kstu: | wa) chstu (m kstu: | ||||
| d) d | d) d | ||||
| d (_N t | d (_N t | ||||
| d (L02 t | d (L02 t | ||||
| dlich tlIC | |||||
| d (sA d | d (sA d | ||||
| ds (_ ts | ds (_ ts | ||||
| dt t | dt t | ||||
| g (g | g (g | ||||
| g (_N k | g (_N k | ||||
| g (L02 k | g (L02 k | ||||
| glich klIC | |||||
| g (sA g | g (sA g | ||||
| gd (_N kt | gd (_N kt | ||||
| _) gh (A g | _) gh (A g | ||||
| r) ien (@ IEn | r) ien (@ IEn | ||||
| &) ien (_ =I@n | &) ien (_ =I@n | ||||
| &b) ien (_ =i:@n | &b) ien (_ =i:@n | ||||
| g) ien (_ 'i:@n | |||||
| m) ien (_ 'i:@n | |||||
| @g) ien (_ 'i:@n | |||||
| @m) ien (_ 'i:@n | |||||
| ph) ien (_ 'i:@n | ph) ien (_ 'i:@n | ||||
| &n) ien (_ I@n | &n) ien (_ I@n | ||||
| p) ien (_ 'i:@n | |||||
| @p) ien (_ 'i:@n | |||||
| &r) ien (_ =i:@n | &r) ien (_ =i:@n | ||||
| ser) ien (_ 'i:@n | ser) ien (_ 'i:@n | ||||
| tter) ien (_ 'i:@n | tter) ien (_ 'i:@n | ||||
| gor) ien (_ 'i:@n | gor) ien (_ 'i:@n | ||||
| etr) ien (_ 'i:@n | etr) ien (_ 'i:@n | ||||
| dustr) ien (_ 'i:@n | dustr) ien (_ 'i:@n | ||||
| s) ien (_ 'i:@n | |||||
| t) ien (_ 'i:@n | |||||
| @s) ien (_ 'i:@n | |||||
| @t) ien (_ 'i:@n | |||||
| &) iens (_ =I;@ns | &) iens (_ =I;@ns | ||||
| ient (_ I'Ent | ient (_ I'Ent | ||||
| &) ienz (_ I'Ents | &) ienz (_ I'Ents | ||||
| m m | m m | ||||
| m) m | m) m | ||||
| manager manEdZ3r | |||||
| _) manch manC // for 'manchen' | _) manch manC // for 'manchen' | ||||
| marine mA:r'i:n@ | marine mA:r'i:n@ | ||||
| _) meß (@P3 m'Es | _) meß (@P3 m'Es | ||||
| r) oo (m u: | r) oo (m u: | ||||
| z) oo (m u: | z) oo (m u: | ||||
| &t) or (_ =o:r | &t) or (_ =o:r | ||||
| orches OrkEs | |||||
| &) oren (_ 'o:r@n | &) oren (_ 'o:r@n | ||||
| _) orts (@P4 'Orts | _) orts (@P4 'Orts | ||||
| oso (_ 'o:zo: | oso (_ 'o:zo: | ||||
| philie f'i:li: | philie f'i:li: | ||||
| _) photo f,o:to: | _) photo f,o:to: | ||||
| _) pro (@ %pro: | _) pro (@ %pro: | ||||
| _) probe pro:b@ | |||||
| po (em p%o: | po (em p%o: | ||||
| po (et p%o: | po (et p%o: | 
| z Z | z Z | ||||
| Dictionary hu_dict 2011-03-10 | |||||
| Dictionary hu_dict 2011-03-30 | |||||
| a A a: E e: i i: o | a A a: E e: i i: o | ||||
| o: u u: Y y y: Y: | o: u u: Y y y: Y: | ||||
| s2 t t2 tS ts v z Z | s2 t t2 tS ts v z Z | ||||
| Dictionary de_dict 2011-03-14 | |||||
| Dictionary de_dict 2011-04-01 | |||||
| 3 3: @ @- a A A: aI | 3 3: @ @- a A A: aI | ||||
| aU A~ e E E2 E: e: EI | |||||
| i I i2 i: n- o O o: | |||||
| OY U u: W y y: Y: | |||||
| aU A~ E E2 E: e: EI i | |||||
| I i2 i: n- o O o: OY | |||||
| U u: W y y: Y: | |||||
| * : ; b C d D dZ | * : ; b C d D dZ | ||||
| f g g# h j k l m | f g g# h j k l m | ||||
| ts v x z z; | ts v x z z; | ||||
| Dictionary en_dict 2011-03-09 | |||||
| Dictionary en_dict 2011-03-30 | |||||
| 0 3 3: @ @- @2 @5 @L | 0 3 3: @ @- @2 @5 @L | ||||
| a a# A: A@ aa aI aI@ aU | a a# A: A@ aa aI aI@ aU | ||||
| z Z | z Z | ||||
| Dictionary eo_dict 2010-08-27 | |||||
| Dictionary eo_dict 2011-04-01 | |||||
| @- a aI aU e eI eU i | @- a aI aU e eI eU i | ||||
| o oI u uI | o oI u uI | ||||
| t. th th. v w x z | t. th th. v w x z | ||||
| Dictionary ta_dict 2011-03-13 | |||||
| Dictionary ta_dict 2011-03-31 | |||||
| a a: aI aU e E e: i | a a: aI aU e E e: i | ||||
| I i: o o: u U u2 u: | I i: o o: u U u2 u: | ||||
| t tS v w x | t tS v w x | ||||
| Dictionary nl_dict 2011-03-13 | |||||
| Dictionary nl_dict 2011-03-30 | |||||
| 8 @ @- a A a: A~ e | 8 @ @- a A a: A~ e | ||||
| E E2 e: EI eU i I o | E E2 e: EI eU i I o | ||||
| z; Z; | z; Z; | ||||
| Dictionary ru_dict 2011-03-14 | |||||
| Dictionary ru_dict 2011-03-25 | |||||
| 8 @- a A e E E# E% | 8 @- a A e E E# E% | ||||
| E2 i I I# I3 I^ ja ju | E2 i I I# I3 I^ ja ju | ||||
| v w x z Z | v w x z Z | ||||
| Dictionary tr_dict 2011-01-28 | |||||
| Dictionary tr_dict 2011-03-17 | |||||
| @ a e E i I o O | @ a e E i I o O | ||||
| u U W y Y | u U W y Y | ||||
| z Z | z Z | ||||
| Dictionary ml_dict 2011-03-09 | |||||
| Dictionary ml_dict 2011-04-01 | |||||
| @ a a: aI aU e E e: | @ a a: aI aU e E e: | ||||
| i I i: o o: r- u u: | i I i: o o: r- u u: | ||||
| V y | V y | ||||
| : b bh c ch d d. dh | |||||
| dh. dZ f g gh h j J | |||||
| Jh k kh l l. m n N | |||||
| n. n^ p ph r R r. R2 | |||||
| s s. S; t t. th th. tS | |||||
| v w z | |||||
| #X1 #X2 : ; b bh c ch | |||||
| d d# d. dh dh. dZ f g | |||||
| gh h j J Jh k kh l | |||||
| l. m n N n. n^ p ph | |||||
| r R r. R2 s s. S; t | |||||
| t. th th. tS v w z | |||||
| Dictionary ne_dict 2008-12-16 | Dictionary ne_dict 2008-12-16 | ||||
| z Z z. | z Z z. | ||||
| Dictionary bg_dict 2011-03-12 | |||||
| Dictionary bg_dict 2011-03-25 | |||||
| @ a e i o u | @ a e i o u | ||||
| v w x X z | v w x X z | ||||
| Dictionary te_dict 2011-03-14 | |||||
| Dictionary te_dict 2011-03-22 | |||||
| a a: aI aU e E e: i | a a: aI aU e E e: i | ||||
| i: l- o o: r- u u: V | i: l- o o: r- u u: V | ||||
| p p# Q q r s S t | p p# Q q r s S t | ||||
| t# tS ts ts# v w x z | t# tS ts ts# v w x z | ||||
| Z | Z | ||||
| Dictionary si_dict 2011-03-16 | |||||
| & &: @ a a: aI aU e | |||||
| E e: i i: o o: u u: | |||||
| b d d. dZ f g h j | |||||
| k l l. m m# n N n# | |||||
| N# n. n.# n^ n^# p r s | |||||
| S t t. th tS v w z | 
| orange 0rI2ndZ | orange 0rI2ndZ | ||||
| orion 0r'aI@n | orion 0r'aI@n | ||||
| ordeal O@d'i@l | ordeal O@d'i@l | ||||
| oregano 0rIg'A:noU | |||||
| orphan O@f@n // orphaned | orphan O@f@n // orphaned | ||||
| outage $1 | outage $1 | ||||
| outback $1 | outback $1 | ||||
| remit ri:mIt | remit ri:mIt | ||||
| remit ri:m'It $verb | remit ri:m'It $verb | ||||
| remnant rEmn@nt | remnant rEmn@nt | ||||
| renal ri:n@L | |||||
| rendevous r0ndI2vu: | rendevous r0ndI2vu: | ||||
| rendezvous r0ndI2vu: | rendezvous r0ndI2vu: | ||||
| renegade rEn@geId | renegade rEn@geId | 
| _) o (Bal oU | _) o (Bal oU | ||||
| XC) o (Bal oU | XC) o (Bal oU | ||||
| X) o (By oU | X) o (By oU | ||||
| _) o (Cy+ 0 | |||||
| o (Be# oU | o (Be# oU | ||||
| o (BeCo_ 0 | o (BeCo_ 0 | ||||
| o (BenC oU | o (BenC oU | 
| zajlott $unstressend | zajlott $unstressend | ||||
| fordultak $unstressend | fordultak $unstressend | ||||
| vették $unstressend | vették $unstressend | ||||
| fordult $unstressend | |||||
| épül $unstressend | épül $unstressend | ||||
| bizonyítékok $unstressend | bizonyítékok $unstressend | ||||
| nyilvánításra $unstressend | nyilvánításra $unstressend | ||||
| állók $unstressend | állók $unstressend | ||||
| közöltek $unstressend | |||||
| fájlba $unstressend | |||||
| neve $unstressend | |||||
| csinál $unstressend | |||||
| különbséggel $unstressend | |||||
| újítás $unstressend | |||||
| példa $unstressend | |||||
| veszik $unstressend | |||||
| használni $unstressend | |||||
| használó $unstressend | |||||
| ötletek $unstressend | |||||
| visz $unstressend | |||||
| ugorni $unstressend | |||||
| nekünk $unstressend | |||||
| fejlődött $unstressend | |||||
| részemről $unstressend | |||||
| értettem $unstressend | |||||
| hívott $unstressend | |||||
| fellépések $unstressend | |||||
| tavaly $unstressend | |||||
| bizonyítani $unstressend | |||||
| ricsaj $unstressend | |||||
| tartani $unstressend | |||||
| pontján $unstressend | |||||
| létre $unstressend | |||||
| szervezetként $unstressend | |||||
| végez $unstressend | |||||
| munkáját $unstressend | |||||
| titkot $unstressend | |||||
| remélik $unstressend | |||||
| állítja $unstressend | |||||
| maradni $unstressend | |||||
| sorba $unstressend | |||||
| köthető $unstressend | |||||
| tekintik $unstressend | |||||
| vezetője $unstressend | |||||
| talált $unstressend | |||||
| kerülni $unstressend | |||||
| csomagokhoz $unstressend | |||||
| lépésként $unstressend | |||||
| vigyázni $unstressend | |||||
| válhat $unstressend | |||||
| fordulni $unstressend | |||||
| hozniuk $unstressend | |||||
| indítványt $unstressend | |||||
| alkotmánynak $unstressend | |||||
| csomagról $unstressend | |||||
| okozott $unstressend | |||||
| szerepelt $unstressend | |||||
| testület $unstressend | |||||
| kérhet $unstressend | |||||
| vezethet $unstressend | |||||
| tartaná $unstressend | |||||
| hangzik $unstressend | |||||
| kalkulál $unstressend | |||||
| szolgál $unstressend | |||||
| szánják $unstressend | |||||
| gondoltam $unstressend | |||||
| érzem $unstressend | |||||
| érzed $unstressend | |||||
| jellemző $unstressend | |||||
| // word pairs | // word pairs | ||||
| ma) ch (iná h | ma) ch (iná h | ||||
| oligar) ch h | oligar) ch h | ||||
| legpe) ch (es h: | legpe) ch (es h: | ||||
| mazo) ch (izm h | |||||
| mazo) ch (is h | |||||
| .group d | .group d | ||||
| d d | d d | ||||
| mó) d (javaslat d | mó) d (javaslat d | ||||
| rekor) d (szint d | rekor) d (szint d | ||||
| kambo) dzs dZ: | kambo) dzs dZ: | ||||
| föl) d (szerke d //földszerkezet word for example need spokening single d before sz letter | |||||
| harma) d (szint d | |||||
| .group dz | .group dz | ||||
| fogó) dz (kod ts | fogó) dz (kod ts | ||||
| rava) sz (ár s | rava) sz (ár s | ||||
| _ka) sztsze st|sE | _ka) sztsze st|sE | ||||
| szemete) szs (ák SZ | szemete) szs (ák SZ | ||||
| dro) sztsze (rző st|sE //drosztszerződés word need spokening st and single sE phoneme | |||||
| .group t | .group t | ||||
| t t | t t | ||||
| ha) t (cell t //for example hatcellás, hatcella word need spokening t before c letter. | ha) t (cell t //for example hatcellás, hatcella word need spokening t before c letter. | ||||
| pár) t (székház t | pár) t (székház t | ||||
| .group tj | .group tj | ||||
| C) tj c | C) tj c | ||||
| kür) tj c | kür) tj c | ||||
| ada) ts t|S //for example adatsor, adatsebesség words | ada) ts t|S //for example adatsor, adatsebesség words | ||||
| ada) tsz t|s //for example adatszolgáltatás word | ada) tsz t|s //for example adatszolgáltatás word | ||||
| gondola) ts (or t|S | gondola) ts (or t|S | ||||
| művele) ts (or t|S | |||||
| művele) ts (o t|S | |||||
| tábláza) ts (or t|S | tábláza) ts (or t|S | ||||
| vizsgála) ts (or t|S | vizsgála) ts (or t|S | ||||
| állapo) ts (or t|S | állapo) ts (or t|S | ||||
| gyakorla) ts (oroz t|S | gyakorla) ts (oroz t|S | ||||
| támogato) ts (ág tS: | támogato) ts (ág tS: | ||||
| .group tt | .group tt | ||||
| tt t: | tt t: | ||||
| ttgy t:J | ttgy t:J | 
| weekend _^_EN | weekend _^_EN | ||||
| // verbs where -ent is not a stressed ending | |||||
| bakent $alt | |||||
| effent $alt | |||||
| jegent $alt | |||||
| kerstent $alt | |||||
| ketent $alt | |||||
| loochent $alt | |||||
| oefent $alt | |||||
| opent $alt | |||||
| regent $alt | |||||
| rekent $alt | |||||
| stevent $alt | |||||
| tekent $alt | |||||
| wapent $alt | |||||
| zegent $alt | |||||
| // words where -er is not a stressed verb ending | // words where -er is not a stressed verb ending | ||||
| achter $alt | achter $alt | ||||
| amandel $alt | amandel $alt | ||||
| appel $alt | appel $alt | ||||
| artikel $alt | artikel $alt | ||||
| beginsel $alt | |||||
| ginsel $alt // beginsel | |||||
| discipel dIs'ip@l $alt | discipel dIs'ip@l $alt | ||||
| engel $alt | engel $alt | ||||
| fabel $alt | fabel $alt | ||||
| gruwel $alt | gruwel $alt | ||||
| heuvel $alt | heuvel $alt | ||||
| hommel $alt | |||||
| letsel $alt | letsel $alt | ||||
| mazel $alt | mazel $alt | ||||
| meubel $alt | meubel $alt | ||||
| accessoires aksEsv#'ar@s | accessoires aksEsv#'ar@s | ||||
| actiepunt Aksip8nt | actiepunt Aksip8nt | ||||
| agenda $2 | agenda $2 | ||||
| alles Al@s | |||||
| amino $1 | amino $1 | ||||
| amnestie $3 | amnestie $3 | ||||
| april a:pr'Il | april a:pr'Il | ||||
| armand _^_FR | armand _^_FR | ||||
| artikel art,ik@l | |||||
| augustus VUQ'8st8s | augustus VUQ'8st8s | ||||
| be $abbrev // used as domain abbrev for Belgium and in a lot of other names | be $abbrev // used as domain abbrev for Belgium and in a lot of other names | ||||
| beha be:_h'a: | beha be:_h'a: | ||||
| reservoir re:zErvv#'a:r | reservoir re:zErvv#'a:r | ||||
| revanche r@vA~nS | revanche r@vA~nS | ||||
| regime $2 | regime $2 | ||||
| roman $2 | |||||
| sacristie $3 | sacristie $3 | ||||
| saint _^_FR | saint _^_FR | ||||
| salomo $1 | salomo $1 | 
| @) aard (_@S4 a:rt | @) aard (_@S4 a:rt | ||||
| aa (rd_ 'a: | aa (rd_ 'a: | ||||
| aa (C_ 'a: | aa (C_ 'a: | ||||
| z) aa (m_ a: | |||||
| @) abel (_ 'a:bE2l | @) abel (_ 'a:bE2l | ||||
| @) abele (_ 'a:b@l@ | @) abele (_ 'a:b@l@ | ||||
| m) ach (in %a:S | m) ach (in %a:S | ||||
| dt t | dt t | ||||
| ds (_N ts | ds (_N ts | ||||
| // _) de (CC@P2 d@ // Used a lot in family names | // _) de (CC@P2 d@ // Used a lot in family names | ||||
| _) de (zelf d@ | |||||
| .group e | .group e | ||||
| &) el (de_$p_alt =@l | &) el (de_$p_alt =@l | ||||
| &) el (den_$p_alt =@l | &) el (den_$p_alt =@l | ||||
| &) el (end_$p_alt =@l | &) el (end_$p_alt =@l | ||||
| &) el (ing_$p_alt =@l | |||||
| &) el (ingen_$p_alt =@l | |||||
| &) er (_$p_alt =@r | &) er (_$p_alt =@r | ||||
| &) er (e_$p_alt =@r | &) er (e_$p_alt =@r | ||||
| &) er (en_$p_alt =@r | &) er (en_$p_alt =@r | ||||
| &) elijks @l@ks | &) elijks @l@ks | ||||
| &) em (_ @m | &) em (_ @m | ||||
| &) e (ment @ | &) e (ment @ | ||||
| &) e (nissen_ @ | |||||
| &) en (_S2qd @n | &) en (_S2qd @n | ||||
| &) ens (_S3q @ns | &) ens (_S3q @ns | ||||
| &) end (_ @nd | &) end (_ @nd | ||||
| &) ende (_ @nd@ | &) ende (_ @nd@ | ||||
| &) enden (_ @nd@n | &) enden (_ @nd@n | ||||
| eden e:d@n | eden e:d@n | ||||
| &) ent (_$w_alt =@nt | |||||
| @) ent (_ 'Ent | @) ent (_ 'Ent | ||||
| @) ent (e_ 'Ent | @) ent (e_ 'Ent | ||||
| @) ent (en_ 'Ent | @) ent (en_ 'Ent | ||||
| @) ent (er_ 'Ent | @) ent (er_ 'Ent | ||||
| @) ent (ere_ 'Ent | |||||
| @) ent (st_ 'Ent | |||||
| @) ent (ste_ 'Ent | |||||
| ag) ent 'Ent | ag) ent 'Ent | ||||
| &) er (_ @r | &) er (_ @r | ||||
| &) ere (_ @r@ | &) ere (_ @r@ | ||||
| &) er (en_$p_alt @r // where 'eren' is not a verb ending | &) er (en_$p_alt @r // where 'eren' is not a verb ending | ||||
| eren (_ 'I:r@n | eren (_ 'I:r@n | ||||
| @j) es (_ @s | |||||
| @) es (_S2qd 'Es | @) es (_S2qd 'Es | ||||
| @) essen (_S5qd'Es@n | @) essen (_S5qd'Es@n | ||||
| @) eres (_S4qd @r'Es | @) eres (_S4qd @r'Es | ||||
| @) eressen (_S7sq @r'Es@n | |||||
| @) eressen (_S7sq @r'Es@n | |||||
| @) etten (_S3 @n | @) etten (_S3 @n | ||||
| @) es (_$p_alt @s // for wors which end on [@] with multiple on 's'. | @) es (_$p_alt @s // for wors which end on [@] with multiple on 's'. | ||||
| euille @'y | euille @'y | ||||
| &) e (nB@ E2 | &) e (nB@ E2 | ||||
| id) e (nt E | id) e (nt E | ||||
| _) er (@P2 Er | _) er (@P2 Er | ||||
| _) erger ErQ@r // ergeren | |||||
| &) era (_ @ra: | &) era (_ @ra: | ||||
| @) e (raar_ @ | @) e (raar_ @ | ||||
| &) e (rC@ E2 | &) e (rC@ E2 | ||||
| gg Q | gg Q | ||||
| _) ge (@P2 Q@ | _) ge (@P2 Q@ | ||||
| ge (bied Q@ | |||||
| _) gee Qe: | _) gee Qe: | ||||
| gener (aal Q,e:n@r | gener (aal Q,e:n@r | ||||
| _) gelijk Q@lEIk | _) gelijk Q@lEIk | ||||
| _) her (@P3 hEr | _) her (@P3 hEr | ||||
| _) her (en hI:r | _) her (en hI:r | ||||
| _) herinn h%ErIn // herinneren | |||||
| _) hersen h'Ers@n | |||||
| &) heid (_S4 hEIt | &) heid (_S4 hEIt | ||||
| ie (rd_ 'i | ie (rd_ 'i | ||||
| @) ig (_S2dq @x | @) ig (_S2dq @x | ||||
| @) ige (_ @Q@ | @) ige (_ @Q@ | ||||
| @) igen (_ @Q@n | |||||
| @) igen (_ @Q@n | |||||
| @) iger (_ @Q@r | |||||
| @) igere (_ @Q@r@ | |||||
| @) igst (_ @Qst | |||||
| @) igste (_ @Qst@ | |||||
| ij (_ 'EI | ij (_ 'EI | ||||
| ij (e_ 'EI | ij (e_ 'EI | ||||
| @) ij (n_ 'EI | @) ij (n_ 'EI | ||||
| &) lijk (_S4 l@k | &) lijk (_S4 l@k | ||||
| &) lijke (_S5 l@k@ | &) lijke (_S5 l@k@ | ||||
| &) lijken (_S6 l@k@n | &) lijken (_S6 l@k@n | ||||
| &) lijker (_S6 l@k@r | |||||
| &) lijkere (_S7 l@k@r@ | |||||
| &) lijkst (_S6 l@kst | |||||
| &) lijkste (_S7 l@kst@ | |||||
| &) laan (_S4 la:n | &) laan (_S4 la:n | ||||
| _) lange (@P5 laN@ | _) lange (@P5 laN@ | ||||
| @) loog (_ lo:x | @) loog (_ lo:x | ||||
| _) na (C@@P2 n'a: | _) na (C@@P2 n'a: | ||||
| _) na (tion na: | _) na (tion na: | ||||
| _) na (der na: | _) na (der na: | ||||
| _) natuur na:t'yr | |||||
| _) noord (@P5 no:rd | _) noord (@P5 no:rd | ||||
| _) nieuws (@P6 n'iws | _) nieuws (@P6 n'iws | ||||
| @@) nis (_@S3 nIs | @@) nis (_@S3 nIs | ||||
| @@) nisen (_@S5 nIs@n | |||||
| .group o | .group o | ||||
| _) uit (@P3 'Wyt | _) uit (@P3 'Wyt | ||||
| u (re_ 'y | u (re_ 'y | ||||
| @) ute (_ 'yt | @) ute (_ 'yt | ||||
| uu (r_ 'y | |||||
| .group v | .group v | ||||
| _) ver (@P3 v@r | _) ver (@P3 v@r | ||||
| _) ver (sie_ vEr | _) ver (sie_ vEr | ||||
| _) verder vErd@r | _) verder vErd@r | ||||
| _) verge (le v@rQ'e: | |||||
| _) voort (@P5 v'O:rt | _) voort (@P5 v'O:rt | ||||
| $ d'OlAr | $ d'OlAr | ||||
| , (D k'Oma: | , (D k'Oma: | ||||
| __) - (_D m'In | __) - (_D m'In | ||||
| @) 's (_S2 s | |||||
| _6X SE2z;d;d;Is;'jat | _6X SE2z;d;d;Is;'jat | ||||
| _7X s;'emd;E2s;Vt | _7X s;'emd;E2s;Vt | ||||
| _8X v'os;E2md;E2s;Vt | _8X v'os;E2md;E2s;Vt | ||||
| _9X d;E2v;In'ostO | |||||
| _9X d;evIn'ostO | |||||
| _0C st'o | _0C st'o | ||||
| _2C dv;'es;t;I | _2C dv;'es;t;I | ||||
| _3C tr;'ista | _3C tr;'ista | ||||
| _6C S,E#s;t;s'ot | _6C S,E#s;t;s'ot | ||||
| _7C s;,Ims'ot | _7C s;,Ims'ot | ||||
| _8C vOs;Ims'ot | _8C vOs;Ims'ot | ||||
| _9C dev;Vn'ostO | |||||
| _9C devits'ot | |||||
| _1MA1 t'ys;ItS;V // no '1' before thousand | _1MA1 t'ys;ItS;V // no '1' before thousand | ||||
| _0MA1 t'ys;ItS;i | _0MA1 t'ys;ItS;i | ||||
| _0M1 t'ys;VtS; | _0M1 t'ys;VtS; | 
| _10 pattU | _10 pattU | ||||
| _1X padin | _1X padin | ||||
| _11 patinonRU | _11 patinonRU | ||||
| _12 pVnniren.d.U | |||||
| _12 pVnnirVn.d.U | |||||
| _19 pattonbVdU | _19 pattonbVdU | ||||
| _20 irUbVdU | _20 irUbVdU | 
| ோ ோ | ோ ோ | ||||
| ௌ ௌ | ௌ ௌ | ||||
| // க is k when preceded by these | // க is k when preceded by these | ||||
| .L01 ஷ் ஸ் ட் | .L01 ஷ் ஸ் ட் | ||||
| .L06 க ஹ | .L06 க ஹ | ||||
| // words before "bottle" | // words before "bottle" | ||||
| .L10 பீர் கலர் சாராய சோடா தண்ணி தண்ணீர் பிராந்தி வாட்டர் விஸ்கி | |||||
| .L10 பீர் கலர் சாராய சோடா தண்ணி தண்ணீர் பிராந்தி வாட்டர் விஸ்கி பிளாஸ்டிக் ப்ளாஸ்டிக் | |||||
| // words after "booga" | |||||
| .L11 வாழ்க்கை பூமி விருந்த மனிதன | |||||
| // consonants | // consonants | ||||
| _) க (தியில் gV | _) க (தியில் gV | ||||
| _) க (தியை gV | _) க (தியை gV | ||||
| _) க (ந்தர்வ gV | _) க (ந்தர்வ gV | ||||
| _) க (னக்க gV | |||||
| _) க (னத் gV | _) க (னத் gV | ||||
| _) க (னம gV | _) க (னம gV | ||||
| _) கப் (L04ா gVp | _) கப் (L04ா gVp | ||||
| _) க (ிரிதர g | _) க (ிரிதர g | ||||
| _) கிரிஸ்டோப (ர krist.o:fV | _) கிரிஸ்டோப (ர krist.o:fV | ||||
| _) கி (ரீட k | _) கி (ரீட k | ||||
| _) கி (ரீன g | |||||
| _) கி (ரீன்லாந்த g | _) கி (ரீன்லாந்த g | ||||
| _) கி (ரீம k | _) கி (ரீம k | ||||
| _) க (ிரீஷ g | _) க (ிரீஷ g | ||||
| _) க (ுருக்கள g | _) க (ுருக்கள g | ||||
| _) க (ுருக்குல g | _) க (ுருக்குல g | ||||
| _) க (ுருசாமி g | _) க (ுருசாமி g | ||||
| _) க (ுருஜி g | |||||
| _) க (ுருதேவ g | _) க (ுருதேவ g | ||||
| _) க (ுருநா g | _) க (ுருநா g | ||||
| _) க (ுருபூஜை g | _) க (ுருபூஜை g | ||||
| _) க (ுருப்பெயர g | _) க (ுருப்பெயர g | ||||
| _) க (ுருமார g | _) க (ுருமார g | ||||
| _) க (ுருமூர்த்தி g | |||||
| _) க (ுருரா g | _) க (ுருரா g | ||||
| _) க (ுருவா g | _) க (ுருவா g | ||||
| _) க (ுருவாய g | _) க (ுருவாய g | ||||
| _) க் (ரவுண்ட g | _) க் (ரவுண்ட g | ||||
| _) க் (ரிகோரிய g | _) க் (ரிகோரிய g | ||||
| _) க்ரிஸ்டோப (ர krist.o:fV | _) க்ரிஸ்டோப (ர krist.o:fV | ||||
| _) க் (ரீன g | |||||
| _) க் (ரூப g | _) க் (ரூப g | ||||
| _) க் (ரௌண்ட g | _) க் (ரௌண்ட g | ||||
| _) க்வ (A kw | _) க்வ (A kw | ||||
| _மாளவி) க (ா k | _மாளவி) க (ா k | ||||
| _மோனி) க (ா k | _மோனி) க (ா k | ||||
| _மௌனி) க (ா k | _மௌனி) க (ா k | ||||
| _ஸ்ரீலங்) க (ா k | |||||
| _ஹன்L04ி) க (ா k | _ஹன்L04ி) க (ா k | ||||
| _ஹாங்) க (ாங் k | _ஹாங்) க (ாங் k | ||||
| _தென்) க (ாசி k | _தென்) க (ாசி k | ||||
| அ) க்க (ினி gg | அ) க்க (ினி gg | ||||
| கோபா) க்க (ினி gg | கோபா) க்க (ினி gg | ||||
| _கவிதா) க்க (ினி gg | _கவிதா) க்க (ினி gg | ||||
| _வேதா) க்க (ினி gg | |||||
| _யோ) க்க (ிய gg | _யோ) க்க (ிய gg | ||||
| அயோ) க்க (ிய gg | அயோ) க்க (ிய gg | ||||
| ஆரோ) க்க (ிய gg | ஆரோ) க்க (ிய gg | ||||
| கு) க்கி (ராம gg | கு) க்கி (ராம gg | ||||
| அ) க்கி (ராம gg | அ) க்கி (ராம gg | ||||
| இ) க்கி (ராம gg | இ) க்கி (ராம gg | ||||
| L03) க்க (ுகை gg | |||||
| _மு) க்க (ுண gg | _மு) க்க (ுண gg | ||||
| அணு) க்க (ுண்ட gg | அணு) க்க (ுண்ட gg | ||||
| _துப்பாக்கி) க்க (ுண்ட gg | _துப்பாக்கி) க்க (ுண்ட gg | ||||
| _செ) க்யூரிட (ி kjU:rit. | _செ) க்யூரிட (ி kjU:rit. | ||||
| _ச) க்ரப (ாணி krVp | _ச) க்ரப (ாணி krVp | ||||
| வி) க (்ரம k | வி) க (்ரம k | ||||
| _ரெ) க்ரூட் krU:t. | |||||
| ஆ) க (்ரோஷ k | ஆ) க (்ரோஷ k | ||||
| _பை) க் (ல_ k | _பை) க் (ல_ k | ||||
| என்சை) க்லோப (ீடியா klo:p | என்சை) க்லோப (ீடியா klo:p | ||||
| _) சாக்லேட் tSa:kle:t. | _) சாக்லேட் tSa:kle:t. | ||||
| _) ச (ாணக்கிய tS | _) ச (ாணக்கிய tS | ||||
| ச (ாந்தி s. | ச (ாந்தி s. | ||||
| _) சாந்த (ின tSa:nd | |||||
| _தே) ச (ாந்திர s | _தே) ச (ாந்திர s | ||||
| _) சாந்த (ில tSa:nd | |||||
| _) ச (ான்ஸ tS | _) ச (ான்ஸ tS | ||||
| _) சாப் (ளின tSa:p | _) சாப் (ளின tSa:p | ||||
| _) ச (ாமுண்ட tS | _) ச (ாமுண்ட tS | ||||
| இராவணே) சு (வர s | இராவணே) சு (வர s | ||||
| ராவணே) சு (வர s | ராவணே) சு (வர s | ||||
| _) சுவர்க்க svVrggV# | _) சுவர்க்க svVrggV# | ||||
| _) சுவர்க்க (ோழி suvVrkk | |||||
| _) சு (வாச s | _) சு (வாச s | ||||
| சு (வாதீன s | சு (வாதீன s | ||||
| சு (வாமி s | சு (வாமி s | ||||
| _) செயின்ட sejint.V# | _) செயின்ட sejint.V# | ||||
| _) ச (ெய்ன tS | _) ச (ெய்ன tS | ||||
| _) செய்ன்ட sejnt.V# | _) செய்ன்ட sejnt.V# | ||||
| _) ச (ெர்னோபில tS | |||||
| _) ச (ெல்லக்குட்டி tS | _) ச (ெல்லக்குட்டி tS | ||||
| _) ச (ெல்லத்துக்கு tS | _) ச (ெல்லத்துக்கு tS | ||||
| _) ச (ெல்லத்தை tS | _) ச (ெல்லத்தை tS | ||||
| _) ச (ெல்லப்ப tS | |||||
| _) ச (ெல்லப்பன tS | |||||
| _) ச (ெல்லப்பா tS | |||||
| _) ச (ெல்லப்பிள்ளை tS | |||||
| _) ச (ெல்லப்பெண் tS | |||||
| _) ச (ெல்லப்பையன tS | |||||
| _) ச (ெல்லமா tS | _) ச (ெல்லமா tS | ||||
| _) ச (ெஸ் tS | _) ச (ெஸ் tS | ||||
| _) ச (ேஞ்ச tS | _) ச (ேஞ்ச tS | ||||
| அர்ஜண்) ட t.V# | அர்ஜண்) ட t.V# | ||||
| அர்ஜெண்) ட t.V# | அர்ஜெண்) ட t.V# | ||||
| இண்டர்மீடியே) ட t.V# | இண்டர்மீடியே) ட t.V# | ||||
| _) ட (ஃப் t.V | |||||
| _) ட (க்கர t.V | _) ட (க்கர t.V | ||||
| ங்) ட (ன t.V // -ington | ங்) ட (ன t.V // -ington | ||||
| _நியூ) ட (ன t.V | _நியூ) ட (ன t.V | ||||
| _) டாங்க (ர t.a:NkV | _) டாங்க (ர t.a:NkV | ||||
| _) டாங்க (ி t.a:Nk | _) டாங்க (ி t.a:Nk | ||||
| _) டாட (ா t.a:t. | _) டாட (ா t.a:t. | ||||
| _) டானிக் t.a:nik | |||||
| _) ட (ான்சானிய t. | _) ட (ான்சானிய t. | ||||
| _) ட (ான்ஜானிய t. | _) ட (ான்ஜானிய t. | ||||
| _) டாபிக் t.a:pik | |||||
| _) ட (ாமி t. | |||||
| அண்) டார்டிக t.a:rt.ikV# | அண்) டார்டிக t.a:rt.ikV# | ||||
| _) ட (ாலமி t. | _) ட (ாலமி t. | ||||
| _) ட (ால்ஸ்டாய t. | _) ட (ால்ஸ்டாய t. | ||||
| _) ட (ாஸ்மாக் t. | _) ட (ாஸ்மாக் t. | ||||
| _டியூ) ட (ி t. | _டியூ) ட (ி t. | ||||
| _ட்யூ) ட (ி t. | _ட்யூ) ட (ி t. | ||||
| _சேஃப்) ட (ி t. | |||||
| _ராயல்) ட (ி t. | _ராயல்) ட (ி t. | ||||
| _க்வாலி) ட (ி t. | _க்வாலி) ட (ி t. | ||||
| _நாவல்) ட (ி t. | _நாவல்) ட (ி t. | ||||
| _) டிர (ஸ d.re | _) டிர (ஸ d.re | ||||
| _) டிர (ஸ்ட t.rV | _) டிர (ஸ்ட t.rV | ||||
| _) டிராஃபிக் t.ra:fik | _) டிராஃபிக் t.ra:fik | ||||
| _) டி (ராகுலா d. | |||||
| _) டிராக் t.ra:k | _) டிராக் t.ra:k | ||||
| _காண்) டி (ராக்டர t. | _காண்) டி (ராக்டர t. | ||||
| _) டி (ராஜ t. | _) டி (ராஜ t. | ||||
| _) டி (ராவல t. | _) டி (ராவல t. | ||||
| _) டி (ராவெல t. | _) டி (ராவெல t. | ||||
| _) டிரிக (ர t.riggV | _) டிரிக (ர t.riggV | ||||
| _) டிரிக் t.rik | |||||
| _) டிரிக்க (ர t.riggV | _) டிரிக்க (ர t.riggV | ||||
| _) டி (ரிம் t. | _) டி (ரிம் t. | ||||
| _) டிரீட் t.ri:t. | |||||
| _) டிரெயி(லர t.rej | _) டிரெயி(லர t.rej | ||||
| _) டி (ரெயின t. | _) டி (ரெயின t. | ||||
| _) டி (ரெய்லர t. | _) டி (ரெய்லர t. | ||||
| _) ட (ோக்கியோ t. | _) ட (ோக்கியோ t. | ||||
| _) டோரண்ட (ோ t.o:rVn.t. | _) டோரண்ட (ோ t.o:rVn.t. | ||||
| _ப்ரி) ட (ோரிய t. | _ப்ரி) ட (ோரிய t. | ||||
| @மெண்) ட் t. // -ment | |||||
| இண்டர்நெ) ட் t. | இண்டர்நெ) ட் t. | ||||
| _ல) ட்ட d.d.V# | _ல) ட்ட d.d.V# | ||||
| _ரெ) ட்ட (ியா d.d. | _ரெ) ட்ட (ியா d.d. | ||||
| _) ட் (ராவல t. | _) ட் (ராவல t. | ||||
| _) ட் (ராவெல t. | _) ட் (ராவெல t. | ||||
| _) ட்ரிக (ர t.riggV | _) ட்ரிக (ர t.riggV | ||||
| _) ட்ரிக் t.rik | |||||
| _) ட்ரிக்க (ர t.riggV | _) ட்ரிக்க (ர t.riggV | ||||
| _) ட் (ரிம் t. | _) ட் (ரிம் t. | ||||
| _) ட்ரீட் t.ri:t. | |||||
| _வி) ட் (ரு t. | _வி) ட் (ரு t. | ||||
| _கே) ட் (ரு t. | _கே) ட் (ரு t. | ||||
| _போ) ட் (ரு t. | _போ) ட் (ரு t. | ||||
| _கூ) ட் (ல t. | _கூ) ட் (ல t. | ||||
| _நா) ட் (ல t. | _நா) ட் (ல t. | ||||
| _பா) ட் (ல t. | _பா) ட் (ல t. | ||||
| _மே) ட் (ல t. | |||||
| _ரூ) ட் (ல t. | _ரூ) ட் (ல t. | ||||
| _நோ) ட் (ல t. | _நோ) ட் (ல t. | ||||
| _ரோ) ட் (ல t. | _ரோ) ட் (ல t. | ||||
| _) த (ருமத் dV | _) த (ருமத் dV | ||||
| _) த (ருமன dV | _) த (ருமன dV | ||||
| _) தருமப (ுரி dVrUmVp | _) தருமப (ுரி dVrUmVp | ||||
| _) த (ருமம dV | |||||
| _) த (ருமர dV | _) த (ருமர dV | ||||
| _) த (ருமி dV | _) த (ருமி dV | ||||
| _) த (ர்க dV | _) த (ர்க dV | ||||
| _) த (ாதா d | _) த (ாதா d | ||||
| _) த (ானங் d | _) த (ானங் d | ||||
| _) த (ானத் d | _) த (ானத் d | ||||
| _) த (ானப் d | |||||
| _) த (ானமா d | _) த (ானமா d | ||||
| _) த (ானிய d | _) த (ானிய d | ||||
| _) த (ானியங்கி t | _) த (ானியங்கி t | ||||
| _) த (ுச்சாதனன d | _) த (ுச்சாதனன d | ||||
| _) த (ுட்ட d | _) த (ுட்ட d | ||||
| _) த (ுபாய d | _) த (ுபாய d | ||||
| _) த (ுபாஷி d | |||||
| _) த (ுப்பட்டா d | _) த (ுப்பட்டா d | ||||
| _) த (ுமளி d | _) த (ுமளி d | ||||
| _) த (ுரதிருஷ்ட d | _) த (ுரதிருஷ்ட d | ||||
| _சீ) த (ா t | _சீ) த (ா t | ||||
| _ல) த (ா t | _ல) த (ா t | ||||
| _சபி) த (ா t | _சபி) த (ா t | ||||
| _சபீ) த (ா t | |||||
| அனி) த (ா t | அனி) த (ா t | ||||
| சுஜா) த (ா t | சுஜா) த (ா t | ||||
| லலி) த (ா t | லலி) த (ா t | ||||
| _சுனி) த (ா t | _சுனி) த (ா t | ||||
| _ஹரி) த (ா t | |||||
| _வனி) த (ா t | _வனி) த (ா t | ||||
| _வினி) த (ா t | _வினி) த (ா t | ||||
| _நிவேதி) த (ா t | _நிவேதி) த (ா t | ||||
| வாசந்) த (ி t | வாசந்) த (ி t | ||||
| _கோம) த (ி t | _கோம) த (ி t | ||||
| ஜெயந்) த (ி t | ஜெயந்) த (ி t | ||||
| _துஷ்யந்) த (ி t | |||||
| _பார்வ) த (ி t | _பார்வ) த (ி t | ||||
| _பிரசார்_பார) த (ி t | _பிரசார்_பார) த (ி t | ||||
| பிரபாவ) த (ி t | பிரபாவ) த (ி t | ||||
| _) ப (லப்பரீட்சை bV | _) ப (லப்பரீட்சை bV | ||||
| _) ப (லம bV | _) ப (லம bV | ||||
| _) ப (லமடங்க pV | _) ப (லமடங்க pV | ||||
| _) ப (லமாடி pV | |||||
| _) ப (லமுறை pV | _) ப (லமுறை pV | ||||
| _) ப (லமொழி pV | _) ப (லமொழி pV | ||||
| _) ப (லராம bV | _) ப (லராம bV | ||||
| _) ப (ாணமு b | _) ப (ாணமு b | ||||
| _) ப (ாணி b | _) ப (ாணி b | ||||
| _) ப (ாதிக்க b | _) ப (ாதிக்க b | ||||
| _) ப (ாதிக்கண் p | |||||
| _) ப (ாதிக்கு_ p | _) ப (ாதிக்கு_ p | ||||
| _) ப (ாதிக்கும்_குறை p | _) ப (ாதிக்கும்_குறை p | ||||
| _) ப (ாதிக்கும்_மேற் p | _) ப (ாதிக்கும்_மேற் p | ||||
| _) ப (ாரிஸ்டர b | _) ப (ாரிஸ்டர b | ||||
| _) ப (ார்L04லோனா b | _) ப (ார்L04லோனா b | ||||
| _) ப (ார்கவி b | _) ப (ார்கவி b | ||||
| _) ப (ார்டர b | |||||
| _) ப (ார்ம f | _) ப (ார்ம f | ||||
| _) ப (ாலக b | _) ப (ாலக b | ||||
| _) ப (ாலக் p | _) ப (ாலக் p | ||||
| _) ப (ாலக்காட p | _) ப (ாலக்காட p | ||||
| _) ப (ாலச b | _) ப (ாலச b | ||||
| _) ப (ாலதண் b | _) ப (ாலதண் b | ||||
| _) ப (ாலன b | |||||
| _) பாலப (ாட ba:lVp | _) பாலப (ாட ba:lVp | ||||
| _) ப (ாலமுர b | _) ப (ாலமுர b | ||||
| _) ப (ாலய்யா b | _) ப (ாலய்யா b | ||||
| _) புரப (L04ர profV | _) புரப (L04ர profV | ||||
| _) புரபொ (சர profV | _) புரபொ (சர profV | ||||
| _) பு (ரவுச b | _) பு (ரவுச b | ||||
| _) ப (ுருடா b | |||||
| _) புரொப (சர profV | _) புரொப (சர profV | ||||
| _) புரொபொ (சர profV | _) புரொபொ (சர profV | ||||
| _) ப (ுரோக்கர b | _) ப (ுரோக்கர b | ||||
| _) ப (ொம்மன b | _) ப (ொம்மன b | ||||
| _) ப (ொம்மல b | _) ப (ொம்மல b | ||||
| _) ப (ொம்மை b | _) ப (ொம்மை b | ||||
| _) ப (ோக_L11 b | |||||
| _) ப (ோகங்க b | _) ப (ோகங்க b | ||||
| _) ப (ோகத்த b | |||||
| _) ப (ோகத்திற்க b | _) ப (ோகத்திற்க b | ||||
| _) ப (ோகத்தில b | _) ப (ோகத்தில b | ||||
| _) ப (ோகத்துக்க b | _) ப (ோகத்துக்க b | ||||
| _ஒலி) ப (ரப் pV | _ஒலி) ப (ரப் pV | ||||
| _ஒளி) ப (ரப் pV | _ஒளி) ப (ரப் pV | ||||
| வீர) ப (ராக்கிரம pV | வீர) ப (ராக்கிரம pV | ||||
| _மறு) ப (ரிசீலனை pV | |||||
| ஆ) ப (ரேசன pV | ஆ) ப (ரேசன pV | ||||
| ஆ) ப (ரேஷன pV | ஆ) ப (ரேஷன pV | ||||
| _கார்) ப (ரேஷன pV | _கார்) ப (ரேஷன pV | ||||
| பிரக (ாஷ prVk | பிரக (ாஷ prVk | ||||
| மதப்) பிரச (ார prVtS | மதப்) பிரச (ார prVtS | ||||
| பி (ரத p | பி (ரத p | ||||
| _தர்மப்) பி (ரப p | |||||
| _தானப்) பி (ரப p | |||||
| _மL06ாப்) பி (ரப p | |||||
| வீண்) பி (ரமை b | வீண்) பி (ரமை b | ||||
| துஷ்) பி (ரயோக p | துஷ்) பி (ரயோக p | ||||
| L03ந்தப்) பி (ரளய p | |||||
| ஆ) பி (ரஹாம b | ஆ) பி (ரஹாம b | ||||
| பயப்) பி (ராந்தி b | பயப்) பி (ராந்தி b | ||||
| மனப்) பி (ராந்தி b | மனப்) பி (ராந்தி b | ||||
| பி (ராய p | பி (ராய p | ||||
| L03ந்தப்) பி (ராய p | |||||
| ஆ) ப (ிரிக்க f | ஆ) ப (ிரிக்க f | ||||
| போஜனப்) பி (ரியர p | போஜனப்) பி (ரியர p | ||||
| _மறு) ப (ிற p | _மறு) ப (ிற p | ||||
| _லாக) ப் p | _லாக) ப் p | ||||
| ஆ) ப் (கானிய f | ஆ) ப் (கானிய f | ||||
| ஆ) ப் (கானிஸ்தான f | ஆ) ப் (கானிஸ்தான f | ||||
| _பா) ப்க (ார்ன pk | |||||
| _லி) ப் (ட f | _லி) ப் (ட f | ||||
| _மைக்ரோசா) ப் (ட f | _மைக்ரோசா) ப் (ட f | ||||
| கர்) ப்ப bbV# | கர்) ப்ப bbV# | ||||
| ஈ i: | ஈ i: | ||||
| உ u | உ u | ||||
| உருத்த (ிரா rUdd | |||||
| ஊ u: | ஊ u: | ||||
| _dpt _viRg,Yl_| | _dpt _viRg,Yl_| | ||||
| // Abbreviations | |||||
| ab $abbrev $only | |||||
| abd $abbrev $only | |||||
| abgs $abbrev | |||||
| afp $abbrev | |||||
| aihm $abbrev | |||||
| akm $abbrev | |||||
| akp $abbrev | |||||
| aöf $abbrev | |||||
| ap $abbrev $only | |||||
| atm $abbrev | |||||
| atv $abbrev | |||||
| avm $abbrev | |||||
| ekg $abbrev | |||||
| epdk $abbrev | |||||
| ftaa $abbrev | |||||
| gsyih $abbrev | |||||
| ihd $abbrev | |||||
| ımkb $abbrev | |||||
| imkb $abbrev | |||||
| imf $abbrev | |||||
| imkb $abbrev | |||||
| oecd $abbrev | |||||
| ogs $abbrev | |||||
| osb $abbrev | |||||
| ödp $abbrev | |||||
| öfk $abbrev | |||||
| öıb $abbrev | |||||
| öib $abbrev | |||||
| öiv $abbrev | |||||
| öss $abbrev | |||||
| ösym $abbrev | |||||
| ötv $abbrev | |||||
| öyk $abbrev | |||||
| şti $abbrev | |||||
| tihv $abbrev | |||||
| tmmob $abbrev | |||||
| tmo $abbrev | |||||
| tpao $abbrev | |||||
| tsi $abbrev | |||||
| tsyd $abbrev | |||||
| tse $abbrev | |||||
| ubp $abbrev | |||||
| usd $abbrev | |||||
| ykm $abbrev | |||||
| // function words | // function words | ||||
| // conjunctions | // conjunctions | ||||
| ama $brk $1 // but | ama $brk $1 // but | ||||
| ki $u $brk // that | ki $u $brk // that | ||||
| mı $u // question | |||||
| mi $u | |||||
| mu $u | |||||
| mü $u | |||||
| mı $u $only // question | |||||
| mi $u $only | |||||
| mu $u $only | |||||
| mü $u $only | |||||
| // pronouns | // pronouns | ||||
| bu $u+ // this | |||||
| şu $u+ // that | |||||
| bu $u+ $only // this | |||||
| şu $u+ $only // that | |||||
| ben $u+ // I | |||||
| sen $u+ // you | |||||
| o $u+ // it | |||||
| siz $u+ // we | |||||
| biz $u+ // you | |||||
| ben $u+ $only // I | |||||
| sen $u+ $only // you | |||||
| o $u+ $only // it | |||||
| siz $u+ $only // we | |||||
| biz $u+ $only // you | |||||
| bir $u+ // a (or one) | |||||
| bir $u+ $only // a (or one) | |||||
| da $u // also | |||||
| de $u | |||||
| ta $u | |||||
| te $u | |||||
| da $u $only // also | |||||
| de $u $only | |||||
| ta $u $only | |||||
| te $u $only | |||||
| ile $u | |||||
| ile $u $only | |||||
| // EXCEPTIONS | // EXCEPTIONS | ||||
| merhaba $1 | |||||
| // Person Names | |||||
| // If the word has a prefix for strengthening the meaning of the word, stress | |||||
| // is at the prefix: | |||||
| banka $1 | |||||
| bembeyaz $1 | |||||
| dosdoğru $1 | |||||
| dümdüz $1 | |||||
| kıpkırmızı $1 | |||||
| kıskıvrak $1 | |||||
| masmavi $1 | |||||
| mosmor $1 | |||||
| pespembe $1 | |||||
| posta $1 | |||||
| radyo $1 | |||||
| sapsarı $1 | |||||
| sımsıcak $1 | |||||
| simsiyah $1 | |||||
| // Place Names | |||||
| ankara $1 | |||||
| istanbul $2 | |||||
| // Names | |||||
| Hitler $1 | |||||
| // Place Names | |||||
| // For place names with two syllables stress is at first syllable: | |||||
| // For Place names that has three or more syllables, generally stress is at | |||||
| // the syllable which has more letters or at the syllable which ends with a consonant: | |||||
| Afyon $1 | |||||
| Ağrı $1 | |||||
| Almanya $2 | |||||
| Amasya $2 | |||||
| Ankara $1 | |||||
| Antalya $2 | |||||
| Artvin $1 | |||||
| Avrupa $1 | |||||
| Aydın $1 | |||||
| Bartın $1 | |||||
| Batman $1 | |||||
| Bayburt $1 | |||||
| Bingöl $1 | |||||
| Bitlis $1 | |||||
| Bodrum $1 | |||||
| Bolu $1 | |||||
| Burdur $1 | |||||
| Bursa $1 | |||||
| Çanakkale $2 | |||||
| Çankırı $1 | |||||
| Çorum $1 | |||||
| Denizli $2 | |||||
| Düzce $1 | |||||
| Edirne $2 | |||||
| Hakkari $1 | |||||
| Hatay $1 | |||||
| Iğdır $1 | |||||
| İngiltere $3 | |||||
| İskenderun $2 | |||||
| Isparta $2 | |||||
| İstanbul $2 | |||||
| İsveç $1 | |||||
| İzmir $1 | |||||
| Kastamonu $1 | |||||
| Kayseri $1 | |||||
| Kilis $1 | |||||
| Kırklareli $1 | |||||
| Konya $1 | |||||
| Kurtuluş $1 | |||||
| Kütahya $2 | |||||
| Malatya $2 | |||||
| Mardin $1 | |||||
| Mersin $1 | |||||
| Mudanya $2 | |||||
| Muğla $1 | |||||
| Niğde $1 | |||||
| Ordu $1 | |||||
| Pütürge $2 | |||||
| Rize $1 | |||||
| Sakarya $2 | |||||
| Samsun $1 | |||||
| Siirt $1 | |||||
| Sinop $1 | |||||
| Şırnak $1 | |||||
| Sivas $1 | |||||
| Tekirdağ $2 | |||||
| Tokat $1 | |||||
| Tunceli $1 | |||||
| Ukrayna $2 | |||||
| Urfa $1 | |||||
| Uşak $1 | |||||
| Yozgat $1 | 
| @) a (_S1 a | @) a (_S1 a | ||||
| @) acak (_S3 adZak | |||||
| @) acak (_S4 adZak | |||||
| @) acakmış (_S7 adZakm%@S | @) acakmış (_S7 adZakm%@S | ||||
| @) ayım (_S4 aj@m | @) ayım (_S4 aj@m | ||||
| @) alım (_S4 al@m | @) alım (_S4 al@m | ||||
| @) ı (_S1 @ | @) ı (_S1 @ | ||||
| @) ım (_S2 %@m | @) ım (_S2 %@m | ||||
| @) ınız (_S2 %@n@z | |||||
| @) ınız (_S4 %@n@z | |||||
| @) ız (_S2 %@z | @) ız (_S2 %@z | ||||
| @) ıyor (_S4 @j%oR | @) ıyor (_S4 @j%oR | ||||
| @) ın (_S2 @n | @) ın (_S2 @n | ||||
| .group n | .group n | ||||
| n n | n n | ||||
| _) nda (_ nda // 'nda | |||||
| _) nde (_ nde // 'nde | |||||
| _) ndan (_ ndan // 'ndan | |||||
| _) nden (_ nden // 'nden | |||||
| nin (_S3 nin | nin (_S3 nin | ||||
| nın (_S3 n@n | nın (_S3 n@n | ||||
| nun (_S3 nun | nun (_S3 nun | 
| 73 phoneme tables | |||||
| 74 phoneme tables | |||||
| new total | new total | ||||
| base 107 107 | base 107 107 | ||||
| consonants 10 116 | consonants 10 116 | ||||
| sq 33 126 | sq 33 126 | ||||
| hy 23 117 | hy 23 117 | ||||
| da 27 120 | da 27 120 | ||||
| ka 19 112 | |||||
| rw 15 130 | rw 15 130 | ||||
| ml 18 151 | |||||
| ml 19 152 | |||||
| ne 18 157 | ne 18 157 | ||||
| pa 14 151 | pa 14 151 | ||||
| prs 8 111 | prs 8 111 | ||||
| wo 18 118 | wo 18 118 | ||||
| dv 14 150 | dv 14 150 | ||||
| te 16 150 | te 16 150 | ||||
| si 24 156 | |||||
| tn 27 119 | tn 27 119 | ||||
| ka 19 112 | |||||
| Data file Used by | Data file Used by | ||||
| b/b [b] base | b/b [b] base | ||||
| [l/] fr | [l/] fr | ||||
| l/l_@ [l/3] base | l/l_@ [l/3] base | ||||
| [l/] fr | [l/] fr | ||||
| l/l@ [h–x] base | |||||
| l/l@ [h–u] base | |||||
| [l#] base | [l#] base | ||||
| [l] fr | [l] fr | ||||
| [l/2] fr | [l/2] fr | ||||
| l/L2_uL [l/2] base | l/L2_uL [l/2] base | ||||
| l/l_3 [l/] de | l/l_3 [l/] de | ||||
| l/l_4 [ll] sq | l/l_4 [ll] sq | ||||
| l/la [h–x] base | |||||
| l/la [h–u] base | |||||
| [l#] base | [l#] base | ||||
| [l] fr | [l] fr | ||||
| [l/2] fr | [l/2] fr | ||||
| [K] tn | [K] tn | ||||
| l/l_a [l/3] base | l/l_a [l/3] base | ||||
| [l/] fr | [l/] fr | ||||
| l/le [h–x] base | |||||
| l/le [h–u] base | |||||
| [l#] base | [l#] base | ||||
| [l] fr | [l] fr | ||||
| [l/2] fr | [l/2] fr | ||||
| [&:] af | [&:] af | ||||
| l/l_front [L] sq | l/l_front [L] sq | ||||
| l/l_front_ [l/4] sq | l/l_front_ [l/4] sq | ||||
| l/li [h–x] base | |||||
| l/li [h–u] base | |||||
| [l#] base | [l#] base | ||||
| [l] fr | [l] fr | ||||
| [l/2] fr | [l/2] fr | ||||
| ll/_ll [L] bg | ll/_ll [L] bg | ||||
| l/l_long [l] base | l/l_long [l] base | ||||
| [l] fr | [l] fr | ||||
| l/lo [h–x] base | |||||
| l/lo [h–u] base | |||||
| [l#] base | [l#] base | ||||
| [l/2] fr | [l/2] fr | ||||
| [K] nso | [K] nso | ||||
| l^/l_rfx [l.] base | l^/l_rfx [l.] base | ||||
| [l] ru | [l] ru | ||||
| [l^] ru | [l^] ru | ||||
| l/lu [h–x] base | |||||
| l/lu [h–u] base | |||||
| [l#] base | [l#] base | ||||
| [l] fr | [l] fr | ||||
| [l/2] fr | [l/2] fr | ||||
| [aI:] is | [aI:] is | ||||
| vdiph/ai_8 [aI] ta | vdiph/ai_8 [aI] ta | ||||
| [aI] dv | [aI] dv | ||||
| [aI] si | |||||
| vdiph/aoo [aU] en-us | vdiph/aoo [aU] en-us | ||||
| [aU] it | [aU] it | ||||
| vdiph/au [aU] en | vdiph/au [aU] en | ||||
| [aU] ta | [aU] ta | ||||
| [a:U] vi | [a:U] vi | ||||
| [aU] prs | [aU] prs | ||||
| [aU] si | |||||
| vdiph/au# [aU] en-sc | vdiph/au# [aU] en-sc | ||||
| vdiph/au_2 [au] zhy | vdiph/au_2 [au] zhy | ||||
| vdiph/au_3 [aU] en-rp | vdiph/au_3 [aU] en-rp | ||||
| [@4] hi | [@4] hi | ||||
| [@] kn | [@] kn | ||||
| [@] hy | [@] hy | ||||
| [@] ka | |||||
| [@] sl | [@] sl | ||||
| [@] wo | [@] wo | ||||
| [@:] wo | [@:] wo | ||||
| [@] te | [@] te | ||||
| [@] ka | |||||
| vowel/@- [@-] base | vowel/@- [@-] base | ||||
| [r*] hr | [r*] hr | ||||
| vowel/& [a] en-rp | vowel/& [a] en-rp | ||||
| [a] sv | [a] sv | ||||
| [a] is | [a] is | ||||
| [a/] sw | [a/] sw | ||||
| [a] ka | |||||
| [a] ml | [a] ml | ||||
| [a] nso | [a] nso | ||||
| [a] te | [a] te | ||||
| [a] ka | |||||
| [a] si | |||||
| vowel/a_3 [a] en-sc | vowel/a_3 [a] en-sc | ||||
| [a/] en-sc | [a/] en-sc | ||||
| [A:] en-sc | [A:] en-sc | ||||
| [A] zh | [A] zh | ||||
| [a] sq | [a] sq | ||||
| [A] da | [A] da | ||||
| [a:] si | |||||
| vowel/a#_3 [a#] en | vowel/a#_3 [a#] en | ||||
| [a#] en-n | [a#] en-n | ||||
| [a#] en-us | [a#] en-us | ||||
| vowel/ee_6 [&] sk | vowel/ee_6 [&] sk | ||||
| [E3] sv | [E3] sv | ||||
| [E] ku | [E] ku | ||||
| [&] si | |||||
| [&:] si | |||||
| vowel/e_mid [E] en-rp | vowel/e_mid [E] en-rp | ||||
| [E] fr | [E] fr | ||||
| [E~] fr | [E~] fr | ||||
| [E] id | [E] id | ||||
| [E2] id | [E2] id | ||||
| [e] hy | [e] hy | ||||
| [e] ka | |||||
| [E] prs | [E] prs | ||||
| [e] bg | [e] bg | ||||
| [E] ht | [E] ht | ||||
| [e] ka | |||||
| [e] si | |||||
| vowel/e_mid2 [E] af | vowel/e_mid2 [E] af | ||||
| [E] de | [E] de | ||||
| [E2] de | [E2] de | ||||
| [e] az | [e] az | ||||
| [e] am | [e] am | ||||
| [e] te | [e] te | ||||
| [e:] si | |||||
| vowel/@_fnt [@] en-wi | vowel/@_fnt [@] en-wi | ||||
| [@2] en-wi | [@2] en-wi | ||||
| [@2] hr | [@2] hr | ||||
| [i] zh | [i] zh | ||||
| [i] sw | [i] sw | ||||
| [i] hy | [i] hy | ||||
| [i] ka | |||||
| [i] rw | [i] rw | ||||
| [i#] rw | [i#] rw | ||||
| [i:] ml | [i:] ml | ||||
| [i:] wo | [i:] wo | ||||
| [i:] dv | [i:] dv | ||||
| [i:] te | [i:] te | ||||
| [i] ka | |||||
| [i:] si | |||||
| vowel/i# [y:] cy | vowel/i# [y:] cy | ||||
| vowel/i_2 [i2] de | vowel/i_2 [i2] de | ||||
| [i:] de | [i:] de | ||||
| [i] bg | [i] bg | ||||
| [i] dv | [i] dv | ||||
| [i] te | [i] te | ||||
| [i] si | |||||
| vowel/i#_6 [i.] zh | vowel/i#_6 [i.] zh | ||||
| vowel/i_7 [i] pl | vowel/i_7 [i] pl | ||||
| [i] sq | [i] sq | ||||
| [@] pa | [@] pa | ||||
| [V] pa | [V] pa | ||||
| [@] am | [@] am | ||||
| [@] si | |||||
| vowel/@_low2 [@/] en-us | vowel/@_low2 [@/] en-us | ||||
| [@2] en-us | [@2] en-us | ||||
| vowel/o [o] base2 | vowel/o [o] base2 | ||||
| [o] hr | [o] hr | ||||
| [o/] it | [o/] it | ||||
| [O] sq | [O] sq | ||||
| [O] tn | |||||
| [o] ka | [o] ka | ||||
| [o] si | |||||
| [o:] si | |||||
| [O] tn | |||||
| vowel/oo_2 [0] en-sc | vowel/oo_2 [0] en-sc | ||||
| [O] cy | [O] cy | ||||
| [o] cs | [o] cs | ||||
| [u:] dv | [u:] dv | ||||
| [u] te | [u] te | ||||
| [u:] te | [u:] te | ||||
| [u] si | |||||
| [u:] si | |||||
| vowel/u_7 [u] vi | vowel/u_7 [u] vi | ||||
| vowel/u#_7 [@] tr | vowel/u#_7 [@] tr | ||||
| [@] az | [@] az | ||||
| [u] sq | [u] sq | ||||
| [u] hy | [u] hy | ||||
| [u] da | [u] da | ||||
| [u] ka | |||||
| [u] rw | [u] rw | ||||
| [u#] rw | [u#] rw | ||||
| [u] ne | [u] ne | ||||
| [u] pa | [u] pa | ||||
| [u] bg | [u] bg | ||||
| [u] ka | |||||
| vowel/u_bck2 [u] fr | vowel/u_bck2 [u] fr | ||||
| [u:] fr | [u:] fr | ||||
| [u:] la | [u:] la | 
| phoneme e: | phoneme e: | ||||
| vowel starttype #e endtype #i | vowel starttype #e endtype #i | ||||
| length 190 | length 190 | ||||
| ChangeIfUnstressed(@) | |||||
| FMT(vdiph/ei) | FMT(vdiph/ei) | ||||
| endphoneme | endphoneme | ||||
| IF prevPhW(isVowel) THEN | IF prevPhW(isVowel) THEN | ||||
| ChangePhoneme(R) | ChangePhoneme(R) | ||||
| ELSE | ELSE | ||||
| // IF thisPh(isWordStart) THEN | |||||
| // ELSE | |||||
| IF prevPhW(t) THEN | |||||
| ELSE | |||||
| InsertPhoneme(@-) | InsertPhoneme(@-) | ||||
| // ENDIF | |||||
| ENDIF | |||||
| ENDIF | ENDIF | ||||
| ENDIF | ENDIF | ||||
| ENDIF | ENDIF | ||||
| endphoneme | endphoneme | ||||
| // This version of [r] was used in eSpeak 1.44, but received complaints | // This version of [r] was used in eSpeak 1.44, but received complaints | ||||
| phoneme r2 // uvular trill or fricative | phoneme r2 // uvular trill or fricative | ||||
| vcd uvl frc | vcd uvl frc | ||||
| FMT(vnasal/aa_n4) | FMT(vnasal/aa_n4) | ||||
| endphoneme | endphoneme | ||||
| // translate from English to German phonemes | // translate from English to German phonemes | ||||
| equivalents en | |||||
| equivalents NULL // disable this table | |||||
| 0 O | 0 O | ||||
| 3 3 | 3 3 | ||||
| 3: W : | 3: W : | 
| phonemetable da base | phonemetable da base | ||||
| include ph_danish | include ph_danish | ||||
| phonemetable ka base | |||||
| include ph_georgian | |||||
| phonemetable te hi | phonemetable te hi | ||||
| include ph_telugu | include ph_telugu | ||||
| phonemetable si hi | |||||
| include ph_sinhala | |||||
| phonemetable tn base | phonemetable tn base | ||||
| include ph_setswana | include ph_setswana | ||||
| phonemetable ka base | |||||
| include ph_georgian | 
| all: $(BIN_NAME) $(LIB_NAME) $(STATIC_LIB_NAME) $(BIN2_NAME) | all: $(BIN_NAME) $(LIB_NAME) $(STATIC_LIB_NAME) $(BIN2_NAME) | ||||
| mv $(LIB_NAME) $(LIB_NAME).$(LIBTAG) | |||||
| .cpp.o: | .cpp.o: | ||||
| $(CXX) $(CXXFLAGS) $(USE_AUDIO) -D PATH_ESPEAK_DATA=\"$(DATADIR)\" -Wall -pedantic -I. -c -fno-exceptions $< | $(CXX) $(CXXFLAGS) $(USE_AUDIO) -D PATH_ESPEAK_DATA=\"$(DATADIR)\" -Wall -pedantic -I. -c -fno-exceptions $< | ||||
| $(LIB_NAME): $(OBJS2) | $(LIB_NAME): $(OBJS2) | ||||
| $(CXX) $(LDFLAGS) -shared $(SONAME_OPT)$(LIB_NAME).$(LIB_VERSION) -o $@ \ | $(CXX) $(LDFLAGS) -shared $(SONAME_OPT)$(LIB_NAME).$(LIB_VERSION) -o $@ \ | ||||
| $(OBJS2) $(LIBS2) | $(OBJS2) $(LIBS2) | ||||
| mv $(LIB_NAME) $(LIB_NAME).$(LIBTAG) | |||||
| $(LN_SF) $(LIB_NAME).$(LIBTAG) $(LIB_NAME).$(LIB_VERSION) | |||||
| $(LN_SF) $(LIB_NAME).$(LIB_VERSION) $(LIB_NAME) | |||||
| $(STATIC_LIB_NAME): $(OBJS2) | $(STATIC_LIB_NAME): $(OBJS2) | ||||
| $(AR) cqs $(STATIC_LIB_NAME) $(OBJS2) | $(AR) cqs $(STATIC_LIB_NAME) $(OBJS2) | 
| {"isVowel", 0, phVOWEL}, | {"isVowel", 0, phVOWEL}, | ||||
| {"isNasal", 0, phNASAL}, | {"isNasal", 0, phNASAL}, | ||||
| {"isLiquid", 0, phLIQUID}, | {"isLiquid", 0, phLIQUID}, | ||||
| {"isUStop", 0, phSTOP}, | |||||
| {"isVFricative", 0, phVFRICATIVE}, | {"isVFricative", 0, phVFRICATIVE}, | ||||
| {"isPalatal", 0, i_isPalatal}, | {"isPalatal", 0, i_isPalatal}, | ||||
| static MNEM_TAB reserved_phonemes[] = { | static MNEM_TAB reserved_phonemes[] = { | ||||
| {"<", phonCONTROL}, // NOT USED | |||||
| {"_\001", phonCONTROL}, // NOT USED | |||||
| {"%", phonSTRESS_U}, | {"%", phonSTRESS_U}, | ||||
| {"%%", phonSTRESS_D}, | {"%%", phonSTRESS_D}, | ||||
| {",", phonSTRESS_2}, | {",", phonSTRESS_2}, | ||||
| if((foreign_table = SelectPhonemeTableName(foreign_table_name)) < 0) | if((foreign_table = SelectPhonemeTableName(foreign_table_name)) < 0) | ||||
| { | { | ||||
| error("Unknown phoneme table '%s'", foreign_table_name); | |||||
| if(strcmp(foreign_table_name, "NULL") != 0) | |||||
| { | |||||
| error("Unknown phoneme table '%s'", foreign_table_name); | |||||
| } | |||||
| foreign_error = 1; | foreign_error = 1; | ||||
| foreign_phoneme = 0; | foreign_phoneme = 0; | ||||
| } | } | ||||
| if(strcmp(names[0],"endphoneme") == 0) | if(strcmp(names[0],"endphoneme") == 0) | ||||
| break; | break; | ||||
| if(foreign_error) | |||||
| continue; | |||||
| if(strcmp(names[0],"remove_stress") == 0) | if(strcmp(names[0],"remove_stress") == 0) | ||||
| { | { | ||||
| remove_stress = 1; | remove_stress = 1; | 
| } | } | ||||
| // check for errors in the phonemes codes | // check for errors in the phonemes codes | ||||
| for(ix=0; ix<sizeof(encoded_ph); ix++) | |||||
| if(bad_phoneme[0] != 0) | |||||
| { | { | ||||
| c = encoded_ph[ix]; | |||||
| if(c == 0) break; | |||||
| if(c == 255) | |||||
| { | |||||
| /* unrecognised phoneme, report error */ | |||||
| fprintf(f_log,"%5d: Bad phoneme [%c] (0x%x) in: %s %s\n",linenum,bad_phoneme[0],bad_phoneme[0],word,phonetic); | |||||
| error_count++; | |||||
| } | |||||
| // unrecognised phoneme, report error | |||||
| fprintf(f_log,"%5d: Bad phoneme [%c] (0x%x) in: %s %s\n",linenum,bad_phoneme[0],bad_phoneme[0],word,phonetic); | |||||
| error_count++; | |||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| EncodePhonemes(rule_phonemes,buf,bad_phoneme); | EncodePhonemes(rule_phonemes,buf,bad_phoneme); | ||||
| for(ix=0;; ix++) | |||||
| if(bad_phoneme[0] != 0) | |||||
| { | { | ||||
| if((c = buf[ix])==0) break; | |||||
| if(c==255) | |||||
| { | |||||
| fprintf(f_log,"%5d: Bad phoneme [%c] in %s\n",linenum,bad_phoneme[0],input); | |||||
| error_count++; | |||||
| break; | |||||
| } | |||||
| fprintf(f_log,"%5d: Bad phoneme [%c] in %s\n",linenum,bad_phoneme[0],input); | |||||
| error_count++; | |||||
| } | } | ||||
| strcpy(output,buf); | strcpy(output,buf); | ||||
| len = strlen(buf)+1; | len = strlen(buf)+1; | ||||
| unsigned int char_code; | unsigned int char_code; | ||||
| int compile_mode=0; | int compile_mode=0; | ||||
| char *buf; | char *buf; | ||||
| char buf1[200]; | |||||
| char buf1[500]; | |||||
| char *rules[N_RULES]; | char *rules[N_RULES]; | ||||
| int n_rgroups = 0; | int n_rgroups = 0; | 
| /* Translate a phoneme string from ascii mnemonics to internal phoneme numbers, | /* Translate a phoneme string from ascii mnemonics to internal phoneme numbers, | ||||
| from 'p' up to next blank . | from 'p' up to next blank . | ||||
| Returns advanced 'p' | Returns advanced 'p' | ||||
| outptr contains encoded phonemes, unrecognised phonemes are encoded as 255 | |||||
| outptr contains encoded phonemes, unrecognized phoneme stops the encoding | |||||
| bad_phoneme must point to char array of length 2 of more | bad_phoneme must point to char array of length 2 of more | ||||
| */ | */ | ||||
| { | { | ||||
| if(max_ph == 0) | if(max_ph == 0) | ||||
| { | { | ||||
| max_ph = 255; /* not recognised */ | |||||
| // not recognised, report and ignore | |||||
| bad_phoneme[0] = *p; | bad_phoneme[0] = *p; | ||||
| bad_phoneme[1] = 0; | bad_phoneme[1] = 0; | ||||
| *outptr++ = 0; | |||||
| return(p+1); | |||||
| } | } | ||||
| if(max <= 0) | if(max <= 0) | ||||
| } | } | ||||
| int Unpronouncable(Translator *tr, char *word) | |||||
| {//=========================================== | |||||
| int Unpronouncable(Translator *tr, char *word, int posn) | |||||
| {//===================================================== | |||||
| /* Determines whether a word in 'unpronouncable', i.e. whether it should | /* Determines whether a word in 'unpronouncable', i.e. whether it should | ||||
| be spoken as individual letters. | be spoken as individual letters. | ||||
| if((c==0) || (c==' ')) | if((c==0) || (c==' ')) | ||||
| break; | break; | ||||
| if((c=='\'') && (count > 1)) | |||||
| if((c=='\'') && ((count > 1) || (posn > 0))) | |||||
| break; // "tv'" but not "l'" | break; // "tv'" but not "l'" | ||||
| if(count==0) | if(count==0) | 
| char *pw; | char *pw; | ||||
| char *pw1; | char *pw1; | ||||
| int cc; | int cc; | ||||
| int ix; | |||||
| int vcount; | int vcount; | ||||
| int lex_stress; | int lex_stress; | ||||
| int input_length; | int input_length; | ||||
| if(cc == 0xfeff) | if(cc == 0xfeff) | ||||
| continue; // ignore UTF-8 indication | continue; // ignore UTF-8 indication | ||||
| pw1 += utf8_out(cc, pw1); // copy UTF-8 to 'word_in' | |||||
| if(cc == '`') | |||||
| cc = '\''; | |||||
| pw1 += utf8_out(towlower(cc), pw1); // copy UTF-8 to 'word_in' | |||||
| if(lookupwchar(bg_vowels, cc) != 0) | if(lookupwchar(bg_vowels, cc) != 0) | ||||
| vcount++; | vcount++; | ||||
| if((cc == 0x300) || (cc == 0x450) || (cc == 0x45d)) | |||||
| if((cc == '\'') || (cc == 0x300) || (cc == 0x450) || (cc == 0x45d)) | |||||
| { | { | ||||
| // combining grave accent, of accented vowel character | |||||
| lex_stress = vcount; | |||||
| // backprime (before the vowel), combining grave accent, or accented vowel character | |||||
| if(cc == '\'') | |||||
| lex_stress = vcount+1; | |||||
| else | |||||
| lex_stress = vcount; | |||||
| n_stress++; | n_stress++; | ||||
| if(vcount == 1) | if(vcount == 1) | ||||
| stress_first = 1; | stress_first = 1; | ||||
| if(cc == 0x300) | |||||
| continue; // discard combining accent | |||||
| if((cc == '\'') || (cc == 0x300)) | |||||
| continue; // discard backprime or combining accent | |||||
| if(cc == 0x450) | if(cc == 0x450) | ||||
| cc = 0x435; // remove accent from vowel | cc = 0x435; // remove accent from vowel | ||||
| if(cc == 0x45d) | if(cc == 0x45d) | ||||
| } | } | ||||
| } | } | ||||
| if(n_stress > 1) n_stress = 1; | |||||
| done = 0; | done = 0; | ||||
| if(vcount < 2) | |||||
| { | |||||
| // don't list words with only one vowel | |||||
| } | |||||
| else | |||||
| if((lex_stress != max_stress_posn) || (n_stress != 1)) | if((lex_stress != max_stress_posn) || (n_stress != 1)) | ||||
| { | { | ||||
| if((vcount > 0) && (lex_stress > 0) && (lex_stress <= 7)) | if((vcount > 0) && (lex_stress > 0) && (lex_stress <= 7)) | ||||
| if(done == 0) | if(done == 0) | ||||
| { | { | ||||
| n_wrong++; | n_wrong++; | ||||
| fprintf(f_out,"%s\t$text %s\n", &word[2], word_in); | |||||
| fprintf(f_out,"// %s\t$text %s\n", &word[2], word_in); | |||||
| } | } | ||||
| if(done) | if(done) | 
| #ifndef PLATFORM_DOS | #ifndef PLATFORM_DOS | ||||
| #ifdef PLATFORM_WINDOWS | #ifdef PLATFORM_WINDOWS | ||||
| #include <fcntl.h> | |||||
| #include <io.h> | |||||
| #include <windows.h> | #include <windows.h> | ||||
| #include <winreg.h> | #include <winreg.h> | ||||
| #else | #else | ||||
| return(2); | return(2); | ||||
| if(strcmp(path,"stdout")==0) | if(strcmp(path,"stdout")==0) | ||||
| { | |||||
| #ifdef PLATFORM_WINDOWS | |||||
| // prevent Windows adding 0x0d before 0x0a bytes | |||||
| _setmode(_fileno(stdout), _O_BINARY); | |||||
| #endif | |||||
| f_wave = stdout; | f_wave = stdout; | ||||
| } | |||||
| else | else | ||||
| f_wave = fopen(path,"wb"); | f_wave = fopen(path,"wb"); | ||||
| #include "translate.h" | #include "translate.h" | ||||
| #include "wave.h" | #include "wave.h" | ||||
| const char *version_string = "1.45.02 15.Mar.11"; | |||||
| const char *version_string = "1.45.12 01.Apr.11"; | |||||
| const int version_phdata = 0x014500; | const int version_phdata = 0x014500; | ||||
| int option_device_number = -1; | int option_device_number = -1; | 
| memset(tr->letter_bits,0,sizeof(tr->letter_bits)); | memset(tr->letter_bits,0,sizeof(tr->letter_bits)); | ||||
| SetLetterBitsRange(tr,LETTERGP_A,0x04,0x14); // vowel letters | SetLetterBitsRange(tr,LETTERGP_A,0x04,0x14); // vowel letters | ||||
| SetLetterBitsRange(tr,LETTERGP_A,0x3e,0x4d); // + vowel signs, and virama | SetLetterBitsRange(tr,LETTERGP_A,0x3e,0x4d); // + vowel signs, and virama | ||||
| SetLetterBitsRange(tr,LETTERGP_A,0x55,0x57); // + vowel signs | |||||
| SetLetterBitsRange(tr,LETTERGP_B,0x3e,0x4d); // vowel signs, and virama | SetLetterBitsRange(tr,LETTERGP_B,0x3e,0x4d); // vowel signs, and virama | ||||
| SetLetterBitsRange(tr,LETTERGP_B,0x55,0x57); // + vowel signs | |||||
| SetLetterBitsRange(tr,LETTERGP_C,0x15,0x39); // the main consonant range | SetLetterBitsRange(tr,LETTERGP_C,0x15,0x39); // the main consonant range | ||||
| SetLetterBits(tr,LETTERGP_C,dev_consonants2); // + additional consonants | SetLetterBits(tr,LETTERGP_C,dev_consonants2); // + additional consonants | ||||
| SetLetterBitsRange(tr,LETTERGP_Y,0x04,0x14); // vowel letters | SetLetterBitsRange(tr,LETTERGP_Y,0x04,0x14); // vowel letters | ||||
| SetLetterBitsRange(tr,LETTERGP_Y,0x3e,0x4c); // + vowel signs | SetLetterBitsRange(tr,LETTERGP_Y,0x3e,0x4c); // + vowel signs | ||||
| SetLetterBitsRange(tr,LETTERGP_Y,0x55,0x57); // + vowel signs | |||||
| tr->langopts.param[LOPT_UNPRONOUNCABLE] = 1; // disable check for unpronouncable words | tr->langopts.param[LOPT_UNPRONOUNCABLE] = 1; // disable check for unpronouncable words | ||||
| tr->langopts.suffix_add_e = tr->letter_bits_offset + 0x4d; //virama | tr->langopts.suffix_add_e = tr->letter_bits_offset + 0x4d; //virama | ||||
| } | } | ||||
| break; | break; | ||||
| case L('s','i'): // Sinhala | |||||
| { | |||||
| SetupTranslator(tr,stress_lengths_ta,stress_amps_ta); | |||||
| tr->langopts.length_mods0 = tr->langopts.length_mods; // don't lengthen vowels in the last syllable | |||||
| tr->langopts.stress_rule = STRESSPOSN_1L; | |||||
| tr->langopts.stress_flags = S_FINAL_DIM | S_NO_AUTO_DIM | S_FINAL_NO_2; | |||||
| tr->langopts.spelling_stress = 1; | |||||
| tr->letter_bits_offset = OFFSET_SINHALA; | |||||
| memset(tr->letter_bits,0,sizeof(tr->letter_bits)); | |||||
| SetLetterBitsRange(tr,LETTERGP_A,0x05,0x16); // vowel letters | |||||
| SetLetterBitsRange(tr,LETTERGP_A,0x4a,0x73); // + vowel signs, and virama | |||||
| SetLetterBitsRange(tr,LETTERGP_B,0x4a,0x73); // vowel signs, and virama | |||||
| SetLetterBitsRange(tr,LETTERGP_C,0x1a,0x46); // the main consonant range | |||||
| tr->langopts.param[LOPT_UNPRONOUNCABLE] = 1; // disable check for unpronouncable words | |||||
| tr->langopts.suffix_add_e = tr->letter_bits_offset + 0x4a; //virama | |||||
| tr->langopts.numbers = NUM_OMIT_1_THOUSAND ; | |||||
| } | |||||
| break; | |||||
| case L('s','l'): // Slovenian | case L('s','l'): // Slovenian | ||||
| tr->charset_a0 = charsets[2]; // ISO-8859-2 | tr->charset_a0 = charsets[2]; // ISO-8859-2 | ||||
| tr->langopts.stress_rule = STRESSPOSN_2R; // Temporary | tr->langopts.stress_rule = STRESSPOSN_2R; // Temporary | ||||
| tr->langopts.stress_rule = 7; // stress on the last syllable, before any explicitly unstressed syllable | tr->langopts.stress_rule = 7; // stress on the last syllable, before any explicitly unstressed syllable | ||||
| tr->langopts.stress_flags = 0x20; //no automatic secondary stress | tr->langopts.stress_flags = 0x20; //no automatic secondary stress | ||||
| tr->langopts.numbers = NUM_SINGLE_STRESS | NUM_DECIMAL_COMMA | NUM_ALLOW_SPACE | NUM_OMIT_1_HUNDRED | NUM_OMIT_1_THOUSAND | NUM_DFRACTION_2; | |||||
| tr->langopts.numbers = NUM_SINGLE_STRESS | NUM_DECIMAL_COMMA | NUM_OMIT_1_HUNDRED | NUM_OMIT_1_THOUSAND | NUM_DFRACTION_2; | |||||
| tr->langopts.max_initial_consonants = 2; | tr->langopts.max_initial_consonants = 2; | ||||
| } | } | ||||
| break; | break; | 
| return(1); | return(1); | ||||
| if(lookupwchar(extra_indic_alphas, c) != 0) | if(lookupwchar(extra_indic_alphas, c) != 0) | ||||
| return(1); | return(1); | ||||
| if((c >= 0xd7a) && (c <= 0xd7f)) | |||||
| return(1); // malaytalam chillu characters | |||||
| return(0); | return(0); | ||||
| } | } | ||||
| } | } | ||||
| int IsAllUpper(const char *word) | |||||
| {//============================= | |||||
| int c; | |||||
| while((*word != 0) && !isspace2(*word)) | |||||
| { | |||||
| word += utf8_in(&c, word); | |||||
| if(!iswupper(c)) | |||||
| return(0); | |||||
| } | |||||
| return(1); | |||||
| } | |||||
| static char *SpeakIndividualLetters(Translator *tr, char *word, char *phonemes, int spell_word) | static char *SpeakIndividualLetters(Translator *tr, char *word, char *phonemes, int spell_word) | ||||
| {//============================================================================================ | {//============================================================================================ | ||||
| int posn = 0; | int posn = 0; | ||||
| length = 999; | length = 999; | ||||
| wordx = word1; | wordx = word1; | ||||
| while(((length < 3) && (length > 0))|| (word_length > 1 && Unpronouncable(tr,wordx))) | |||||
| while(((length < 3) && (length > 0))|| (word_length > 1 && Unpronouncable(tr, wordx, posn))) | |||||
| { | { | ||||
| // This word looks "unpronouncable", so speak letters individually until we | // This word looks "unpronouncable", so speak letters individually until we | ||||
| // find a remainder that we can pronounce. | // find a remainder that we can pronounce. | ||||
| if(prefix_type & SUFX_B) | if(prefix_type & SUFX_B) | ||||
| { | { | ||||
| // SUFX_B is used for Turkish, tr_rules contains "(PbÃÂã | |||||
| // retranslate the prefix part | |||||
| // SUFX_B is used for Turkish, tr_rules contains " ' (Pb" | |||||
| // examine the prefix part | |||||
| char *wordpf; | char *wordpf; | ||||
| char prefix_phonemes2[12]; | char prefix_phonemes2[12]; | ||||
| strncpy0(prefix_phonemes2,end_phonemes,sizeof(prefix_phonemes2)); | strncpy0(prefix_phonemes2,end_phonemes,sizeof(prefix_phonemes2)); | ||||
| wordpf = &prefix_chars[1]; | wordpf = &prefix_chars[1]; | ||||
| found = LookupDictList(tr, &wordpf, phonemes, dictionary_flags, SUFX_P, wtab); // without prefix | |||||
| if(found == 0) | |||||
| strcpy(prefix_phonemes, phonemes); | |||||
| // look for stress marker or $abbrev | |||||
| found = LookupDictList(tr, &wordpf, phonemes, dictionary_flags, 0, wtab); | |||||
| if(found) | |||||
| { | { | ||||
| end_type = TranslateRules(tr, wordpf, phonemes, N_WORD_PHONEMES, end_phonemes, 0, dictionary_flags); | |||||
| sprintf(prefix_phonemes,"%s%s%s",phonemes,end_phonemes,prefix_phonemes2); | |||||
| strcpy(prefix_phonemes, phonemes); | |||||
| } | |||||
| if(dictionary_flags[0] & FLAG_ABBREV) | |||||
| { | |||||
| prefix_phonemes[0] = 0; | |||||
| SpeakIndividualLetters(tr, wordpf, prefix_phonemes, 1); | |||||
| } | } | ||||
| prefix_flags = 1; | |||||
| } | } | ||||
| else | else | ||||
| { | { | ||||
| wordx[-1] = c_temp; | wordx[-1] = c_temp; | ||||
| found = LookupDictList(tr, &word1, phonemes, dictionary_flags2, end_flags, wtab); // include prefix, but not suffix | found = LookupDictList(tr, &word1, phonemes, dictionary_flags2, end_flags, wtab); // include prefix, but not suffix | ||||
| wordx[-1] = ' '; | wordx[-1] = ' '; | ||||
| if(phonemes[0] == phonSWITCH) | |||||
| { | |||||
| // change to another language in order to translate this word | |||||
| memcpy(wordx,word_copy,strlen(word_copy)); | |||||
| strcpy(word_phonemes,phonemes); | |||||
| return(0); | |||||
| } | |||||
| if(dictionary_flags[0]==0) | if(dictionary_flags[0]==0) | ||||
| { | { | ||||
| dictionary_flags[0] = dictionary_flags2[0]; | dictionary_flags[0] = dictionary_flags2[0]; | ||||
| { | { | ||||
| // '-' between two letters is a hyphen, treat as a space | // '-' between two letters is a hyphen, treat as a space | ||||
| word_flags |= FLAG_HYPHEN; | word_flags |= FLAG_HYPHEN; | ||||
| words[word_count-1].flags |= FLAG_HYPHEN_AFTER; | |||||
| if(word_count > 0) | |||||
| words[word_count-1].flags |= FLAG_HYPHEN_AFTER; | |||||
| c = ' '; | c = ' '; | ||||
| } | } | ||||
| } | } | ||||
| space_inserted = 1; | space_inserted = 1; | ||||
| } | } | ||||
| else | else | ||||
| if(!(words[word_count-1].flags & FLAG_NOSPACE) && IsAlpha(prev_in)) | |||||
| if((word_count > 0) && !(words[word_count-1].flags & FLAG_NOSPACE) && IsAlpha(prev_in)) | |||||
| { | { | ||||
| // dot after a word, with space following, probably an abbreviation | // dot after a word, with space following, probably an abbreviation | ||||
| words[word_count-1].flags |= FLAG_HAS_DOT; | words[word_count-1].flags |= FLAG_HAS_DOT; | ||||
| // end of 'word' | // end of 'word' | ||||
| sbuf[ix++] = ' '; | sbuf[ix++] = ' '; | ||||
| if((ix > words[word_count].start) && (word_count < N_CLAUSE_WORDS-1)) | |||||
| if((word_count < N_CLAUSE_WORDS-1) && (ix > words[word_count].start)) | |||||
| { | { | ||||
| if(embedded_count > 0) | if(embedded_count > 0) | ||||
| { | { | ||||
| *pn++ = *pw++; | *pn++ = *pw++; | ||||
| } | } | ||||
| else | else | ||||
| if((*pw == tr->langopts.thousands_sep) && (pw[1] == ' ') && iswdigit(pw[2])) | |||||
| if((*pw == tr->langopts.thousands_sep) && (pw[1] == ' ') | |||||
| && iswdigit(pw[2]) && (pw[3] != ' ') && (pw[4] != ' ')) // don't allow only 1 or 2 digits in the final part | |||||
| { | { | ||||
| pw += 2; | pw += 2; | ||||
| ix++; // skip "word" | ix++; // skip "word" | 
| void CalcPitches(Translator *tr, int clause_tone); | void CalcPitches(Translator *tr, int clause_tone); | ||||
| int RemoveEnding(Translator *tr, char *word, int end_type, char *word_copy); | int RemoveEnding(Translator *tr, char *word, int end_type, char *word_copy); | ||||
| int Unpronouncable(Translator *tr, char *word); | |||||
| 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); | 
| static pa_stream *stream = NULL; | static pa_stream *stream = NULL; | ||||
| static pa_threaded_mainloop *mainloop = NULL; | static pa_threaded_mainloop *mainloop = NULL; | ||||
| static pa_cvolume volume; | |||||
| static int volume_valid = 0; | |||||
| static int do_trigger = 0; | static int do_trigger = 0; | ||||
| static uint64_t written = 0; | static uint64_t written = 0; | ||||
| static int time_offset_msec = 0; | static int time_offset_msec = 0; | ||||
| // SHOW("ti> read_index=0x%lx\n",the_time->read_index); | // SHOW("ti> read_index=0x%lx\n",the_time->read_index); | ||||
| // } | // } | ||||
| static void info_cb(struct pa_context *c, const struct pa_sink_input_info *i, int is_last, void *userdata) { | |||||
| ENTER(__FUNCTION__); | |||||
| assert(c); | |||||
| if (!i) | |||||
| return; | |||||
| volume = i->volume; | |||||
| volume_valid = 1; | |||||
| } | |||||
| static void subscribe_cb(struct pa_context *c, enum pa_subscription_event_type t, uint32_t index, void *userdata) { | static void subscribe_cb(struct pa_context *c, enum pa_subscription_event_type t, uint32_t index, void *userdata) { | ||||
| pa_operation *o; | |||||
| ENTER(__FUNCTION__); | ENTER(__FUNCTION__); | ||||
| assert(c); | assert(c); | ||||
| (t != (PA_SUBSCRIPTION_EVENT_SINK_INPUT|PA_SUBSCRIPTION_EVENT_CHANGE) && | (t != (PA_SUBSCRIPTION_EVENT_SINK_INPUT|PA_SUBSCRIPTION_EVENT_CHANGE) && | ||||
| t != (PA_SUBSCRIPTION_EVENT_SINK_INPUT|PA_SUBSCRIPTION_EVENT_NEW))) | t != (PA_SUBSCRIPTION_EVENT_SINK_INPUT|PA_SUBSCRIPTION_EVENT_NEW))) | ||||
| return; | return; | ||||
| if (!(o = pa_context_get_sink_input_info(c, index, info_cb, NULL))) { | |||||
| SHOW("pa_context_get_sink_input_info() failed: %s\n", pa_strerror(pa_context_errno(c))); | |||||
| return; | |||||
| } | |||||
| pa_operation_unref(o); | |||||
| } | } | ||||
| static void context_state_cb(pa_context *c, void *userdata) { | static void context_state_cb(pa_context *c, void *userdata) { | ||||
| SHOW("pulse_write > length=%d\n", length); | SHOW("pulse_write > length=%d\n", length); | ||||
| CHECK_CONNECTED(); | |||||
| CHECK_CONNECTED_NO_RETVAL(); | |||||
| pa_threaded_mainloop_lock(mainloop); | pa_threaded_mainloop_lock(mainloop); | ||||
| CHECK_DEAD_GOTO(fail, 1); | CHECK_DEAD_GOTO(fail, 1); | ||||
| if (!pa_sample_spec_valid(&ss)) | if (!pa_sample_spec_valid(&ss)) | ||||
| return false; | return false; | ||||
| /* if (!volume_valid) { */ | |||||
| pa_cvolume_reset(&volume, ss.channels); | |||||
| volume_valid = 1; | |||||
| /* } else if (volume.channels != ss.channels) */ | |||||
| /* pa_cvolume_set(&volume, ss.channels, pa_cvolume_avg(&volume)); */ | |||||
| SHOW_TIME("pa_threaded_mainloop_new (call)"); | SHOW_TIME("pa_threaded_mainloop_new (call)"); | ||||
| if (!(mainloop = pa_threaded_mainloop_new())) { | if (!(mainloop = pa_threaded_mainloop_new())) { | ||||
| SHOW("Failed to allocate main loop\n",""); | SHOW("Failed to allocate main loop\n",""); | ||||
| pa_stream_set_write_callback(stream, stream_request_cb, NULL); | pa_stream_set_write_callback(stream, stream_request_cb, NULL); | ||||
| pa_stream_set_latency_update_callback(stream, stream_latency_update_cb, NULL); | pa_stream_set_latency_update_callback(stream, stream_latency_update_cb, NULL); | ||||
| pa_buffer_attr a_attr; | pa_buffer_attr a_attr; | ||||
| a_attr.maxlength = MAXLENGTH; | a_attr.maxlength = MAXLENGTH; | ||||
| a_attr.fragsize = 0; | a_attr.fragsize = 0; | ||||
| SHOW_TIME("pa_connect_playback"); | SHOW_TIME("pa_connect_playback"); | ||||
| if (pa_stream_connect_playback(stream, NULL, &a_attr, (pa_stream_flags_t)(PA_STREAM_INTERPOLATE_TIMING|PA_STREAM_AUTO_TIMING_UPDATE), &volume, NULL) < 0) { | |||||
| if (pa_stream_connect_playback(stream, NULL, &a_attr, (pa_stream_flags_t)(PA_STREAM_INTERPOLATE_TIMING|PA_STREAM_AUTO_TIMING_UPDATE), NULL, NULL) < 0) { | |||||
| SHOW("Failed to connect stream: %s", pa_strerror(pa_context_errno(context))); | SHOW("Failed to connect stream: %s", pa_strerror(pa_context_errno(context))); | ||||
| goto unlock_and_fail; | goto unlock_and_fail; | ||||
| } | } | ||||
| pa_threaded_mainloop_wait(mainloop); | pa_threaded_mainloop_wait(mainloop); | ||||
| } | } | ||||
| pa_operation_unref(o); | |||||
| if (!success) { | if (!success) { | ||||
| SHOW("pa_context_subscribe() failed: %s", pa_strerror(pa_context_errno(context))); | SHOW("pa_context_subscribe() failed: %s", pa_strerror(pa_context_errno(context))); | ||||
| goto unlock_and_fail; | goto unlock_and_fail; | ||||
| } | } | ||||
| pa_operation_unref(o); | |||||
| /* Now request the initial stream info */ | |||||
| if (!(o = pa_context_get_sink_input_info(context, pa_stream_get_index(stream), info_cb, NULL))) { | |||||
| SHOW("pa_context_get_sink_input_info() failed: %s", pa_strerror(pa_context_errno(context))); | |||||
| goto unlock_and_fail; | |||||
| } | |||||
| SHOW_TIME("pa_threaded_mainloop_wait 2"); | |||||
| while (pa_operation_get_state(o) != PA_OPERATION_DONE) { | |||||
| CHECK_DEAD_GOTO(fail, 1); | |||||
| pa_threaded_mainloop_wait(mainloop); | |||||
| } | |||||
| /* if (!volume_valid) { */ | |||||
| /* SHOW("pa_context_get_sink_input_info() failed: %s", pa_strerror(pa_context_errno(context))); */ | |||||
| /* goto unlock_and_fail; */ | |||||
| /* } */ | |||||
| do_trigger = 0; | do_trigger = 0; | ||||
| written = 0; | written = 0; | ||||
| time_offset_msec = 0; | time_offset_msec = 0; | ||||
| just_flushed = 0; | just_flushed = 0; | ||||
| connected = 1; | connected = 1; | ||||
| // volume_time_event = NULL; | |||||
| pa_threaded_mainloop_unlock(mainloop); | pa_threaded_mainloop_unlock(mainloop); | ||||
| SHOW_TIME("pulse_open (ret true)"); | SHOW_TIME("pulse_open (ret true)"); | ||||
| // return true; | |||||
| return PULSE_OK; | return PULSE_OK; | ||||
| unlock_and_fail: | unlock_and_fail: | ||||
| if (o) | if (o) | 
| next = (fr2->fheight[ix] * v->height[ix]) << 6; | next = (fr2->fheight[ix] * v->height[ix]) << 6; | ||||
| peaks[ix].height_inc = ((next - peaks[ix].height1) * STEPSIZE) / length2; | peaks[ix].height_inc = ((next - peaks[ix].height1) * STEPSIZE) / length2; | ||||
| if(ix <= wvoice->n_harmonic_peaks) | |||||
| if((ix <= 5) && (ix <= wvoice->n_harmonic_peaks)) | |||||
| { | { | ||||
| peaks[ix].left1 = (fr1->fwidth[ix] * v->width[ix]) << 10; | peaks[ix].left1 = (fr1->fwidth[ix] * v->width[ix]) << 10; | ||||
| peaks[ix].left = int(peaks[ix].left1); | peaks[ix].left = int(peaks[ix].left1); |