| espeak-data/af_dict \ | espeak-data/af_dict \ | ||||
| espeak-data/am_dict \ | espeak-data/am_dict \ | ||||
| espeak-data/an_dict \ | espeak-data/an_dict \ | ||||
| espeak-data/az_dict \ | |||||
| espeak-data/bg_dict \ | espeak-data/bg_dict \ | ||||
| espeak-data/bn_dict \ | espeak-data/bn_dict \ | ||||
| espeak-data/ca_dict \ | espeak-data/ca_dict \ | ||||
| espeak-data/an_dict: src/espeak espeak-data/phontab dictsource/an_list dictsource/an_rules dictsource/an_extra | espeak-data/an_dict: src/espeak espeak-data/phontab dictsource/an_list dictsource/an_rules dictsource/an_extra | ||||
| cd dictsource && ../src/espeak --compile=an && cd .. | cd dictsource && ../src/espeak --compile=an && cd .. | ||||
| az: espeak-data/az_dict | |||||
| dictsource/az_extra: | |||||
| touch dictsource/az_extra | |||||
| espeak-data/az_dict: src/espeak espeak-data/phontab dictsource/az_list dictsource/az_rules dictsource/az_extra | |||||
| cd dictsource && ../src/espeak --compile=az && cd .. | |||||
| bg: espeak-data/bg_dict | bg: espeak-data/bg_dict | ||||
| dictsource/bg_extra: | dictsource/bg_extra: | ||||
| touch dictsource/bg_extra | touch dictsource/bg_extra |
| y je $atend | y je $atend | ||||
| ch tSe | ch tSe | ||||
| ll 'El^e | ll 'El^e | ||||
| ny n^e | |||||
| á 'a||akTEntw'aDa | á 'a||akTEntw'aDa | ||||
| é 'e||akTEntw'aDa | é 'e||akTEntw'aDa | ||||
| í 'i||akTEntw'aDa | í 'i||akTEntw'aDa | ||||
| _x#ª %a | _x#ª %a | ||||
| º orDin'al||maskul'in | º orDin'al||maskul'in | ||||
| ª orDin'al||femen'in | ª orDin'al||femen'in | ||||
| ºc gr'aUs||T'e | |||||
| ºf gr'aUs||'Efe | |||||
| ºk gr'aUs||k'a | |||||
| (1 ºc) un||gr'aU||T'e | |||||
| ºc gr'aUs||Tentigr'aUs | |||||
| ºf gr'aUs||f'arEnxeI | |||||
| ºk gr'aUs||k'elBin | |||||
| _1ox prim'Er | _1ox prim'Er | ||||
| _2ox seQ'und | _2ox seQ'und | ||||
| \ kontraBaRRa | \ kontraBaRRa | ||||
| | b'aRRaBertik'al | | b'aRRaBertik'al | ||||
| ° graUs | ° graUs | ||||
| (1 °) un||gr'aU | |||||
| _- gj'on | _- gj'on | ||||
| ! TaRR'ar||eksklamaTj'on | ! TaRR'ar||eksklamaTj'on | ||||
| // exceptions | // exceptions | ||||
| barça b'arsa | |||||
| holio x'olio | |||||
| jazz dZ'as | |||||
| banjo Banjo | |||||
| barça barsa | |||||
| desenyermar DesenjErmar | |||||
| halar xalar | |||||
| halma xalma | |||||
| harcia xarTja | |||||
| hibo xiBo | |||||
| hoder xoDer | |||||
| holgorio xolg'orio | |||||
| holio x'olio | |||||
| hopar xopar | |||||
| huerga xuerga | |||||
| huerza xuerTa | |||||
| jacuzzi jakusi | |||||
| jazz jas | |||||
| jet jet | |||||
| judo juDo | |||||
| // Foreign words | // Foreign words | ||||
| android andr'oId | |||||
| apple 'apEl | |||||
| at 'at | |||||
| chat tS'at | |||||
| chrome kr'ome | |||||
| espeak isp'ik | |||||
| (e speak) isp'ik | |||||
| facebook f'eIsbuk | |||||
| firefox f'aIrfoks | |||||
| google g'ugEl | |||||
| hotmail xotm'eIl | |||||
| android androId | |||||
| apple 'apEl | |||||
| at at | |||||
| chat tSat | |||||
| chrome krome | |||||
| espeak ispik | |||||
| (e speak) ispik | |||||
| facebook f'eIsbuk | |||||
| firefox f'aIrfoks | |||||
| google g'ugEl | |||||
| hardware x'ardwer | |||||
| hockey xokeI | |||||
| hotmail xotmeIl | |||||
| (i phone) 'aIfon | (i phone) 'aIfon | ||||
| iphone 'aIfon | |||||
| (i pod) 'aIpod | |||||
| ipod 'aIpod | |||||
| hardware x'ardwer | |||||
| linux $1 | |||||
| live l'aIB | |||||
| messenger m'esendZer | |||||
| mozilla moT'ila | |||||
| nvda ene|be|de|'a | |||||
| office 'ofis | |||||
| skype esk'aIp | |||||
| iphone 'aIfon | |||||
| (i pod) 'aIpod | |||||
| ipod 'aIpod | |||||
| junior j'unior | |||||
| linux $1 | |||||
| live laIB | |||||
| messenger m'esendZer | |||||
| mozilla moTila | |||||
| nvda ene|be|de|'a | |||||
| office ofis | |||||
| skype eskaIp | |||||
| software s'oftwer | software s'oftwer | ||||
| thunderbird Tanderb'ird | |||||
| twitter tw'iter | |||||
| unix j'uniks | |||||
| whatsapp was'app | |||||
| windows w'indows | |||||
| thunderbird Tanderbird | |||||
| twitter tw'iter | |||||
| unix j'uniks | |||||
| whatsapp wasap | |||||
| windows w'indows | |||||
| //mobile _^_EN | //mobile _^_EN |
| // Aragon translation rules | // Aragon translation rules | ||||
| // This file is UTF-8 encoded | // This file is UTF-8 encoded | ||||
| i i | i i | ||||
| i (u_ i | i (u_ i | ||||
| i (A j | i (A j | ||||
| .group j | .group j | ||||
| .group q | .group q | ||||
| q k | |||||
| qu (A kw | qu (A kw | ||||
| qü kw | qü kw | ||||
| qu (e k | qu (e k | ||||
| u) t (_ t# | u) t (_ t# | ||||
| ei) t (_ t# | ei) t (_ t# | ||||
| n) t (_ = // silent, but stress on last vowel | n) t (_ = // silent, but stress on last vowel | ||||
| n) t (m // Silent | |||||
| _pos) t (h t | |||||
| _pos) t (C // Silent | |||||
| tz T | tz T | ||||
| ue) t (_ t# | ue) t (_ t# | ||||
| ui) t (_ t# | ui) t (_ t# |
| // This file is UTF8 encoded | |||||
| // Spelling to phoneme rules for Azerbaijani | |||||
| // Numbers | |||||
| _0 s@f'@R | |||||
| _1 b'iR | |||||
| _2 ic'i | |||||
| _3 'ytS | |||||
| _4 d'WRd | |||||
| _5 b'eS | |||||
| _6 alt'@ | |||||
| _7 jedd'i | |||||
| _8 s&Cc'iz | |||||
| _9 dogg'uz | |||||
| _1X 'on | |||||
| _2X ijiRm'i | |||||
| _3X ot'uz | |||||
| _4X g'@Rx | |||||
| _5X &ll'i | |||||
| _6X altm'@S | |||||
| _7X jetm'iS | |||||
| _8X s&Cs'&n | |||||
| _9X doxs'an | |||||
| _0C j'yz | |||||
| _0M1 m'in | |||||
| _0M2 milj'on | |||||
| _0M3 milj'aRd | |||||
| _dpt _t,am_| // ?? | |||||
| // Function words | |||||
| // personal pronouns | |||||
| mən $u+ | |||||
| sən $u+ | |||||
| o $u+ | |||||
| biz $u+ | |||||
| siz $u+ | |||||
| onlar $u+ | |||||
| // possessive pronouns | |||||
| mənim $u+ | |||||
| sənin $u+ | |||||
| onun $u+ | |||||
| bizim $u+ | |||||
| sizin $u+ | |||||
| onların $u+ | |||||
| bu $u+ | |||||
| // conjunctions | |||||
| və $u+ | |||||
| isə $u+ | |||||
| də $u+ | |||||
| həm $u+ | |||||
| ya $u+ | |||||
| da $u+ | |||||
| // prepositions | |||||
| aid $u+ // about | |||||
| ilə $u+ // with, by, in | |||||
| dair $u+ // about | |||||
| // postpositions | |||||
| ci $u | |||||
| cı $u | |||||
| cü $u | |||||
| de $u | |||||
| dir $u | |||||
| li $u | |||||
| in $u | |||||
| nə $u | |||||
| ya $u | |||||
| yə $u | |||||
| // Character names | |||||
| b be | |||||
| c dZe | |||||
| ç tSe | |||||
| _ə & | |||||
| d de | |||||
| f fe | |||||
| g Je | |||||
| ğ Qe | |||||
| h he | |||||
| x xe | |||||
| j Ze | |||||
| k ka | |||||
| q ge | |||||
| l el | |||||
| m em | |||||
| n en | |||||
| _o o | |||||
| p pe | |||||
| r eR | |||||
| s se | |||||
| ş Se | |||||
| t te | |||||
| v ve | |||||
| w dubElv'E | |||||
| y je | |||||
| z ze | |||||
| * ulduz $text | |||||
| % faiz $text | |||||
| // This file is UTF8 encoded | |||||
| // Spelling to phoneme rules for Azerbaijani | |||||
| // Stress rule: Right-most vowel, but stop before the vowel which is | |||||
| // marked as unstressed [%]. | |||||
| .L02 ı a o u // back vowels | |||||
| .L03 i e ö ü | |||||
| .group a | |||||
| a a | |||||
| ai (K aI | |||||
| -) a (_ a | |||||
| .group b | |||||
| b b | |||||
| .group c | |||||
| c dZ | |||||
| .group ç | |||||
| ç tS | |||||
| .group d | |||||
| d d | |||||
| -) dan (_ d%an | |||||
| -) dən (_ d%&n | |||||
| -) dək (_ d%&k | |||||
| .group e | |||||
| e e | |||||
| .group ə | |||||
| ə & | |||||
| @) ə (_ %& | |||||
| -) ə (_ %& | |||||
| .group f | |||||
| f f | |||||
| .group g | |||||
| g J | |||||
| .group ğ | |||||
| ğ Q | |||||
| A) ğ : | |||||
| a) ğa : | |||||
| o) ğo : | |||||
| u) ğu : | |||||
| ö) ğö : | |||||
| ü) ğü : | |||||
| i) ğ j | |||||
| e) ğ j | |||||
| .group h | |||||
| h h | |||||
| .group x | |||||
| x x | |||||
| .group ı | |||||
| ı @ | |||||
| .group i | |||||
| i i | |||||
| @) iya (_ =i;a | |||||
| .group j | |||||
| j Z | |||||
| .group k | |||||
| k c | |||||
| k (K C | |||||
| .group q | |||||
| q g | |||||
| q (_ x | |||||
| .group l | |||||
| l l | |||||
| l (L02 L | |||||
| L02) l (K L | |||||
| .group m | |||||
| m m | |||||
| .group n | |||||
| n n | |||||
| .group o | |||||
| o o | |||||
| .group ö | |||||
| ö W | |||||
| .group p | |||||
| p p | |||||
| .group r | |||||
| r R | |||||
| A) r (A * | |||||
| ğ) r (A * | |||||
| C) r (_ @-r | |||||
| .group s | |||||
| s s | |||||
| .group ş | |||||
| ş S | |||||
| .group t | |||||
| t t | |||||
| L03) t (L03 ts | |||||
| .group u | |||||
| u u | |||||
| .group ü | |||||
| ü y | |||||
| .group v | |||||
| v v | |||||
| .group w | |||||
| w w | |||||
| .group y | |||||
| y j | |||||
| .group z | |||||
| z z | |||||
| .group | |||||
| ä & |
| // Translation rules for Bengali | |||||
| // Translation rules for Bengali | |||||
| // Improvement input by Him Prasad gautam (Nepal). | |||||
| // This file is UTF8 encoded | // This file is UTF8 encoded | ||||
| // Numbers | // Numbers | ||||
| _1 '&k | _1 '&k | ||||
| _2 d'uj | _2 d'uj | ||||
| _3 t'in | _3 t'in | ||||
| _4 tS'ar | |||||
| _4 tSh'ar | |||||
| _5 p'a~tS | _5 p'a~tS | ||||
| _6 tS#'Oj | _6 tS#'Oj | ||||
| _7 S'at | _7 S'at | ||||
| _9 n'Oj | _9 n'Oj | ||||
| _2a d'u // with hundreds etc. | _2a d'u // with hundreds etc. | ||||
| _6a tS#'a | |||||
| _6a tS#'O | |||||
| _9a n'O | _9a n'O | ||||
| _11 '&garo | _11 '&garo | ||||
| _12 b'arO | _12 b'arO | ||||
| _13 t'erO | _13 t'erO | ||||
| _14 tS'oddO | |||||
| _14 tSh'oddO | |||||
| _15 p'OnerO | _15 p'OnerO | ||||
| _16 S'olO | _16 S'olO | ||||
| _17 S'OterO | _17 S'OterO | ||||
| _26 tSh'abbiS | _26 tSh'abbiS | ||||
| _27 Sat'aS | _27 Sat'aS | ||||
| _28 'at.#aS | _28 'at.#aS | ||||
| _29 unOtr'iS | |||||
| _29 'unOtr'iS | |||||
| _30 tr'iS | _30 tr'iS | ||||
| _31 ekOtr'iS | |||||
| _32 bOtr'iS | |||||
| _33 tetr'iS | |||||
| _34 tSowtr'iS | |||||
| _35 pO~jtr'iS | |||||
| _31 'ekOtr'iS | |||||
| _32 b'Otr'iS | |||||
| _33 t'etr'iS | |||||
| _34 tS'owtr'iS | |||||
| _35 p'O~jtr'iS | |||||
| _36 tS#'Otr'iS | _36 tS#'Otr'iS | ||||
| _37 Sa~itr'iS | |||||
| _38 at.tr'iS | |||||
| _37 S'a~itr'iS | |||||
| _38 'at.tr'iS | |||||
| _39 'unOtSOll'iS | _39 'unOtSOll'iS | ||||
| _40 tSOll'iS | _40 tSOll'iS | ||||
| _41 ektSOll'iS | |||||
| _42 biall'iS | |||||
| _43 tetall'iS | |||||
| _44 tSoall'iS | |||||
| _45 pO~jtall'iS | |||||
| _46 tSetSOll'iS | |||||
| _47 SatSOll'is | |||||
| _48 atSOll'iS | |||||
| _49 unOpO~tSaS | |||||
| _50 pO~tS'aS | |||||
| _51 &kann'o | |||||
| _52 bajann'o | |||||
| _53 tepann'o | |||||
| _54 tSujann'o | |||||
| _55 pontSann'o | |||||
| _56 tS#apann'o | |||||
| _57 Satann'o | |||||
| _58 at.ann'o | |||||
| _59 unOS'at. | |||||
| _41 'ektSOll'iS | |||||
| _42 b'iall'iS | |||||
| _43 t'etall'iS | |||||
| _44 tS'oall'iS | |||||
| _45 p'O~jtall'iS | |||||
| _46 tS'etSOll'iS | |||||
| _47 S'atSOll'is | |||||
| _48 'atSOll'iS | |||||
| _49 'unOpO~tSaS | |||||
| _50 p'O~tS'aS | |||||
| _51 '&kann'o | |||||
| _52 b'ajann'o | |||||
| _53 t'epann'o | |||||
| _54 tS'ujann'o | |||||
| _55 p'ontSann'o | |||||
| _56 tS#'apann'o | |||||
| _57 S'atann'o | |||||
| _58 'at.ann'o | |||||
| _59 'unOS'at. | |||||
| _60 s'at. | _60 s'at. | ||||
| _61 ekSOt.t.'i | |||||
| _62 baSOt.t.'i | |||||
| _63 teSOt.t.'i | |||||
| _64 tSowSOt.t.'i | |||||
| _65 pojSOt.t.'i | |||||
| _66 SeSOt.t.'i | |||||
| _67 SatSOt.t.'i | |||||
| _68 at.SOt.t.'i | |||||
| _6X sat.t.'i | |||||
| _69 unOSOtt'ur | |||||
| _70 SOtt'Or | |||||
| _71 ekatt'Or | |||||
| _72 bahatt'Or | |||||
| _73 tehatt'Or | |||||
| _74 tSuhatt'Or | |||||
| _75 pOtSatt'Or | |||||
| _76 tS#ijatt'Or | |||||
| _77 Satatt'Or | |||||
| _78 at.att'Or | |||||
| _79 unOaS'i | |||||
| _61 'ekSOt.t.'i | |||||
| _62 b'aSOt.t.'i | |||||
| _63 t'eSOt.t.'i | |||||
| _64 tS'owSOt.t.'i | |||||
| _65 p'ojSOt.t.'i | |||||
| _66 S'eSOt.t.'i | |||||
| _67 S'atSOt.t.'i | |||||
| _68 'at.SOt.t.'i | |||||
| _6X s'at.t.'i | |||||
| _69 'unOSOtt'Or | |||||
| _70 S'Ott'Or | |||||
| _71 'ekatt'Or | |||||
| _72 b'ahatt'Or | |||||
| _73 t'iatt'Or | |||||
| _74 tS'uhatt'Or | |||||
| _75 p'OtSatt'Or | |||||
| _76 tS#'ijatt'Or | |||||
| _77 S'atatt'Or | |||||
| _78 'at.att'Or | |||||
| _79 'unOaS'i | |||||
| _80 aS'i | _80 aS'i | ||||
| _81 &kaS'i | |||||
| _82 beraS'i | |||||
| _83 teraS'i | |||||
| _84 tSuraS'i | |||||
| _85 po~tSaS'i | |||||
| _86 tS#ijaS'i | |||||
| _87 SataS'i | |||||
| _88 at.aS'i | |||||
| _89 ,unOnObb'oj | |||||
| _81 '&kaS'i | |||||
| _82 b'eraS'i | |||||
| _83 t'eraS'i | |||||
| _84 tS'uraS'i | |||||
| _85 p'o~tSaS'i | |||||
| _86 tS#'ijaS'i | |||||
| _87 S'ataS'i | |||||
| _88 'at.aS'i | |||||
| _89 'unOnObb'oj | |||||
| _90 nObb'oj | _90 nObb'oj | ||||
| _91 &kanObb'oj | |||||
| _92 beranObb'oj | |||||
| _93 teranObb'oj | |||||
| _94 tSuranObb'oj | |||||
| _95 pOtSanObb'oj | |||||
| _96 tS#ijanObb'oj | |||||
| _97 SatanObb'oj | |||||
| _98 at.anObb'oj | |||||
| _99 niranObb'oj | |||||
| _91 '&kanObb'oj | |||||
| _92 b'eranObb'oj | |||||
| _93 t'eranObb'oj | |||||
| _94 tS'uranObb'oj | |||||
| _95 p'OtSanObb'oj | |||||
| _96 tS#'ijanObb'oj | |||||
| _97 S'atanObb'oj | |||||
| _98 'at.anObb'oj | |||||
| _99 n'iranObb'oj | |||||
| _0C S'o | _0C S'o | ||||
| _0M1 h'ajar | _0M1 h'ajar | ||||
| খ k#O | খ k#O | ||||
| গ gO | গ gO | ||||
| ঘ g#O | ঘ g#O | ||||
| ঙ 'uNO~ | |||||
| ঙ 'uNgO~ | |||||
| চ tSO | চ tSO | ||||
| ছ tShO // [h] to distinguish from [tS] | ছ tShO // [h] to distinguish from [tS] | ||||
| জ JO | জ JO | ||||
| অ O | অ O | ||||
| আ a | আ a | ||||
| ই hrOS:o'i | ই hrOS:o'i | ||||
| ঈ dirg#o'i | |||||
| ঈ d'i:rg#o'i | |||||
| উ hrOS:o'u | উ hrOS:o'u | ||||
| ঊ dirg#o'u | |||||
| ঊ d'i:rg#o'u | |||||
| ঋ ri | ঋ ri | ||||
| ঔ ow | ঔ ow | ||||
| // combining vowel signs | // combining vowel signs | ||||
| া 'akar | া 'akar | ||||
| ি r'oS:ikar | |||||
| ী d'irg#ikar | |||||
| ূ r'oS:ukar | |||||
| ু d'irg#ukar | |||||
| ি hrOS:o'ikar | |||||
| ী d'i:rg#ikar | |||||
| ূ hrOS:o'ukar | |||||
| ু d'i:rg#ukar | |||||
| ৃ r'ikar | ৃ r'ikar | ||||
| ে 'ekar | ে 'ekar | ||||
| ৈ 'ojkar | ৈ 'ojkar |
| | |||||
| // Pronounciation rule for Bengali. | |||||
| // Improvement input by Him Prasad Gautam (Nepal). | |||||
| // This file is UTF8 encoded | // This file is UTF8 encoded | ||||
| // letter groups: | // letter groups: | ||||
| // Vowel Signs | // Vowel Signs | ||||
| .group া | .group া | ||||
| া a | |||||
| াঁ a~ | |||||
| C) া a | |||||
| C) াঁ a~ | |||||
| .group ি | .group ি | ||||
| ি i | |||||
| িঁ i~ | |||||
| C) ি i | |||||
| C) িঁ i~ | |||||
| .group ী | .group ী | ||||
| ী i | |||||
| ীঁ i~ | |||||
| C) ী i | |||||
| C) ীঁ i~ | |||||
| .group ূ | .group ূ | ||||
| ূ u | |||||
| ূঁ u~ | |||||
| C) ূ u | |||||
| C) ূঁ u~ | |||||
| .group ু | .group ু | ||||
| ু u | |||||
| ুঁ u~ | |||||
| C) ু u | |||||
| C) ুঁ u~ | |||||
| .group ৃ | .group ৃ | ||||
| ৃ ri | |||||
| ৃঁ ri~ | |||||
| C) ৃ r'i | |||||
| C) ৃঁ r'i~ | |||||
| .group ে | .group ে | ||||
| ে e | |||||
| েঁ e~ | |||||
| েউ ew | |||||
| C) ে e | |||||
| C) েঁ e~ | |||||
| C) েউ ew | |||||
| .group ৈ | .group ৈ | ||||
| ৈ oj | |||||
| ৈঁ o~j | |||||
| C) ৈ oj | |||||
| C) ৈঁ o~j | |||||
| .group ো | .group ো | ||||
| ো o | |||||
| োঁ o~ | |||||
| C) ো o | |||||
| C) োঁ o~ | |||||
| .group ৌ | .group ৌ | ||||
| ৌ ow | |||||
| ৌঁ o~w | |||||
| C) ৌ ow | |||||
| C) ৌঁ o~w | |||||
| // Consonants | // Consonants | ||||
| .group ক | .group ক | ||||
| ক kV | ক kV | ||||
| ক (B k | ক (B k | ||||
| ক্ষ k#k#V // or [k#:] ? | |||||
| ক্ষ (B k#k# | |||||
| .group খ | .group খ | ||||
| খ k#V | খ k#V | ||||
| খ (B k# | খ (B k# | ||||
| .group ঙ | .group ঙ | ||||
| ঙ NV | ঙ NV | ||||
| ঙ্ (B N | |||||
| ঙ (B N | |||||
| .group চ | .group চ | ||||
| .group ছ | .group ছ | ||||
| ছ tS#V | |||||
| ছ (B tS# | |||||
| ছ tShV | |||||
| ছ (B tSh | |||||
| .group জ | .group জ | ||||
| .group ঞ | .group ঞ | ||||
| ঞ nV | ঞ nV | ||||
| ঞ্ (B n | |||||
| ঞ (B n | |||||
| .group ট | .group ট | ||||
| .group ত | .group ত | ||||
| ত tV | ত tV | ||||
| ত (B t | ত (B t | ||||
| ত (_ to | |||||
| .group থ | .group থ | ||||
| .group য় | .group য় | ||||
| য় jV | য় jV | ||||
| য় (B j | |||||
| _) য় (B j | |||||
| য় (B // used to separate 2 vowels | |||||
| .group য | .group য | ||||
| য (B dZ | য (B dZ | ||||
| য় jV // nukta | য় jV // nukta | ||||
| য় (B j | |||||
| _) য় (B j | |||||
| য় (B | |||||
| ্) য (C & // ব্যস্ত [bæsto] | ্) য (C & // ব্যস্ত [bæsto] | ||||
| ্) যা & // ব্যাকরণ [bækɔron] | ্) যা & // ব্যাকরণ [bækɔron] | ||||
| .group হ | .group হ | ||||
| হ hV | হ hV | ||||
| হ (B h | হ (B h | ||||
| হ (_ ho | |||||
| .group হ্ব | .group হ্ব | ||||
| .group ঢ় // can be ঢ plus nukta | .group ঢ় // can be ঢ plus nukta | ||||
| ঢ় hr.V | ঢ় hr.V | ||||
| ঢ় (B hr. | ঢ় (B hr. | ||||
| ঢ় (_ hr.o | |||||
| .group ঁ | .group ঁ | ||||
| ঁ O~ // candrabindu, nasalize the previous vowel | |||||
| C) ঁ O~ // candrabindu, nasalize the previous vowel/Consonants | |||||
| .group ং | .group ং | ||||
| ং N // anusvara/onushshor | |||||
| A) ং N // anusvara/onushshor | |||||
| C) ং N // anusvara/onushshor | |||||
| .group ঃ // visarga/bishorgo | .group ঃ // visarga/bishorgo | ||||
| ঃ // doubles the following consonant | ঃ // doubles the following consonant | ||||
| ঃ (_ H | ঃ (_ H | ||||
| .group ্ // virama/hoshonto | .group ্ // virama/hoshonto | ||||
| ্ | |||||
| C) ্ | |||||
| .group ় | .group ় | ||||
| ় // nukta, modifies a consonant | ় // nukta, modifies a consonant |
| _?? zymb'o:l | _?? zymb'o:l | ||||
| _?A b'u:xstA:b@ | _?A b'u:xstA:b@ | ||||
| _cap gr'o:s | _cap gr'o:s | ||||
| _sub 'Unt@R|3_!,IndEks|| | |||||
| _sup 'o:b@R|3_!,IndEks|| | |||||
| // accent names | // accent names |
| // ?7 Scottish | // ?7 Scottish | ||||
| // ?8 Use full vowel, not schwa in some word endings | // ?8 Use full vowel, not schwa in some word endings | ||||
| // $alt1 use strong ending (-table, -inal) | |||||
| // $alt2 use weak ending | |||||
| // $alt1 use strong ending (-an, -table, -inal, -ier) | |||||
| // $alt2 use weak ending (ard, ate, ery, ess, ile, men) | |||||
| // $alt3 use weak first vowel, a->[a#], e->[@], o->[0#] | // $alt3 use weak first vowel, a->[a#], e->[@], o->[0#] | ||||
| // $alt4 separate 'h', not 'th' | |||||
| // $alt6 'to' | // $alt6 'to' | ||||
| // character names | // character names | ||||
| _cap k,ap@-t@L | _cap k,ap@-t@L | ||||
| _sub s,VbskrIpt|| | |||||
| _sup s,u:p3skrIpt|| | |||||
| _?A l,Et3 | _?A l,Et3 | ||||
| _?? sImb@L | _?? sImb@L | ||||
| _braille br'eIl | _braille br'eIl | ||||
| _¡ %Inv,3:tI2dEkskl@m'eIS@n | _¡ %Inv,3:tI2dEkskl@m'eIS@n | ||||
| _¦ broUk@nb'A@ | _¦ broUk@nb'A@ | ||||
| _¨ daIa#r'i:sIs | _¨ daIa#r'i:sIs | ||||
| _ª fEmI2nIn'O@dI2n@L | |||||
| _« lEft'gIl@mEt | _« lEft'gIl@mEt | ||||
| _ makr0n | _ makr0n | ||||
| ² tu: | |||||
| ³ Tri: | |||||
| _¹ su:p@skrIptw'0n | |||||
| _² su:p@skrIptt'u: | |||||
| _³ su:p@skrIptT'ri: | |||||
| ² tu: $native | |||||
| ³ Tri: $native | |||||
| _´ a#kju:taksEnt | _´ a#kju:taksEnt | ||||
| _· mId@Ld0t | _· mId@Ld0t | ||||
| _¸ sEd'Il@ | _¸ sEd'Il@ | ||||
| //_º maskjUlIn'O@dI2n@L | |||||
| _º dI2gr'i:z | |||||
| _» raIt'gIl@mEt | _» raIt'gIl@mEt | ||||
| _¿ %Inv,3:tI2dkw'EstS@n | _¿ %Inv,3:tI2dkw'EstS@n | ||||
| _zh tS'aIni:z | _zh tS'aIni:z | ||||
| // Cyrillic letters | // Cyrillic letters | ||||
| а a | |||||
| б bE | |||||
| в vE | |||||
| г gE | |||||
| д dE | |||||
| е jE | |||||
| ё jo | |||||
| ж ZE | |||||
| з zE | |||||
| и I | |||||
| а a: | |||||
| б bE: | |||||
| в vE: | |||||
| г gE: | |||||
| д dE: | |||||
| е jE: | |||||
| ё jo: | |||||
| ж ZE: | |||||
| з zE: | |||||
| и I: | |||||
| й ,Ik@-*'atkOji | й ,Ik@-*'atkOji | ||||
| к ka | |||||
| к ka: | |||||
| л El/1 | л El/1 | ||||
| м Em | м Em | ||||
| н En | н En | ||||
| о o | |||||
| п pE | |||||
| о o: | |||||
| п pE: | |||||
| р Er | р Er | ||||
| с Es | с Es | ||||
| т tE | |||||
| у u | |||||
| т tE: | |||||
| у u|: | |||||
| ф Ef | ф Ef | ||||
| х xa | |||||
| ц tsE | |||||
| ч tSE | |||||
| ш Sa | |||||
| щ StSa | |||||
| х xa: | |||||
| ц tsE: | |||||
| ч tSE: | |||||
| ш Sa: | |||||
| щ StSa: | |||||
| ъ jEr | ъ jEr | ||||
| ы j'Eru | ы j'Eru | ||||
| ь j'eri | ь j'eri | ||||
| э E | |||||
| ю ju | |||||
| я ja | |||||
| ћ tS;E | |||||
| ђ djE | |||||
| ќ kjE | |||||
| э E: | |||||
| ю ju|: | |||||
| я ja: | |||||
| ћ tS;E: | |||||
| ђ djE: | |||||
| ќ kjE: | |||||
| // Arabic letters | // Arabic letters | ||||
| _5o f'If | _5o f'If | ||||
| _20o tw'Enti@ | _20o tw'Enti@ | ||||
| _30o T'3:ti@ | _30o T'3:ti@ | ||||
| ?3 _30o T'IRti@ | |||||
| ?5 _30o T'IRti@ | |||||
| _40o f'o@ti@ | _40o f'o@ti@ | ||||
| _50o f'Ifti@ | _50o f'Ifti@ | ||||
| _60o s'Iksti@ | _60o s'Iksti@ | ||||
| i.e aIi:_! $pause | i.e aIi:_! $pause | ||||
| imo $abbrev | imo $abbrev | ||||
| inlb $abbrev | inlb $abbrev | ||||
| ios $abbrev | |||||
| irc $abbrev | irc $abbrev | ||||
| irs $abbrev | irs $abbrev | ||||
| isbn $abbrev | |||||
| itx $abbrev | itx $abbrev | ||||
| (km ²) skw,e@kIl'0mIt3z | (km ²) skw,e@kIl'0mIt3z | ||||
| lapd $abbrev | lapd $abbrev | ||||
| ok $abbrev | ok $abbrev | ||||
| omg $abbrev | omg $abbrev | ||||
| os $abbrev | os $abbrev | ||||
| osx $abbrev | |||||
| otoh $abbrev | otoh $abbrev | ||||
| pcie $abbrev | pcie $abbrev | ||||
| pcmcia $abbrev | pcmcia $abbrev | ||||
| ablaut ablaUt | ablaut ablaUt | ||||
| aborigine ab@r'IdZ@ni | aborigine ab@r'IdZ@ni | ||||
| abracadabra abr@k@d'abr@ | abracadabra abr@k@d'abr@ | ||||
| absence abs@ns | |||||
| absent $1 | |||||
| absentee $3 | |||||
| absent abs'Ent $verb | absent abs'Ent $verb | ||||
| absentia abs'Ent2i:@ | absentia abs'Ent2i:@ | ||||
| absinthe absInT | absinthe absInT | ||||
| adieus a#dju:z | adieus a#dju:z | ||||
| adieux a#dju:z | adieux a#dju:z | ||||
| adios aDj'o:s | adios aDj'o:s | ||||
| adjective $1 | |||||
| admirable adm@r@b@L | admirable adm@r@b@L | ||||
| admirably adm@r@bli | admirably adm@r@bli | ||||
| admonition adm@n'IS@n | admonition adm@n'IS@n | ||||
| agressive a#grEsIv // misspell | agressive a#grEsIv // misspell | ||||
| aground a#graUnd | aground a#graUnd | ||||
| ague eIgju: | ague eIgju: | ||||
| aha A:hA: | |||||
| aha A:h'A: | |||||
| ahem a#h'Em | ahem a#h'Em | ||||
| ahoy a#hOI | ahoy a#hOI | ||||
| airbus e@bVs | airbus e@bVs | ||||
| alm A:m | alm A:m | ||||
| almost O:lmoUst | almost O:lmoUst | ||||
| allspice $1 | allspice $1 | ||||
| alt 0lt // not abbrev | |||||
| alternate O:lt'3:n@t $only | alternate O:lt'3:n@t $only | ||||
| alternate O:lt3neIt $verb | alternate O:lt3neIt $verb | ||||
| alternately O:lt'3:n@tlI $verbf | alternately O:lt'3:n@tlI $verbf | ||||
| anew a#nju: | anew a#nju: | ||||
| ?3 anew a#nu: | ?3 anew a#nu: | ||||
| anime anImeI | anime anImeI | ||||
| anion aneI@n | |||||
| anise anIs | anise anIs | ||||
| anniversary anIv'3:s@ri | anniversary anIv'3:s@ri | ||||
| anon a#n0n | anon a#n0n | ||||
| antichrist $1 | antichrist $1 | ||||
| anticline $1 | anticline $1 | ||||
| antidote $1 | antidote $1 | ||||
| antifreze $1 | |||||
| antifreeze $1 | |||||
| antigen $1 | antigen $1 | ||||
| antihero $1 | antihero $1 | ||||
| antilog $1 | antilog $1 | ||||
| attribute $alt3 $verb | attribute $alt3 $verb | ||||
| au ,oU | au ,oU | ||||
| aubergine oUb3Zi:n | aubergine oUb3Zi:n | ||||
| audi aUdi | |||||
| auger O:g3 | auger O:g3 | ||||
| augmentation O:gmEnt'eIS@n | augmentation O:gmEnt'eIS@n | ||||
| august O:g@st | august O:g@st | ||||
| boing bOIN | boing bOIN | ||||
| bolognese b0l@n'eIz | bolognese b0l@n'eIz | ||||
| bombard $2 | bombard $2 | ||||
| bombardier b0mb3d'i@3 | |||||
| (bon voyage) b0n||vOI'A:Z | (bon voyage) b0n||vOI'A:Z | ||||
| bonbon b0nb0n | bonbon b0nb0n | ||||
| bonhomie b0n@mi: | bonhomie b0n@mi: | ||||
| capitol kapIt@L | capitol kapIt@L | ||||
| caprice ka#pri:s | caprice ka#pri:s | ||||
| carafe ka#raf | carafe ka#raf | ||||
| caramel kar@mEl | |||||
| ?!3 caramel kar@mEl $onlys | |||||
| caravan kar@van | caravan kar@van | ||||
| carburetor kA@b@r'Et3 | carburetor kA@b@r'Et3 | ||||
| ?3 carburetor kA@b@reIt3 | ?3 carburetor kA@b@reIt3 | ||||
| catholic kaTlIk | catholic kaTlIk | ||||
| carotid $alt3 | carotid $alt3 | ||||
| cartel kA@t'El | cartel kA@t'El | ||||
| cavalier $3 | |||||
| cavalier $alt1 | |||||
| caveat kavIat | caveat kavIat | ||||
| ?3 caveat kavIA:t | ?3 caveat kavIA:t | ||||
| caviar kavIA@ | caviar kavIA@ | ||||
| censure sEnS3 | censure sEnS3 | ||||
| ceres si@ri:z | ceres si@ri:z | ||||
| certificate s3tIfIk@t | certificate s3tIfIk@t | ||||
| c'est seI $u | |||||
| chagrin SagrIn | chagrin SagrIn | ||||
| ?3 chagrin Sa#grIn | ?3 chagrin Sa#grIn | ||||
| chalet SaleI | chalet SaleI | ||||
| closet kl0zI2t | closet kl0zI2t | ||||
| cloth kloUD $verb | cloth kloUD $verb | ||||
| c'mon k@m0n | c'mon k@m0n | ||||
| coathanger $alt4 | |||||
| coauthor koU'O:T3 | coauthor koU'O:T3 | ||||
| coaxial koU'aksI@l | coaxial koU'aksI@l | ||||
| cobol koUb0l | cobol koUb0l | ||||
| cojones k@hoUneIs | cojones k@hoUneIs | ||||
| coliseum k0l@s'i:@m | coliseum k0l@s'i:@m | ||||
| collage k0l'A:Z | collage k0l'A:Z | ||||
| collarbone k0l3boUn | |||||
| college k0lI2dZ | college k0lI2dZ | ||||
| collegiate k@li:dZI@t | collegiate k@li:dZI@t | ||||
| colloquial k@loUkwI@L | colloquial k@loUkwI@L | ||||
| cosmos k0zm0s | cosmos k0zm0s | ||||
| ?3 cosmos k0zmoUs | ?3 cosmos k0zmoUs | ||||
| cougar ku:g3 | cougar ku:g3 | ||||
| counteract $3 | |||||
| countered kaUnt3d | countered kaUnt3d | ||||
| (coup de grâce) ku:d@||gr'A: | (coup de grâce) ku:d@||gr'A: | ||||
| coupon ku:p0n | coupon ku:p0n | ||||
| efile i:faIl | efile i:faIl | ||||
| egg Eg // egging | egg Eg // egging | ||||
| egregious Igr'i:dZ@s | egregious Igr'i:dZ@s | ||||
| ?!3 egret i:gr@t | |||||
| eh eI | eh eI | ||||
| eid i:d | eid i:d | ||||
| el ,El $only | el ,El $only | ||||
| facade f@sA:d | facade f@sA:d | ||||
| façade f@sA:d | façade f@sA:d | ||||
| facetious $alt3 | facetious $alt3 | ||||
| faculty fak@Lt2i | |||||
| faeces fi:si:z | faeces fi:si:z | ||||
| fahrenheit far@nhaIt | fahrenheit far@nhaIt | ||||
| fairest fe@r@st | fairest fe@r@st | ||||
| foyer fOIeI | foyer fOIeI | ||||
| freelance fri:laans | freelance fri:laans | ||||
| freon fri:0n | freon fri:0n | ||||
| frequent frI2kwEnt $verb | |||||
| fricassee frIka#seI | fricassee frIka#seI | ||||
| frigate frIg@t | frigate frIg@t | ||||
| fringer frIndZ3 // infringer | fringer frIndZ3 // infringer | ||||
| fringing frIndZIN | fringing frIndZIN | ||||
| frisson fri:s'O~ | |||||
| frontend fr'Vnt,End | frontend fr'Vnt,End | ||||
| frontier frVnti@3 | frontier frVnti@3 | ||||
| ?3 frontier frVnt'i@3 | ?3 frontier frVnt'i@3 | ||||
| genuine dZEnju:I#n | genuine dZEnju:I#n | ||||
| geode dZi:oUd | geode dZi:oUd | ||||
| geologist $2 | geologist $2 | ||||
| gettin gEt#n- | |||||
| geyser gi:z3 | geyser gi:z3 | ||||
| ?3 geyser gaIz3 | ?3 geyser gaIz3 | ||||
| gibbon gIb@n | gibbon gIb@n | ||||
| giraffe dZI2raaf | giraffe dZI2raaf | ||||
| github gIthVb | github gIthVb | ||||
| glacier gleIS3 | glacier gleIS3 | ||||
| ?3 goddess $alt2 | |||||
| goin ,goUI2n $only // for goin' | goin ,goUI2n $only // for goin' | ||||
| gonna g,@n@ | gonna g,@n@ | ||||
| goodbye $2 | goodbye $2 | ||||
| grosvenor groUv@n3 | grosvenor groUv@n3 | ||||
| groupie gru:pi | groupie gru:pi | ||||
| guacamole gwA:ka#m'oUli: | guacamole gwA:ka#m'oUli: | ||||
| guarantee $3 | |||||
| gucci gu:tSi | gucci gu:tSi | ||||
| gui gu:i $onlys | gui gu:i $onlys | ||||
| guinea gIni | guinea gIni | ||||
| habitual $alt3 | habitual $alt3 | ||||
| haggis hagIs | haggis hagIs | ||||
| haha hA:h'A: | haha hA:h'A: | ||||
| halation $alt3 // in- | |||||
| halberdier $alt1 | |||||
| halleluiah halI2'lu:j@ | halleluiah halI2'lu:j@ | ||||
| hallelujah halI2'lu:j@ | hallelujah halI2'lu:j@ | ||||
| halloween $3 | halloween $3 | ||||
| henceforth hEnsfo@T | henceforth hEnsfo@T | ||||
| ?3 herb 3:b | ?3 herb 3:b | ||||
| hercules h3:kjUli:z | hercules h3:kjUli:z | ||||
| heredity h3rEdI2ti | |||||
| ?3 hereford h3:f3d | ?3 hereford h3:f3d | ||||
| heretical hI2rEtI2k@L | heretical hI2rEtI2k@L | ||||
| hereto hi@3'tu: | hereto hi@3'tu: | ||||
| kowtow kaUt2aU | kowtow kaUt2aU | ||||
| la ,la $only | la ,la $only | ||||
| (la vie) la||v'i: | |||||
| laboratory la#b'0r@trI | laboratory la#b'0r@trI | ||||
| ?3 laboratory labr@tO:ri | ?3 laboratory labr@tO:ri | ||||
| labor leIb3 | labor leIb3 | ||||
| moccasin m0k@sI#n | moccasin m0k@sI#n | ||||
| mocha moUk@ | mocha moUk@ | ||||
| modem moUdEm | modem moUdEm | ||||
| ?3 modem moUd@m | |||||
| ?3 modem moUd@m | |||||
| moderate m0d@reIt $verb | moderate m0d@reIt $verb | ||||
| mogul moUg@L | mogul moUg@L | ||||
| moi mwA: | |||||
| mojito moUh'i:toU | mojito moUh'i:toU | ||||
| molass $alt3 | molass $alt3 | ||||
| molybdenum $2 | molybdenum $2 | ||||
| notwithstanding $3 | notwithstanding $3 | ||||
| noway noUweI | noway noUweI | ||||
| nowhere noUwe@ | nowhere noUwe@ | ||||
| ?3 nuance nu:0ns | |||||
| ?3 nuance nu:0ns | |||||
| oases oU'eIsi:z | oases oU'eIsi:z | ||||
| oasis oU'eIsI2s | oasis oU'eIsI2s | ||||
| obdurate $alt2 | |||||
| obelisk 0b@lI2sk | obelisk 0b@lI2sk | ||||
| obesity oUb'i:s@ti | obesity oUb'i:s@ti | ||||
| obey oUb'eI | obey oUb'eI | ||||
| perspex p3:spEks | perspex p3:spEks | ||||
| perus p@ru:z | perus p@ru:z | ||||
| peruse p@ru:z | peruse p@ru:z | ||||
| petit p@ti: | |||||
| petite p@ti:t | petite p@ti:t | ||||
| petroleum p@troUli:@m | petroleum p@troUli:@m | ||||
| petunia $alt3 | petunia $alt3 | ||||
| plicate $2 | plicate $2 | ||||
| plumber plVm3 | plumber plVm3 | ||||
| plus plVs | plus plVs | ||||
| pois pwA: | |||||
| poly p0lI | poly p0lI | ||||
| politer p@l'aIt3 | politer p@l'aIt3 | ||||
| politic p0l@tIk $onlys | politic p0l@tIk $onlys | ||||
| pretrial pri:tr'aI|@L | pretrial pri:tr'aI|@L | ||||
| pretty prIti | pretty prIti | ||||
| pretzel prEts@L | pretzel prEts@L | ||||
| ?3 priestess $alt2 | |||||
| primeval praIm'i:v@L | primeval praIm'i:v@L | ||||
| pristine $2 | pristine $2 | ||||
| ?3 privacy praIv@si | ?3 privacy praIv@si | ||||
| purist pju:r-Ist | purist pju:r-Ist | ||||
| purport $2 | purport $2 | ||||
| purportedly $2 | purportedly $2 | ||||
| puttin pUt#n- | |||||
| pyjama p@dZA:m@ | pyjama p@dZA:m@ | ||||
| pyrites paIr'aIti:z | pyrites paIr'aIti:z | ||||
| pythagoras paIT'ag@r@s | pythagoras paIT'ag@r@s | ||||
| ragged ragI#d | ragged ragI#d | ||||
| raiment reIm@nt | raiment reIm@nt | ||||
| rainforest r'eInf,0rI2st | rainforest r'eInf,0rI2st | ||||
| (raison d'être) reIz0n||d'Etr@- | |||||
| rajah rA:dZA: | rajah rA:dZA: | ||||
| rapier reIpi@3 | rapier reIpi@3 | ||||
| rapport rap'o@ | rapport rap'o@ | ||||
| rendezvous r0ndI2vu: | rendezvous r0ndI2vu: | ||||
| renegade rEn@geId | renegade rEn@geId | ||||
| reo ri:oU | reo ri:oU | ||||
| repartee rEpA@t'eI | |||||
| repel rI2pEl | repel rI2pEl | ||||
| replay ri:pleI | replay ri:pleI | ||||
| reply rI2plaI // for replied | reply rI2plaI // for replied | ||||
| settee $2 | settee $2 | ||||
| severe sI2v'i@3 $only | severe sI2v'i@3 $only | ||||
| severely sI2v'i@3lI $verbf | severely sI2v'i@3lI $verbf | ||||
| sewn soUn | |||||
| sex sEks // sexism | sex sEks // sexism | ||||
| several sEvr@L | several sEvr@L | ||||
| shallow SaloU | shallow SaloU | ||||
| temperature tEmprI2tS3 | temperature tEmprI2tS3 | ||||
| ?!3 temporary tEmpr@rI | ?!3 temporary tEmpr@rI | ||||
| ?3 template tEmpl@t | ?3 template tEmpl@t | ||||
| thereof ,De@'0v | |||||
| thereon ,De@'0n | |||||
| thereto ,De@'tu: | |||||
| therefore $1 | |||||
| thereof De@r'0v | |||||
| thermos T3:m@s | thermos T3:m@s | ||||
| thermostable $alt1 | thermostable $alt1 | ||||
| thesis Ti:sIs | thesis Ti:sIs | ||||
| utan u:t'an | utan u:t'an | ||||
| utensil ju:t'Ens@L | utensil ju:t'Ens@L | ||||
| valentine val@ntaIn | |||||
| valet valeI | valet valeI | ||||
| ?3 valet val'eI | ?3 valet val'eI | ||||
| valise va#li:s | valise va#li:s | ||||
| Cheshire tSES3 | Cheshire tSES3 | ||||
| Chiswick tSIzIk | Chiswick tSIzIk | ||||
| Clwyd klu:Id | Clwyd klu:Id | ||||
| Conway $1 | |||||
| Dagenham dag@n@m | Dagenham dag@n@m | ||||
| Devon dEv@n | Devon dEv@n | ||||
| Dolgellau d0lg'EClaI | Dolgellau d0lg'EClaI | ||||
| Belize bEl'i:z | Belize bEl'i:z | ||||
| Bengal b,Eng'O:l | Bengal b,Eng'O:l | ||||
| Benin bEnIn | Benin bEnIn | ||||
| Berkeley b3:kli | |||||
| Bhutan bu:t'an | Bhutan bu:t'an | ||||
| Bideford bIdIf@d | Bideford bIdIf@d | ||||
| Bogota b0g@t'A: | Bogota b0g@t'A: | ||||
| Cyprus saIpr@s | Cyprus saIpr@s | ||||
| Dahomey $alt3 | Dahomey $alt3 | ||||
| Dallas dal@s | Dallas dal@s | ||||
| Dagestan dA:gIst'A:n | |||||
| Damascus $alt3 | Damascus $alt3 | ||||
| Dakota $alt3 | Dakota $alt3 | ||||
| Danish deInIS | Danish deInIS | ||||
| Egyptian IdZ'IpS@n | Egyptian IdZ'IpS@n | ||||
| Eire e@r@ | Eire e@r@ | ||||
| Elysee eIl'i:zeI | Elysee eIl'i:zeI | ||||
| Elysée eIl'i:zeI | |||||
| Erebus ErI#b@s | |||||
| Erie i@ri | Erie i@ri | ||||
| Euphrates ju:fr'eIti:z | Euphrates ju:fr'eIti:z | ||||
| Eyjafjalla eIja#fjatla# | Eyjafjalla eIja#fjatla# | ||||
| Gurmukhi gU@mUki | Gurmukhi gU@mUki | ||||
| Harare ha#rA:ri | Harare ha#rA:ri | ||||
| Hanoi han'OI | Hanoi han'OI | ||||
| Harvard $alt2 | |||||
| Havana ha#van@ | Havana ha#van@ | ||||
| Hawaii h@w'aIi: | Hawaii h@w'aIi: | ||||
| Hawai'i h@w'aIi: | Hawai'i h@w'aIi: | ||||
| Hebrew hi:bru: | Hebrew hi:bru: | ||||
| Hebrides hEbr@di:z | Hebrides hEbr@di:z | ||||
| Honduras h0nd'jU@r@s | Honduras h0nd'jU@r@s | ||||
| Honolulu $3 | |||||
| Houston hju:st@n | Houston hju:st@n | ||||
| Idaho $1 | Idaho $1 | ||||
| Illinois Il@n'OI | Illinois Il@n'OI | ||||
| ?3 Korean k3r'i:@n | ?3 Korean k3r'i:@n | ||||
| Kosovo k0s@voU | Kosovo k0s@voU | ||||
| Kuala kwA:la# | Kuala kwA:la# | ||||
| Kyrgyz k3:rgIz | |||||
| Kyrgyzstan k3:rgIst'A:n | |||||
| Lagos leIg0s | Lagos leIg0s | ||||
| Lahore $alt3 | |||||
| Lebanon lEb@n0n | Lebanon lEb@n0n | ||||
| Leipzig laIpsIg | Leipzig laIpsIg | ||||
| Leone li:'oUn | Leone li:'oUn | ||||
| Pyrenees pIr@n'i:z | Pyrenees pIr@n'i:z | ||||
| Qatar katA@ | Qatar katA@ | ||||
| Quebec kwI2bEk | Quebec kwI2bEk | ||||
| Québec kwI2bEk | |||||
| Raleigh rA:li | Raleigh rA:li | ||||
| Reno ri:noU | Reno ri:noU | ||||
| Rio ri:oU | Rio ri:oU | ||||
| Andrea $2 | Andrea $2 | ||||
| Adrian eIdri@n | Adrian eIdri@n | ||||
| Agatha aga#T@ | Agatha aga#T@ | ||||
| Angela andZ@l@ | |||||
| Angelika $2 | |||||
| Aggie agi | Aggie agi | ||||
| Agnes agn@s | Agnes agn@s | ||||
| Aguilera agi:l'e@r@ | Aguilera agi:l'e@r@ | ||||
| Andre 0ndreI | Andre 0ndreI | ||||
| Andrea andri@ | Andrea andri@ | ||||
| Andreas A:ndr'eI@s | Andreas A:ndr'eI@s | ||||
| Angela $1 | |||||
| Angela ang@l@ | |||||
| Anita $alt3 | Anita $alt3 | ||||
| Anthony ant@ni | Anthony ant@ni | ||||
| Anton ant0n | Anton ant0n | ||||
| Aoife i:f@ | Aoife i:f@ | ||||
| Aoiffe i:f@ | Aoiffe i:f@ | ||||
| Aphrodite afr@d'aIti | |||||
| Archibald A@tSIbO:ld | Archibald A@tSIbO:ld | ||||
| Archie A@tSi | Archie A@tSi | ||||
| Ares e@ri:z | Ares e@ri:z | ||||
| Duncan dVnk@n | Duncan dVnk@n | ||||
| Dvina d@vi:n@ | Dvina d@vi:n@ | ||||
| Dylan dIl@n | Dylan dIl@n | ||||
| Ebenezar Eb@n'i:z3 | |||||
| Edith i:dIT | Edith i:dIT | ||||
| Eduardo Edw'A@doU | Eduardo Edw'A@doU | ||||
| Elijah I2laIdZ@ | Elijah I2laIdZ@ | ||||
| Giovanni dZ@v'A:ni | Giovanni dZ@v'A:ni | ||||
| Graeme greI@m | Graeme greI@m | ||||
| Graham greI@m | Graham greI@m | ||||
| Gruffydd grIfIT | |||||
| Guido gwi:doU | Guido gwi:doU | ||||
| Guinevere gwInI#vi@3 | |||||
| Hadrian heIdri:@n | Hadrian heIdri:@n | ||||
| Hamish heImIS | Hamish heImIS | ||||
| Harriet hari@t | Harriet hari@t | ||||
| Harvey hA@vi | |||||
| Heidi haIdi | Heidi haIdi | ||||
| Hecate hEk@teI | Hecate hEk@teI | ||||
| Hekate hEk@teI | Hekate hEk@teI | ||||
| Luigi lu:'i:dZi | Luigi lu:'i:dZi | ||||
| Luis lu:Is | Luis lu:Is | ||||
| Lupe lu:peI | Lupe lu:peI | ||||
| Luther lu:T3 | |||||
| Madeleine mad@lI2n | Madeleine mad@lI2n | ||||
| Madeline mad@lI2n | Madeline mad@lI2n | ||||
| Maeve meIv | Maeve meIv | ||||
| Phoebe fi:bi: | Phoebe fi:bi: | ||||
| Rachael reItS@L | Rachael reItS@L | ||||
| Rachel reItS@L | Rachel reItS@L | ||||
| Rae reI | |||||
| Rafael rA:faI'El | Rafael rA:faI'El | ||||
| Rashid rA:S'i:d | Rashid rA:S'i:d | ||||
| Raul raU'u:l | Raul raU'u:l | ||||
| (Santa claus) s'ant@||kl'O:z | (Santa claus) s'ant@||kl'O:z | ||||
| Saoirse si@S@ | Saoirse si@S@ | ||||
| Sarah se@r@ | Sarah se@r@ | ||||
| Sarisa $alt3 | |||||
| Seamus SeIm@s | Seamus SeIm@s | ||||
| Sean SO:n | Sean SO:n | ||||
| Sebastian $alt3 | Sebastian $alt3 | ||||
| Sonia s0nj@ | Sonia s0nj@ | ||||
| Sophie soUfi | Sophie soUfi | ||||
| Stephen sti:v@n | Stephen sti:v@n | ||||
| Stevie sti:vi | |||||
| Stewart stju:3t | Stewart stju:3t | ||||
| ?3 Stewart stu:3t | ?3 Stewart stu:3t | ||||
| Stuart stju:3t | Stuart stju:3t | ||||
| Wallace w0lI#s | Wallace w0lI#s | ||||
| Wally w0li | Wally w0li | ||||
| ?3 William wIlj@m | ?3 William wIlj@m | ||||
| Yerevan jEr@v'an | |||||
| Yves i:v | Yves i:v | ||||
| Yvonne $2 | Yvonne $2 | ||||
| Zoe zoUi | Zoe zoUi | ||||
| Capone ka#poUn | Capone ka#poUn | ||||
| Carnegie kA@n@gi | Carnegie kA@n@gi | ||||
| Cohen koU@n | Cohen koU@n | ||||
| Connolly $1 | |||||
| Cthulhu k@-Tu:l#u: | Cthulhu k@-Tu:l#u: | ||||
| Chrysler kraIsl3 | Chrysler kraIsl3 | ||||
| (da vinci) da#vIntSi | (da vinci) da#vIntSi | ||||
| Genghis dZENgIs | Genghis dZENgIs | ||||
| Gibson gIbs@n | Gibson gIbs@n | ||||
| Guinness gInIs | Guinness gInIs | ||||
| Gutierrez gu:tj'ErEz | |||||
| Hades heIdi:z | Hades heIdi:z | ||||
| Hamilton ham@Lt@n | Hamilton ham@Lt@n | ||||
| Hoosier hu:Z3 | Hoosier hu:Z3 | ||||
| (at once) a#t_w0ns | (at once) a#t_w0ns | ||||
| ?6 (at once) a#t_wVns | ?6 (at once) a#t_wVns | ||||
| (at will) a#t_w'Il | (at will) a#t_w'Il | ||||
| (at & t) 'eIt2i:@nt'i: | |||||
| with wID $u | with wID $u | ||||
| (with the) w%IDD@2 $nounf | (with the) w%IDD@2 $nounf | ||||
| //conjunctions | //conjunctions | ||||
| although OlD'oU $pause | |||||
| although 0lD'oU $pause | |||||
| and and $u $pause $only | and and $u $pause $only | ||||
| as %az $only | as %az $only | ||||
| (as is) ,az,Iz $pause | (as is) ,az,Iz $pause | ||||
| these Di:z $u $nounf $strend2 $only | these Di:z $u $nounf $strend2 $only | ||||
| those DoUz $u $nounf $strend2 $only | those DoUz $u $nounf $strend2 $only | ||||
| there De@ $u $strend2 $only | there De@ $u $strend2 $only | ||||
| there've De@v $u | |||||
| (there are) D%e@,A@ $strend | (there are) D%e@,A@ $strend | ||||
| (there be) De@b'i: | (there be) De@b'i: | ||||
| (there were) D%e@,w3: $strend | (there were) D%e@,w3: $strend |
| ab (ruc ab | ab (ruc ab | ||||
| ab (sce ab | ab (sce ab | ||||
| ab (sei ab | ab (sei ab | ||||
| absen (t ,abs@n | |||||
| _) ab (sen ab | |||||
| _) abse (ntC ,abs@ | |||||
| ab (solu ab | ab (solu ab | ||||
| ab (sti ab | ab (sti ab | ||||
| ab (ular 'ab | ab (ular 'ab | ||||
| b) ab (y eIb | b) ab (y eIb | ||||
| b) ab (yl ab | b) ab (yl ab | ||||
| &) able (_S4iev @b@L // suffix | &) able (_S4iev @b@L // suffix | ||||
| &) able (_$w_alt eIb@L | |||||
| &) able (_$w_alt1 eIb@L | |||||
| &c) able (_ @b@L | &c) able (_ @b@L | ||||
| @ct) able (_ =@b@L | @ct) able (_ =@b@L | ||||
| &) ability (S7iev @b'IlI2t%i // suffix | &) ability (S7iev @b'IlI2t%i // suffix | ||||
| f) ac (ilit @s | f) ac (ilit @s | ||||
| _m) ace (d asI | _m) ace (d asI | ||||
| m) achi (nA# @Si: | m) achi (nA# @Si: | ||||
| m) achina (t aSI2neI | |||||
| m) achina (t akI2neI | |||||
| ach (rom ak | ach (rom ak | ||||
| ac (id_ as | ac (id_ as | ||||
| _) ac (i a#s | _) ac (i a#s | ||||
| _) alber (tA alb'3: | _) alber (tA alb'3: | ||||
| _) al (c al | _) al (c al | ||||
| alco (h alk@ | alco (h alk@ | ||||
| &) al (cy_ @l | |||||
| _) al (d O:l | _) al (d O:l | ||||
| alde (hy 'aldI | alde (hy 'aldI | ||||
| ale (_ eIl | ale (_ eIl | ||||
| ale (h eIl | ale (h eIl | ||||
| X) al (ed al | X) al (ed al | ||||
| k) alei (d @laI | k) alei (d @laI | ||||
| _v) alen (t al@n | |||||
| aleph alEf | aleph alEf | ||||
| _op) al (es @l | |||||
| _) alexan alIgz'aan | _) alexan alIgz'aan | ||||
| _) alfa alf@ | _) alfa alf@ | ||||
| _) al (g al | _) al (g al | ||||
| t) all (e O:l | t) all (e O:l | ||||
| thr) all O:l | thr) all O:l | ||||
| Av) al (en @l | Av) al (en @l | ||||
| w) all (A 0l | |||||
| w) all (A+ 0l | |||||
| w) alle O:l | w) alle O:l | ||||
| w) all (et 0l | |||||
| w) all O:l | w) all O:l | ||||
| w) all (a 0l | w) all (a 0l | ||||
| al (tAr 0l | al (tAr 0l | ||||
| amer (ic a#mEr | amer (ic a#mEr | ||||
| c) am (ero am | c) am (ero am | ||||
| c) am (el am | c) am (el am | ||||
| car) am (el @m | |||||
| am (i_ 'A:m | am (i_ 'A:m | ||||
| ami (g a#mi: | ami (g a#mi: | ||||
| _d) am (i eIm | _d) am (i eIm | ||||
| hum) an (_ @n | hum) an (_ @n | ||||
| &) an (ty_ @n | &) an (ty_ @n | ||||
| &) an (t_ @n | &) an (t_ @n | ||||
| &) an (t_$w_alt an | |||||
| ?3 &) an (t_$w_alt A:n | |||||
| &) an (t_$w_alt1 an | |||||
| ?3 &) an (t_$w_alt1 A:n | |||||
| ?8 &) an (t_ a#n | ?8 &) an (t_ a#n | ||||
| _f) an (at a#n | _f) an (at a#n | ||||
| pl) an (t_ an | pl) an (t_ an | ||||
| &) an (ese @n | &) an (ese @n | ||||
| _) ane (s anI | _) ane (s anI | ||||
| an (gul 'an | an (gul 'an | ||||
| _) ani anI | |||||
| _) ani (on anaI | |||||
| &) ani (_ 'A:nI | &) ani (_ 'A:nI | ||||
| @st) ani (_S1 =i | |||||
| an (ia 'eIn | an (ia 'eIn | ||||
| ania (c_ 'eInIa | ania (c_ 'eInIa | ||||
| ania (c a#naI@ | ania (c a#naI@ | ||||
| _t) ar (_ A@ | _t) ar (_ A@ | ||||
| &) ar (dis 3 | &) ar (dis 3 | ||||
| &) ar (diz 3 | &) ar (diz 3 | ||||
| &) ar (d_$w_alt2 3 | |||||
| &d) ar (d_ 3 | &d) ar (d_ 3 | ||||
| gg) ar (d_ 3 | gg) ar (d_ 3 | ||||
| &h) ar (d_ 3 | &h) ar (d_ 3 | ||||
| sp) ar (enC ar | sp) ar (enC ar | ||||
| ar' (nt A@ | ar' (nt A@ | ||||
| ar (et ar | ar (et ar | ||||
| ar (iaC_ 'e@ | |||||
| ar (iaB_ 'e@ | |||||
| ar (ia_ 'e@ | ar (ia_ 'e@ | ||||
| @) arily (_ 'Er@l%I | @) arily (_ 'Er@l%I | ||||
| ?3 @) arily (_ 'e@r@l%I | ?3 @) arily (_ 'e@r@l%I | ||||
| u) ar (ish e@r | u) ar (ish e@r | ||||
| ?3 _) ar (istocrat a#r | ?3 _) ar (istocrat a#r | ||||
| log) ar (i @r | log) ar (i @r | ||||
| marg) ar (AtA_ 3r' | |||||
| m) ar (it ar | m) ar (it ar | ||||
| p) ar (i ar | p) ar (i ar | ||||
| p) ar (in e@ | p) ar (in e@ | ||||
| _w) ar (d O@ | _w) ar (d O@ | ||||
| sw) ar (d O@ | sw) ar (d O@ | ||||
| chw) ar (d O@ | chw) ar (d O@ | ||||
| &) arye (_ 3ri | |||||
| .group as | .group as | ||||
| _) as (@ a#s | _) as (@ a#s | ||||
| av (eng a#v | av (eng a#v | ||||
| _) av (erC a#v | _) av (erC a#v | ||||
| av (oA a#v | av (oA a#v | ||||
| d) av (en av | |||||
| d) av (id eIv | d) av (id eIv | ||||
| j) av (a A:v | j) av (a A:v | ||||
| j) av (el av | j) av (el av | ||||
| l) av (en av | |||||
| _B) av (en av | |||||
| al) av (er 'A:v | al) av (er 'A:v | ||||
| sc) av (en av | sc) av (en av | ||||
| _) avi (A eIvI | _) avi (A eIvI | ||||
| bi (ry bI | bi (ry bI | ||||
| bi (sc bI | bi (sc bI | ||||
| bi (sec b%aI | bi (sec b%aI | ||||
| bi (sh bI | |||||
| _) bi (sh bI | |||||
| bi (sm bI | bi (sm bI | ||||
| bi (sq bi: | bi (sq bi: | ||||
| bi (str bi: | bi (str bi: | ||||
| bron) ch k | bron) ch k | ||||
| ch (ute S | ch (ute S | ||||
| ch (ure S | ch (ure S | ||||
| za) ch k | |||||
| .group co | .group co | ||||
| _) co (ag k%oU | _) co (ag k%oU | ||||
| co (rro k@ | co (rro k@ | ||||
| co (rrup k@ | co (rrup k@ | ||||
| _) costar koUstA@ | _) costar koUstA@ | ||||
| _) counter (@P7 k'aUnt@ // prefix | |||||
| _) counter (@P7 k'aUnt3 // prefix | |||||
| .group d | .group d | ||||
| d d | d d | ||||
| st) ea (k eI | st) ea (k eI | ||||
| w) eapo Ep@ | w) eapo Ep@ | ||||
| eager i:g3 | eager i:g3 | ||||
| j) ealou El@ | |||||
| j) ea (lou E | |||||
| &) eal (_ i@l | &) eal (_ i@l | ||||
| z) ea (lo E | z) ea (lo E | ||||
| C) ea (lt E | C) ea (lt E | ||||
| s) er (van 3: | s) er (van 3: | ||||
| ery (_ @r%i | ery (_ @r%i | ||||
| ?3 ery (_++$w_alt2 @rI | ?3 ery (_++$w_alt2 @rI | ||||
| ?3 @@AC) ery (_ e@ri | |||||
| ?3 @@AC) ery (_ ,e@ri | |||||
| ery (A 3j | ery (A 3j | ||||
| _v) ery ErI2 | _v) ery ErI2 | ||||
| qu) ery i@rI | qu) ery i@rI | ||||
| _x) er (o i@r | |||||
| z) er (o i@r | z) er (o i@r | ||||
| _C) er (o_ i@r | _C) er (o_ i@r | ||||
| er (rA E | er (rA E | ||||
| err (_N e@ | err (_N e@ | ||||
| .group es | .group es | ||||
| ess (_$w_alt2 @s | |||||
| &) es (_S1i z | &) es (_S1i z | ||||
| &es) es (_ i:z | &es) es (_ i:z | ||||
| ese (_ i:z | ese (_ i:z | ||||
| ex (erc Eks | ex (erc Eks | ||||
| _) ex (A %Egz | _) ex (A %Egz | ||||
| _) exh %Egz | _) exh %Egz | ||||
| _) ex (hal %Eks | |||||
| _) exh (ibiti %Eks | |||||
| ?3 _) exhu %Egzu: | ?3 _) exhu %Egzu: | ||||
| _) ex (it Egz | _) ex (it Egz | ||||
| exor (c Eks3 | exor (c Eks3 | ||||
| g (eek g | g (eek g | ||||
| _) g (ert g | _) g (ert g | ||||
| _) g (ek g | _) g (ek g | ||||
| g (eld g | |||||
| ge (nic_ dZ'E | ge (nic_ dZ'E | ||||
| genesis dZ'EnI2sIs | genesis dZ'EnI2sIs | ||||
| geous dZ=@s | geous dZ=@s | ||||
| iza (tion aIzeI | iza (tion aIzeI | ||||
| ?3 iza (tion @zeI | ?3 iza (tion @zeI | ||||
| ize (_ aIz | ize (_ aIz | ||||
| ial) ize (_S3 aIz | |||||
| &l) ize (_S3 aIz | |||||
| &l) ized (_S4 aIzd | |||||
| &l) izing (_S5 ,aIzIN | |||||
| ize (d_ aIz | ize (d_ aIz | ||||
| i (zen I | i (zen I | ||||
| iz (er_ aIz | iz (er_ aIz | ||||
| &n) iel (_ j@L | &n) iel (_ j@L | ||||
| &r) iel (_ =i:@L | &r) iel (_ =i:@L | ||||
| ie (n i@ | ie (n i@ | ||||
| &) ie (n_ =i@n | |||||
| &) ie (n_ =i@ | |||||
| d) iene (_ 'aIi:n | d) iene (_ 'aIi:n | ||||
| ie (ntal I'E | ie (ntal I'E | ||||
| g) ie (n i: | g) ie (n i: | ||||
| ier i@3 | ier i@3 | ||||
| ier (a I'e@r | ier (a I'e@r | ||||
| &) ier (_NS2i 3 | &) ier (_NS2i 3 | ||||
| &) ier's (_NS4i 3z | |||||
| ier (_$w_alt1 'i@3 | |||||
| _h) ie (r aI3 | _h) ie (r aI3 | ||||
| pl) ier (_ aI3 | pl) ier (_ aI3 | ||||
| _Cr) ier aI3 | _Cr) ier aI3 | ||||
| impo (ten Imp@ | impo (ten Imp@ | ||||
| _) im (pre@P2 %Im | _) im (pre@P2 %Im | ||||
| impreg Impr'Eg | impreg Impr'Eg | ||||
| impreg (nat ImprEg | |||||
| ?!3 impreg (nat Impr,Eg | |||||
| im (presa ,Im | im (presa ,Im | ||||
| im (provis Im | im (provis Im | ||||
| im (pulse_ Im | im (pulse_ Im | ||||
| .group in | .group in | ||||
| @) ing (_+S3dve %IN | @) ing (_+S3dve %IN | ||||
| @) ings (_S4dve %INz | |||||
| @) ings (_S1m z | |||||
| @) ingly (_S5dve %INl%I | @) ingly (_S5dve %INl%I | ||||
| @) ingment (_S7dve %INm@nt | @) ingment (_S7dve %INm@nt | ||||
| logu) ing (_S4v %IN | logu) ing (_S4v %IN | ||||
| _) inno (ce In@ | _) inno (ce In@ | ||||
| _) inno (v In@ | _) inno (v In@ | ||||
| _) inn (um %In | _) inn (um %In | ||||
| _) in (of In | |||||
| _) in (org In | _) in (org In | ||||
| _) in (p In | _) in (p In | ||||
| _) in (que In | _) in (que In | ||||
| adm) ini InI | adm) ini InI | ||||
| m) iniatur InItS3 | m) iniatur InItS3 | ||||
| m) inera (l In@r@ | m) inera (l In@r@ | ||||
| in (al_$w_alt 'aIn | |||||
| in (al_$w_alt1 'aIn | |||||
| &m) in (al_ =In | &m) in (al_ =In | ||||
| f) in (a aIn | f) in (a aIn | ||||
| @g) in (a_ aIn | @g) in (a_ aIn | ||||
| v) ine (g InI# | v) ine (g InI# | ||||
| in (ea In | in (ea In | ||||
| in (ee In | in (ee In | ||||
| in (esc In | |||||
| c) in (e In | c) in (e In | ||||
| inc) in (e In | inc) in (e In | ||||
| g) in (e In | g) in (e In | ||||
| is (er+_ aIz | is (er+_ aIz | ||||
| iser (_ aIz3 | iser (_ aIz3 | ||||
| &) ish (_ I2S | &) ish (_ I2S | ||||
| ish (A_ 'i:S | |||||
| is (ive aIs | is (ive aIs | ||||
| _) island aIl@nd | _) island aIl@nd | ||||
| _) is (le aI | _) is (le aI | ||||
| iss (a_ 'Is | iss (a_ 'Is | ||||
| issimo (_ 'IsImoU | issimo (_ 'IsImoU | ||||
| chr) is (t_ aIs | chr) is (t_ aIs | ||||
| @) istan (_ =Istan | |||||
| @) istani (_ Ist'A:nI | |||||
| @) istan (_ =IstA:n | |||||
| @) istan (_N =Istan | |||||
| @) iste (_ 'i:st | @) iste (_ 'i:st | ||||
| @) is (tic_ 'Is | @) is (tic_ 'Is | ||||
| r) is (y_ =@s | r) is (y_ =@s | ||||
| oea (_ 'i@ | oea (_ 'i@ | ||||
| _) oe (d i: | _) oe (d i: | ||||
| p) oe (m oUI | p) oe (m oUI | ||||
| oer oU@ | |||||
| oer oU3 | |||||
| _) oe (s i: | _) oe (s i: | ||||
| &) oe (s_S2 z | &) oe (s_S2 z | ||||
| oesopha I2s0f@ | oesopha I2s0f@ | ||||
| o (tion oU | o (tion oU | ||||
| m) o (tiv oU | m) o (tiv oU | ||||
| r) o (to oU | r) o (to oU | ||||
| pr) oto oUtoU | |||||
| pr) oto (C oUtoU | |||||
| pr) oto (n oUt0 | pr) oto (n oUt0 | ||||
| m) otor oUt3 | m) otor oUt3 | ||||
| n) o (tor oU | n) o (tor oU | ||||
| olt oUlt | olt oUlt | ||||
| w) olv Ulv | w) olv Ulv | ||||
| N_p) oly ,0lI | N_p) oly ,0lI | ||||
| _) ol (ym @l | |||||
| .group om | .group om | ||||
| &) om (_ @m | &) om (_ @m | ||||
| t) omb (K u:m | t) omb (K u:m | ||||
| w) omb (_ u:m | w) omb (_ u:m | ||||
| c) ombe (_ u:m | c) ombe (_ u:m | ||||
| _tr) ombo (n %0mboU | |||||
| c) om (e Vm | c) om (e Vm | ||||
| c) omm (e Vm | c) omm (e Vm | ||||
| _d) om (a @m | _d) om (a @m | ||||
| Cd) on (_ @n | Cd) on (_ @n | ||||
| ?3 ag) on (_ 0n | ?3 ag) on (_ 0n | ||||
| rg) on (_ @n | rg) on (_ @n | ||||
| &k) on (_ @n | |||||
| &s) on (_ @n | &s) on (_ @n | ||||
| &t) on (_ @n | &t) on (_ @n | ||||
| &tr) on (_ 0n | &tr) on (_ 0n | ||||
| pers) on (i '0n | pers) on (i '0n | ||||
| postp) on 'oUn | postp) on 'oUn | ||||
| _sp) on 0n | _sp) on 0n | ||||
| &s) on (an @n | |||||
| on (ald 0n | on (ald 0n | ||||
| &) on (age_ @n | &) on (age_ @n | ||||
| d) on (at %oUn | d) on (at %oUn | ||||
| nt) or (_ o@ | nt) or (_ o@ | ||||
| vent) or (_ 3 | vent) or (_ 3 | ||||
| y) or (k O@ | y) or (k O@ | ||||
| &) or (ant_ 3r | |||||
| or (arL02 3r | or (arL02 3r | ||||
| &) or (ation 3r | &) or (ation 3r | ||||
| _) ora (to 0r@ | _) ora (to 0r@ | ||||
| w) or (e o@ | w) or (e o@ | ||||
| or (um_ 'o@r | or (um_ 'o@r | ||||
| &) ory (_ @r%I | &) ory (_ @r%I | ||||
| ?3 @@At) ory (_ o:ri | |||||
| ?3 @@At) ory (_ ,o:ri | |||||
| _st) ory o@rI | _st) ory o@rI | ||||
| .group os | .group os | ||||
| _all) ow aU | _all) ow aU | ||||
| isall) ow aU | isall) ow aU | ||||
| cl) ow aU | cl) ow aU | ||||
| fl) ow (er aU | |||||
| fl) ower aU|3 | |||||
| gl) ow (er aU | gl) ow (er aU | ||||
| pl) ow aU | pl) ow aU | ||||
| _n) ow (_ aU | _n) ow (_ aU | ||||
| prede (ces pri:dI | prede (ces pri:dI | ||||
| _) pre (diP3 pr%i: | _) pre (diP3 pr%i: | ||||
| _) pre (dic pr%I | _) pre (dic pr%I | ||||
| _) predi (lec pr,i:dI2 | |||||
| ?3 _) predi (lec prEd@ | |||||
| _) pre (em pr%i: | _) pre (em pr%i: | ||||
| _) pre (fec pri: | _) pre (fec pri: | ||||
| _) pre (feren prE | _) pre (feren prE | ||||
| _) re (arm %ri: | _) re (arm %ri: | ||||
| _) re (au@P2 ,ri: | _) re (au@P2 ,ri: | ||||
| re (ck rE | re (ck rE | ||||
| reckon rEk@n | |||||
| reco (g rEk@ | reco (g rEk@ | ||||
| _) re (comP2 r,i: | _) re (comP2 r,i: | ||||
| _) re (conP2 ,ri: | _) re (conP2 ,ri: | ||||
| m) s (i z | m) s (i z | ||||
| a) s (el_ z | a) s (el_ z | ||||
| m) s (y z | m) s (y z | ||||
| n) s (y_ z | |||||
| a) s (e s | a) s (e s | ||||
| pha) s (e z | pha) s (e z | ||||
| la) s (e z | la) s (e z | ||||
| @) s (hill_ s | @) s (hill_ s | ||||
| @) s (hous s | @) s (hous s | ||||
| _) she' %Si: | _) she' %Si: | ||||
| A) sh (i_ =S | |||||
| A) sh (A_ =S | |||||
| &) ship (_S4 SIp | &) ship (_S4 SIp | ||||
| &) ships (_S5 SIps | &) ships (_S5 SIps | ||||
| &) shire (_S5 S3 | &) shire (_S5 S3 | ||||
| _) sus (A su:z | _) sus (A su:z | ||||
| su (al Zu: | su (al Zu: | ||||
| n) su (al sju: | n) su (al sju: | ||||
| ?3 n) su (al Su: | |||||
| _) su (b sV | _) su (b sV | ||||
| _) su (bdi s,V | _) su (bdi s,V | ||||
| su (bdue s%V | su (bdue s%V | ||||
| _) t (sY t | _) t (sY t | ||||
| _) t (wY t | _) t (wY t | ||||
| _) tz (ar ts | _) tz (ar ts | ||||
| t (h$w_alt4 t | |||||
| tch tS | tch tS | ||||
| _) tele tElI2 | _) tele tElI2 | ||||
| tse (_ tsi | tse (_ tsi | ||||
| _) tsk t'@sk | _) tsk t'@sk | ||||
| _) tsu tsu: | _) tsu tsu: | ||||
| tt (i_ =t | |||||
| _) two tu: | _) two tu: | ||||
| ttu (r t@ | ttu (r t@ | ||||
| tz ts | tz ts | ||||
| th (ern_ D | th (ern_ D | ||||
| _) thio T,aIoU | _) thio T,aIoU | ||||
| th (ith D | th (ith D | ||||
| th (old th | |||||
| th (ole th | th (ole th | ||||
| _) th (om@ t | _) th (om@ t | ||||
| ph) th T | ph) th T | ||||
| ear) th (y T | ear) th (y T | ||||
| _) there De@ | _) there De@ | ||||
| _) them D%Em | _) them D%Em | ||||
| _) there (@ D%e@ | |||||
| _) the (mA Ti: | _) the (mA Ti: | ||||
| .group ti | .group ti | ||||
| &s) tion tS@n | &s) tion tS@n | ||||
| ?8 &) tion S=Vn | ?8 &) tion S=Vn | ||||
| ?8 &s) tion tSVn | ?8 &s) tion tSVn | ||||
| tion (al S=@-n | |||||
| tion (al_ S=@-n | |||||
| tion (al S@-n | |||||
| &) tious S=@s | &) tious S=@s | ||||
| AC) tive (_ =tIv | AC) tive (_ =tIv | ||||
| @) tu (lat =tSU | @) tu (lat =tSU | ||||
| ?3 tu (Ant tSu: | ?3 tu (Ant tSu: | ||||
| ?3 tu (Ancy tSu: | ?3 tu (Ancy tSu: | ||||
| tu (ous tSu: | |||||
| tu (ous =tSu: | |||||
| @) tur (A tS@r | @) tur (A tS@r | ||||
| @) tur (al_ tS=@r | @) tur (al_ tS=@r | ||||
| &) tur (y tS@r | &) tur (y tS@r | ||||
| d) u (ly ju: | d) u (ly ju: | ||||
| z) u (l_ 'u: | z) u (l_ 'u: | ||||
| &) um (_ @m | &) um (_ @m | ||||
| vol) u (m ju: | |||||
| vol) u (me ju: | |||||
| u (ma_ 'u: | u (ma_ 'u: | ||||
| h) u (man ju: | h) u (man ju: | ||||
| u (me ju: | u (me ju: | ||||
| ?3 _) vibra (t v'aIbreI | ?3 _) vibra (t v'aIbreI | ||||
| vivi (@ vIvI | vivi (@ vIvI | ||||
| viv (_ vaIv | viv (_ vaIv | ||||
| _) vo (lC v0 | |||||
| .group w | .group w | ||||
| w w | w w | ||||
| C) yes (_ aIz | C) yes (_ aIz | ||||
| _) yes jEs | _) yes jEs | ||||
| yeah jEh | yeah jEh | ||||
| yew ju: | |||||
| @C) y (gen I | @C) y (gen I | ||||
| ?!3 d) y (nas I | ?!3 d) y (nas I | ||||
| s) ynch Ink | s) ynch Ink | ||||
| E (ntu 'E | E (ntu 'E | ||||
| E (ntous 'E | E (ntous 'E | ||||
| E (o_ I2 | E (o_ I2 | ||||
| Eous (_ =j@s | |||||
| Eous (_ =i@s | |||||
| l) E (ps E | l) E (ps E | ||||
| l) E (pt E | l) E (pt E | ||||
| Eri (A 'i@rI2 | Eri (A 'i@rI2 | ||||
| .group ' | .group ' | ||||
| '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 | |||||
| 's (_S2m z | |||||
| f) 's (_S2m s | |||||
| p) 's (_S2m s | |||||
| t) 's (_S2m s | |||||
| k) 's (_S2m s | |||||
| se) 's (_S2m I2z | |||||
| s) 's (_S2m I2z | |||||
| ce) 's (_S2m I2z | |||||
| ch) 's (_S2m I2z | |||||
| och) 's (_S2m s | |||||
| sh) 's (_S2m I2z | |||||
| x) 's (_S2m I2z | |||||
| z) 's (_S2m I2z | |||||
| 6_) 's (_ I2z | 6_) 's (_ I2z | ||||
| 16_) 's (_ z | 16_) 's (_ z | ||||
| 're (_S3 @ | 're (_S3 @ |
| _) d (rA d | _) d (rA d | ||||
| _) d (A d | _) d (A d | ||||
| d (A D | d (A D | ||||
| d (_ D | |||||
| d (cY D | d (cY D | ||||
| d (L03 D | d (L03 D | ||||
| d (v D | |||||
| m) d d | m) d d | ||||
| n) d d | n) d d | ||||
| l) d d | l) d d | ||||
| _) gn (A n | _) gn (A n | ||||
| _) g (A g | _) g (A g | ||||
| g (A Q | g (A Q | ||||
| g (_ Q | |||||
| g (cY Q | g (cY Q | ||||
| g (L03 Q | g (L03 Q | ||||
| m) g g | m) g g |
| _) game (X _^_en | _) game (X _^_en | ||||
| girl _^_en // girl | girl _^_en // girl | ||||
| gh (K _^_en | gh (K _^_en | ||||
| gy (_ _^_en | |||||
| @) gy (_ _^_en | |||||
| .group h | .group h | ||||
| y (nn i | y (nn i | ||||
| // group y: English section | // group y: English section | ||||
| _C) y (_ _^_en | |||||
| //_C) y (_ _^_en | |||||
| AC) y (_ _^_en | AC) y (_ _^_en | ||||
| C) y (e_ _^_en | C) y (e_ _^_en | ||||
| %C) y (_ _^_en | %C) y (_ _^_en |
| // Irish Gaeilge dictionary | // Irish Gaeilge dictionary | ||||
| // written by Ronan McGuirk | // written by Ronan McGuirk | ||||
| // January 2013 | |||||
| // version 2.5 | |||||
| // 2013 | |||||
| // version 2.6.1 | |||||
| // Please send comments and suggestions to [email protected] | |||||
| // This file is UTF8 encoded | // This file is UTF8 encoded | ||||
| // letters | // letters | ||||
| // accent names | // accent names | ||||
| // names of symbols | // names of symbols | ||||
| ª_. pO#nk | |||||
| _. pO#nk | |||||
| _, k0m@ | _, k0m@ | ||||
| _; semI | _; semI | ||||
| _: ko:l0n | _: ko:l0n | ||||
| amuigh @mu1'I | amuigh @mu1'I | ||||
| amháin @w'A:in | amháin @w'A:in | ||||
| am aUm | am aUm | ||||
| an @n | |||||
| anaithnid '0nah@nIdZ | |||||
| anois @nIS | anois @nIS | ||||
| anonn @naUn | anonn @naUn | ||||
| ann aUn | ann aUn | ||||
| anseo @nS'O | anseo @nS'O | ||||
| anuas a#n'u@s | |||||
| aodh e: | aodh e: | ||||
| aodha e: | aodha e: | ||||
| aon e:@n | aon e:@n | ||||
| (ar ais) Er'aS | (ar ais) Er'aS | ||||
| arís @r'i:S | arís @r'i:S | ||||
| as 0s | as 0s | ||||
| aschurtha '0sxUrh@ | |||||
| atá @t['A: $u | atá @t['A: $u | ||||
| baill bu1'i:l | baill bu1'i:l | ||||
| bhaill vu1'i:l | bhaill vu1'i:l | ||||
| beidh bEg | beidh bEg | ||||
| bhfuil w'Il | bhfuil w'Il | ||||
| bheas v'e:@s | |||||
| bhuel w'El | bhuel w'El | ||||
| ceithre kEr@ | ceithre kEr@ | ||||
| cathair k'0h@r | cathair k'0h@r | ||||
| chlainne xl'InE | chlainne xl'InE | ||||
| chun xUn $u | chun xUn $u | ||||
| crainn kri:n | crainn kri:n | ||||
| chrainn xri:n | |||||
| de dE $u+ | de dE $u+ | ||||
| des dEs $u | des dEs $u | ||||
| do dO# $u | do dO# $u | ||||
| domhnach d[aUn@x | domhnach d[aUn@x | ||||
| domhnaigh d[aUnig | domhnaigh d[aUnig | ||||
| dúghorm d['u:Q"Or@m | |||||
| eile 'El@ | eile 'El@ | ||||
| euro ju:ro: | euro ju:ro: | ||||
| faic f@ak | faic f@ak | ||||
| (muigheo) mu1'i:||'o: | (muigheo) mu1'i:||'o: | ||||
| mhuigh vu1'i: | mhuigh vu1'i: | ||||
| (mhaigh eo) vu1'i:||'o: | (mhaigh eo) vu1'i:||'o: | ||||
| mhama w'0m@ | |||||
| maith m'0 | maith m'0 | ||||
| mhaith w'0 | mhaith w'0 | ||||
| mbeadh m;O#X | mbeadh m;O#X | ||||
| os o:s | os o:s | ||||
| rabh raU | rabh raU | ||||
| raibh rEv | raibh rEv | ||||
| raidió r'adi:o: | |||||
| réamhrá r'e:@vr,a: | réamhrá r'e:@vr,a: | ||||
| réidh re: | réidh re: | ||||
| 's s | |||||
| samhain saUIn | samhain saUIn | ||||
| san s@n | san s@n | ||||
| seo S@_ | seo S@_ |
| // translation rules for Irish Gaeilge | // translation rules for Irish Gaeilge | ||||
| // This file is UTF-8 encoded | // This file is UTF-8 encoded | ||||
| // written by Ronan McGuirk January 2013 | |||||
| // Version 2.5B | |||||
| // written by Ronan McGuirk 2013 | |||||
| // Version 2.6.1 | |||||
| // Please send comments and suggestions to [email protected] | |||||
| // Conditional rules | // Conditional rules | ||||
| // ?1 allow eclipsis as 2 separate words | // ?1 allow eclipsis as 2 separate words | ||||
| .L03 b bh mb c ch f m mh dh // used for words likemuir or cuid | .L03 b bh mb c ch f m mh dh // used for words likemuir or cuid | ||||
| .L04 b bh mb // for words like beag | .L04 b bh mb // for words like beag | ||||
| .L05 nn nna nnas dh r s ntas nach nas nais dar mar rtha nta mh chas chais cht chta nnach ntach llach d l ll // word endings where @ is to repleace ea or a | .L05 nn nna nnas dh r s ntas nach nas nais dar mar rtha nta mh chas chais cht chta nnach ntach llach d l ll // word endings where @ is to repleace ea or a | ||||
| .L06 aidh idh aí á eá eadh adh ad imid aimid imis aimis ainn inn idís aidís éin // word endings where f changes to h | |||||
| .L06 aidh idh aí á eá eadh adh ad adsa imid aimid imis aimis ainn inn idís aidís éin // word endings where f changes to h | |||||
| .L07 b c g ch bh gh mb | .L07 b c g ch bh gh mb | ||||
| .L08 lc ll nt bhse // for words like cailc | .L08 lc ll nt bhse // for words like cailc | ||||
| .L09 cl cr chr f | .L09 cl cr chr f | ||||
| .L12 á é ó eo ua // when followed by i | .L12 á é ó eo ua // when followed by i | ||||
| .L13 oc omb | .L13 oc omb | ||||
| .L14 río dún gnío // followed with mh | .L14 río dún gnío // followed with mh | ||||
| .L15 c ch f m d dh g gc gh mh // aoi following | |||||
| .L15 c ch f bhf m d dh g gc gh mh // aoi following | |||||
| .L16 b c bh ch gr ghr // for inn word ending | .L16 b c bh ch gr ghr // for inn word ending | ||||
| .L17 l le li niste nn | .L17 l le li niste nn | ||||
| .L18 n nt nte neann neadh ntear nim nfear nfinn | |||||
| .L18 n nt nte neann neadh ntear nim nfear nfinn nfidh nfidis neamar | |||||
| .L19 na nea ra rea la llea arga // word endings with silent dh | .L19 na nea ra rea la llea arga // word endings with silent dh | ||||
| .L20 eo eoir eá eabh io iu iú // slender m | .L20 eo eoir eá eabh io iu iú // slender m | ||||
| .L21 ll nn ndán nntán | .L21 ll nn ndán nntán | ||||
| .L22 eadh eag eaga eagán eagáinín eo io iu iú eall eabh ealtaine | |||||
| .L22 eadh eag eaga eagán eagáinín eo io iu iú eall eabh ealtaine eann | |||||
| .L23 ea eo i | .L23 ea eo i | ||||
| .L24 b mb bh g gh p ph bp m mh | .L24 b mb bh g gh p ph bp m mh | ||||
| abht aU#t[ | abht aU#t[ | ||||
| amhr aUr // words like amhras | amhr aUr // words like amhras | ||||
| K) amhl aUl | K) amhl aUl | ||||
| abhra aUr@ // words like slabhra | |||||
| abh (C aU // words like slabhra | |||||
| aghaidh aIg | aghaidh aIg | ||||
| t) abhair u:@r | t) abhair u:@r | ||||
| th) abhair u:@r | th) abhair u:@r | ||||
| t) abhar u:@r | t) abhar u:@r | ||||
| th) abhar u:@r | th) abhar u:@r | ||||
| _) an (sL01 @n | _) an (sL01 @n | ||||
| _) an (- 0n // an prefix | |||||
| _) a (nA @ | |||||
| _) an (_ @n | |||||
| _) an (- '0n // an prefix | |||||
| é) a @ // words like féach | é) a @ // words like féach | ||||
| X) a (nn_ aU# | X) a (nn_ aU# | ||||
| X) a (ll_ aU# | X) a (ll_ aU# | ||||
| _) ao e: | _) ao e: | ||||
| ae e: | ae e: | ||||
| amhna (_ aUn@ | amhna (_ aUn@ | ||||
| arraing arIng | |||||
| _) ath (@@P3 ,0_ | |||||
| .group á | .group á | ||||
| á A: | á A: | ||||
| @) á ,A: | @) á ,A: | ||||
| áinig A:nIg | áinig A:nIg | ||||
| ái 'A:i | ái 'A:i | ||||
| .group ai | .group ai | ||||
| ai a# | ai a# | ||||
| L04) ai (L17 0# | L04) ai (L17 0# | ||||
| m) ai (n 0# | m) ai (n 0# | ||||
| c) ai (th 0# | c) ai (th 0# | ||||
| ch) ai (th 0# | ch) ai (th 0# | ||||
| ai (tín 0# | |||||
| ai (d 0# | ai (d 0# | ||||
| p) ai (l 0# | p) ai (l 0# | ||||
| @) ai (L11_ I | @) ai (L11_ I | ||||
| X) aigh 'aI | X) aigh 'aI | ||||
| aigh aI# L04) aill (_ wi:l | aigh aI# L04) aill (_ wi:l | ||||
| aing (_ Ing | aing (_ Ing | ||||
| ai (llimh '0 // words like Gaillimh | |||||
| .group b | .group b | ||||
| b b // broad | b b // broad | ||||
| L01) b b; // slender | L01) b b; // slender | ||||
| bh (_ vv | bh (_ vv | ||||
| bh (L22 vj // slender | bh (L22 vj // slender | ||||
| L01) bh v | L01) bh v | ||||
| ?1 _m_) b (@ | |||||
| ?1 _m_) b (@ | |||||
| _) bhf v // urú broad | _) bhf v // urú broad | ||||
| _) bhf (L22 v; // urú slender | _) bhf (L22 v; // urú slender | ||||
| _) bp b // urú broad | _) bp b // urú broad | ||||
| a) bh (a U // for example cabhair | a) bh (a U // for example cabhair | ||||
| ear) bha u: // words like Cearbhall | ear) bha u: // words like Cearbhall | ||||
| bhfaigh v'aI | bhfaigh v'aI | ||||
| _) beann (@ ba#n | |||||
| _) bheann (@ va#n | |||||
| _) bun (C@P3 b,Un | |||||
| .group c | .group c | ||||
| c k | c k | ||||
| c (L01 k; // slender | c (L01 k; // slender | ||||
| ch (L01 C; | ch (L01 C; | ||||
| ch (é+ C; | ch (é+ C; | ||||
| ch (ei+ x; | ch (ei+ x; | ||||
| ?1 _g_) c (@ | |||||
| ?1 _g_) c (L01 | |||||
| ?1 _g_) c (@ | |||||
| ?1 _g_) c (L01 | |||||
| _) cabhr k'aUr | _) cabhr k'aUr | ||||
| _) chabhr x'aUr | _) chabhr x'aUr | ||||
| _) ceann (C@P5 k;,aUn | |||||
| _) cheann (C@P6 C;,aUn | |||||
| .group d | .group d | ||||
| d d[ // broad | d d[ // broad | ||||
| L01) d dZ // slender | L01) d dZ // slender | ||||
| d (L22 dZ // slender | d (L22 dZ // slender | ||||
| d (L01 d; // slender | d (L01 d; // slender | ||||
| i) d (i dZ | i) d (i dZ | ||||
| ?1 _n_) d (@ | |||||
| ?1 _n_) d (@ | |||||
| dh Q // broad | dh Q // broad | ||||
| dh (ui Q // broad | dh (ui Q // broad | ||||
| dh (ao Q // broad | dh (ao Q // broad | ||||
| ?1 _) d (_t d[ | ?1 _) d (_t d[ | ||||
| ?1 _) d (_tL01 dZ | ?1 _) d (_tL01 dZ | ||||
| _) d' (@P2 d | _) d' (@P2 d | ||||
| _) d' d | |||||
| _) d (_'fh d | |||||
| d'fh (L01 d | |||||
| i) dh (_ g | i) dh (_ g | ||||
| a) dh (_ X | a) dh (_ X | ||||
| o) dh (_ X | o) dh (_ X | ||||
| dheartháir gr@h'A:r | dheartháir gr@h'A:r | ||||
| deirfiúr d;r@f'u:r | deirfiúr d;r@f'u:r | ||||
| dheirfiúr g;r@f'u:r | dheirfiúr g;r@f'u:r | ||||
| _) do (Ch@@P2 d[,U_ | |||||
| _) dí (@@P2 d,i: | |||||
| .group e | .group e | ||||
| e E# | e E# | ||||
| eá A: | eá A: | ||||
| r) ei (m aI | r) ei (m aI | ||||
| eighea aI | eighea aI | ||||
| eighea aI | eighea aI | ||||
| s) ei (nn aI | |||||
| sh) ei (nn aI | |||||
| eigh aI | eigh aI | ||||
| eo o: | eo o: | ||||
| eogh o: | |||||
| eoi o: | |||||
| eogha o: | |||||
| eoghai o: | |||||
| d) eo (ch O# | d) eo (ch O# | ||||
| dh) eo (ch O# | |||||
| _) eo (ch O# | _) eo (ch O# | ||||
| s) eo (_ @ | s) eo (_ @ | ||||
| .group é | .group é | ||||
| é 'e: | é 'e: | ||||
| éi 'e: | éi 'e: | ||||
| éa 'e: | |||||
| _) éi (rig aI // words like éirigh | _) éi (rig aI // words like éirigh | ||||
| _h) éi (rí aI | |||||
| _) éi (rí aI // words like éirí | _) éi (rí aI // words like éirí | ||||
| _) éireoidh aIro:Ig | _) éireoidh aIro:Ig | ||||
| éacs e:@ks | éacs e:@ks | ||||
| .group ea | .group ea | ||||
| ea a# | ea a# | ||||
| eai a# | |||||
| X) ea (L21_ aU | X) ea (L21_ aU | ||||
| ea (ltaine aU | ea (ltaine aU | ||||
| g) ea (ll aU | g) ea (ll aU | ||||
| l) eamh (n aU | |||||
| dr) ea (m aU | |||||
| X) ea (ch 0 | X) ea (ch 0 | ||||
| _L04) ea (g @ | _L04) ea (g @ | ||||
| _L04) ea (dh_ @ | _L04) ea (dh_ @ | ||||
| eanbhean 'an@v,an | eanbhean 'an@v,an | ||||
| eadhb aIb | eadhb aIb | ||||
| .group f | .group f | ||||
| f f // broad | f f // broad | ||||
| f (L22 f; // slender | f (L22 f; // slender | ||||
| fh (éin_ h | fh (éin_ h | ||||
| fh (L22 ; // slender | fh (L22 ; // slender | ||||
| @) f (L06_ h | @) f (L06_ h | ||||
| ?1 _bh_) f (@ | |||||
| ?1 _bh_) f (L22 ; | |||||
| _) fo (C@@P2 f,U | |||||
| _) fogh f'aU | |||||
| ?1 _bh_) f (@ | |||||
| ?1 _bh_) f (L22 ; | |||||
| .group g | .group g | ||||
| g g // broad | g g // broad | ||||
| g (L01 g; // slender | g (L01 g; // slender | ||||
| ?1 _n_) g (@ | |||||
| ?1 _n_) g (@ | |||||
| _) gh Q" | _) gh Q" | ||||
| _) gh (L01 Q"j | _) gh (L01 Q"j | ||||
| _) gc g // urú broad | _) gc g // urú broad | ||||
| gh (n X@ | gh (n X@ | ||||
| gheobh j'o: | gheobh j'o: | ||||
| gabh gaU | gabh gaU | ||||
| _) gearr (C@P5 g;,aR | |||||
| _) ghearr (C@P6 Q"j,aR | |||||
| .group h | .group h | ||||
| h h // silent | h h // silent | ||||
| .group i | .group i | ||||
| i I | i I | ||||
| _) i I | _) i I | ||||
| ia i@ | ia i@ | ||||
| ia (tha i: | ia (tha i: | ||||
| io O# | io O# | ||||
| io (dá I | |||||
| _) io (nadh u:// words like ionadh | _) io (nadh u:// words like ionadh | ||||
| s) io (mb I | |||||
| sh) io (mb I | |||||
| _pr) io (n u: | _pr) io (n u: | ||||
| L16) inn (_ i:n | L16) inn (_ i:n | ||||
| iai i:i | iai i:i | ||||
| L12) i i // non syllabic short i after long vowel | L12) i i // non syllabic short i after long vowel | ||||
| iú u: | iú u: | ||||
| m) i (d_ i: // verb ending | m) i (d_ i: // verb ending | ||||
| _) in (@@P2 ,In_ | |||||
| _) ionad (C@@P5 ,Ona#d[ | |||||
| .group í | .group í | ||||
| í 'i: | í 'i: | ||||
| íomh 'i:v | |||||
| íochn 'i:xn | |||||
| í (_ i: | |||||
| ín (_ i:n | |||||
| ío i:@ | |||||
| .group l | .group l | ||||
| l l // broad | l l // broad | ||||
| L01) l l; // slender | L01) l l; // slender | ||||
| ll (L23 l; | ll (L23 l; | ||||
| l (g l@ | l (g l@ | ||||
| l (b l@ | l (b l@ | ||||
| _) lorg (@@P4 l,Or@g | |||||
| _) lán (C@@P3 l,A:n | |||||
| .group m | .group m | ||||
| m m // broad | m m // broad | ||||
| m (L20 m; //slender | m (L20 m; //slender | ||||
| _) mh (n v@ | _) mh (n v@ | ||||
| léir) mheas vas | léir) mheas vas | ||||
| r) m @m // words like gorm | r) m @m // words like gorm | ||||
| _) mear (@@P4 m,ar | |||||
| .group n | .group n | ||||
| n n // broad | n n // broad | ||||
| n (L01 n; // slender | n (L01 n; // slender | ||||
| n (ch n@ | n (ch n@ | ||||
| c) n @n | c) n @n | ||||
| ch) n @n | ch) n @n | ||||
| _) nasc (C@@ n,0sk | |||||
| .group o | .group o | ||||
| o O# | o O# | ||||
| _) o 'O | _) o 'O | ||||
| odl (a O#l | odl (a O#l | ||||
| oí i: | oí i: | ||||
| .group ó | .group ó | ||||
| ó 'o: | ó 'o: | ||||
| ómhai o:@ | ómhai o:@ | ||||
| ói (p@ 'o: | |||||
| .group oi | .group oi | ||||
| oi O | oi O | ||||
| _L15) oi (+ @'I | _L15) oi (+ @'I | ||||
| _) oi (leá 'I | _) oi (leá 'I | ||||
| oidh aI | oidh aI | ||||
| oir (_ 'ERR | oir (_ 'ERR | ||||
| _sc) oi (r O | |||||
| oigh (ea aI | oigh (ea aI | ||||
| .group p | .group p | ||||
| p p // broad | p p // broad | ||||
| ph f // broad | ph f // broad | ||||
| p (L22 p; // slender | p (L22 p; // slender | ||||
| ph (L20 f; // slender | ph (L20 f; // slender | ||||
| ?1 _b_) p (@ | |||||
| ?1 _b_) p (@ | |||||
| .group r | .group r | ||||
| L12i) r (t_ Z | L12i) r (t_ Z | ||||
| rr R | rr R | ||||
| rg r@g | rg r@g | ||||
| rgh rQ" | |||||
| L01) rg R@g // slender | L01) rg R@g // slender | ||||
| r (bh r@ | r (bh r@ | ||||
| ríomh ri:@v | |||||
| s) r (A R | s) r (A R | ||||
| _) ramh raU | _) ramh raU | ||||
| .group s | .group s | ||||
| s s // broad | s s // broad | ||||
| L01) s S // slender | L01) s S // slender | ||||
| s (cL01 S | s (cL01 S | ||||
| s (CCL01 S // slender | s (CCL01 S // slender | ||||
| s (pCé s // broad | s (pCé s // broad | ||||
| ?1 _t_) s (@ | |||||
| ?1 _t_) s (@ | |||||
| sh h | sh h | ||||
| sh (CL01 h | sh (CL01 h | ||||
| sh (L01 h; | sh (L01 h; | ||||
| s (lL01 S | s (lL01 S | ||||
| _') s (_ s // 's in poems etc | |||||
| _) sain (@P4 s,an | |||||
| .group t | .group t | ||||
| t t[ // broad | t t[ // broad | ||||
| L01) t c // slender | L01) t c // slender | ||||
| ?1 _) t (_L01 c | ?1 _) t (_L01 c | ||||
| L01C) t tS // slender after consonant | L01C) t tS // slender after consonant | ||||
| t (CL01 tS // slender with following consonant before vowels | t (CL01 tS // slender with following consonant before vowels | ||||
| ?1 _d_) t (@ | |||||
| ?1 _d_) t (@ | |||||
| th h | th h | ||||
| th (L01 h; | th (L01 h; | ||||
| L01C) th h | L01C) th h | ||||
| thne (_ h@nE | thne (_ h@nE | ||||
| A) th (_ // silent th at word end | A) th (_ // silent th at word end | ||||
| .group u | .group u | ||||
| u U# | u U# | ||||
| ua u@ | ua u@ | ||||
| uai (d ui | uai (d ui | ||||
| uá u:'A: | uá u:'A: | ||||
| ui I | ui I | ||||
| ui (s U | |||||
| ui (sce_ I | |||||
| uinn (_ 'i:n | uinn (_ 'i:n | ||||
| uinti U#'i:ntI | uinti U#'i:ntI | ||||
| _b) uí wi: | _b) uí wi: | ||||
| _bh) uí wi: | _bh) uí wi: | ||||
| g) uí wi: | g) uí wi: | ||||
| gh) uí wi: | |||||
| umh u: | umh u: | ||||
| L03) ui @I | L03) ui @I | ||||
| _d) u (l_ O# | _d) u (l_ O# | ||||
| gh) ui (gh_ @i: | gh) ui (gh_ @i: | ||||
| uí i: | uí i: | ||||
| uachai 'ux@ | uachai 'ux@ | ||||
| _) uimhir (C@P6 ,IvIR | |||||
| .group ú | .group ú | ||||
| ú u: | ú u: | ||||
| únmh u:nv | únmh u:nv |
| .group ऊ | .group ऊ | ||||
| ऊ u | ऊ u | ||||
| ऊं u~ // + anusvara | |||||
| ऊँ u~ // + candrabinbu | |||||
| ऊं (_ u~ // + anusvara | |||||
| ऊँ (_ u~ // + candrabinbu | |||||
| .group ऋ | .group ऋ | ||||
| ऋ rI | ऋ rI | ||||
| .group ऎ | .group ऎ | ||||
| ऎ e | ऎ e | ||||
| ऎं (_ e~ | |||||
| ऎँ (_ e~ | |||||
| .group ए | .group ए | ||||
| ए e: | ए e: | ||||
| एँ e~: | |||||
| एं (_ e~: | |||||
| ा) एँ (_ j | |||||
| .group ऐ | .group ऐ | ||||
| ऐ E: // ?? [aI] [E:] [&:] | ऐ E: // ?? [aI] [E:] [&:] | ||||
| ऐं E~ | |||||
| ऐँ E~ | |||||
| ऐं (_ E~ | |||||
| ऐँ (_ E~ | |||||
| ?2 ऐ aI // ?? [aI] [E:] [&:] | ?2 ऐ aI // ?? [aI] [E:] [&:] | ||||
| .group ऒ | .group ऒ | ||||
| ऒ o | ऒ o | ||||
| ऒं (_ o~ | |||||
| ऒँ (_ o~ | |||||
| .group ओ | .group ओ | ||||
| ओ o: | ओ o: | ||||
| ओं o~ // +anusvara | |||||
| ओँ o~ // +candrabindu | |||||
| ओं (_ o~ // +anusvara | |||||
| ओँ (_ o~ // +candrabindu | |||||
| ा) ओं (_ w // +anusvara | |||||
| ा) ओँ (_ w | |||||
| .group औ | .group औ | ||||
| औ O: // ?? [aU] [O:] | औ O: // ?? [aU] [O:] | ||||
| औं O~ // +anusvara | |||||
| औँ O~ // +candrabindu | |||||
| औं (_ O~ // +anusvara | |||||
| औँ (_ O~ // +candrabindu | |||||
| ?3 औ aU // ?? [aU] [O:] | ?3 औ aU // ?? [aU] [O:] | ||||
| .group ा | .group ा | ||||
| ा a: | ा a: | ||||
| ा (ँ a~ | |||||
| ाँ (_ a~ | |||||
| ां (_ a~ | |||||
| ाव aU | ाव aU | ||||
| .group ि | .group ि | ||||
| .group ी | .group ी | ||||
| ी i: | ी i: | ||||
| ी (_ i | ी (_ i | ||||
| ी (ँ i~ | |||||
| ीँ (_ i~ | |||||
| ीं (_ i~ | |||||
| .group ु | .group ु | ||||
| ु u | |||||
| ु U | |||||
| ु (ँ u~ | |||||
| ुं (_ u~ | |||||
| ुँ (_ u~ | |||||
| .group ू | .group ू | ||||
| ू u: | ू u: | ||||
| ूं u~ // or O~ ?? | |||||
| ूँ u~ | |||||
| ू (ँ u~ | |||||
| ूं (_ u~ // or O~ ?? | |||||
| ूँ (_ u~ | |||||
| .group ृ | .group ृ | ||||
| ृ rI | ृ rI | ||||
| .group ॆ | .group ॆ | ||||
| ॆ e | ॆ e | ||||
| ॆ (ँ e~ | |||||
| ॆं (_ e~ | |||||
| ॆँ (_ e~ | |||||
| .group े | .group े | ||||
| े e: | े e: | ||||
| े (ँ e~ | |||||
| ें (_ e~: | |||||
| ेँ (_ e~: | |||||
| .group ै | .group ै | ||||
| ै E: // ?? [aI] [E:] [&:] | ै E: // ?? [aI] [E:] [&:] | ||||
| ैं E~ | |||||
| ैँ E~ | |||||
| ै (ँ E~ | |||||
| ैं (_ E~ | |||||
| ैँ (_ E~ | |||||
| ?2 ै aI // ?? [aI] [E:] [&:] | ?2 ै aI // ?? [aI] [E:] [&:] | ||||
| .group ॉ | .group ॉ | ||||
| .group ॊ | .group ॊ | ||||
| ॊ o | ॊ o | ||||
| ॊ (ँ o~ | |||||
| ॊं (_ o~ | |||||
| ॊँ (_ o~ | |||||
| .group ो | .group ो | ||||
| ो o: | ो o: | ||||
| ों o~ | |||||
| ोँ o~ | |||||
| ो (ँ o~ | |||||
| ों (_ o~ | |||||
| ोँ (_ o~ | |||||
| .group ौ | .group ौ | ||||
| ौ O: // [O:] or [aU] ?? | ौ O: // [O:] or [aU] ?? | ||||
| ौं O~ | |||||
| ौँ O~ | |||||
| ौ (ँ O~ // [O:] or [aU] ?? | |||||
| ौं (_ O~ | |||||
| ौँ (_ O~ | |||||
| ?3 ौ aU // [O:] or [aU] ?? | ?3 ौ aU // [O:] or [aU] ?? | ||||
| .group ॢ // vowel sign l | .group ॢ // vowel sign l | ||||
| क़ qV | क़ qV | ||||
| क़ (B q | क़ (B q | ||||
| क्ष kSV | |||||
| क्ष (B kS | |||||
| .group ख | .group ख | ||||
| ख k#V | ख k#V | ||||
| ख (B k# | ख (B k# | ||||
| ज (B J | ज (B J | ||||
| ज़ zV | ज़ zV | ||||
| ज़ (B z | ज़ (B z | ||||
| ज्ञ gjV | |||||
| ज्ञ (B gj | |||||
| .group झ | .group झ | ||||
| झ J#V | झ J#V | ||||
| झ (B J# | झ (B J# | ||||
| .group ञ | .group ञ | ||||
| ञ n^V | ञ n^V | ||||
| ञ (B n^ | ञ (B n^ | ||||
| ्) ञ (_ n^ | |||||
| ्) ञ (_ n^@ | |||||
| .group ट | .group ट | ||||
| ट t.V | ट t.V | ||||
| ढ़ (B r.h // nukta | ढ़ (B r.h // nukta | ||||
| .group ण | .group ण | ||||
| ण n.V // (temporary) same as dental [n] | |||||
| ण n.V | |||||
| ण (B n. | ण (B n. | ||||
| ्) ण (_ n.@ | ्) ण (_ n.@ | ||||
| न्) म (_ m // n +virama | न्) म (_ m // n +virama | ||||
| .group य | .group य | ||||
| य j@ | |||||
| य jV | |||||
| य (B j | य (B j | ||||
| C) य (_ Ej // [Ej] not [@j] | |||||
| ्) य (_ j@ | ्) य (_ j@ | ||||
| .group र | .group र | ||||
| र rV | र rV | ||||
| र (B r | र (B r | ||||
| र (_ r | |||||
| ्) र (_ r@ | ्) र (_ r@ | ||||
| .group ऱ // rra | .group ऱ // rra | ||||
| ऱ rV // (temporary) same as [r] | |||||
| ऱ rV // (temporary) same as [r] should this be [r.] or perhaps [z.] ? | |||||
| ऱ (B r | ऱ (B r | ||||
| ्) ऱ (_ r@ | ्) ऱ (_ r@ | ||||
| _) व wV | _) व wV | ||||
| _) व (B w | _) व (B w | ||||
| _) व (् v // +virma | _) व (् v // +virma | ||||
| व (_ w | |||||
| .group श | .group श | ||||
| श SV | श SV | ||||
| श (B S | श (B S | ||||
| .group ष | .group ष | ||||
| ष s.V //?? or retroflex [S] | |||||
| ष (B s. //?? | |||||
| ष s.V | |||||
| ष (B s. | |||||
| .group स | .group स | ||||
| स sV | स sV | ||||
| स (B s | स (B s | ||||
| .group ह | .group ह | ||||
| ह H | |||||
| ह HV | |||||
| ह (B H | ह (B H | ||||
| (emelte ki) EmEltE_||ki $unstressend | (emelte ki) EmEltE_||ki $unstressend | ||||
| tagságát $unstressend | tagságát $unstressend | ||||
| (a szakadékot) A'||sAkAde:kot $unstressend | (a szakadékot) A'||sAkAde:kot $unstressend | ||||
| (az országban) Az_'||orsa:gbAn $unstressend | |||||
| (az országban) Az_'||oR2sa:gbAn $unstressend | |||||
| eszközét $unstressend | eszközét $unstressend | ||||
| méretű $unstressend | méretű $unstressend | ||||
| ketyeg $unstressend | ketyeg $unstressend |
| orszá) g (gyarapod g | orszá) g (gyarapod g | ||||
| anya) g (gyár g | anya) g (gyár g | ||||
| anya) g (gyűjt g | anya) g (gyűjt g | ||||
| végi) g (gya g | |||||
| végi) g (gy g | |||||
| me) ggy (mag J | me) ggy (mag J | ||||
| me) ggy (íz J: | me) ggy (íz J: | ||||
| bádo) g (gy g | bádo) g (gy g | ||||
| ro) ggyj (ék J: | ro) ggyj (ék J: | ||||
| rá) g (gyűjt g //for example virággyűjtés, virággyűjteményt words | rá) g (gyűjt g //for example virággyűjtés, virággyűjteményt words | ||||
| _lo) g (gyűjt g //for example loggyűjtemény word | _lo) g (gyűjt g //for example loggyűjtemény word | ||||
| dro) g (gyanú g | |||||
| dro) g (gy g | |||||
| le) gg (roteszk g: | le) gg (roteszk g: | ||||
| _agya) g (gy g | _agya) g (gy g | ||||
| anya) g (győz g | anya) g (győz g | ||||
| hazugsá) g (gy g | hazugsá) g (gy g | ||||
| tőze) g (gy g | tőze) g (gy g | ||||
| doppin) g (gy g | doppin) g (gy g | ||||
| baromsá) g (gy g | |||||
| tehetsé) g (gy g | |||||
| bete) g (gy g | |||||
| .group gy | .group gy | ||||
| gy J | gy J | ||||
| _huszone) gy (e J: | _huszone) gy (e J: | ||||
| száze) gy (edik J: | száze) gy (edik J: | ||||
| védje) gy (straté J | védje) gy (straté J | ||||
| na) gy (sor J | |||||
| .group h | .group h | ||||
| h h | h h | ||||
| sz) í (veré i: | sz) í (veré i: | ||||
| sz) í (verő i: | sz) í (verő i: | ||||
| sz) í (vevő i: | sz) í (vevő i: | ||||
| expressz) í (v i: | |||||
| .group j | .group j | ||||
| j j | j j | ||||
| nem-lts n'Em||_!'Ellt,e:,ES //without this rule Espeak spokening the nem LTS text with one word, because general in hu_list have a $combine attribute the nem word. | nem-lts n'Em||_!'Ellt,e:,ES //without this rule Espeak spokening the nem LTS text with one word, because general in hu_list have a $combine attribute the nem word. | ||||
| n'Em _!'Ellt,e:,ES | n'Em _!'Ellt,e:,ES | ||||
| porcelá) n (ny n | |||||
| .group o | .group o | ||||
| o o | o o | ||||
| juventu) ssz s: //a radio station name | juventu) ssz s: //a radio station name | ||||
| farka) ssz (em Ss | farka) ssz (em Ss | ||||
| villamo) ssz (ék Ss | villamo) ssz (ék Ss | ||||
| titko) ssz (olgál Ss | |||||
| titko) ssz (olg Ss | |||||
| karo) ssz (ék Ss | karo) ssz (ék Ss | ||||
| hú) ssz (elet Ss | hú) ssz (elet Ss | ||||
| vörö) ssz (em Ss | vörö) ssz (em Ss | ||||
| esé) ssz (erű Ss | esé) ssz (erű Ss | ||||
| webe) ssz Ss | webe) ssz Ss | ||||
| beleve) ssz (en s: | beleve) ssz (en s: | ||||
| tengeré) ssz (ürk s: | |||||
| hirdeté) ssz S|s | |||||
| _ki) ssz (éri S|s | |||||
| _ki) ssz (ersz S|s | |||||
| _fűté) ssz S|s | |||||
| _kontaktu) ssz S|s | |||||
| _dió) ssz (ilá S|s | |||||
| _konszenzu) ssz S|s | |||||
| forgá) ssz (er S|s | |||||
| mérkőzé) ssz S|s | |||||
| művelődé) ssz S|s | |||||
| _nyomá) ssz (in S|s | |||||
| _oko) ssz S|s | |||||
| oktatá) ssz (er S|s | |||||
| pszichózi) ssz S|s | |||||
| realitá) ssz S|s | |||||
| szerződé) ssz S|s | |||||
| születé) ssz (ám S|s | |||||
| tölté) ssz (ak S|s | |||||
| utazá) ssz (er S|s | |||||
| zsarolá) ssz (er S|s | |||||
| dőlé) ssz (ab S|s | |||||
| .group sz | .group sz | ||||
| diva) t (cirk t | diva) t (cirk t | ||||
| álla) t (cirk t | álla) t (cirk t | ||||
| szen) t (szob t | szen) t (szob t | ||||
| koncer) t (jeg t | |||||
| .group tj | .group tj | ||||
| C) tj c | C) tj c |
| // This file is UTF8 encoded | // This file is UTF8 encoded | ||||
| // Spelling-to-phoneme words for Armenian | // Spelling-to-phoneme words for Armenian | ||||
| // ?1 West Armenian | |||||
| // names of letters | // names of letters | ||||
| _ա aIb | _ա aIb | ||||
| բ ben | բ ben | ||||
| կ ken | կ ken | ||||
| հ ho | հ ho | ||||
| ձ dza | ձ dza | ||||
| ղ r"ad | |||||
| ղ r"at | |||||
| ճ ce | ճ ce | ||||
| մ men | մ men | ||||
| յ hi | յ hi | ||||
| չ tSa | չ tSa | ||||
| պ pe | պ pe | ||||
| ջ dZe | ջ dZe | ||||
| ռ **a | |||||
| ռ R2a | |||||
| ս se | ս se | ||||
| վ vev | վ vev | ||||
| տ tyn | տ tyn | ||||
| ր re | ր re | ||||
| ց tso | |||||
| ց ts#o | |||||
| ւ hyn | ւ hyn | ||||
| փ p#yr | փ p#yr | ||||
| ք k#e | ք k#e | ||||
| և jev | |||||
| _օ o | _օ o | ||||
| ֆ fe | ֆ fe | ||||
| e e | e e | ||||
| f ef | f ef | ||||
| // symbols | |||||
| $ dolar | |||||
| % տոկոս $text | |||||
| * աստղանիշ $text | |||||
| + գումարած $text | |||||
| = հավասար $text | |||||
| _՝ b'ut# | |||||
| _՞ harts#ak'an | |||||
| _՛ S'eSt | |||||
| _։ verdZak'et // U+0589 | |||||
| _: verdZak'et | |||||
| _, storak'et | |||||
| _. midZak'et | |||||
| _֊ jent#amn'a // hyphen | |||||
| _՜ bats#akantSut#j'un | |||||
| _՟ pat'iw | |||||
| // numbers | // numbers | ||||
| // function words | // function words | ||||
| ես $u+ // pronouns | |||||
| դու $u+ | |||||
| եք $u+ | |||||
| Դուք $u+ | |||||
| նա $u+ | |||||
| այն $u+ | |||||
| մենք $u+ | |||||
| նրանք $u+ | |||||
| դուք $u+ | |||||
| ենք $u+ | |||||
| են $u+ | |||||
| այդ $u+ | |||||
| այս $u+ | |||||
| դա $u+ | |||||
| որ $u+ | |||||
| էր $u+ | |||||
| մի $u+ | |||||
| է $u+ | |||||
| հետ $u+ // prepositions | |||||
| եվ $u+ // and | |||||
| իսկ $u+ $brk // and, but | |||||
| կամ $u+ // or | |||||
| որը $u+ // which | |||||
| կարող $u+ // can | |||||
| // exceptions | |||||
| ով ov | |||||
| ովքեր ovk#er |
| // (consonants are changed for Armenian-West in the voice file "hy-west") | // (consonants are changed for Armenian-West in the voice file "hy-west") | ||||
| // This file is UTF-8 encoded | // This file is UTF-8 encoded | ||||
| // ?1 West Armenian | |||||
| .L01 բ գ թ կ պ տ ք | .L01 բ գ թ կ պ տ ք | ||||
| .L02 ու այ իւ իյ ոյ // other vowel sounds | |||||
| .L02 ու այ իւ իյ ոյ ա ե ը ի ո օ // vowel sounds | |||||
| // ligature | // ligature | ||||
| .replace | .replace | ||||
| .group ա | .group ա | ||||
| ա a | ա a | ||||
| այ aI | |||||
| այ (K aI | |||||
| այ (_ a | այ (_ a | ||||
| .group բ | .group բ | ||||
| .group է | .group է | ||||
| է e | է e | ||||
| էօ W | էօ W | ||||
| էյ eI | |||||
| էյ (K eI | |||||
| .group ը | .group ը | ||||
| ը @ | ը @ | ||||
| ի i | ի i | ||||
| իւ y | իւ y | ||||
| իւ (_ iv | իւ (_ iv | ||||
| իյ i@ | |||||
| իյ (K i@ | |||||
| .group լ | .group լ | ||||
| լ l | լ l | ||||
| L02) մ (_ m | L02) մ (_ m | ||||
| .group յ | .group յ | ||||
| յ h // ?? [j] | |||||
| _) յ h // ?? [j] | |||||
| _) յ (C h@ | _) յ (C h@ | ||||
| յ j | |||||
| .group ն | .group ն | ||||
| ն n | ն n | ||||
| _) ջ (C dZ@ | _) ջ (C dZ@ | ||||
| .group ռ | .group ռ | ||||
| ռ ** | |||||
| _) ռ (C **@ | |||||
| ռ R2 | |||||
| _) ռ (C R2@ | |||||
| .group ս | .group ս | ||||
| ս s | ս s | ||||
| .group ր | .group ր | ||||
| ր r | ր r | ||||
| L02) ր (L02 * | |||||
| _) ր (C r@ | _) ր (C r@ | ||||
| C) ր (_ @r | C) ր (_ @r | ||||
| L02) ր (_ r | L02) ր (_ r | ||||
| ֆ f | ֆ f | ||||
| _) ֆ (C f@ | _) ֆ (C f@ | ||||
| .group | |||||
| $ dol@ | |||||
| _t te: | _t te: | ||||
| _cap h'o:fdlEt@r | _cap h'o:fdlEt@r | ||||
| _sub s'8pskrIpt|| | |||||
| _sup s'yp@rskrIpt|| | |||||
| _?A l'Et@r | _?A l'Et@r | ||||
| _?? s'imbo:l | _?? s'imbo:l | ||||
| _7X z'e:v@nt@x | _7X z'e:v@nt@x | ||||
| _8X t'Axt@x | _8X t'Axt@x | ||||
| _9X n'e:g@nt@x | _9X n'e:g@nt@x | ||||
| _0C h'OndErt | |||||
| _0C h'Ond@rt | |||||
| _0M1 d'WyzEnt | _0M1 d'WyzEnt | ||||
| _0M2 m'iljun | _0M2 m'iljun | ||||
| _0M3 m'iljArt | _0M3 m'iljArt | ||||
| loochen $alt | loochen $alt | ||||
| oefen $alt | oefen $alt | ||||
| open $alt | open $alt | ||||
| reden $alt | |||||
| regen $alt | regen $alt | ||||
| reken $alt | reken $alt | ||||
| schepen $alt | schepen $alt | ||||
| water $alt | water $alt | ||||
| wedijver $alt | wedijver $alt | ||||
| wegwijzer $alt | wegwijzer $alt | ||||
| weiger $alt | |||||
| wester $alt | wester $alt | ||||
| wijder $alt | wijder $alt | ||||
| wilder $alt | wilder $alt | ||||
| gispel $alt | gispel $alt | ||||
| gniffel $alt | gniffel $alt | ||||
| goochel $alt | goochel $alt | ||||
| googel $alt | |||||
| gorgel $alt | gorgel $alt | ||||
| grabbel $alt | grabbel $alt | ||||
| grendel $alt | grendel $alt | ||||
| accessoire aksEsw'ar@ | accessoire aksEsw'ar@ | ||||
| accessoires aksEsw'ar@s | accessoires aksEsw'ar@s | ||||
| actiepunt Aksip8nt | actiepunt Aksip8nt | ||||
| actieve Akt'iv@ | |||||
| adhesie Ath'e:zi | adhesie Ath'e:zi | ||||
| agenda $2 | agenda $2 | ||||
| aldus Ald'8s | aldus Ald'8s | ||||
| desillusie dEsIlyzi | desillusie dEsIlyzi | ||||
| dieet $2 | dieet $2 | ||||
| diesel diz@l | diesel diz@l | ||||
| diner din'e: | |||||
| //discussie $2 | //discussie $2 | ||||
| divers div'Ers | divers div'Ers | ||||
| diftongering dIft,ON'e:rIN | diftongering dIft,ON'e:rIN | ||||
| elfstedentocht ,Elf'ste:d@ntoQt | elfstedentocht ,Elf'ste:d@ntoQt | ||||
| embouchuur A~buS'yr // embouchure | embouchuur A~buS'yr // embouchure | ||||
| enorm $2 | enorm $2 | ||||
| enquête A~k'Et@ $alt2 | |||||
| erosie e:r'o:zi | erosie e:r'o:zi | ||||
| eucharistie $4 | eucharistie $4 | ||||
| explosie $2 | explosie $2 | ||||
| invasie $2 | invasie $2 | ||||
| januari $3 | januari $3 | ||||
| kadaster $2 | kadaster $2 | ||||
| leesregel le:sre:Q@l | |||||
| lunch l8nS | |||||
| lunches l8nS@s | |||||
| mangat $alt3 | mangat $alt3 | ||||
| materie ma:t'e:ri | materie ma:t'e:ri | ||||
| maatregel ma:tre:Q@l $alt2 | maatregel ma:tre:Q@l $alt2 | ||||
| partijvoorzitters $2 | partijvoorzitters $2 | ||||
| periferie pI:rifI:r'i | periferie pI:rifI:r'i | ||||
| pistache pist'AS | pistache pist'AS | ||||
| privilege privil'e:Z@ $alt2 | |||||
| proces $2 | proces $2 | ||||
| projectielen $3 | projectielen $3 | ||||
| renaissance rEne:s'A~s@ | renaissance rEne:s'A~s@ | ||||
| sms'jes EsEm'Es_j@s | sms'jes EsEm'Es_j@s | ||||
| spektakel $2 | spektakel $2 | ||||
| tegennatuur $4 | tegennatuur $4 | ||||
| tralie $1 | |||||
| travestie $3 | travestie $3 | ||||
| verderop $3 | verderop $3 | ||||
| vergezicht vErQ@zIxt | |||||
| verre vEr@ | verre vEr@ | ||||
| verrekijker vEr@kEIk@r | verrekijker vEr@kEIk@r | ||||
| verste vErst@ | verste vErst@ | ||||
| verte vErt@ | verte vErt@ | ||||
| volledig $2 | volledig $2 | ||||
| voordeel $1 | |||||
| vrouwengek $alt3 | vrouwengek $alt3 | ||||
| waarschijnlijk $2 | waarschijnlijk $2 | ||||
| wanen v#a:n@n | wanen v#a:n@n |
| @@C) a (_ =a: | @@C) a (_ =a: | ||||
| _) aan (@P3 'a:n | _) aan (@P3 'a:n | ||||
| @) aar (_S3 a:r | |||||
| @) aard (_S4 a:rt | |||||
| &) aar (_S3 a:r | |||||
| &) aard (_S4 a:rt | |||||
| aa (rd_ 'a: | aa (rd_ 'a: | ||||
| aa (C_ 'a: | aa (C_ 'a: | ||||
| z) aa (m_ a: | z) aa (m_ a: | ||||
| t) a (bleau a: | t) a (bleau a: | ||||
| @) abel (_ 'a:b@l | @) abel (_ 'a:b@l | ||||
| @) abele (_ 'a:b@l@ | @) abele (_ 'a:b@l@ | ||||
| @) ace (_ e:s // ?? interface | |||||
| m) ach (in %a:S | m) ach (in %a:S | ||||
| _) actie (@P5 'Aksi | |||||
| _) af (C@P2 'Af | _) af (C@P2 'Af | ||||
| _) affich %AfiS | _) affich %AfiS | ||||
| age (_ 'a:Z@ | age (_ 'a:Z@ | ||||
| baan ba:n | baan ba:n | ||||
| &) baar (_S4 =ba:r | &) baar (_S4 =ba:r | ||||
| &) bare (_S4 =ba:r@ | &) bare (_S4 =ba:r@ | ||||
| _) bedrijfs (@P8 b@dr'EIfs | |||||
| _) belasting (@P9 b@l'AstIN | |||||
| _) beleids (@P7 b@l'EIts | |||||
| _) bij (C@P3 b'EI | _) bij (C@P3 b'EI | ||||
| bij (zond b%i | bij (zond b%i | ||||
| _) bijeen bEI'e:n | _) bijeen bEI'e:n | ||||
| _) binnen (P6 b'In@n | _) binnen (P6 b'In@n | ||||
| _) boek (@P4 b'uk | |||||
| _) boven (P5 b'o:v@n | _) boven (P5 b'o:v@n | ||||
| _) braille (@P7 br'Aj@ | |||||
| _) brand br'And | _) brand br'And | ||||
| _) buiten (P6 b'Wyt@n | _) buiten (P6 b'Wyt@n | ||||
| _) buurt (@@P5 b'yrt // buurtbewoner | _) buurt (@@P5 b'yrt // buurtbewoner | ||||
| _) be (zem be: | _) be (zem be: | ||||
| _) be (zig be: | _) be (zig be: | ||||
| _) beu bY: | _) beu bY: | ||||
| _) bezoekers (@P9 b@z'uk@rs | |||||
| .group c | .group c | ||||
| @) ci (ë S | @) ci (ë S | ||||
| ci (o S | ci (o S | ||||
| ck k | ck k | ||||
| ces (_ s'Es | |||||
| coach ko:tS | coach ko:tS | ||||
| _) computer (@P8 kOmpj'ut@r | |||||
| _) congres kOnQr'Es | _) congres kOnQr'Es | ||||
| _) concentratie (@P12 kOnsEntr'a:tsi | |||||
| co (ncert k%O | co (ncert k%O | ||||
| &) end (_ @nd | &) end (_ @nd | ||||
| &) ende (_S1 @ | &) ende (_S1 @ | ||||
| &) enden (_S2 @n | &) enden (_S2 @n | ||||
| eden e:d@n | |||||
| eden (_ e:d@n // ?? | |||||
| @) ent (_ 'Ent | @) ent (_ 'Ent | ||||
| @) ent (e_ 'Ent | @) ent (e_ 'Ent | ||||
| @) ent (en_ 'Ent | @) ent (en_ 'Ent | ||||
| @z) es (_S1 s | @z) es (_S1 s | ||||
| @) es (_S2qd 'Es // double the previous vowel | @) es (_S2qd 'Es // double the previous vowel | ||||
| @) es (_$w_alt2S1 s // just remove 's' | @) es (_$w_alt2S1 s // just remove 's' | ||||
| @) e (s_$p_alt2+S1 s | |||||
| KAC) es (_S2e @s | KAC) es (_S2e @s | ||||
| mb) es (_S1 s | mb) es (_S1 s | ||||
| nd) es (_S1 s | nd) es (_S1 s | ||||
| @) eur (_ 'Y:r | @) eur (_ 'Y:r | ||||
| &) e (nB@ E2 | &) e (nB@ E2 | ||||
| &) e (ntig @ | |||||
| _p) e (nibel e: | _p) e (nibel e: | ||||
| id) e (nt E | id) e (nt E | ||||
| pres) e (nt E | pres) e (nt E | ||||
| er (ij_ @r | er (ij_ @r | ||||
| tol) er (abel @r | tol) er (abel @r | ||||
| mis) er (abel @r | mis) er (abel @r | ||||
| hond) er (d_ @r | |||||
| _) erger ErQ@r // ergeren | _) erger ErQ@r // ergeren | ||||
| &) era (_ @ra: | &) era (_ @ra: | ||||
| @) er (aar_ @r | @) er (aar_ @r | ||||
| &) er (C@ E2r | &) er (C@ E2r | ||||
| .group ê | |||||
| ê E | |||||
| .group f | .group f | ||||
| f f | f f | ||||
| @) gi (eus Z | @) gi (eus Z | ||||
| @) gi (euz Z | @) gi (euz Z | ||||
| reli) gi (eu Qij | reli) gi (eu Qij | ||||
| _) goog (el gu:g | |||||
| .group ge | .group ge | ||||
| _) ge (@P2 Q@ | _) ge (@P2 Q@ | ||||
| ge (bied Q@ | ge (bied Q@ | ||||
| _) gebruikers (@P10 Q@br'Wyk@rs | |||||
| _) gee Qe: | _) gee Qe: | ||||
| _) gei QEI | _) gei QEI | ||||
| gener (aal Q,e:n@r | gener (aal Q,e:n@r | ||||
| _) gelijk Q@lEIk | _) gelijk Q@lEIk | ||||
| _) ge (lC QE | _) ge (lC QE | ||||
| _) ge (rC QE | _) ge (rC QE | ||||
| _) ge (lenL02 Qe: | |||||
| _) ge (tenL02 Qe: | |||||
| _) geu QY: | _) geu QY: | ||||
| _) ge (ven Qe: | _) ge (ven Qe: | ||||
| _) ge (ver Qe: | _) ge (ver Qe: | ||||
| _) herinn h%ErIn // herinneren | _) herinn h%ErIn // herinneren | ||||
| _) hersen h'Ers@n | _) hersen h'Ers@n | ||||
| &) heid (_S4 hEIt | &) heid (_S4 hEIt | ||||
| _) honden (@P6 h'Ond@n | |||||
| _) hulp (@@P4 h'8lp | _) hulp (@@P4 h'8lp | ||||
| &) ika (_ =ika: | &) ika (_ =ika: | ||||
| &) iko (_ =iko: | &) iko (_ =iko: | ||||
| _) in (C@P2 'In | _) in (C@P2 'In | ||||
| // _) in (gP2 'In | |||||
| _) in (do In | _) in (do In | ||||
| ine (_ 'in@ | ine (_ 'in@ | ||||
| ines (_ 'in@s | ines (_ 'in@s | ||||
| _) inn (@P2 'I // ?? inneren | |||||
| _) inter Int@r | |||||
| io (nage iO | io (nage iO | ||||
| io (de_ i'o: | io (de_ i'o: | ||||
| iodes (_ i'o:d@s | iodes (_ i'o:d@s | ||||
| @) isme (_ 'Ism@ | @) isme (_ 'Ism@ | ||||
| @) ist (_ 'Ist | @) ist (_ 'Ist | ||||
| @) isten (_ 'Ist@n | @) isten (_ 'Ist@n | ||||
| _) inn (@P2 'I // ?? inneren | |||||
| .group j | .group j | ||||
| j j | j j | ||||
| _) jaar (@P4 j'a:r | |||||
| jaar (lijk ja:r | |||||
| jou (rna Zu | jou (rna Zu | ||||
| k) k | k) k | ||||
| _) kale (nde ka:l'E | _) kale (nde ka:l'E | ||||
| _) kantoor (@P7 kAnt'o:r | |||||
| _) keuze (@P5 k'Y:z@ | |||||
| _) kinder (@P6 k'Ind@r | |||||
| kokkerel kOk@r'El | kokkerel kOk@r'El | ||||
| _) koning k'o:nIN // in compounds | _) koning k'o:nIN // in compounds | ||||
| _) koningin ko:nIQ'In | _) koningin ko:nIQ'In | ||||
| &) lijker (_S6 l@k@r | &) lijker (_S6 l@k@r | ||||
| &) lijkere (_S7 l@k@r@ | &) lijkere (_S7 l@k@r@ | ||||
| &) lijkheid (_S8 l@khEIt | &) lijkheid (_S8 l@khEIt | ||||
| &) lijkheden (_S9 l@khe:d@n | |||||
| // &) lijks@ (_ l@ks@ | |||||
| &) lijkst (_S6 l@kst | &) lijkst (_S6 l@kst | ||||
| &) lijkste (_S7 l@kst@ | &) lijkste (_S7 l@kst@ | ||||
| &) laan (_S4 la:n | &) laan (_S4 la:n | ||||
| _) lange (@P5 laN@ | _) lange (@P5 laN@ | ||||
| _) liefdes (@P7 l'ifd@s | |||||
| @) loog (_ lo:x | @) loog (_ lo:x | ||||
| @) loos (_S4 lo:s | @) loos (_S4 lo:s | ||||
| @) loze (_S4 lo:z@ | @) loze (_S4 lo:z@ | ||||
| management ma:nIdZm@nt | management ma:nIdZm@nt | ||||
| _) mee (@P3 m'e: | _) mee (@P3 m'e: | ||||
| _) mee (rC mI: | |||||
| menu (_ m@ny | menu (_ m@ny | ||||
| _) mi (cro mi | _) mi (cro mi | ||||
| _) mi (s@ m%I | _) mi (s@ m%I | ||||
| _) mis (loP3 m'Is | _) mis (loP3 m'Is | ||||
| _) mis (tA m'Is | _) mis (tA m'Is | ||||
| _) misver (@ m'Isf@r | _) misver (@ m'Isf@r | ||||
| _) muziek (@P6 myz'ik | |||||
| .group n | .group n | ||||
| n n | n n | ||||
| _) na (C@N n'a: | _) na (C@N n'a: | ||||
| _) na (C% nA | _) na (C% nA | ||||
| _) na (cht nA | _) na (cht nA | ||||
| _) najaars (@P7 n'a:ja:rs | |||||
| _) narci (s n%ArsI | _) narci (s n%ArsI | ||||
| _) na (rc n%A | _) na (rc n%A | ||||
| _) na (der na: | _) na (der na: | ||||
| na (vig n%a: | na (vig n%a: | ||||
| _) na (vr na: | _) na (vr na: | ||||
| _) na (volg@ n%a: | _) na (volg@ n%a: | ||||
| _) noord (@P5 no:rd | |||||
| _) nieuws (@P6 n'iws | _) nieuws (@P6 n'iws | ||||
| @@) nis (_S3 nIs | @@) nis (_S3 nIs | ||||
| @@) nisen (_S5 nIs@n | @@) nisen (_S5 nIs@n | ||||
| _) noord (@P5 no:rd | |||||
| _) notitie (@P7 no:t'itsi | |||||
| .group o | .group o | ||||
| tr) ou (vail u | tr) ou (vail u | ||||
| ouve (rtu uvE | ouve (rtu uvE | ||||
| _) over (@P4 ,o:v@r | _) over (@P4 ,o:v@r | ||||
| _) overigen o:v@r@Q@n | |||||
| _) overheid 'o:v@rhEIt | |||||
| t) ou (r u: | t) ou (r u: | ||||
| C) r (A r | C) r (A r | ||||
| rr *r | rr *r | ||||
| recherch r@SErS | |||||
| revanch r@vA~nS | |||||
| route rut@ // route(s) | route rut@ // route(s) | ||||
| .group re | .group re | ||||
| _) re (geren r@ | _) re (geren r@ | ||||
| _) re (geer r@ | _) re (geer r@ | ||||
| _) regel re:Q@l | |||||
| _) re (cent r@ | _) re (cent r@ | ||||
| _) re (cept r@ | _) re (cept r@ | ||||
| _) re (ceptief re: | _) re (ceptief re: | ||||
| _) re (ces r@ | |||||
| _) re (clam r@ | _) re (clam r@ | ||||
| _) register r@Q'Ist@r | |||||
| reme (die r@m'e: | |||||
| _) re (serve_ r@ | _) re (serve_ r@ | ||||
| _) re (cord re' | _) re (cord re' | ||||
| _) regering r@Q'I:rIN | |||||
| repre (saill re:pre: | repre (saill re:pre: | ||||
| recherch r@SErS | |||||
| revanch r@vA~nS | |||||
| .group s | .group s | ||||
| @) ssi (o S | @) ssi (o S | ||||
| CAr) sie (_ =zi | CAr) sie (_ =zi | ||||
| _) stads (@P5 st'Ats | |||||
| _) stage (@P5 st'a:Z@ | |||||
| _) standaard (@P9 st'Anda:rt | _) standaard (@P9 st'Anda:rt | ||||
| _) start (@P5 st'Art | |||||
| @) straat (_S6 stra:t | @) straat (_S6 stra:t | ||||
| _vre) s (e s | _vre) s (e s | ||||
| _) ver (@P3 v@r | _) ver (@P3 v@r | ||||
| _) ver (sie_ vEr | _) ver (sie_ vEr | ||||
| _) verder vErd@r | _) verder vErd@r | ||||
| _) verge (@P5 vErg@ | |||||
| _) verge (le v@rQ'e: | |||||
| _) verkeers (@P8 v@rk'I:rs | |||||
| // _) verge (@P5 vErg@ | |||||
| // _) verge (le v@rQ'e: | |||||
| _) voorjaars (@P9 v'O:rja:rs | |||||
| _) voort (@P5 v'O:rt | _) voort (@P5 v'O:rt | ||||
| _) vrijwilligers (@P13 vrEIv#'Il@Q@rs | |||||
| .group w | .group w | ||||
| _) wanstaltig v#Anst'Alt@Q | _) wanstaltig v#Anst'Alt@Q | ||||
| _) wantrouwig v#Antr'VU@Q | _) wantrouwig v#Antr'VU@Q | ||||
| _) wanvoeglijk v#Anv'uxl@k | _) wanvoeglijk v#Anv'uxl@k | ||||
| _) water (@P5 v#'a:t@r | |||||
| _) weers (@P5 v#'I:rs | |||||
| _) weg (@P3 v#'EQ | _) weg (@P3 v#'EQ | ||||
| _) weg (en v#e:Q | _) weg (en v#e:Q | ||||
| _) weg (e_ v#e:Q // bewegelijk | _) weg (e_ v#e:Q // bewegelijk | ||||
| _) werk (@P4 v#'Erk | |||||
| _) west (@P4 v#Est | _) west (@P4 v#Est | ||||
| _) wr vr | |||||
| _) woon (@P4 v#'o:n | |||||
| _) wr (@ vr | |||||
| .group x | .group x |
| ੱ) ਯ (_ j: | ੱ) ਯ (_ j: | ||||
| .group ਰ | .group ਰ | ||||
| ਰ RV | |||||
| ਰ (B R | |||||
| @) ਰ (_ R | |||||
| ੱ) ਰ R:V | |||||
| ੱ) ਰ (B R: | |||||
| ੱ) ਰ (_ R: | |||||
| ਰ rV | |||||
| ਰ (B r | |||||
| @) ਰ (_ r | |||||
| ੱ) ਰ r:V | |||||
| ੱ) ਰ (B r: | |||||
| ੱ) ਰ (_ r: | |||||
| .group ਲ | .group ਲ | ||||
| ਲ lV | ਲ lV |
| x iks | x iks | ||||
| y 'igREk | y 'igREk | ||||
| _z zEt | _z zEt | ||||
| ż Z;Et | |||||
| ź ZEt | |||||
| ż ZEt | |||||
| ź Z;Et | |||||
| ä $accent | ä $accent | ||||
| ö $accent | ö $accent |
| // accent names | // accent names | ||||
| _lig ligad'u*& | _lig ligad'u*& | ||||
| _acu &g'udU | |||||
| _ac2 &g'udUd'uplU | |||||
| _acu ag'udU | |||||
| _ac2 ag'udUd'uplU | |||||
| _brv bR'Evi | _brv bR'Evi | ||||
| _ced sedZ'ilj& | _ced sedZ'ilj& | ||||
| ?1 _ced syd'il^& | ?1 _ced syd'il^& | ||||
| x Sis# | x Sis# | ||||
| _cap maI'uskulU | _cap maI'uskulU | ||||
| _sub ||subskR'itU | |||||
| _sup ||sob*eskR'itU | |||||
| _?A l'etR&_ | _?A l'etR&_ | ||||
| _?? s'imbolU_ | _?? s'imbolU_ | ||||
| _#32 esp'asU | _#32 esp'asU | ||||
| + maIs# $max3 | + maIs# $max3 | ||||
| % pors'eINtU $max3 | % pors'eINtU $max3 | ||||
| & _'e_ | & _'e_ | ||||
| @ &x'ob& | |||||
| @ ax'ob& | |||||
| ¤ 'eU*U | ¤ 'eU*U | ||||
| € 'eU*U | € 'eU*U | ||||
| £ l'ibR& | |||||
| § p&*'agRafU | § p&*'agRafU | ||||
| _\ b,ax&,iNvertS'id& | _\ b,ax&,iNvertS'id& | ||||
| _] f,ES&kowS'etSi | _] f,ES&kowS'etSi | ||||
| _^ s,irku~Nfl'Eksu | _^ s,irku~Nfl'Eksu | ||||
| _´ as'eINtu,ag'udU | |||||
| __ s,ublin^'adu | __ s,ublin^'adu | ||||
| _` gR'avi | |||||
| _` gR'avi | |||||
| _{ ,abRiS'avi | _{ ,abRiS'avi | ||||
| ?1 _| b,ax&v,ertSik'al | ?1 _| b,ax&v,ertSik'al | ||||
| ?2 _| b,ax&v,ertSik'aU | ?2 _| b,ax&v,ertSik'aU | ||||
| _¿ ,iNtex,ogas,&U~,iNvertS'id& | _¿ ,iNtex,ogas,&U~,iNvertS'id& | ||||
| _" 'abRi;'asp&||d'upl&s# | _" 'abRi;'asp&||d'upl&s# | ||||
| _º Oz'in^U | |||||
| _ª az'in^U | |||||
| ?1 º O*@-din'almaskul'i~nU | |||||
| ?2 º o*@-dZin'aUmaskul'i~nU | |||||
| ?1 ª O*@-din'alfemin'i~nU | |||||
| ?2 ª o*@-dZin'aUfemin'i~nU | |||||
| ° gR'aU | ° gR'aU | ||||
| ?2 _9X nov'eINt& | ?2 _9X nov'eINt& | ||||
| _1C0 s'eIN | _1C0 s'eIN | ||||
| ?1_0C s'eINtus# | ?1_0C s'eINtus# | ||||
| ?2_0C s'eINtUs# | |||||
| ?2_0C s'eINtUz | |||||
| _1C s'eINtu | _1C s'eINtu | ||||
| ?1_2C duz'eINtus# | ?1_2C duz'eINtus# | ||||
| ?2_2C duz'eINtUz | ?2_2C duz'eINtUz | ||||
| ?1_3C tryz'eNtus# | |||||
| ?2_3C tRez'eNtUz | |||||
| ?1_3C tryz'eINtus# | |||||
| ?2_3C tRez'eINtUz | |||||
| ?1_5C kin^'eINtus# | ?1_5C kin^'eINtus# | ||||
| ?2_5C kin^'eINtUz | ?2_5C kin^'eINtUz | ||||
| ?1_0M1 m'il_ | ?1_0M1 m'il_ | ||||
| usb $abbrev | usb $abbrev | ||||
| dr $dot | |||||
| dra $dot | |||||
| mr $dot | |||||
| mrs $dot | |||||
| prof pr'Of $dot | |||||
| dr dowtor $dot | |||||
| dra dowt'o*& $dot | |||||
| mr m'ister $dot | |||||
| mrs m'irsys $dot | |||||
| prof pR'Of $dot | |||||
| profº pR,ofes'or | profº pR,ofes'or | ||||
| profª pR,ofes'o*& | profª pR,ofes'o*& | ||||
| engº eInZen^'eI*U | |||||
| engª eInZen^'eI*& | |||||
| nº n'u~me*U | |||||
| sr $dot | sr $dot | ||||
| ?1 sra ,Es;'Errj'a $dot | ?1 sra ,Es;'Errj'a $dot | ||||
| ?2 sra $dot | ?2 sra $dot | ||||
| te $u $verbf | te $u $verbf | ||||
| nos $u $nounf | nos $u $nounf | ||||
| la $u | la $u | ||||
| lo $u | |||||
| lo lU $u | |||||
| las $u | las $u | ||||
| los $u | los $u | ||||
| se $u | se $u | ||||
| desse $u+ $nounf | desse $u+ $nounf | ||||
| desta $nounf | desta $nounf | ||||
| nesse n'esy $u+ $nounf | nesse n'esy $u+ $nounf | ||||
| aquele &k'ely $u+ $nounf // that | |||||
| aquela $u+ $nounf | aquela $u+ $nounf | ||||
| daquele d&k'ely $u+ $nounf | |||||
| aquele $alt2 $nounf | |||||
| daquela $u+ $nounf | daquela $u+ $nounf | ||||
| daquele $alt2 $nounf | |||||
| que $u // pronunciation is in pt_rules | que $u // pronunciation is in pt_rules | ||||
| // possessive adjectives | // possessive adjectives | ||||
| // prepositions | // prepositions | ||||
| de $u $nounf // of,from | de $u $nounf // of,from | ||||
| do $u $nounf | |||||
| do du $u $nounf | |||||
| da $u $nounf | da $u $nounf | ||||
| dos $u $nounf | dos $u $nounf | ||||
| das $u $nounf | das $u $nounf | ||||
| dumas $u $nounf | dumas $u $nounf | ||||
| em $u $noun // in,on,at | em $u $noun // in,on,at | ||||
| no nu $u $nounf | |||||
| no nU $u $nounf | |||||
| na $u $nounf | na $u $nounf | ||||
| num $u $nounf | num $u $nounf | ||||
| numa $u $nounf | numa $u $nounf | ||||
| às ,a:s $nounf | às ,a:s $nounf | ||||
| para $u // for,to | para $u // for,to | ||||
| pro $u $nounf | |||||
| pro pRU $u $nounf | |||||
| pra $u $nounf | pra $u $nounf | ||||
| pros $u $nounf | pros $u $nounf | ||||
| pras $u $nounf | pras $u $nounf | ||||
| // conjunctions | // conjunctions | ||||
| ?1 e i $u // and | ?1 e i $u // and | ||||
| ?2 e i $u // and | ?2 e i $u // and | ||||
| se $u+ $verbf // if | |||||
| se $u+ // if | |||||
| ?2 mas $u // but | ?2 mas $u // but | ||||
| pudemos $u+ | pudemos $u+ | ||||
| puderam $u+ | puderam $u+ | ||||
| poderei $u3+ | |||||
| poderá $u3+ | |||||
| poderemos $u+ | |||||
| poderão $u+ | |||||
| poderei p%ode*eI $u+ | |||||
| poderá p%ode*a $u+ | |||||
| poderemos p%ode*'emUs $u+ | |||||
| podeão p%ode*&U~ $u+ | |||||
| // ir - to go (used to make future tense) | // ir - to go (used to make future tense) | ||||
| abacaxi abakaSy | abacaxi abakaSy | ||||
| abordo $alt | abordo $alt | ||||
| aborto $alt $verb | aborto $alt $verb | ||||
| absorta $alt2 | |||||
| acerto $alt2 $noun | acerto $alt2 $noun | ||||
| acertos $alt2 | acertos $alt2 | ||||
| acocho $alt2 $noun | |||||
| acordo $alt $verb | acordo $alt $verb | ||||
| acervo $alt2 | acervo $alt2 | ||||
| adepto $alt | adepto $alt | ||||
| adorno $alt $verb | adorno $alt $verb | ||||
| aeroporto $alt2 | aeroporto $alt2 | ||||
| aeroportos $alt | aeroportos $alt | ||||
| albatrozes $alt | |||||
| alcateia $alt | alcateia $alt | ||||
| alcova $alt2 | alcova $alt2 | ||||
| alegro $alt2 $noun | |||||
| alferes $alt | alferes $alt | ||||
| algozes $alt | |||||
| almoço $alt $verb | almoço $alt $verb | ||||
| ameba $alt | ameba $alt | ||||
| amores $alt2 | amores $alt2 | ||||
| amorno $alt | |||||
| amuleto $alt2 | |||||
| ampere $alt | |||||
| ampola $alt2 | |||||
| ampulheta $alt2 | |||||
| andorra $alt2 | |||||
| antonieta $alt2 | antonieta $alt2 | ||||
| apego $alt2 $noun | apego $alt2 $noun | ||||
| apelo $alt2 $noun | apelo $alt2 $noun | ||||
| apoio $alt $verb | apoio $alt $verb | ||||
| arredores $alt | arredores $alt | ||||
| arremesso $alt2 $noun | arremesso $alt2 $noun | ||||
| arrocho $alt2 $noun | |||||
| arroto $alt2 $noun | |||||
| arroz $alt2 | arroz $alt2 | ||||
| assembleia $alt | assembleia $alt | ||||
| assopro $alt2 $noun | |||||
| ateia $alt | ateia $alt | ||||
| aterro $alt2 | aterro $alt2 | ||||
| aterro $alt $verb | aterro $alt $verb | ||||
| atmosfera $alt | |||||
| atrozes $alt | |||||
| autora $alt2 | autora $alt2 | ||||
| avesso $alt2 | avesso $alt2 | ||||
| axé aSE | axé aSE | ||||
| azeda $alt $verb | azeda $alt $verb | ||||
| azedo $alt $verb | azedo $alt $verb | ||||
| bairro b'aIxU | |||||
| baqueta $alt2 | baqueta $alt2 | ||||
| banqueta $alt2 | |||||
| banquete $alt2 | |||||
| bastonete $alt2 | |||||
| beco $alt2 | beco $alt2 | ||||
| besta $alt2 | besta $alt2 | ||||
| bilhete $alt2 | bilhete $alt2 | ||||
| bissulfeto $alt2 | |||||
| boca $alt2 | boca $alt2 | ||||
| boceta $alt2 | boceta $alt2 | ||||
| bochecha $alt2 | |||||
| bofe $alt | |||||
| bojo $alt2 | bojo $alt2 | ||||
| boleia $alt | boleia $alt | ||||
| bolero $alt | bolero $alt | ||||
| borra $alt2 $noun | borra $alt2 $noun | ||||
| bosque $alt | bosque $alt | ||||
| boto $alt2 $noun | boto $alt2 $noun | ||||
| boxe $alt | |||||
| boxe $alt | |||||
| brejo $alt | brejo $alt | ||||
| bromelha $alt | bromelha $alt | ||||
| broto $alt2 $noun | |||||
| cabelo $alt2 | cabelo $alt2 | ||||
| cabresto $alt2 | cabresto $alt2 | ||||
| cacete $alt2 | cacete $alt2 | ||||
| cachorra $alt2 | cachorra $alt2 | ||||
| caderneta $alt2 | caderneta $alt2 | ||||
| cadete $alt2 | cadete $alt2 | ||||
| cãibra k'&~IbR& | |||||
| caibro k'aIbRU | |||||
| caixeta $alt2 | |||||
| camelha $alt | camelha $alt | ||||
| camelo $alt2 | camelo $alt2 | ||||
| caminhonete $alt | |||||
| camiseta $alt2 | camiseta $alt2 | ||||
| canaleta $alt2 | |||||
| canhoto $alt2 | |||||
| cantora $alt2 | cantora $alt2 | ||||
| capacete $alt2 | capacete $alt2 | ||||
| caractere $alt | caractere $alt | ||||
| carbureto $alt2 | carbureto $alt2 | ||||
| careta $alt2 | careta $alt2 | ||||
| carrapeta $alt2 | |||||
| carreta $alt2 | carreta $alt2 | ||||
| carroça $alt | carroça $alt | ||||
| casebre $alt | casebre $alt | ||||
| cateto $alt2 | cateto $alt2 | ||||
| catorze $alt2 | catorze $alt2 | ||||
| cebola $alt2 | cebola $alt2 | ||||
| cedro $alt | |||||
| cefaleia $alt | cefaleia $alt | ||||
| cerebelo $alt2 | |||||
| centopeia $alt | centopeia $alt | ||||
| cerca $alt | cerca $alt | ||||
| cerca $alt2 $noun | cerca $alt2 $noun | ||||
| cerco $alt $verb | cerco $alt $verb | ||||
| chamego $alt2 | |||||
| cerda $alt | |||||
| cetro $alt | |||||
| chamego $alt2 $verb | |||||
| chaveta $alt2 | |||||
| chefe $alt | chefe $alt | ||||
| checam $alt | checam $alt | ||||
| choro $alt2 $noun | choro $alt2 $noun | ||||
| chupeta $alt2 | chupeta $alt2 | ||||
| clamores $alt2 | clamores $alt2 | ||||
| clero $alt | clero $alt | ||||
| cloreto $alt2 | |||||
| coche $alt2 | |||||
| coco $alt2 | coco $alt2 | ||||
| cofre $alt | cofre $alt | ||||
| coice $alt2 | coice $alt2 | ||||
| colabore $alt | |||||
| colete $alt2 | colete $alt2 | ||||
| colchete $alt2 | colchete $alt2 | ||||
| colher $alt $noun | colher $alt $noun | ||||
| conforto $alt $verb | conforto $alt $verb | ||||
| console $alt2 $noun | console $alt2 $noun | ||||
| consolo $alt2 $noun | consolo $alt2 $noun | ||||
| constroem $alt | |||||
| controle $alt2 $noun | controle $alt2 $noun | ||||
| controles $alt2 | controles $alt2 | ||||
| controles $alt $verb | controles $alt $verb | ||||
| coreto $alt2 | coreto $alt2 | ||||
| corneta $alt2 | corneta $alt2 | ||||
| cornos $alt | cornos $alt | ||||
| coro $alt2 | |||||
| coro $alt $verb | |||||
| corpos $alt | corpos $alt | ||||
| corto $alt | corto $alt | ||||
| corveta $alt2 | corveta $alt2 | ||||
| corvos $alt | corvos $alt | ||||
| costeleta $alt2 | |||||
| coto $alt2 | coto $alt2 | ||||
| cotovelo $alt2 | cotovelo $alt2 | ||||
| cratera $alt | cratera $alt | ||||
| crede $alt2 | crede $alt2 | ||||
| credo $alt | |||||
| crepe $alt | crepe $alt | ||||
| decore $alt | decore $alt | ||||
| decoro $alt2 $noun | |||||
| degelo $alt2 | degelo $alt2 | ||||
| desapego $alt2 $noun | desapego $alt2 $noun | ||||
| descordo $alt | descordo $alt | ||||
| desemprego $alt2 | desemprego $alt2 | ||||
| desemprego $alt $verb | desemprego $alt $verb | ||||
| desespero $alt2 $noun | |||||
| desespero $alt2 | |||||
| desespero $alt $verb | |||||
| desfecho $alt2 | desfecho $alt2 | ||||
| desmantelo $alt2 $noun | desmantelo $alt2 $noun | ||||
| despojo $alt2 $noun | |||||
| despojos $alt | |||||
| desporto $alt2 | desporto $alt2 | ||||
| desportos $alt | desportos $alt | ||||
| desprezo $alt2 $noun | desprezo $alt2 $noun | ||||
| diarreia $alt | diarreia $alt | ||||
| diego $alt2 | diego $alt2 | ||||
| discordo $alt | discordo $alt | ||||
| dobro $alt2 $noun | |||||
| dissabores $alt2 | |||||
| dispneia dZIspyn'EI& | |||||
| dobro $alt2 | |||||
| dobro $alt $verb | |||||
| doce $alt2 | doce $alt2 | ||||
| doutora $alt2 | doutora $alt2 | ||||
| droga $alt | |||||
| doze $alt2 | |||||
| dueto $alt2 | dueto $alt2 | ||||
| elixir eliSir | elixir eliSir | ||||
| emprego $alt2 $noun | emprego $alt2 $noun | ||||
| enredo $alt $verb | enredo $alt $verb | ||||
| enrosco $alt $verb | enrosco $alt $verb | ||||
| enterro $alt2 $noun | enterro $alt2 $noun | ||||
| enumerem $alt | |||||
| entorto $alt | |||||
| entroso $alt | |||||
| envelope $alt | envelope $alt | ||||
| envolto $alt2 | |||||
| enxaqueca $alt2 | enxaqueca $alt2 | ||||
| enxerto $alt2 $noun | enxerto $alt2 $noun | ||||
| epopeia $alt | epopeia $alt | ||||
| erro $alt $verb | erro $alt $verb | ||||
| esboço $alt $verb | esboço $alt $verb | ||||
| escopeta $alt2 | escopeta $alt2 | ||||
| escova $alt2 $noun | |||||
| escovas $alt2 | |||||
| escore $alt | |||||
| escova $alt2 | |||||
| escova $alt $verb | |||||
| escovo $alt | escovo $alt | ||||
| escroto $alt2 | |||||
| esforço $alt $verb | esforço $alt $verb | ||||
| esforços $alt | esforços $alt | ||||
| esgoto $alt2 | esgoto $alt2 | ||||
| esposa $alt2 | esposa $alt2 | ||||
| esqueleto $alt2 | esqueleto $alt2 | ||||
| estilete $alt2 | estilete $alt2 | ||||
| estrela $alt2 | |||||
| estrofe $alt | |||||
| estorno $alt $verb | estorno $alt $verb | ||||
| estorvo $alt $verb | estorvo $alt $verb | ||||
| estrela $alt2 | |||||
| estrofe $alt | |||||
| estrogonofe $alt | |||||
| eta $alt2 | |||||
| etiqueta $alt2 | etiqueta $alt2 | ||||
| europa $alt | europa $alt | ||||
| europeia $alt | europeia $alt | ||||
| exagero $alt $verb | exagero $alt $verb | ||||
| explore $alt | explore $alt | ||||
| faceta $alt2 | faceta $alt2 | ||||
| fantoche $alt | |||||
| falangeta $alt2 | |||||
| farofa $alt | farofa $alt | ||||
| farolete $alt2 | |||||
| farolete $alt2 | |||||
| febre $alt | febre $alt | ||||
| fera $alt | fera $alt | ||||
| feitora $alt2 | feitora $alt2 | ||||
| ferozes $alt | |||||
| fezes $alt | fezes $alt | ||||
| filete $alt2 | filete $alt2 | ||||
| ?1 fixe fiSy | ?1 fixe fiSy | ||||
| flerte $alt2 $noun | |||||
| foda $alt2 $verb | foda $alt2 $verb | ||||
| fodo $alt2 | |||||
| fogos $alt | fogos $alt | ||||
| foguete $alt2 | foguete $alt2 | ||||
| foice $alt2 | foice $alt2 | ||||
| fora $alt | fora $alt | ||||
| fora $alt2 $verb | fora $alt2 $verb | ||||
| forca $alt2 | forca $alt2 | ||||
| força $alt2 $noun | |||||
| forças $alt2 | |||||
| força $alt2 | |||||
| força $alt $verb | |||||
| forço $alt | forço $alt | ||||
| formos $alt2 | formos $alt2 | ||||
| forro $alt $verb | forro $alt $verb | ||||
| frevo $alt2 | frevo $alt2 | ||||
| fulgores $alt2 | fulgores $alt2 | ||||
| galera $alt | galera $alt | ||||
| galeto $alt2 | |||||
| galhofa $alt | |||||
| galileia $alt | galileia $alt | ||||
| gameta $alt2 | |||||
| garçonete $alt2 | |||||
| gangorra $alt2 | |||||
| geleia $alt | geleia $alt | ||||
| gelo $alt2 | gelo $alt2 | ||||
| gelo $alt $verb | gelo $alt $verb | ||||
| genebra $alt | genebra $alt | ||||
| gesso $alt2 | gesso $alt2 | ||||
| golpe $alt | |||||
| gloso $alt | |||||
| gonorreia $alt | gonorreia $alt | ||||
| gol gow | |||||
| golpe $alt | |||||
| gorda $alt2 | gorda $alt2 | ||||
| gorjeta $alt2 | |||||
| gosto $alt $verb | gosto $alt $verb | ||||
| gota $alt2 | gota $alt2 | ||||
| governo $alt2 $noun | |||||
| governo $alt2 | |||||
| governo $alt $verb | |||||
| gozo $alt2 $noun | gozo $alt2 $noun | ||||
| graveto $alt2 | graveto $alt2 | ||||
| grelha $alt | grelha $alt | ||||
| groselha $alt | groselha $alt | ||||
| grosso $alt2 | grosso $alt2 | ||||
| grozo $alt $verb | |||||
| groso $alt | |||||
| gueto $alt2 | |||||
| hemorroida $alt | hemorroida $alt | ||||
| hoje $alt2 | hoje $alt2 | ||||
| horrores $alt2 | horrores $alt2 | ||||
| humores $alt2 | |||||
| ideia $alt | ideia $alt | ||||
| imberbe $alt | |||||
| interesse $alt2 | interesse $alt2 | ||||
| interesse $alt $verb | interesse $alt $verb | ||||
| jogo $alt2 $noun | |||||
| iodo $alt2 | |||||
| ioga $alt | |||||
| jereba $alt | |||||
| jogo $alt2 | |||||
| jogo $alt $verb | |||||
| jogos $alt | |||||
| joguete $alt2 | joguete $alt2 | ||||
| lagosta $alt2 | lagosta $alt2 | ||||
| lambreta $alt2 | lambreta $alt2 | ||||
| lanchonete $alt | |||||
| lebre $alt | lebre $alt | ||||
| leitora $alt2 | |||||
| lembrete $alt2 | lembrete $alt2 | ||||
| lepra $alt | lepra $alt | ||||
| leste $alt2 $verb | leste $alt2 $verb | ||||
| ?2 lhe l^y | |||||
| lingueta $alt2 | lingueta $alt2 | ||||
| lisboeta $alt2 | |||||
| lodo $alt2 | |||||
| logro $alt | |||||
| lopes $alt | lopes $alt | ||||
| macete $alt2 | macete $alt2 | ||||
| maior $alt | maior $alt | ||||
| maleta $alt2 | maleta $alt2 | ||||
| marionete $alt | |||||
| maniçoba $alt | |||||
| marieta $alt2 | |||||
| marreta $alt2 | marreta $alt2 | ||||
| megera $alt | megera $alt | ||||
| melhor $alt | melhor $alt | ||||
| meta $alt $noun | meta $alt $noun | ||||
| meteoro $alt | meteoro $alt | ||||
| metro $alt | metro $alt | ||||
| mexa m'eS& | |||||
| mexi meS'i | |||||
| mexo m'eSU | |||||
| minueto $alt2 | minueto $alt2 | ||||
| miolo $alt2 | miolo $alt2 | ||||
| miolos $alt | miolos $alt | ||||
| modelo $alt2 | modelo $alt2 | ||||
| modelo $alt $verb | modelo $alt $verb | ||||
| moeda $alt | moeda $alt | ||||
| moem $alt | |||||
| moem $alt | |||||
| mofo $alt $verb | mofo $alt $verb | ||||
| molho $alt2 $noun | molho $alt2 $noun | ||||
| monera $alt | monera $alt | ||||
| mortos $alt | mortos $alt | ||||
| motora $alt2 | motora $alt2 | ||||
| mui mwi | mui mwi | ||||
| muito mw'iNtU // -s is included as a suffix | |||||
| muita mw'iNt& | |||||
| mulher $alt | |||||
| mulheres $alt | |||||
| muleta $alt2 | |||||
| mureta $alt2 | mureta $alt2 | ||||
| mutreta $alt2 | mutreta $alt2 | ||||
| namoro $alt2 $noun | namoro $alt2 $noun | ||||
| nojo $alt2 | nojo $alt2 | ||||
| novelo $alt2 | novelo $alt2 | ||||
| novos $alt | novos $alt | ||||
| obstetra $alt | |||||
| odisseia $alt | odisseia $alt | ||||
| onu $1 | onu $1 | ||||
| olho $alt2 $noun | |||||
| olhos $alt | |||||
| olho $alt2 $noun | |||||
| olhos $alt | |||||
| onomatopeia $alt | onomatopeia $alt | ||||
| opereta $alt2 | opereta $alt2 | ||||
| ordens $alt | ordens $alt | ||||
| ovos $alt | ovos $alt | ||||
| pachorra $alt2 | pachorra $alt2 | ||||
| paexa paeSa | paexa paeSa | ||||
| paella pa'el^& | |||||
| palacete $alt2 | palacete $alt2 | ||||
| paleta $alt2 | |||||
| palheta $alt2 | palheta $alt2 | ||||
| panfleto $alt2 | panfleto $alt2 | ||||
| pangeia $alt | pangeia $alt | ||||
| pantera $alt | pantera $alt | ||||
| papoco $alt2 $noun | |||||
| parede $alt2 | parede $alt2 | ||||
| pastora $alt2 | pastora $alt2 | ||||
| patinete $alt | |||||
| peba $alt | |||||
| pedra $alt | pedra $alt | ||||
| pela $alt $verb | pela $alt $verb | ||||
| pelo $alt2 | pelo $alt2 | ||||
| pelo $alt $verb | pelo $alt $verb | ||||
| pereba $alt | |||||
| peroba $alt | |||||
| peseta $alt2 | |||||
| peso $alt $verb | peso $alt $verb | ||||
| piloto $alt2 $noun | piloto $alt2 $noun | ||||
| pintora $alt2 | pintora $alt2 | ||||
| pior $alt | pior $alt | ||||
| pipoco $alt2 $noun | |||||
| pirueta $alt2 | pirueta $alt2 | ||||
| plaqueta $alt2 | plaqueta $alt2 | ||||
| plateia $alt | plateia $alt | ||||
| plebeia $alt | plebeia $alt | ||||
| polca $alt | polca $alt | ||||
| pompeia $alt | |||||
| porcos $alt | porcos $alt | ||||
| porque $alt2 | |||||
| porra $alt2 | porra $alt2 | ||||
| porreta $alt2 | |||||
| porrete $alt2 | porrete $alt2 | ||||
| porto $alt2 | porto $alt2 | ||||
| portos $alt | portos $alt | ||||
| povos $alt | povos $alt | ||||
| poxa p'oS& | poxa p'oS& | ||||
| primavera $alt | primavera $alt | ||||
| primores $alt2 | |||||
| proso $alt | |||||
| prosopopeia $alt | prosopopeia $alt | ||||
| proveta $alt2 | |||||
| quarteto $alt2 | quarteto $alt2 | ||||
| queda $alt | queda $alt | ||||
| quede $alt2 | quede $alt2 | ||||
| quitinete $alt | |||||
| quinteto $alt2 | quinteto $alt2 | ||||
| ramalhete $alt2 | |||||
| raposa $alt2 | raposa $alt2 | ||||
| recomeço $alt $verb | recomeço $alt $verb | ||||
| reconstroem $alt | |||||
| recordo $alt | recordo $alt | ||||
| recorto $alt | recorto $alt | ||||
| rede $alt2 | rede $alt2 | ||||
| reforço $alt $verb | reforço $alt $verb | ||||
| reforços $alt | reforços $alt | ||||
| refresco $alt $verb | refresco $alt $verb | ||||
| rego $alt2 $noun | |||||
| reitora $alt2 | reitora $alt2 | ||||
| rejo $alt | |||||
| relevo $alt2 $noun | relevo $alt2 $noun | ||||
| remoem $alt | |||||
| remorso $alt | remorso $alt | ||||
| renovo $alt $verb | renovo $alt $verb | ||||
| retorno $alt $verb | retorno $alt $verb | ||||
| reuva x'EUv& | |||||
| reuva x'EUv& | |||||
| rigores $alt2 | rigores $alt2 | ||||
| rixa x'iS& | |||||
| rocha $alt | |||||
| risoto $alt2 | |||||
| rock $alt | rock $alt | ||||
| roem $alt | |||||
| roem $alt | |||||
| rola $alt2 $noun | rola $alt2 $noun | ||||
| roleta $alt2 | |||||
| rolete $alt2 | |||||
| rolo $alt2 $noun | rolo $alt2 $noun | ||||
| rota $alt2 | rota $alt2 | ||||
| rota $alt $noun | rota $alt $noun | ||||
| rubores $alt2 | |||||
| rumores $alt2 | rumores $alt2 | ||||
| sabonete $alt2 | |||||
| sabores $alt2 | |||||
| saibro s'aIbRU | |||||
| saleta $alt2 | saleta $alt2 | ||||
| sarjeta $alt2 | sarjeta $alt2 | ||||
| seborreia $alt | seborreia $alt | ||||
| suborno $alt $verb | suborno $alt $verb | ||||
| sufoco $alt2 $noun | sufoco $alt2 $noun | ||||
| sufocos $alt2 | sufocos $alt2 | ||||
| sulfeto $alt2 | |||||
| sulfureto $alt2 | |||||
| super s'Uper | |||||
| suporto $alt | suporto $alt | ||||
| suor swOr | suor swOr | ||||
| sutiã sutSi'&~N | |||||
| tapete $alt2 | tapete $alt2 | ||||
| temores $alt2 | temores $alt2 | ||||
| tempero $alt2 $noun | tempero $alt2 $noun | ||||
| tenores $alt2 | |||||
| tenores $alt2 | |||||
| terrores $alt2 | terrores $alt2 | ||||
| teta $alt2 | teta $alt2 | ||||
| tetra $alt | |||||
| tocha $alt | |||||
| toga $alt | toga $alt | ||||
| topo $alt $verb | |||||
| topo $alt2 $noun | |||||
| torno $alt $verb | torno $alt $verb | ||||
| tornozelo $alt2 | tornozelo $alt2 | ||||
| torre $alt2 $noun | torre $alt2 $noun | ||||
| torres $alt2 | torres $alt2 | ||||
| torro $alt | torro $alt | ||||
| tortos $alt | tortos $alt | ||||
| toso $alt | |||||
| transtorno $alt $verb | |||||
| traqueia $alt | traqueia $alt | ||||
| travesso $alt2 | travesso $alt2 | ||||
| tremores $alt2 | tremores $alt2 | ||||
| treta $alt2 | |||||
| trevo $alt2 | trevo $alt2 | ||||
| troco $alt2 $noun | troco $alt2 $noun | ||||
| tropa $alt | tropa $alt | ||||
| tumores $alt2 | tumores $alt2 | ||||
| valeta $alt2 | valeta $alt2 | ||||
| vanessa $alt2 | vanessa $alt2 | ||||
| velozes $alt | |||||
| vareta $alt2 | |||||
| vera $alt | |||||
| verbete $alt2 | verbete $alt2 | ||||
| violeta $alt2 | violeta $alt2 | ||||
| violoncelo $alt | violoncelo $alt | ||||
| voga $alt | voga $alt | ||||
| vozes $alt | |||||
| xarope $alt | xarope $alt | ||||
| xereta $alt2 | |||||
| zelo $alt2 $noun | zelo $alt2 $noun | ||||
| zorra $alt2 | zorra $alt2 | ||||
| // foreign words | // foreign words | ||||
| ?1 alt 'alt | ?1 alt 'alt | ||||
| ?2 agosto &g'ostU | |||||
| ?2 agosto ag'ostU | |||||
| ?1 back b'Ek | ?1 back b'Ek | ||||
| ?2 backup bEk'&p | ?2 backup bEk'&p | ||||
| ?2 backups bEk'&ps | ?2 backups bEk'&ps | ||||
| beatle b'itow | |||||
| beatles b'itows | |||||
| blind bl'aind | blind bl'aind | ||||
| book buk | book buk | ||||
| ?1 braille b:r'aily | ?1 braille b:r'aily | ||||
| ?1 dj d,i:dZ'eI | ?1 dj d,i:dZ'eI | ||||
| ?1 down d'a,wn | ?1 down d'a,wn | ||||
| ?1 download d'a,wnl'oud | ?1 download d'a,wnl'oud | ||||
| ?2 download daUNl'owd | |||||
| ?2 download daUNl'owd | |||||
| ?2 downloads daUNl'owds | |||||
| ?3 download dau~Nl'owd | ?3 download dau~Nl'owd | ||||
| drive dR'aivy | |||||
| driver dR'aiver | |||||
| drivers dR'aiveRs | |||||
| drive dR'aIv | |||||
| driver dR'aIver | |||||
| drivers dR'aIveRs | |||||
| ?1 end 'end | ?1 end 'end | ||||
| ?2 esc 'Esk | ?2 esc 'Esk | ||||
| ?3 esc 'EskI | ?3 esc 'EskI | ||||
| laptop lEptOp | laptop lEptOp | ||||
| ?1 line l'ain | ?1 line l'ain | ||||
| layout l'eI,aUt | layout l'eI,aUt | ||||
| ?2 logo l'OgU | |||||
| ?2 login logiN | |||||
| ?1 lock l'Ok | ?1 lock l'Ok | ||||
| mail m'eIl | mail m'eIl | ||||
| mails m'eIls | mails m'eIls | ||||
| ?1 readme r'i:dmi: | ?1 readme r'i:dmi: | ||||
| ?1 sapi s,ap'i | ?1 sapi s,ap'i | ||||
| ?1 scanner sk'En&r | ?1 scanner sk'En&r | ||||
| sky sk'ay | |||||
| shake S'eIk | |||||
| ?1 shift S'ift | ?1 shift S'ift | ||||
| ?1 scroll sk:r'ol | ?1 scroll sk:r'ol | ||||
| ?1 site s'aIt | ?1 site s'aIt | ||||
| ?2 site s'aItSi | ?2 site s'aItSi | ||||
| ?2 shampoo S&mpu | |||||
| ?1 software s'Oft,w'Er- | ?1 software s'Oft,w'Er- | ||||
| símbolo s'imbolU | símbolo s'imbolU | ||||
| ?4 símbolo s'iNbolU | ?4 símbolo s'iNbolU | ||||
| ?2 software s'Oftwe@- | ?2 software s'Oftwe@- | ||||
| ?1 space sp'eIsy | ?1 space sp'eIsy | ||||
| ?2 space sp'eIs | |||||
| ?1 sporting sp'Ort,ing | ?1 sporting sp'Ort,ing | ||||
| tab t'aby | tab t'aby | ||||
| tablet t'ablet | tablet t'ablet | ||||
| ?1 telemóvel t,El,Em'OvEl | ?1 telemóvel t,El,Em'OvEl | ||||
| ?1 telemóveis t,El,Em'OveIs# | ?1 telemóveis t,El,Em'OveIs# | ||||
| ?1 up &p | ?1 up &p | ||||
| ?1 upload &pl'oud | |||||
| update &pd'eIt | |||||
| upgrade &pgR'eId | |||||
| upload &pl'oud | |||||
| ?2 web w'Eb | ?2 web w'Eb | ||||
| ?1 yahoo 'i,ah'u | ?1 yahoo 'i,ah'u | ||||
| ?2 yahoo iah'u | ?2 yahoo iah'u | ||||
| // common person names | // common person names | ||||
| alan 'al@n | |||||
| alan 'al@N | |||||
| louis _^_FR | louis _^_FR | ||||
| // foreign product names | // foreign product names | ||||
| ?1 access 'aks,Es | ?1 access 'aks,Es | ||||
| ?1 adobe &d'Oby | ?1 adobe &d'Oby | ||||
| android &NdR'Oid | |||||
| apple 'Epow | apple 'Epow | ||||
| chrome kR'owmi | chrome kR'owmi | ||||
| debian d'Ebj&~N | debian d'Ebj&~N | ||||
| ?1 express ,Ekspr'Es | ?1 express ,Ekspr'Es | ||||
| espeak isp'i:k | espeak isp'i:k | ||||
| ?1 espeakedit isp'i:kEd,it | ?1 espeakedit isp'i:kEd,it | ||||
| facebook feisybuk | |||||
| facebook feIsybuk | |||||
| ?1 fedora _^_EN | ?1 fedora _^_EN | ||||
| firefox f'ai@fOks | firefox f'ai@fOks | ||||
| ?1 front fr'ont | ?1 front fr'ont | ||||
| ?1 jaws dZ'au:z | ?1 jaws dZ'au:z | ||||
| ?1 linux l,in'uks | ?1 linux l,in'uks | ||||
| ?2 linux l'inUks | ?2 linux l'inUks | ||||
| ?1 live l'aiv | |||||
| live l'aiv | |||||
| ?1 maker m'eIk&r- | ?1 maker m'eIk&r- | ||||
| mac mEk | |||||
| ?1 media m'Ed,i& | ?1 media m'Ed,i& | ||||
| ?1 messenger m'Es&ndZ&r- | ?1 messenger m'Es&ndZ&r- | ||||
| ?1 microsoft m,ik:r'os,Oft | ?1 microsoft m,ik:r'os,Oft | ||||
| ?2 microsoft m'aIkRows'Oft | ?2 microsoft m'aIkRows'Oft | ||||
| ?1 movie m'uvi | ?1 movie m'uvi | ||||
| ?1 nero n'Eru | ?1 nero n'Eru | ||||
| /1 office 'Of,is | |||||
| ?2 netbook nEtbUk | |||||
| ?2 netbooks nEtbUks | |||||
| ?2 notebook nowtbUk | |||||
| ?2 notebooks nowtbUks | |||||
| ?1 office 'Of,is | |||||
| ?2 office 'Ofsy | ?2 office 'Ofsy | ||||
| openoffice 'opeIN|'Ofis | openoffice 'opeIN|'Ofis | ||||
| ?1 outlook 'autl'uk | ?1 outlook 'autl'uk | ||||
| ?2 window w'iNdow | ?2 window w'iNdow | ||||
| // historical/famous person names | |||||
| // historical/famous person s | |||||
| babbage b'abidZ | babbage b'abidZ | ||||
| bernhard bern'ard | bernhard bern'ard | ||||
| darwin d'Arwin | darwin d'Arwin | ||||
| dijkstra d'ijkstrA: | dijkstra d'ijkstrA: | ||||
| einstein _!'aInSt,aIn | einstein _!'aInSt,aIn | ||||
| ?2 einstein _!'aInst,aIn | |||||
| feynman f'ainm@n | feynman f'ainm@n | ||||
| freud fr'OId | |||||
| friedrich fr'i:driS | |||||
| freud fR'OId | |||||
| friedrich fR'i:dRiS | |||||
| gauss g'aUs | gauss g'aUs | ||||
| geisel g'aIzEU | geisel g'aIzEU | ||||
| gottfried g'Otfri:t | gottfried g'Otfri:t | ||||
| richard x'iS&rd | richard x'iS&rd | ||||
| riemann r'i:man | riemann r'i:man | ||||
| rijndael x'ain;d'al | rijndael x'ain;d'al | ||||
| rousseau Rus'o | |||||
| ?2 rousseau xus'o | |||||
| schrödinger Sr'edinger | schrödinger Sr'edinger | ||||
| stephen st'i:v@n | stephen st'i:v@n | ||||
| steve st'i:v | steve st'i:v | ||||
| // foreign common names/surnames | // foreign common names/surnames | ||||
| ?1 alison &l'is&N | ?1 alison &l'is&N | ||||
| anderson '&ndersoN | |||||
| antonio &~nt'onIU | |||||
| ?1 cleverson kl'Evyrs&N | ?1 cleverson kl'Evyrs&N | ||||
| ?2 cleverson kl'EversoN | ?2 cleverson kl'EversoN | ||||
| ?1 elton 'Elt&N | ?1 elton 'Elt&N | ||||
| emerson 'emE*@-soN | |||||
| ?1 halison &l'is&N | ?1 halison &l'is&N | ||||
| klein kl'aIn // Very common on southern Brazil. | klein kl'aIn // Very common on southern Brazil. | ||||
| ?1 kleverson kl'Evers&N | ?1 kleverson kl'Evers&N | ||||
| krueger kR'iZer | krueger kR'iZer | ||||
| krüger kR'iZer | krüger kR'iZer | ||||
| kühl k'il | kühl k'il | ||||
| ?1 nelson n'Els&N | |||||
| mueler m'iler | mueler m'iler | ||||
| mueller m'iler | mueller m'iler | ||||
| müler m'iler | müler m'iler | ||||
| müller m'iler | müller m'iler | ||||
| ?1 nelson n'Els&N | |||||
| ronchi r'OnCi: | ronchi r'OnCi: | ||||
| valter v'aUter | |||||
| vogel f'o:g@l | vogel f'o:g@l | ||||
| volkmann f'Olkman | volkmann f'Olkman | ||||
| washington w'OSinton | |||||
| wellington w'Elynton | |||||
| // character names | // character names | ||||
| _cap vel^ke: | _cap vel^ke: | ||||
| _sub d,olni:||'indeks|| | |||||
| _sup h,oRni:||'indeks|| | |||||
| _?? simbol | _?? simbol | ||||
| _#9 t'ab | _#9 t'ab | ||||
| _#32 'medzeRa | _#32 'medzeRa | ||||
| * hviezda $max3 | * hviezda $max3 | ||||
| + plus $max3 | + plus $max3 | ||||
| = Rovna:sa $max3 | |||||
| = Rovna:||sa $max3 | |||||
| @ zavina:tS | @ zavina:tS | ||||
| & ampeRsand | & ampeRsand | ||||
| # kRi:Zik $max3 | # kRi:Zik $max3 | ||||
| _! vi:kRitSn^i:k | _! vi:kRitSn^i:k | ||||
| _" u:vodzovki | |||||
| _" u:vodzowki | |||||
| _$ dola:R | _$ dola:R | ||||
| _' apostRof | _' apostRof | ||||
| _( za:tvoRka | _( za:tvoRka | ||||
| _) zatvoRit; | _) zatvoRit; | ||||
| _, tSiaRka | _, tSiaRka | ||||
| _- poml-tSka | |||||
| __ podtSiaRknutie | |||||
| _- spojovn^i:k | |||||
| __ podtSiaRkovn^i:k | |||||
| _. bodka | _. bodka | ||||
| _/ lomeno | |||||
| _/ lomka | |||||
| _: dvojbodka | _: dvojbodka | ||||
| _; bodkotSiaRka | _; bodkotSiaRka | ||||
| _< menSi: | _< menSi: | ||||
| _> vetSSi: | |||||
| _> v&tSSi: | |||||
| _? ota:zn^ik | _? ota:zn^ik | ||||
| _[ hRanata:||za:tvoRka | |||||
| _\ opatSne:||lomeno | |||||
| _] hRanata:||zatvoRit; | |||||
| _^ stRieZka | |||||
| _[ hRanata:||z'a:tvoRka | |||||
| _\ opatSna:||l'omka | |||||
| _] hRanata:||z'atvoRit; | |||||
| _^ voka:n^ | |||||
| _` aktsent | _` aktsent | ||||
| _{ zloZena:||za:tvoRka | |||||
| _| zvisla:||tSiaRa | |||||
| _} zloZena:||zatvoRit; | |||||
| _{ zloZena:||z'a:tvoRka | |||||
| _| zvisla:||tS'iaRa | |||||
| _} zloZena:||z'atvoRit; | |||||
| _~ vl-novka | _~ vl-novka | ||||
| _ tvr-da:m'edzeRa // U+00A0 no-break-space | |||||
| _¡ obra:t;eni:v'i:kRitSn^i:k | |||||
| _¦ pReRuSena:'tSiaRa | |||||
| _ª hoRni:indeks'a: | |||||
| _« dvojita:lomena:||za:tvoRka | |||||
| _ mekka:poml-tSka | |||||
| _² nadRuhu: | |||||
| _³ natRetju | |||||
| _´ dl:Zen^ | |||||
| _· bodka'vpRostRjedku | |||||
| _¸ tsedila | |||||
| _¹ napRvu: | |||||
| _» dvojita:lomena:||zatvoRit; | |||||
| _¿ obRa:t;eni:'ota:zn^ik | |||||
| _– dl-ha:'poml-tSka | |||||
| _‘ l^ava:'u:vodzovka | |||||
| _’ prava:'u:vodzovka | |||||
| _“ horne:'u:vodzovki | |||||
| _” dolne:'u:vodzovki | |||||
| _‡ dvojiti:kRi:Z | |||||
| _• odRa:Zka | |||||
| _‣ tRojuholni:kova:'odRa:Zka | |||||
| _ tvr-da:||m'edzeRa // U+00A0 no-break-space | |||||
| _¡ obra:t;eni:||v'i:kRitSn^i:k | |||||
| _¦ pReRuSena:||tS'iaRa | |||||
| _¨ pRehla:ska | |||||
| _« dvojita:||l'omena:||z'a:tvoRka | |||||
| _ Rozd;el^ovn^i:k | |||||
| _´ dl:Zen^ | |||||
| _· bodka||'v||pRostRjedku | |||||
| _¸ tsedila | |||||
| _» dvojita:||l'omena:||z'atvoRit; | |||||
| _¿ obRa:t;eni:||'ota:zn^ik | |||||
| _– poml-tSka | |||||
| _‘ hoRne:||j'ednoduche:||'u:vodzowki | |||||
| _’ odsuvn^i:k | |||||
| _“ hoRne:||'u:vodzowki | |||||
| _” dvojita:||h'oRna:||'opatSna:||'u:vodzowka | |||||
| _„ dolne:||'u:vodzowki | |||||
| _‚ dolne:||j'ednoduche:||'u:vodzowki | |||||
| _‡ dvojkRi:Z | |||||
| _• odRa:Zka | |||||
| _‣ odRa:Zka||t'Rojuholn^i:k | |||||
| _⁃ odRa:Zka||'v||tvaRe||p'oml-tSki | |||||
| ‰ pRomile | ‰ pRomile | ||||
| € euRo | € euRo | ||||
| § paRagRaf | § paRagRaf | ||||
| ÷ d;eleno | ÷ d;eleno | ||||
| × kRa:t | × kRa:t | ||||
| ° stupn^ou | ° stupn^ou | ||||
| ¢ tsentou | |||||
| £ libjeR | |||||
| ¤ znatSkameni | |||||
| ¢ tsent | |||||
| £ libRa | |||||
| ¤ mena | |||||
| © kopiRajt | |||||
| ® Registrovane: | |||||
| ¥ jen | |||||
| − mi:nus | − mi:nus | ||||
| ± plus'mi:nus | |||||
| µ mu: | |||||
| ¼ Stvr-tina | |||||
| ± plus||m'i:nus | |||||
| µ mi: | |||||
| ¼ Stvr-t;ina | |||||
| ½ polovitsa | ½ polovitsa | ||||
| ¾ tri_Stvr-tini | |||||
| ¬ logitske:not | |||||
| æ a'e: | |||||
| þ poml-tSkanad | |||||
| ¾ t'@-*i||S'tvr-t;ini | |||||
| ¬ logitski:||z'a:poR | |||||
| æ otvoRene:||'e: | |||||
| þ soRn | |||||
| ¯ pRuh||n'at | |||||
| ð ed | |||||
| ƒ floRe:n | |||||
| _† kRi:Z | |||||
| _≈ pRibliZn^e||sa||R'ovna: | |||||
| _≠ n^eRovna:||s'a | |||||
| _≤ menSi:||'alebo||sa||R'ovna: | |||||
| _≥ v&tSSi:||'alebo||sa||R'ovna: | |||||
| _√ dRuha:||'odmotsn^ina | |||||
| _∛ tRet;ia||'odmotsn^ina | |||||
| _∞ n^ekon^etSno | |||||
| _■ tSieRni||S'tvoRets | |||||
| _□ bieli||S'tvoRets | |||||
| _◆ tSieRni||d'iamant | |||||
| _○ bieli||kR'uh | |||||
| _● tSieRni||kR'uh | |||||
| _◦ odRa:Zka||'v||tvaRe||b'ielej||b'odki | |||||
| _✓ zaSkr-tnut;ie | |||||
| _✔ tutSne:||z'aSkr-tnut;ie | |||||
| _➔ Si:pka||'vpRavo | |||||
| _➢ odRa:Zka||'v||tvaRe||S'i:pki | |||||
| // Numbers | // Numbers |
| //_lig | //_lig | ||||
| _acu vURg'UimI | _acu vURg'UimI | ||||
| _ac2 tS'IftvURg'UimI | _ac2 tS'IftvURg'UimI | ||||
| _brv k@s'altmaimI | |||||
| _brv k@s'aLtmaimI | |||||
| _ced h'aRf | _ced h'aRf | ||||
| _cir Sapk'a | _cir Sapk'a | ||||
| _dia Umla'Ut | |||||
| _dia UmLa'Ut | |||||
| _dot YstnOkt'a | _dot YstnOkt'a | ||||
| _grv 'aksanimI | _grv 'aksanimI | ||||
| _hac t'ERsSapk'a | _hac t'ERsSapk'a | ||||
| _mcn uz'atmaimI | _mcn uz'atmaimI | ||||
| _ogo ogon'Ek | _ogo ogon'Ek | ||||
| _rng halk'a | |||||
| _rng haLk'a | |||||
| //_stk | //_stk | ||||
| _tld tIld'E | _tld tIld'E | ||||
| // symbols | // symbols | ||||
| _. nOkt'a | _. nOkt'a | ||||
| _, vIRJ'Yl | _, vIRJ'Yl | ||||
| _; nOktal'@vIRJ'Yl | |||||
| _; nOktaL'@vIRJ'Yl | |||||
| _: ik'InOkt'a | _: ik'InOkt'a | ||||
| _… 'YtSnOkt'a | _… 'YtSnOkt'a | ||||
| _? soR'UiSa*et,I | _? soR'UiSa*et,I | ||||
| _^ IndZ'EltmEiSa*et'I | _^ IndZ'EltmEiSa*et'I | ||||
| & _!v'E | & _!v'E | ||||
| _& v'EiSa*et'I | _& v'EiSa*et'I | ||||
| _@ kUjRUkl'U'a | |||||
| _@ kUjRUkL'U'a | |||||
| _\ t'ERs||ej,IktSIzg'I | _\ t'ERs||ej,IktSIzg'I | ||||
| _( atSpa*ant'Ez | _( atSpa*ant'Ez | ||||
| _) kapapa*ant'Ez | _) kapapa*ant'Ez | ||||
| § tSEnJ'El | § tSEnJ'El | ||||
| ° de*edZ'E | ° de*edZ'E | ||||
| _# dij'Ez | _# dij'Ez | ||||
| _~ jaklaS'@k | |||||
| __ ,alttSIzg'I | |||||
| * j'@ld@z $max3 | |||||
| _~ jakLaS'@k | |||||
| __ ,aLttSIzg'I | |||||
| * j'@Ld@z $max3 | |||||
| = ESIt $max3 | = ESIt $max3 | ||||
| % jYzdE $max3 | % jYzdE $max3 | ||||
| + aRt@ $max3 | + aRt@ $max3 | ||||
| _3 'ytS | _3 'ytS | ||||
| _4 d'WRt | _4 d'WRt | ||||
| _5 b'ES | _5 b'ES | ||||
| _6 alt'@ | |||||
| _6 aLt'@ | |||||
| _7 jed'i | _7 jed'i | ||||
| _8 sec'Iz | _8 sec'Iz | ||||
| _9 d'okuz | _9 d'okuz | ||||
| _3X ot'uz | _3X ot'uz | ||||
| _4X k'@Rk | _4X k'@Rk | ||||
| _5X ell'i | _5X ell'i | ||||
| _6X altm'@S | |||||
| _6X aLtm'@S | |||||
| _7X jetm'iS | _7X jetm'iS | ||||
| _8X seks'En | _8X seks'En | ||||
| _9X doks'an | _9X doks'an | ||||
| Edirne $2 | Edirne $2 | ||||
| Hakkari $1 | Hakkari $1 | ||||
| Hatay $1 | Hatay $1 | ||||
| Iğdır $1 | |||||
| İngiltere $3 | |||||
| İskenderun $2 | |||||
| ığdır $1 | |||||
| ingiltere $3 | |||||
| iskenderun $2 | |||||
| Isparta $2 | Isparta $2 | ||||
| İstanbul $2 | |||||
| İsveç $1 | |||||
| İzmir $1 | |||||
| istanbul $2 | |||||
| isveç $1 | |||||
| izmir $1 | |||||
| Kastamonu $1 | Kastamonu $1 | ||||
| Kayseri $1 | Kayseri $1 | ||||
| Kilis $1 | Kilis $1 |
| // ?1 mbrola voices | // ?1 mbrola voices | ||||
| // unvoiced consonants | |||||
| .L01 ç f h k p q s ş t | |||||
| .L01 ç f h k p q s ş t // unvoiced consonants | |||||
| .L02 ı a o u // back vowels | |||||
| .L03 i e ö ü î â ô û // not-back vowels | |||||
| .replace | .replace | ||||
| ` ' | ` ' | ||||
| @) acak (_S4 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 | |||||
| @) asın (_S4 as@n | @) asın (_S4 as@n | ||||
| @) avru (pa avr'u | @) avru (pa avr'u | ||||
| .group c | .group c | ||||
| c dZ | c dZ | ||||
| ce (_S2 dZ%E | |||||
| .group ç | .group ç | ||||
| ç tS | ç tS | ||||
| çe (_S2 tS%E | |||||
| .group d | .group d | ||||
| d d | d d | ||||
| dın (_S3 d@n | dın (_S3 d@n | ||||
| dınız (_S5 d@n@z | dınız (_S5 d@n@z | ||||
| dı (_S2 d@ | dı (_S2 d@ | ||||
| dılar (_S5 d@laR | |||||
| dılar (_S5 d@LaR | |||||
| dum (_S3 dum | dum (_S3 dum | ||||
| duk (_S3 duk | duk (_S3 duk | ||||
| dun (_S3 dun | dun (_S3 dun | ||||
| dunuz (_S5 dunuz | dunuz (_S5 dunuz | ||||
| du (_S2 du | du (_S2 du | ||||
| dular (_S5 dular | |||||
| dular (_S5 duLar | |||||
| düm (_S3 dym | düm (_S3 dym | ||||
| dük (_S3 dyk | dük (_S3 dyk | ||||
| dün (_S3 dyn | dün (_S3 dyn | ||||
| .group g | .group g | ||||
| g g | g g | ||||
| g (i J | |||||
| g (e J | |||||
| g (ü J | |||||
| g (ö J | |||||
| g (L03 J | |||||
| L03) g (K J | |||||
| .group ğ | .group ğ | ||||
| ğ Q | ğ Q | ||||
| A) ğ :|| | |||||
| ?1 A) ğ G // mbrola | |||||
| A) ğ : | |||||
| ?1 A) ğ (+ G // mbrola | |||||
| a) ğa : | |||||
| o) ğo : | |||||
| u) ğu : | |||||
| ö) ğö : | |||||
| ü) ğü : | |||||
| i) ğ j | i) ğ j | ||||
| e) ğ j | e) ğ j | ||||
| .group h | .group h | ||||
| h h | h h | ||||
| @) ıyor (_S4 @j%oR | @) ıyor (_S4 @j%oR | ||||
| @) ın (_S2 @n | @) ın (_S2 @n | ||||
| .group î | |||||
| î @ | |||||
| .group j | .group j | ||||
| j Z | j Z | ||||
| .group k | .group k | ||||
| k k | k k | ||||
| k (i c | |||||
| k (e c | |||||
| k (ü c | |||||
| k (ö c | |||||
| k (L03 c | |||||
| L03) k (K c | |||||
| ken (_S3 %cen | ken (_S3 %cen | ||||
| .group l | .group l | ||||
| l l | l l | ||||
| l (L02 L | |||||
| L02) l (K L | |||||
| la (_S2 %la | |||||
| la (_S2 %La | |||||
| le (_S2 %le | le (_S2 %le | ||||
| lar (_S3 laR | |||||
| lar (_S3 LaR | |||||
| ler (_S3 leR | ler (_S3 leR | ||||
| li (_S2 li | li (_S2 li | ||||
| lı (_S2 l@ | |||||
| lu (_S2 lu | |||||
| lı (_S2 L@ | |||||
| lu (_S2 Lu | |||||
| lü (_S2 ly | lü (_S2 ly | ||||
| lik (_S3 lik | lik (_S3 lik | ||||
| lık (_S3 l@k | |||||
| luk (_S3 luk | |||||
| lık (_S3 L@k | |||||
| luk (_S3 Luk | |||||
| lük (_S3 lyk | lük (_S3 lyk | ||||
| .group r | .group r | ||||
| r R | r R | ||||
| A) r (A * | A) r (A * | ||||
| ğ) r (A * | |||||
| ra (_S2 %Ra | ra (_S2 %Ra | ||||
| re (_S2 %Re | re (_S2 %Re | ||||
| yunuz (_S5 %junuz | yunuz (_S5 %junuz | ||||
| yünüz (_S5 %jynyz | yünüz (_S5 %jynyz | ||||
| yla (_S3 %jla | |||||
| yla (_S3 %jLa | |||||
| yle (_S3 %jle | yle (_S3 %jle | ||||
| yacak (_S5 jadZak | yacak (_S5 jadZak | ||||
| yecekmiş (_S8 jedZekm%iS | yecekmiş (_S8 jedZekm%iS | ||||
| yayım (_S5 jaj@m | yayım (_S5 jaj@m | ||||
| yalım (_S5 jal@m | |||||
| yalım (_S5 jaL@m | |||||
| yasın (_S5 jas@n | yasın (_S5 jas@n | ||||
| yeyim (_S5 jejim | yeyim (_S5 jejim | ||||
| yelim (_S5 jelim | yelim (_S5 jelim |
| formant 7 100 100 100 | formant 7 100 100 100 | ||||
| formant 8 100 100 100 | formant 8 100 100 100 | ||||
| consonants 100 | |||||
| stressAdd 10 10 0 0 0 0 -30 -30 | stressAdd 10 10 0 0 0 0 -30 -30 |
| language hy 8 | language hy 8 | ||||
| gender male | gender male | ||||
| dictrules 1 | |||||
| // change consonants for West Armenian pronunciation | // change consonants for West Armenian pronunciation | ||||
| replace 00 b p# | replace 00 b p# | ||||
| replace 00 d t# | replace 00 d t# | ||||
| replace 00 c dZ | replace 00 c dZ | ||||
| replace 00 k g | replace 00 k g | ||||
| replace 00 ** R // ?? | |||||
| replace 00 r R | |||||
| replace 00 R2 R // ?? | |||||
| name Korean | |||||
| language ko | |||||
| gender male | |||||
| pitch 80 118 | |||||
| intonation 2 | |||||
| name vietnam_sgn | |||||
| language vi-sgn | |||||
| phonemes vi-sgn | |||||
| dictrules 2 | |||||
| gender male | |||||
| words 1 | |||||
| pitch 82 118 //80 118 | |||||
| //breath 75 75 60 40 15 10 | |||||
| //breathw 150 150 200 200 400 400 | |||||
| voicing 90 //18 | |||||
| flutter 20 |
| name Irish Gaeilge | |||||
| name irish-gaeilge | |||||
| language ga | language ga | ||||
| dictrules 1 // fix for eclipsis | dictrules 1 // fix for eclipsis |
| name lancashire | |||||
| name english-north | |||||
| language en-uk-north | language en-uk-north | ||||
| language en-uk 3 | language en-uk 3 | ||||
| language en 5 | language en 5 | ||||
| replace 00 i@3 i@ | replace 00 i@3 i@ | ||||
| replace 03 N n | replace 03 N n | ||||
| //replace 03 I i | |||||
| //replace 03 I2 i | |||||
| replace 03 i I2 | |||||
| gender male | gender male | ||||
| dictrules 2 | dictrules 2 | ||||
| stressLength 200 115 230 230 0 0 250 270 | |||||
| name azerbaijani-test | |||||
| language az | |||||
| nucleus fall-rise2 78 22 34 52 | nucleus fall-rise2 78 22 34 52 | ||||
| endtune | endtune | ||||
| tune q1 | |||||
| tune q1 // small change for version 1.47.05 | |||||
| prehead 45 56 | |||||
| headenv fall 16 | |||||
| head 3 75 43 -7 0 | |||||
| headextend 20 60 35 11 0 | |||||
| nucleus0 fall-rise 89 21 | |||||
| nucleus fall-rise2 86 21 34 68 | |||||
| endtune | |||||
| tune q1a // previous version | |||||
| prehead 46 57 | prehead 46 57 | ||||
| headenv fall 16 | headenv fall 16 | ||||
| head 4 75 43 -7 0 | head 4 75 43 -7 0 |
| volume 17 | |||||
| 0 l/2 NULL 0 l | 0 l/2 NULL 0 l | ||||
| 0 l/ NULL 0 l | 0 l/ NULL 0 l | ||||
| 0 j/ NULL 0 j | 0 j/ NULL 0 j | ||||
| 0 ; NULL 0 NULL | 0 ; NULL 0 NULL | ||||
| 0 g- NULL 0 NULL | 0 g- NULL 0 NULL | ||||
| 0 @- NULL 0 NULL | |||||
| 0 @3 NULL 0 NULL | 0 @3 NULL 0 NULL | ||||
| 0 * NULL 0 R | 0 * NULL 0 R | ||||
| 0 : NULL 0 NULL | 0 : NULL 0 NULL | ||||
| 0 z2 NULL 0 z | 0 z2 NULL 0 z | ||||
| 0 z3 NULL 0 z | 0 z3 NULL 0 z | ||||
| 0 @- NULL 0 @ | |||||
| 0 a- NULL 0 a | 0 a- NULL 0 a | ||||
| 0 e- NULL 0 e | 0 e- NULL 0 e | ||||
| 0 y- NULL 0 y | 0 y- NULL 0 y |
| phoneme i | phoneme i | ||||
| vowel starttype #i endtype #i | vowel starttype #i endtype #i | ||||
| length 160 | |||||
| length 180 | |||||
| FMT(vowel/ii_5) | FMT(vowel/ii_5) | ||||
| endphoneme | endphoneme | ||||
| phoneme e | phoneme e | ||||
| vowel starttype #e endtype #e | vowel starttype #e endtype #e | ||||
| length 160 | |||||
| length 200 | |||||
| FMT(vowel/e_mid2) | FMT(vowel/e_mid2) | ||||
| endphoneme | endphoneme | ||||
| phoneme & | phoneme & | ||||
| vowel starttype #e endtype #e | vowel starttype #e endtype #e | ||||
| length 160 | |||||
| length 200 | |||||
| IF thisPh(isWordEnd) THEN | |||||
| FMT(vowel/&_3) | |||||
| ENDIF | |||||
| FMT(vowel/&) | FMT(vowel/&) | ||||
| endphoneme | endphoneme | ||||
| phoneme W | phoneme W | ||||
| vowel starttype #@ endtype #@ | vowel starttype #@ endtype #@ | ||||
| length 180 | |||||
| length 200 | |||||
| FMT(vowel/y#_2) | FMT(vowel/y#_2) | ||||
| endphoneme | endphoneme | ||||
| phoneme u | phoneme u | ||||
| vowel starttype #u endtype #u | vowel starttype #u endtype #u | ||||
| length 160 | |||||
| FMT(vowel/u_5) | |||||
| length 180 | |||||
| FMT(vowel/u_2) | |||||
| endphoneme | endphoneme | ||||
| phoneme o | phoneme o | ||||
| vowel starttype #o endtype #o | vowel starttype #o endtype #o | ||||
| length 160 | |||||
| FMT(vowel/o_mid) | |||||
| length 200 | |||||
| FMT(vowel/o_mid2) | |||||
| endphoneme | endphoneme | ||||
| phoneme a | phoneme a | ||||
| vowel starttype #a endtype #a | vowel starttype #a endtype #a | ||||
| length 200 | length 200 | ||||
| FMT(vowel/aa) | |||||
| IF thisPh(isWordEnd) THEN | |||||
| FMT(vowel/a#) | |||||
| ENDIF | |||||
| FMT(vowel/aa_9) | |||||
| endphoneme | endphoneme | ||||
| phoneme @ | phoneme @ | ||||
| vowel starttype #@ endtype #@ | vowel starttype #@ endtype #@ | ||||
| ipa ɯ | ipa ɯ | ||||
| length 160 | |||||
| length 180 | |||||
| FMT(vowel/u#_7) | FMT(vowel/u#_7) | ||||
| endphoneme | endphoneme | ||||
| phoneme a | phoneme a | ||||
| vowel starttype #a endtype #a | vowel starttype #a endtype #a | ||||
| length 180 | |||||
| length 190 | |||||
| IF thisPh(isDiminished) THEN | IF thisPh(isDiminished) THEN | ||||
| ChangePhoneme(a/) | ChangePhoneme(a/) | ||||
| FMT(vowel/a#) | FMT(vowel/a#) | ||||
| phoneme a/ | phoneme a/ | ||||
| vowel starttype #@ endtype #@ | vowel starttype #@ endtype #@ | ||||
| length 180 | |||||
| length 190 | |||||
| FMT(vowel/a#) | FMT(vowel/a#) | ||||
| endphoneme | endphoneme | ||||
| phoneme e | phoneme e | ||||
| vowel starttype #e endtype #e | vowel starttype #e endtype #e | ||||
| length 170 | |||||
| length 180 | |||||
| FMT(vowel/e) | FMT(vowel/e) | ||||
| endphoneme | endphoneme | ||||
| phoneme E | phoneme E | ||||
| vowel starttype #e endtype #e | vowel starttype #e endtype #e | ||||
| length 170 | |||||
| length 180 | |||||
| FMT(vowel/ee_1) | FMT(vowel/ee_1) | ||||
| endphoneme | endphoneme | ||||
| phoneme i | phoneme i | ||||
| vowel starttype #i endtype #i | vowel starttype #i endtype #i | ||||
| length 150 | |||||
| length 170 | |||||
| IfNextVowelAppend(;) | IfNextVowelAppend(;) | ||||
| FMT(vowel/i) | FMT(vowel/i) | ||||
| endphoneme | endphoneme | ||||
| phoneme o | phoneme o | ||||
| vowel starttype #o endtype #o | vowel starttype #o endtype #o | ||||
| length 170 | |||||
| length 180 | |||||
| FMT(vowel/o) | FMT(vowel/o) | ||||
| endphoneme | endphoneme | ||||
| phoneme O | phoneme O | ||||
| vowel starttype #o endtype #o | vowel starttype #o endtype #o | ||||
| length 170 | |||||
| length 180 | |||||
| FMT(vowel/oo_4) | FMT(vowel/oo_4) | ||||
| endphoneme | endphoneme | ||||
| phoneme u | phoneme u | ||||
| vowel starttype #u endtype #u | vowel starttype #u endtype #u | ||||
| length 160 | |||||
| length 180 | |||||
| FMT(vowel/u_bck) | FMT(vowel/u_bck) | ||||
| endphoneme | endphoneme | ||||
| phoneme U | phoneme U | ||||
| vowel starttype #u endtype #u | vowel starttype #u endtype #u | ||||
| length 160 | |||||
| length 180 | |||||
| FMT(vowel/uu_2) | FMT(vowel/uu_2) | ||||
| endphoneme | endphoneme | ||||
| phoneme y | phoneme y | ||||
| vowel starttype #i endtype #i | vowel starttype #i endtype #i | ||||
| length 160 | |||||
| length 180 | |||||
| FMT(vowel/y) | FMT(vowel/y) | ||||
| endphoneme | endphoneme | ||||
| phoneme Y | phoneme Y | ||||
| vowel starttype #@ endtype #@ | vowel starttype #@ endtype #@ | ||||
| length 160 | |||||
| length 180 | |||||
| FMT(vowel/y#) | FMT(vowel/y#) | ||||
| endphoneme | endphoneme | ||||
| ChangePhoneme(o) | ChangePhoneme(o) | ||||
| ENDIF | ENDIF | ||||
| IF prevPhW(r) THEN | |||||
| ChangePhoneme(o) | |||||
| IF prevPhW(r) AND nextVowel(isVowel) THEN | |||||
| IF nextVowel(isWordEnd) AND nextVowel(V) THEN | |||||
| ELSE | |||||
| ChangePhoneme(o) | |||||
| ENDIF | |||||
| ENDIF | ENDIF | ||||
| ENDIF | ENDIF | ||||
| // AC + @- OR V: Long "pile" [pi:l@-] | // AC + @- OR V: Long "pile" [pi:l@-] | ||||
| // AC[i]: Long "smidig" [smi:Di] | // AC[i]: Long "smidig" [smi:Di] | ||||
| // Change the length of short vowels (?+vowel) | |||||
| // Change the length of SHORT vowels (?+vowel) | |||||
| procedure ShortVowelLength | procedure ShortVowelLength | ||||
| // "endelig" - Short initial vowel sounds too short | |||||
| IF thisPh(isWordStart) THEN | |||||
| length 160 | |||||
| RETURN | |||||
| ENDIF | |||||
| // "slutte" t/d + @- makes the u too long | |||||
| IF next2PhW(@-) THEN | |||||
| IF nextPhW(t) OR nextPhW(d) THEN | |||||
| //length 100 | |||||
| LengthAdd -50 | |||||
| // "endelig", "ånder" - Short initial vowel sounds too short TEST | |||||
| IF thisPh(isWordStart) AND nextPhW(n) THEN | |||||
| IF next2PhW(@-) OR next2PhW(V) THEN | |||||
| length 160 | |||||
| RETURN | |||||
| ENDIF | |||||
| ENDIF | |||||
| // "slutte" t/d + @- makes the vowel too long | |||||
| // Problem with compounds like "spildedamp" | |||||
| IF next2PhW(@-) OR next2PhW(V) THEN | |||||
| IF nextPhW(t) OR nextPhW(d) THEN | |||||
| // length 100 | |||||
| LengthAdd -45 | |||||
| // Don't shorten it further if it comes after an "r" sound | // Don't shorten it further if it comes after an "r" sound | ||||
| // Exit the procedure | // Exit the procedure | ||||
| RETURN | |||||
| ENDIF | |||||
| ENDIF | |||||
| // "bygget" - consonant + [@-D] makes the vowel too long | |||||
| IF next2PhW(@-) THEN | |||||
| IF next3PhW(t) OR next3PhW(d) OR next3PhW(D) THEN | |||||
| LengthAdd -50 | |||||
| // Don't shorten it further if it comes after an "r" sound ("brygget") | |||||
| // Exit the procedure | |||||
| RETURN | |||||
| ENDIF | |||||
| ENDIF | |||||
| RETURN | |||||
| ENDIF | |||||
| ENDIF | |||||
| // "bygget", "byggede" - consonant + [@-D] makes the vowel too long | |||||
| IF next2PhW(@-) THEN | |||||
| IF next3PhW(t) OR next3PhW(d) OR next3PhW(D) THEN | |||||
| IF thisPh(isFirstVowel) THEN // NOT "cellof'anet" | |||||
| IF NOT thisPh(?V) THEN // NOT "fjollet" | |||||
| LengthAdd -40 | |||||
| // Don't shorten it further if it comes after an "r" sound ("brygget") | |||||
| // Exit the procedure | |||||
| RETURN | |||||
| ENDIF | |||||
| ENDIF | |||||
| ENDIF | |||||
| ENDIF | |||||
| // "bygger" - consonant + [V] makes the vowel too long | // "bygger" - consonant + [V] makes the vowel too long | ||||
| IF nextPhW(isNotVowel) AND next2PhW(V) THEN | |||||
| LengthAdd -50 | |||||
| IF nextPhW(isNotVowel) AND next2PhW(V) THEN | |||||
| IF NOT thisPh(isWordStart) THEN // NOT "eller" | |||||
| // LengthAdd -45 | |||||
| // Don't shorten it further if it comes after an "r" sound ("brygger") | // Don't shorten it further if it comes after an "r" sound ("brygger") | ||||
| // Exit the procedure | // Exit the procedure | ||||
| RETURN | |||||
| ENDIF | |||||
| RETURN | |||||
| ENDIF | |||||
| ENDIF | |||||
| // "rigtigt", "fred", "frem", "centralen" - R makes the vowel too long | // "rigtigt", "fred", "frem", "centralen" - R makes the vowel too long | ||||
| IF prevPhW(R) OR prevPhW(3-) OR prevPhW(r) THEN | |||||
| IF prevPhW(R) OR prevPhW(3-) OR prevPhW(r) THEN | |||||
| // length 100 | // length 100 | ||||
| LengthAdd -50 | |||||
| ENDIF | |||||
| // "ring", "ringe", "fængsel" | |||||
| IF nextPhW(N) THEN | |||||
| LengthAdd -40 | |||||
| RETURN | |||||
| ENDIF | |||||
| // "ring", "ringe", "fængsel", "spinkel", "vindspejl" | |||||
| IF nextPhW(isNasal) THEN | |||||
| // length 100 | // length 100 | ||||
| LengthAdd -10 | |||||
| ENDIF | |||||
| // "sigte" t/d + @- makes the vowel too long | |||||
| IF nextPhW(isNotVowel) AND next2PhW(t) OR next2PhW(d) THEN | |||||
| IF next3PhW(@-) THEN | |||||
| LengthAdd -30 | |||||
| RETURN | |||||
| ENDIF | |||||
| // "sigte", "bælte", "henter" t/d + @-/V makes the vowel too long | |||||
| IF nextPhW(isNotVowel) AND next2PhW(t) OR next2PhW(d) THEN | |||||
| IF next3PhW(@-) OR next3PhW(V) THEN | |||||
| IF thisPh(isFirstVowel) THEN // NOT [i] in "forsp'ildte" | |||||
| // length 100 | // length 100 | ||||
| LengthAdd -50 | |||||
| ENDIF | |||||
| ENDIF | |||||
| LengthAdd -30 | |||||
| ENDIF | |||||
| ENDIF | |||||
| ENDIF | |||||
| // "forbandelse" [n@-] makes the vowel too long? | |||||
| // nasal eg: m, n, N | |||||
| IF nextPhW(isNasal) AND next2PhW(@-) THEN | |||||
| IF NOT thisPh(isFirstVowel) AND thisPh(isStressed) THEN | |||||
| // NOT LengthAdd since [R] might have shortend the vowel above | |||||
| length 100 | |||||
| ENDIF | |||||
| ENDIF | |||||
| // "himlen" l/3 makes the vowel too long | |||||
| IF nextPhW(isNotVowel) AND next2PhW(l/3) AND next3PhW(@-) OR next3PhW(V) THEN | |||||
| length 100 | |||||
| ENDIF | |||||
| // "lænkerne" l/3 makes the vowel too long | |||||
| IF prevPh(l/3) AND nextPhW(isNotVowel) AND next3PhW(V) THEN | |||||
| length 120 | |||||
| ENDIF | |||||
| //"musikken" consonant + [@-n] makes the vowel too long | |||||
| // Probably wrong. Only k? | |||||
| IF nextPhW(k) AND next2PhW(@-) AND next3PhW(n) THEN | |||||
| length 100 | |||||
| ENDIF | |||||
| //"svælge" [svElj@-] vowel + 2 consonants but length 100 is too short | |||||
| IF nextPhW(isNotVowel) AND next2PhW(j) THEN | |||||
| length 140 | |||||
| ENDIF | |||||
| endprocedure | endprocedure | ||||
| // Change the length of normal vowels (without ? in front of them) | |||||
| // Change the length of NORMAL vowels (without ? in front of them) | |||||
| procedure LongVowelLength | procedure LongVowelLength | ||||
| // "guldmine" [ul/3] makes the vowel extremely short | |||||
| IF prevVowel(u) AND prev2PhW(l/3) THEN | |||||
| length 350 | |||||
| RETURN | |||||
| ENDIF | |||||
| // "guldur" [ul/3] makes the vowel extremely short | |||||
| IF prevVowel(u) AND prevPhW(l/3) THEN | |||||
| IF NOT thisPh(isWordEnd) THEN // NOT "umulig" | |||||
| length 325 | |||||
| RETURN | |||||
| ENDIF | |||||
| ENDIF | |||||
| // "alene" - Short initial vowel sounds too short at length 140 | // "alene" - Short initial vowel sounds too short at length 140 | ||||
| IF thisPh(isWordStart) THEN | |||||
| length 160 | |||||
| RETURN | |||||
| ENDIF | |||||
| // "forlade" - [D@-] makes the vowel too long | |||||
| IF nextPhW(D) AND next2PhW(@-) THEN | |||||
| length 180 | |||||
| RETURN | |||||
| ENDIF | |||||
| IF thisPh(isWordStart) THEN | |||||
| length 160 | |||||
| // "ønske" The vowel should have been made short becauce og 2 x consonant. | |||||
| // Take care of it here | |||||
| IF nextPhW(isNotVowel) AND next2PhW(isNotVowel) AND next3PhW(isNotVowel) THEN | |||||
| length 140 | |||||
| ENDIF | |||||
| // "ære" | |||||
| IF nextPhW(V) AND nextPhW(isFinalVowel) THEN | |||||
| length 240 | |||||
| ENDIF | |||||
| RETURN | |||||
| ENDIF | |||||
| // "huske" - hACC@- vowel too long | |||||
| IF prevPhW(h) AND nextPhW(isNotVowel) AND next2PhW(isNotVowel) AND next3PhW(@-) THEN | |||||
| length 110 | |||||
| RETURN | |||||
| ENDIF | |||||
| // PB long vowel followed by [@-] or [V](vowel+vowel) - "pigen" [p'i@-n] | // PB long vowel followed by [@-] or [V](vowel+vowel) - "pigen" [p'i@-n] | ||||
| IF nextPhW(@-) OR nextPhW(V) THEN | |||||
| length 225 | |||||
| ENDIF | |||||
| IF nextPhW(@-) OR nextPhW(V) THEN | |||||
| length 225 | |||||
| ENDIF | |||||
| // PB "enig", "enige", "evig", "stædig" - vowel+consolant+[i] | // PB "enig", "enige", "evig", "stædig" - vowel+consolant+[i] | ||||
| IF nextPhW(isNotVowel) AND next2PhW(i) THEN | |||||
| length 225 | |||||
| ENDIF | |||||
| // "ræve", "dele", "mene", "røve", "møve" | |||||
| IF nextPhW(isNotVowel) AND next2PhW(@-) OR next2PhW(3) OR next3PhW(@-) THEN | |||||
| length 225 | |||||
| ENDIF | |||||
| IF nextPhW(isNotVowel) AND next2PhW(i) THEN | |||||
| length 225 | |||||
| ENDIF | |||||
| // "dele", "mene", "møve" | |||||
| IF nextPhW(isNotVowel) AND next2PhW(@-) OR next2PhW(3) OR next3PhW(@-) THEN | |||||
| length 225 | |||||
| ENDIF | |||||
| // "sveder", "deler" | |||||
| IF nextPhW(isNotVowel) AND next2PhW(V) THEN | |||||
| length 225 | |||||
| ENDIF | |||||
| // "maskinen" consonant + [@-n]: vowel too long | |||||
| IF nextPhW(isNotVowel) AND next2PhW(@-) AND next3PhW(n) THEN | |||||
| length 160 | |||||
| ENDIF | |||||
| // "vilje", "nedladende" [n'eDl&D@-n@-], "delte" - short followed by 2 consonants | // "vilje", "nedladende" [n'eDl&D@-n@-], "delte" - short followed by 2 consonants | ||||
| IF nextPhW(isNotVowel) AND next2PhW(isNotVowel) THEN | |||||
| IF nextPhW(isNotVowel) AND next2PhW(isNotVowel) THEN | |||||
| // Don't make "møve" [m'Ww_!@-_!] short | // Don't make "møve" [m'Ww_!@-_!] short | ||||
| IF NOT next2PhW(_!) THEN | |||||
| length 140 | |||||
| ENDIF | |||||
| ENDIF | |||||
| IF NOT next2PhW(_!) THEN | |||||
| length 140 | |||||
| ENDIF | |||||
| ENDIF | |||||
| // "bryde", "bryder", "strålen", "henrivende" R makes the vowel too long | // "bryde", "bryder", "strålen", "henrivende" R makes the vowel too long | ||||
| IF prevPhW(R) OR prevPhW(3-) OR prevPhW(r) THEN | |||||
| IF next2PhW(@-) OR next2PhW(V) THEN | |||||
| // length 180 | |||||
| LengthAdd -70 | |||||
| IF prevPhW(R) OR prevPhW(3-) OR prevPhW(r) THEN | |||||
| IF NOT thisPh(V) AND next2PhW(@-) OR next2PhW(V) THEN | |||||
| length 140 | |||||
| ENDIF | |||||
| ENDIF | ENDIF | ||||
| ENDIF | |||||
| // "syste", "sylte" t/d/D + @- makes the vowel too long | |||||
| // "international", - added [V] TEST | |||||
| IF nextPhW(isNotVowel) AND next2PhW(t) OR next2PhW(d) OR next2PhW(D) THEN | |||||
| IF next3PhW(@-) OR next3PhW(V) THEN | |||||
| length 110 | |||||
| ENDIF | |||||
| ENDIF | |||||
| // "glimrende" [l/3] makes the following vowel too long | |||||
| // "føden" | |||||
| IF nextPhW(D) AND next2PhW(@-) AND next3PhW(n) THEN | |||||
| length 180 | |||||
| ENDIF | |||||
| // "glimrende", "glemte" [l/3] makes the following vowel too long | |||||
| // LengthAdd doesn't work here. The length could be 225 or 140 - 30 | // LengthAdd doesn't work here. The length could be 225 or 140 - 30 | ||||
| IF prevPhW(l/3) THEN | |||||
| // LengthAdd -30 | |||||
| length 110 | |||||
| ENDIF | |||||
| IF prev2PhW(g) AND prevPhW(l/3) AND nextPhW(isNotVowel) AND next2PhW(isNotVowel) THEN | |||||
| length 110 | |||||
| RETURN | |||||
| ENDIF | |||||
| // l/3 makes the vowel too long (+ voiced?) | |||||
| // isVoiced = b, d, g, v, z | |||||
| IF prevPhW(l/3) AND nextPhW(isVoiced) THEN | |||||
| // "klub", "klud" | |||||
| // The vowel should have been short but we fix it here | |||||
| IF NOT next2PhW(@-) AND NOT next2PhW(V) THEN | |||||
| length 100 | |||||
| ELSE | |||||
| // "slæde", "lader" | |||||
| length 160 | |||||
| ENDIF | |||||
| ENDIF | |||||
| // "længe" - short - 2 consonants => 1 consonant (ng => [N]) | // "længe" - short - 2 consonants => 1 consonant (ng => [N]) | ||||
| IF nextPhW(N) THEN | |||||
| length 140 | |||||
| ENDIF | |||||
| IF nextPhW(isNasal) THEN | |||||
| IF NOT prevPhW(R) AND NOT prevPhW(r) AND NOT prevPhW(3-) THEN | |||||
| length 140 | |||||
| // "omkring", "ring" - both prev. N and next R | |||||
| ELIF prevPhW(R) OR prevPhW(r) OR prevPhW(3-) THEN | |||||
| length 110 | |||||
| ENDIF | |||||
| ENDIF | |||||
| // "buskene", "krøbling" The vowel should have been made short becauce og 2 x consonant. | |||||
| // Take care of it here | |||||
| IF nextPhW(isNotVowel) AND next2PhW(isNotVowel) THEN | |||||
| IF NOT nextPhW(l/3) THEN | |||||
| IF NOT nextPhW(r) AND NOT prevPhW(R) AND NOT prevPhW(3-) THEN // NOT "Maria" | |||||
| length 110 | |||||
| ENDIF | |||||
| ENDIF | |||||
| ENDIF | |||||
| // "barnet" - consonant + [@-D]: too long vowel | |||||
| IF nextPhW(isNotVowel) AND next2PhW(@-) AND next3PhW(D) THEN | |||||
| length 160 | |||||
| ENDIF | |||||
| // "trin", "trit", "ring" - vowel too long | |||||
| // IF prevPhW(isRhotic) THEN | |||||
| IF prevPhW(R) OR prevPhW(r) OR prevPhW(3-) THEN | |||||
| IF nextPhW(isNotVowel) AND nextPhW(isWordEnd) THEN | |||||
| length 110 | |||||
| ENDIF | |||||
| ENDIF | |||||
| endprocedure | endprocedure | ||||
| // A bit longer than [@-] | // A bit longer than [@-] | ||||
| phoneme i | phoneme i | ||||
| vowel starttype #i endtype #i | vowel starttype #i endtype #i | ||||
| length 140 | length 140 | ||||
| // Long vowel followed by consonant and @- "gide", "pile" | |||||
| IF nextPhW(isNotVowel) AND next2PhW(@-) THEN | |||||
| // length 225 | |||||
| ENDIF | |||||
| // "gider", vrider" | |||||
| IF nextPhW(D) AND next2PhW(V) OR next2PhW(?V) THEN | |||||
| length 140 | |||||
| ENDIF | |||||
| //"skider" short | |||||
| IF nextPhW(D) AND next2PhW(V) THEN | |||||
| length 140 | |||||
| ENDIF | |||||
| //"skideren" long | |||||
| IF nextPhW(D) AND next2PhW(V) AND next3PhW(V) THEN | |||||
| length 225 | |||||
| ENDIF | |||||
| CALL LongVowelLength | CALL LongVowelLength | ||||
| FMT(vowel/i_4) | FMT(vowel/i_4) | ||||
| endphoneme | endphoneme | ||||
| vowel starttype #e endtype #e | vowel starttype #e endtype #e | ||||
| length 140 | length 140 | ||||
| CALL LongVowelLength | CALL LongVowelLength | ||||
| CALL ShortVowelLength | |||||
| // CALL ShortVowelLength | |||||
| FMT(vowel/e) | FMT(vowel/e) | ||||
| endphoneme | endphoneme | ||||
| phoneme & | phoneme & | ||||
| vowel starttype #e endtype #e | vowel starttype #e endtype #e | ||||
| ipa æ | |||||
| ipa a | |||||
| length 140 | length 140 | ||||
| // "same", "sale", "bade" - consonant + @-: long | // "same", "sale", "bade" - consonant + @-: long | ||||
| // but NOT "hinanden" | // but NOT "hinanden" | ||||
| // e.g. the last a in "staldkarl" | // e.g. the last a in "staldkarl" | ||||
| // "sale" vs. "sal" | // "sale" vs. "sal" | ||||
| phoneme ?& | phoneme ?& | ||||
| ipa a | |||||
| vowel starttype #e endtype #e | vowel starttype #e endtype #e | ||||
| length 140 | length 140 | ||||
| CALL ShortVowelLength | |||||
| FMT(vowel/ee_2) | FMT(vowel/ee_2) | ||||
| endphoneme | endphoneme | ||||
| // "revl" vs. "tremme" | // "revl" vs. "tremme" | ||||
| phoneme ?&# | phoneme ?&# | ||||
| vowel starttype #e endtype #e | vowel starttype #e endtype #e | ||||
| ipa ?a | |||||
| length 140 | length 140 | ||||
| CALL ShortVowelLength | CALL ShortVowelLength | ||||
| FMT(vowel/&) | FMT(vowel/&) | ||||
| ipa ɒ // changed from ɔ - Den Danske Ordbog: ɒ | ipa ɒ // changed from ɔ - Den Danske Ordbog: ɒ | ||||
| // "sove", "sover" - consonant + @ or V: long | // "sove", "sover" - consonant + @ or V: long | ||||
| IF next2PhW(@-) OR next2PhW(V) THEN | IF next2PhW(@-) OR next2PhW(V) THEN | ||||
| length 225 | |||||
| // length 225 | |||||
| ENDIF | ENDIF | ||||
| // PB "gået" - ThisPh + V or @- | // PB "gået" - ThisPh + V or @- | ||||
| IF nextPhW(V) OR nextPhW(@-) THEN | IF nextPhW(V) OR nextPhW(@-) THEN | ||||
| length 225 | |||||
| // length 225 | |||||
| ENDIF | ENDIF | ||||
| // "såre", "sårede" [s'O:?OD@-] | // "såre", "sårede" [s'O:?OD@-] | ||||
| IF nextPhW(O) OR nextPhW(?O) THEN | IF nextPhW(O) OR nextPhW(?O) THEN | ||||
| phoneme ?O | phoneme ?O | ||||
| vowel starttype #o endtype #o | vowel starttype #o endtype #o | ||||
| length 140 | length 140 | ||||
| CALL ShortVowelLength | |||||
| FMT(vowel/o_5) | FMT(vowel/o_5) | ||||
| endphoneme | endphoneme | ||||
| phoneme ?V | phoneme ?V | ||||
| vowel starttype #@ endtype #@ | vowel starttype #@ endtype #@ | ||||
| length 140 | length 140 | ||||
| CALL ShortVowelLength | |||||
| FMT(vowel/V_4) | FMT(vowel/V_4) | ||||
| endphoneme | endphoneme | ||||
| FMT(vowel/oo_2) | FMT(vowel/oo_2) | ||||
| endphoneme | endphoneme | ||||
| // Short 0 "sukker" | |||||
| // Short 0 "sukker", "provst" | |||||
| phoneme ?0 | phoneme ?0 | ||||
| vowel starttype #o endtype #o | vowel starttype #o endtype #o | ||||
| length 140 | length 140 | ||||
| ipa ɔ | ipa ɔ | ||||
| CALL ShortVowelLength | |||||
| FMT(vowel/oo_2) | FMT(vowel/oo_2) | ||||
| endphoneme | endphoneme | ||||
| phoneme y | phoneme y | ||||
| vowel starttype #i endtype #i | vowel starttype #i endtype #i | ||||
| length 140 | length 140 | ||||
| // PB long vowel followed by consonant and certain vowels | |||||
| // "gyde", "gyder" | |||||
| IF nextPhW(isNotVowel) AND next2PhW(@-) OR next2PhW(V) THEN | |||||
| // not "gebyret" TEST | |||||
| IF NOT nextPhW(3-) AND NOT nextPhW(R) AND NOT nextPhW(r) THEN | |||||
| length 225 | |||||
| ENDIF | |||||
| ENDIF | |||||
| // "syge" [sy@-] vowel + vowel: extra length, but NOT "fyret" [fyVD] | |||||
| IF nextPhW(@-) OR nextPhW(3) AND NOT next2PhW(D) THEN | |||||
| length 225 | |||||
| ENDIF | |||||
| // "tyve" | |||||
| IF nextPhW(w) AND next2PhW(@-) THEN | |||||
| length 225 | |||||
| ENDIF | |||||
| CALL LongVowelLength | |||||
| CALL LongVowelLength | |||||
| FMT(vowel/y) | FMT(vowel/y) | ||||
| endphoneme | endphoneme | ||||
| phoneme W | phoneme W | ||||
| vowel starttype #@ endtype #@ | vowel starttype #@ endtype #@ | ||||
| length 140 | length 140 | ||||
| // "røveri" but NOT "surfer" [sWfV] TEST | |||||
| IF next2PhW(V) OR next2PhW(?V) AND NOT next2PhW(isFinalVowel) THEN | |||||
| length 140 | |||||
| ENDIF | |||||
| // "børnebog" - short | |||||
| IF nextPhW(r) AND next2PhW(n) AND next3PhW(@-) THEN | |||||
| length 140 | |||||
| ENDIF | |||||
| CALL LongVowelLength | |||||
| CALL LongVowelLength | |||||
| FMT(vowel/oe) | FMT(vowel/oe) | ||||
| endphoneme | endphoneme | ||||
| // Added for the ø in "røv", "røg", "øje" instead of [V3] | // Added for the ø in "røv", "røg", "øje" instead of [V3] | ||||
| phoneme W# | phoneme W# | ||||
| vowel starttype #@ endtype #@ | vowel starttype #@ endtype #@ | ||||
| length 140 //225 | |||||
| // PB long vowel followed by consonant and certain vowels | |||||
| IF nextPhW(isNotVowel) AND next2PhW(@-) OR next2PhW(@) OR next2PhW(3) OR next2PhW(V) OR next2PhW(?V) THEN | |||||
| length 225 | |||||
| ENDIF | |||||
| length 140 | |||||
| CALL LongVowelLength | |||||
| FMT(vowel/V) | FMT(vowel/V) | ||||
| endphoneme | endphoneme | ||||
| lengthmod 7 | lengthmod 7 | ||||
| // [ll] => [-l] - avoid double l | // [ll] => [-l] - avoid double l | ||||
| IF nextPhW(l) THEN | IF nextPhW(l) THEN | ||||
| // ChangePhoneme(-) | |||||
| // ChangePhoneme(NULL) | |||||
| ENDIF | ENDIF | ||||
| ChangePhoneme(l/3) | ChangePhoneme(l/3) | ||||
| // CALL base/l | // CALL base/l | ||||
| IF nextPhW(isVowel) AND NOT nextPhW(?V) AND NOT nextPhW(V) AND NOT nextPhW(@-) THEN | IF nextPhW(isVowel) AND NOT nextPhW(?V) AND NOT nextPhW(V) AND NOT nextPhW(@-) THEN | ||||
| ChangePhoneme(R) | ChangePhoneme(R) | ||||
| ENDIF | ENDIF | ||||
| // "generer" [Sen'e:Vr], "mysterier" - delete the r | |||||
| IF prevPhW(V) AND thisPh(isWordEnd) THEN | |||||
| ChangePhoneme(NULL) | |||||
| ENDIF | |||||
| FMT(r/a_) | FMT(r/a_) | ||||
| endphoneme | endphoneme | ||||
| ENDIF | ENDIF | ||||
| IF nextPhW(isVowel) THEN | IF nextPhW(isVowel) THEN | ||||
| NextVowelStarts | NextVowelStarts | ||||
| VowelStart(j/j@) | |||||
| VowelStart(j/j@,-45) // jøderne | |||||
| VowelStart(j/ja) | VowelStart(j/ja) | ||||
| VowelStart(j/je,-35) | VowelStart(j/je,-35) | ||||
| VowelStart(j/ji) | VowelStart(j/ji) | ||||
| Vowelout len=70 | Vowelout len=70 | ||||
| FMT(j/j_) | FMT(j/j_) | ||||
| ENDIF | ENDIF | ||||
| endphoneme | |||||
| endphoneme | |||||
| phoneme OI | phoneme OI | ||||
| vowel starttype #o endtype #i | vowel starttype #o endtype #i | ||||
| length 280 | |||||
| FMT(vdiph/ooi_4) | |||||
| length 270 | |||||
| FMT(vdiph/ooi_3) | |||||
| endphoneme | endphoneme | ||||
| length 130 | length 130 | ||||
| ChangeIfDiminished(@-) | ChangeIfDiminished(@-) | ||||
| IF nextPh(H) THEN | |||||
| IF nextPh(H) OR prevPh(H) THEN | |||||
| FMT(vowel/@_low) | FMT(vowel/@_low) | ||||
| ENDIF | ENDIF | ||||
| FMT(vowel/@_bck) | FMT(vowel/@_bck) | ||||
| vowel flag1 starttype #@ endtype #@ | vowel flag1 starttype #@ endtype #@ | ||||
| length 130 | length 130 | ||||
| IF thisPh(isWordStart) THEN | |||||
| FMT(vowel/V_3) | |||||
| RETURN | |||||
| ENDIF | |||||
| IF thisPh(isNotStressed) THEN | IF thisPh(isNotStressed) THEN | ||||
| IF prevPh(H) THEN | IF prevPh(H) THEN | ||||
| ChangePhoneme(@) | ChangePhoneme(@) | ||||
| ChangePhoneme(NULL) | ChangePhoneme(NULL) | ||||
| ENDIF | ENDIF | ||||
| IF NOT nextVowel(isFlag1) THEN | |||||
| IF thisPh(isSeqFlag1) THEN | |||||
| // delete the last inherent vowel of a sequence | |||||
| ChangePhoneme(NULL) | |||||
| IF prev2PhW(isVowel) AND NOT nextVowel(isFlag1) THEN | |||||
| IF nextPhW(isNotVowel) AND nextPh(isWordEnd) THEN | |||||
| // don't delete schwa before a word-final consonant | |||||
| ELSE | ELSE | ||||
| IF NOT thisPh(isFirstVowel) THEN | |||||
| // delete if not the first vowel, and is an isolated 'a' | |||||
| ChangePhoneme(NULL) | |||||
| ENDIF | |||||
| ChangePhoneme(NULL) | |||||
| ENDIF | ENDIF | ||||
| ENDIF | ENDIF | ||||
| ENDIF | ENDIF | ||||
| ChangePhoneme(@) | ChangePhoneme(@) | ||||
| ENDIF | ENDIF | ||||
| IF nextPh(H) THEN | |||||
| IF nextPh(H) OR prevPh(H) THEN | |||||
| FMT(vowel/@_low) | FMT(vowel/@_low) | ||||
| ENDIF | ENDIF | ||||
| ENDIF | ENDIF | ||||
| phoneme a: | phoneme a: | ||||
| vowel long starttype #a endtype #a | vowel long starttype #a endtype #a | ||||
| length 190 | length 190 | ||||
| IF nextPhW(j) THEN | |||||
| FMT(vowel/a_5) | |||||
| ENDIF | |||||
| FMT(vowel/aa_9) | FMT(vowel/aa_9) | ||||
| endphoneme | endphoneme | ||||
| phoneme E~ | phoneme E~ | ||||
| vowel long starttype #e endtype #e | vowel long starttype #e endtype #e | ||||
| length 230 | |||||
| length 220 | |||||
| FMT(vnasal/ee_n2) | FMT(vnasal/ee_n2) | ||||
| endphoneme | endphoneme | ||||
| phoneme a~ | phoneme a~ | ||||
| vowel long starttype #a endtype #a | vowel long starttype #a endtype #a | ||||
| length 250 | |||||
| FMT(vnasal/aa_n) | |||||
| length 220 | |||||
| FMT(vnasal/&_n) | |||||
| endphoneme | endphoneme | ||||
| phoneme V~ | phoneme V~ | ||||
| vowel long starttype #@ endtype #@ | vowel long starttype #@ endtype #@ | ||||
| length 250 | |||||
| length 220 | |||||
| FMT(vnasal/V_n) | FMT(vnasal/V_n) | ||||
| endphoneme | endphoneme | ||||
| phoneme O~ | phoneme O~ | ||||
| vowel long starttype #o endtype #o | vowel long starttype #o endtype #o | ||||
| length 230 | |||||
| length 220 | |||||
| FMT(vnasal/oo_n2) | FMT(vnasal/oo_n2) | ||||
| endphoneme | endphoneme | ||||
| phoneme u~ | phoneme u~ | ||||
| vowel long starttype #u endtype #u | vowel long starttype #u endtype #u | ||||
| length 230 | |||||
| length 220 | |||||
| FMT(vnasal/u_n) | FMT(vnasal/u_n) | ||||
| endphoneme | endphoneme | ||||
| endphoneme | endphoneme | ||||
| phoneme r | |||||
| liquid rhotic | |||||
| lengthmod 3 | |||||
| IF thisPh(isWordEnd) THEN | |||||
| CALL base/r/ | |||||
| ELSE | |||||
| IF prevPhW(isVowel) THEN | |||||
| IF nextPhW(isNotVowel) OR nextPhW(V) THEN | |||||
| ChangePhoneme(*) | |||||
| ENDIF | |||||
| ENDIF | |||||
| CALL base/r | |||||
| ENDIF | |||||
| ipa ɾ | |||||
| endphoneme | |||||
| phoneme U | phoneme U | ||||
| vowel starttype #u endtype #u | vowel starttype #u endtype #u | ||||
| length 130 | length 130 | ||||
| IF nextPh(isVowel) THEN | |||||
| IF thisPh(isWordEnd) AND thisPh(isAfterStress) AND nextPh(isVowel) THEN | |||||
| ChangePhoneme(w) | ChangePhoneme(w) | ||||
| ENDIF | ENDIF | ||||
| FMT(vowel/u_6) | FMT(vowel/u_6) |
| phoneme U | phoneme U | ||||
| vowel starttype #u endtype #u | vowel starttype #u endtype #u | ||||
| length 140 | length 140 | ||||
| IF thisPh(isWordEnd) AND nextPh(isVowel) THEN | |||||
| IF thisPh(isWordEnd) AND thisPh(isAfterStress) AND nextPh(isVowel) THEN | |||||
| ChangePhoneme(w) | ChangePhoneme(w) | ||||
| ENDIF | ENDIF | ||||
| FMT(vowel/uu_bck) | FMT(vowel/uu_bck) |
| phoneme a | phoneme a | ||||
| vowel starttype #a endtype #a | vowel starttype #a endtype #a | ||||
| length 180 | |||||
| length 200 | |||||
| FMT(vowel/a_4) | FMT(vowel/a_4) | ||||
| endphoneme | endphoneme | ||||
| phoneme e | phoneme e | ||||
| vowel starttype #e endtype #e | vowel starttype #e endtype #e | ||||
| length 190 | |||||
| length 200 | |||||
| FMT(vowel/e_mid2) | FMT(vowel/e_mid2) | ||||
| endphoneme | endphoneme | ||||
| phoneme E | phoneme E | ||||
| vowel starttype #e endtype #e | vowel starttype #e endtype #e | ||||
| length 190 | |||||
| length 200 | |||||
| FMT(vowel/e_mid2) | FMT(vowel/e_mid2) | ||||
| endphoneme | endphoneme | ||||
| phoneme i | phoneme i | ||||
| vowel starttype #i endtype #i | vowel starttype #i endtype #i | ||||
| length 170 | |||||
| length 190 | |||||
| IfNextVowelAppend(;) | IfNextVowelAppend(;) | ||||
| FMT(vowel/i) | FMT(vowel/i) | ||||
| endphoneme | endphoneme | ||||
| phoneme o | phoneme o | ||||
| vowel starttype #o endtype #o | vowel starttype #o endtype #o | ||||
| length 190 | |||||
| length 200 | |||||
| FMT(vowel/oo) | FMT(vowel/oo) | ||||
| endphoneme | endphoneme | ||||
| phoneme O | phoneme O | ||||
| vowel starttype #o endtype #o | vowel starttype #o endtype #o | ||||
| length 190 | |||||
| length 200 | |||||
| FMT(vowel/oo) | FMT(vowel/oo) | ||||
| endphoneme | endphoneme | ||||
| phoneme u | phoneme u | ||||
| vowel starttype #u endtype #u | vowel starttype #u endtype #u | ||||
| length 180 | |||||
| length 200 | |||||
| FMT(vowel/u_bck2) | FMT(vowel/u_bck2) | ||||
| endphoneme | endphoneme | ||||
| voicingswitch T | voicingswitch T | ||||
| CALL base/D | CALL base/D | ||||
| IF nextPh(isPause2) THEN | IF nextPh(isPause2) THEN | ||||
| FMT(voc/dh_) addWav(vocw/dh, 40) // weaker | |||||
| FMT(voc/dh_) addWav(vocw/dh, 35) // weaker | |||||
| ENDIF | ENDIF | ||||
| endphoneme | endphoneme | ||||
| phoneme t // dental variant of /t/ | |||||
| import_phoneme base/t[ | |||||
| endphoneme | |||||
| phoneme s | phoneme s | ||||
| vls alv frc sibilant | vls alv frc sibilant | ||||
| lengthmod 3 | lengthmod 3 |
| phoneme i | phoneme i | ||||
| vowel starttype #i endtype #i | vowel starttype #i endtype #i | ||||
| length 150 | |||||
| length 180 | |||||
| IF thisPh(isTranslationGiven) THEN | IF thisPh(isTranslationGiven) THEN | ||||
| // don't reduce the vowel if phonemes are explicitly given | // don't reduce the vowel if phonemes are explicitly given | ||||
| ELSE | ELSE | ||||
| phoneme I | phoneme I | ||||
| vowel starttype #i endtype #i | vowel starttype #i endtype #i | ||||
| length 150 | |||||
| length 180 | |||||
| FMT(vowel/ii_5) | FMT(vowel/ii_5) | ||||
| endphoneme | endphoneme | ||||
| phoneme y | phoneme y | ||||
| vowel starttype #u endtype #u | vowel starttype #u endtype #u | ||||
| length 155 | |||||
| length 180 | |||||
| IF thisPh(isTranslationGiven) THEN | IF thisPh(isTranslationGiven) THEN | ||||
| // don't reduce the vowel if phonemes are explicitly given | // don't reduce the vowel if phonemes are explicitly given | ||||
| ELSE | ELSE | ||||
| phoneme Y | phoneme Y | ||||
| vowel starttype #u endtype #u | vowel starttype #u endtype #u | ||||
| length 155 | |||||
| length 180 | |||||
| FMT(vowel/u#) | FMT(vowel/u#) | ||||
| endphoneme | endphoneme | ||||
| phoneme e | phoneme e | ||||
| vowel starttype #e endtype #e | vowel starttype #e endtype #e | ||||
| length 180 | |||||
| length 200 | |||||
| IF thisPh(isTranslationGiven) THEN | IF thisPh(isTranslationGiven) THEN | ||||
| // don't reduce the vowel if phonemes are explicitly given | // don't reduce the vowel if phonemes are explicitly given | ||||
| ELSE | ELSE | ||||
| IF nextPh(isWordEnd) OR next2PhW(isNotVowel) THEN | |||||
| IF nextPh(isRhotic) OR nextPh(isNasal) OR nextPh(l) OR nextPh(L) THEN | |||||
| ChangePhoneme(&) | |||||
| ENDIF | |||||
| ENDIF | |||||
| IF thisPh(isFinalVowel) THEN | IF thisPh(isFinalVowel) THEN | ||||
| ChangePhoneme(E) | ChangePhoneme(E) | ||||
| ENDIF | ENDIF | ||||
| phoneme E | phoneme E | ||||
| vowel starttype #e endtype #e | vowel starttype #e endtype #e | ||||
| length 180 | |||||
| length 200 | |||||
| FMT(vowel/e_mid) | FMT(vowel/e_mid) | ||||
| endphoneme | endphoneme | ||||
| phoneme & | |||||
| vowel starttype #a endtype #a | |||||
| length 200 | |||||
| FMT(vowel/ee_6) | |||||
| endphoneme | |||||
| phoneme W | phoneme W | ||||
| vowel starttype #@ endtype #@ | vowel starttype #@ endtype #@ | ||||
| length 180 | |||||
| length 200 | |||||
| FMT(vowel/y#) | FMT(vowel/y#) | ||||
| endphoneme | endphoneme | ||||
| phoneme a | phoneme a | ||||
| vowel starttype #a endtype #a | vowel starttype #a endtype #a | ||||
| length 190 | |||||
| length 200 | |||||
| FMT(vowel/a#_4) | FMT(vowel/a#_4) | ||||
| endphoneme | endphoneme | ||||
| phoneme u | phoneme u | ||||
| vowel starttype #u endtype #u | vowel starttype #u endtype #u | ||||
| length 150 | |||||
| length 180 | |||||
| IF thisPh(isTranslationGiven) THEN | IF thisPh(isTranslationGiven) THEN | ||||
| // don't reduce the vowel if phonemes are explicitly given | // don't reduce the vowel if phonemes are explicitly given | ||||
| ELSE | ELSE | ||||
| phoneme U | phoneme U | ||||
| vowel starttype #u endtype #u | vowel starttype #u endtype #u | ||||
| length 150 | |||||
| length 180 | |||||
| FMT(vowel/uu_2) | FMT(vowel/uu_2) | ||||
| endphoneme | endphoneme | ||||
| phoneme @ | phoneme @ | ||||
| vowel starttype #@ endtype #@ | vowel starttype #@ endtype #@ | ||||
| ipa ɯ | ipa ɯ | ||||
| length 150 | |||||
| length 180 | |||||
| FMT(vowel/u#_7) | FMT(vowel/u#_7) | ||||
| endphoneme | endphoneme | ||||
| phoneme o | phoneme o | ||||
| vowel starttype #o endtype #o | vowel starttype #o endtype #o | ||||
| length 190 | |||||
| length 200 | |||||
| IF thisPh(isTranslationGiven) THEN | IF thisPh(isTranslationGiven) THEN | ||||
| // don't reduce the vowel if phonemes are explicitly given | // don't reduce the vowel if phonemes are explicitly given | ||||
| ELSE | ELSE | ||||
| phoneme O | phoneme O | ||||
| vowel starttype #o endtype #o | vowel starttype #o endtype #o | ||||
| length 190 | |||||
| length 200 | |||||
| FMT(vowel/oo) | FMT(vowel/oo) | ||||
| endphoneme | endphoneme | ||||
| endphoneme | endphoneme | ||||
| phoneme l | |||||
| import_phoneme en/l | |||||
| endphoneme | |||||
| phoneme G | phoneme G | ||||
| import_phoneme en/r/ | import_phoneme en/r/ | ||||
| lengthmod 7 | lengthmod 7 | ||||
| endphoneme | endphoneme | ||||
| phoneme R | |||||
| vcd alv flp rhotic | |||||
| IF prevPhW(isVowel) AND nextPhW(isVowel) THEN | |||||
| CALL base/* | |||||
| // ELIF prevPhW(isNotVowel) THEN | |||||
| // CALL base/R | |||||
| ELSE | |||||
| CALL base/r | |||||
| ENDIF | |||||
| ipa ɾ | |||||
| endphoneme |
| phoneme 3 // sắc Tone(rising | phoneme 3 // sắc Tone(rising | ||||
| stress | stress | ||||
| Tone(25, 50, envelope/p_rise, NULL) // 25 | |||||
| Tone(30, 60, envelope/p_rise, NULL) // 25 50 | |||||
| endphoneme | endphoneme | ||||
| phoneme 4 // hỏi Tone(curve (dipping rising) | phoneme 4 // hỏi Tone(curve (dipping rising) | ||||
| stress | stress | ||||
| Tone(30, 5, envelope/p_fallrise, NULL) | |||||
| Tone(40, 5, envelope/p_fallrise, NULL) //30 | |||||
| endphoneme | endphoneme | ||||
| phoneme a | phoneme a | ||||
| vowel starttype #@ endtype #@ | vowel starttype #@ endtype #@ | ||||
| length 120 | |||||
| length 140 | |||||
| FMT(vowel/a_6) //a_4) | FMT(vowel/a_6) //a_4) | ||||
| endphoneme | endphoneme | ||||
| phoneme a: | phoneme a: | ||||
| vowel starttype #a endtype #a | vowel starttype #a endtype #a | ||||
| length 200 //280 | |||||
| FMT(vietnam/a) //FMT(vowel/a_6) | |||||
| length 240 //280 | |||||
| FMT(vowel/a_8) | |||||
| endphoneme | endphoneme | ||||
| phoneme E | phoneme E | ||||
| vowel starttype #e endtype #e | vowel starttype #e endtype #e | ||||
| length 200 | |||||
| length 240 | |||||
| FMT(vowel/ee_3) | FMT(vowel/ee_3) | ||||
| endphoneme | endphoneme | ||||
| phoneme e | phoneme e | ||||
| vowel starttype #e endtype #e | vowel starttype #e endtype #e | ||||
| length 200 | |||||
| length 140 | |||||
| FMT(vowel/e) | FMT(vowel/e) | ||||
| endphoneme | endphoneme | ||||
| phoneme i | phoneme i | ||||
| vowel starttype #i endtype #i | vowel starttype #i endtype #i | ||||
| length 190 | |||||
| length 240 | |||||
| IfNextVowelAppend(;) | IfNextVowelAppend(;) | ||||
| IF prevPhW(w) THEN | IF prevPhW(w) THEN | ||||
| VowelStart(w/wi) | VowelStart(w/wi) | ||||
| ELSE | ELSE | ||||
| length 200 | length 200 | ||||
| ENDIF | ENDIF | ||||
| FMT(vowel/aa_4) | |||||
| FMT(vowel/0_2) //aa_4) | |||||
| endphoneme | endphoneme | ||||
| phoneme o | phoneme o | ||||
| ELSE | ELSE | ||||
| length 200 | length 200 | ||||
| ENDIF | ENDIF | ||||
| FMT(vowel/o_2) | |||||
| FMT(vowel/o) // o_2) | |||||
| endphoneme | endphoneme | ||||
| IF nextPh(kh) OR nextPh(N) THEN // hear as ung sound | IF nextPh(kh) OR nextPh(N) THEN // hear as ung sound | ||||
| length 120 | length 120 | ||||
| ELSE | ELSE | ||||
| length 200 | |||||
| length 240 | |||||
| ENDIF | ENDIF | ||||
| FMT(vnasal/u_n) //vowel/u_7) | |||||
| FMT(vowel/u_5) | |||||
| endphoneme | endphoneme | ||||
| phoneme y | phoneme y | ||||
| IF nextPh(kh) OR nextPh(N) THEN | IF nextPh(kh) OR nextPh(N) THEN | ||||
| length 120 | length 120 | ||||
| ELSE | ELSE | ||||
| length 200 | |||||
| length 180 | |||||
| ENDIF | ENDIF | ||||
| FMT(vowel/u#_5) | FMT(vowel/u#_5) | ||||
| endphoneme | endphoneme | ||||
| phoneme @ | phoneme @ | ||||
| vowel starttype #@ endtype #a | vowel starttype #@ endtype #a | ||||
| IF nextPh(kh) OR nextPh(N) THEN | |||||
| IF nextPh(kh) OR nextPh(N) OR nextPh(n^) OR nextPh(c) THEN | |||||
| length 120 | length 120 | ||||
| ELSE | ELSE | ||||
| length 170 | |||||
| length 200 | |||||
| ENDIF | ENDIF | ||||
| FMT(vowel/V) //vowel/@_2) | FMT(vowel/V) //vowel/@_2) | ||||
| endphoneme | endphoneme | ||||
| phoneme @: | phoneme @: | ||||
| vowel starttype #@ endtype #@ | vowel starttype #@ endtype #@ | ||||
| length 280 | |||||
| length 200 | |||||
| FMT(vowel/@_2) | FMT(vowel/@_2) | ||||
| endphoneme | endphoneme | ||||
| phoneme aI | phoneme aI | ||||
| vowel starttype #a endtype #i | vowel starttype #a endtype #i | ||||
| length 200 //250 | |||||
| FMT(vdiph/&y) | |||||
| length 140 //250 | |||||
| FMT(vdiph/&i_2) | |||||
| endphoneme | endphoneme | ||||
| phoneme eI | phoneme eI | ||||
| vowel starttype #e endtype #i | vowel starttype #e endtype #i | ||||
| length 200 | |||||
| length 140 | |||||
| FMT(vdiph/ei) | FMT(vdiph/ei) | ||||
| endphoneme | endphoneme | ||||
| phoneme EI | phoneme EI | ||||
| vowel starttype #e endtype #i | vowel starttype #e endtype #i | ||||
| length 200 | |||||
| length 140 | |||||
| FMT(vdiph/eei) | FMT(vdiph/eei) | ||||
| endphoneme | endphoneme | ||||
| phoneme OI | phoneme OI | ||||
| vowel starttype #o endtype #i | vowel starttype #o endtype #i | ||||
| length 200 | length 200 | ||||
| FMT(vdiph/0i) | |||||
| FMT(vdiph/ooi_3) | |||||
| endphoneme | endphoneme | ||||
| phoneme aU | phoneme aU | ||||
| vowel starttype #a endtype #u | vowel starttype #a endtype #u | ||||
| length 210 | |||||
| length 200 | |||||
| FMT(vdiph/aau_4) | FMT(vdiph/aau_4) | ||||
| endphoneme | endphoneme | ||||
| phoneme a:U | phoneme a:U | ||||
| vowel starttype #a endtype #u | vowel starttype #a endtype #u | ||||
| length 230 //270 | |||||
| length 200 //270 | |||||
| FMT(vdiph/au) | FMT(vdiph/au) | ||||
| endphoneme | endphoneme | ||||
| phoneme iU | phoneme iU | ||||
| vowel starttype #i endtype #u | vowel starttype #i endtype #u | ||||
| length 200 | |||||
| length 140 | |||||
| FMT(vdiph2/iu) | FMT(vdiph2/iu) | ||||
| endphoneme | endphoneme | ||||
| phoneme @U | phoneme @U | ||||
| vowel starttype #@ endtype #u | vowel starttype #@ endtype #u | ||||
| length 200 | |||||
| length 140 | |||||
| FMT(vdiph/@u_3) | FMT(vdiph/@u_3) | ||||
| endphoneme | endphoneme | ||||
| phoneme @:U | phoneme @:U | ||||
| vowel starttype #@ endtype #u | vowel starttype #@ endtype #u | ||||
| length 270 | |||||
| length 140 | |||||
| FMT(vdiph/@u) | FMT(vdiph/@u) | ||||
| endphoneme | endphoneme | ||||
| phoneme i@ | phoneme i@ | ||||
| vowel starttype #i endtype #@ | vowel starttype #i endtype #@ | ||||
| length 240 | |||||
| length 140 | |||||
| FMT(vdiph2/ii@_3) | FMT(vdiph2/ii@_3) | ||||
| endphoneme | endphoneme | ||||
| phoneme y@ | phoneme y@ | ||||
| vowel starttype #i endtype #@ | vowel starttype #i endtype #@ | ||||
| length 200 | |||||
| length 140 | |||||
| FMT(vdiph2/y-y#) | FMT(vdiph2/y-y#) | ||||
| endphoneme | endphoneme | ||||
| phoneme u@ | phoneme u@ | ||||
| vowel starttype #u endtype #@ | vowel starttype #u endtype #@ | ||||
| length 150 //200 | |||||
| length 100 //200 | |||||
| FMT(vdiph2/uu@) | FMT(vdiph2/uu@) | ||||
| endphoneme | endphoneme | ||||
| phoneme o# // ông | phoneme o# // ông | ||||
| vowel starttype #o endtype #o | vowel starttype #o endtype #o | ||||
| length 200 | |||||
| length 140 | |||||
| FMT(vnasal/a#u_n) | FMT(vnasal/a#u_n) | ||||
| endphoneme | endphoneme | ||||
| phoneme O# // ong | phoneme O# // ong | ||||
| vowel starttype #o endtype #o | vowel starttype #o endtype #o | ||||
| length 200 | |||||
| length 140 | |||||
| FMT(vnasal/&u_n) | FMT(vnasal/&u_n) | ||||
| endphoneme | endphoneme | ||||
| phoneme o@ | phoneme o@ | ||||
| vowel starttype #o endtype #o | vowel starttype #o endtype #o | ||||
| length 160 | |||||
| length 140 | |||||
| FMT(vdiph2/oa) | FMT(vdiph2/oa) | ||||
| endphoneme | endphoneme | ||||
| phoneme o& | phoneme o& | ||||
| vowel starttype #o endtype #o | vowel starttype #o endtype #o | ||||
| length 160 | |||||
| length 140 | |||||
| FMT(vietnam/oe) | FMT(vietnam/oe) | ||||
| endphoneme | endphoneme | ||||
| phoneme iE // iê : viết, giệc | phoneme iE // iê : viết, giệc | ||||
| vowel starttype #i endtype #e | vowel starttype #i endtype #e | ||||
| length 190 | |||||
| length 140 | |||||
| FMT(vietnam/ie_2) | FMT(vietnam/ie_2) | ||||
| endphoneme | endphoneme | ||||
| phoneme Oi // oai sound | |||||
| vowel starttype #o endtype #i | |||||
| length 140 | |||||
| FMT(vdiph/ooi_3) | |||||
| endphoneme | |||||
| // Vowel and Dipthong for south dialect | |||||
| phoneme O- // ôi southern sound | |||||
| vowel starttype #o endtype #i | |||||
| length 150 | |||||
| FMT(vnasal/oi_n) | |||||
| endphoneme | |||||
| phoneme @- // ơi southern sound | |||||
| vowel starttype #o endtype #i | |||||
| length 150 | |||||
| FMT(vdiph/@i_3) | |||||
| endphoneme | |||||
| phoneme u- // u southern sound | |||||
| vowel starttype #u endtype #u | |||||
| length 150 | |||||
| FMT(vowel/u_3,70) | |||||
| endphoneme | |||||
| phoneme kh | phoneme kh | ||||
| vls vel frc | vls vel frc | ||||
| lengthmod 3 | lengthmod 3 | ||||
| Vowelin f1=0 f2=2300 200 400 f3=200 80 | |||||
| Vowelin f1=0 f2=2300 200 400 f3=200 80 len=30 | |||||
| Vowelout f1=0 f2=2300 300 400 f3=200 80 rms=20 | Vowelout f1=0 f2=2300 300 400 f3=200 80 rms=20 | ||||
| WAV(vietnam/_c,5) //ufric/x, 50) | WAV(vietnam/_c,5) //ufric/x, 50) | ||||
| endphoneme | endphoneme | ||||
| phoneme l | phoneme l | ||||
| liquid | liquid | ||||
| lengthmod 7 | |||||
| Vowelin f1=0 f2=1700 -300 300 f3=-100 80 len=30 | |||||
| //lengthmod 7 | |||||
| //IF nextPh(isNotVowel) THEN | //IF nextPh(isNotVowel) THEN | ||||
| // ChangePhoneme(l/2) | // ChangePhoneme(l/2) | ||||
| //ENDIF | //ENDIF | ||||
| //CALL vowelstart_l | //CALL vowelstart_l | ||||
| FMT(l/l_vi) | FMT(l/l_vi) | ||||
| vls alv stop | vls alv stop | ||||
| //voicingswitch d | //voicingswitch d | ||||
| lengthmod 2 | lengthmod 2 | ||||
| Vowelin f1=0 f2=1700 -300 300 f3=-100 80 | |||||
| Vowelin f1=0 f2=1700 -300 300 f3=-100 80 len=30 | |||||
| Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20 | Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20 | ||||
| WAV(vietnam/th, 50) | WAV(vietnam/th, 50) | ||||
| vls pla afr sibilant | vls pla afr sibilant | ||||
| //voicingswitch dZ | //voicingswitch dZ | ||||
| lengthmod 2 | lengthmod 2 | ||||
| Vowelin f1=0 f2=2300 200 400 f3=-100 80 | |||||
| Vowelin f1=0 f2=2300 200 400 f3=-100 80 len=30 | |||||
| WAV(vietnam/tr,10) | WAV(vietnam/tr,10) | ||||
| phoneme d | phoneme d | ||||
| vcd alv stop | vcd alv stop | ||||
| lengthmod 5 | |||||
| // lengthmod 5 | |||||
| Vowelin f1=1 f2=1700 -300 300 f3=-100 80 | |||||
| Vowelout f1=2 f2=1700 -300 300 f3=-100 80 brk | |||||
| Vowelin f1=1 f2=1700 -300 300 f3=-100 80 len=30 | |||||
| Vowelout f1=2 f2=1700 -300 300 f3=-100 80 brk len=30 | |||||
| WAV(vietnam/dd) | WAV(vietnam/dd) | ||||
| endphoneme | endphoneme | ||||
| vls pal stop palatal | vls pal stop palatal | ||||
| //voicingswitch J | //voicingswitch J | ||||
| lengthmod 2 | lengthmod 2 | ||||
| length 75 | |||||
| Vowelin f1=0 f2=2700 400 600 f3=300 80 rate len=70 | |||||
| Vowelout f1=1 f2=2700 400 600 f3=200 70 len=50 colr=1 | |||||
| length 2 | |||||
| Vowelin f1=0 f2=2700 400 600 f3=300 80 len=30 brk | |||||
| Vowelout f1=1 f2=2700 400 600 f3=200 70 len=30 colr=1 | |||||
| WAV(vietnam/ch,5) | WAV(vietnam/ch,5) | ||||
| phoneme n | phoneme n | ||||
| vcd alv nasal | vcd alv nasal | ||||
| Vowelin f1=0 f2=1000 -50 -100 f3=-200 80 amp=11 | |||||
| Vowelout f1=2 f2=1700 -300 250 f3=-100 80 rms=20 brk | |||||
| Vowelin f1=0 f2=1000 -50 -100 f3=-200 80 amp=11 brk len=30 | |||||
| Vowelout f1=2 f2=1700 -300 250 f3=-100 80 rms=20 brk len=30 | |||||
| lengthmod 4 | lengthmod 4 | ||||
| FMT(n/n#_) | |||||
| length 75 | |||||
| FMT(n/nr_) | |||||
| endphoneme | endphoneme | ||||
| phoneme t[ // dental variant of /t/ | phoneme t[ // dental variant of /t/ | ||||
| vls dnt stop | vls dnt stop | ||||
| voicingswitch d[ | voicingswitch d[ | ||||
| lengthmod 2 | lengthmod 2 | ||||
| Vowelin f1=1 f2=1500 -250 250 f3=-100 80 amp=16 | |||||
| Vowelout f1=0 f2=1500 -300 250 f3=-100 80 rms=20 | |||||
| length 5 | |||||
| Vowelin f1=1 f2=1500 -250 250 f3=-100 80 amp=16 len=30 | |||||
| Vowelout f1=0 f2=1500 -300 250 f3=-100 80 rms=20 len=30 | |||||
| IF nextPh(isPause2) THEN | IF nextPh(isPause2) THEN | ||||
| WAV(ustop/t_unasp2, 5) | WAV(ustop/t_unasp2, 5) |
| phoneme 1 // ngang tone: level | phoneme 1 // ngang tone: level | ||||
| stress | stress | ||||
| Tone(30, 2, envelope/p_level, NULL) // similar Hue dialect tone | |||||
| Tone(40, 5, envelope/p_level, NULL) // similar Hue dialect tone | |||||
| endphoneme | endphoneme | ||||
| phoneme 2 // huyền tone: low falling | phoneme 2 // huyền tone: low falling | ||||
| stress | stress | ||||
| Tone(20, 25, envelope/p_fall,envelope/vi_6amp) // NULL) //20 8 | |||||
| Tone(20, 25, envelope/p_fall,envelope/vi_6amp) // NULL) //20 25 | |||||
| endphoneme | endphoneme | ||||
| phoneme 3 // sắc Tone(rising | phoneme 3 // sắc Tone(rising | ||||
| stress | stress | ||||
| Tone(2, 10, envelope/p_rise, NULL) // 25 50 45 75 | |||||
| Tone(2, 10, envelope/p_fallrise, NULL) // 2 10 | |||||
| endphoneme | endphoneme | ||||
| phoneme 4 // hỏi Tone(curve (dipping rising) | phoneme 4 // hỏi Tone(curve (dipping rising) | ||||
| stress | stress | ||||
| Tone(20, 5, envelope/p_512,NULL) //Tone(55, 5, envelope/p_fallrise, NULL) //30 5 m 55 5 | |||||
| Tone(5, 10, envelope/p_512,NULL) //20 5 | |||||
| endphoneme | endphoneme | ||||
| phoneme 5 // ngã tone: broken (creaking rising) | phoneme 5 // ngã tone: broken (creaking rising) | ||||
| stress | stress | ||||
| Tone(50,2, envelope/p_214, envelope/vi_5amp) // 28,58 m20 85 | |||||
| Tone(10, 15, envelope/p_512, envelope/vi_6amp) // 40 20 | |||||
| endphoneme | endphoneme | ||||
| Tone(5, 40, envelope/p_level, NULL) //Tone(99, 50, envelope/p_fall, NULL) // 40 20 | Tone(5, 40, envelope/p_level, NULL) //Tone(99, 50, envelope/p_fall, NULL) // 40 20 | ||||
| endphoneme | endphoneme | ||||
| // Redefine the length of vowels | |||||
| phoneme i | |||||
| CALL vi/i | |||||
| length 150 | |||||
| endphoneme | |||||
| phoneme E | |||||
| CALL vi/E | |||||
| length 150 | |||||
| endphoneme | |||||
| phoneme a: | |||||
| CALL vi/a: | |||||
| length 150 | |||||
| endphoneme | |||||
| phoneme @ | |||||
| CALL vi/@ | |||||
| length 150 | |||||
| endphoneme | |||||
| phoneme @: | |||||
| CALL vi/@: | |||||
| length 150 | |||||
| endphoneme | |||||
| phoneme O | |||||
| CALL vi/O | |||||
| length 150 | |||||
| FMT(vowel/0) | |||||
| endphoneme | |||||
| phoneme Oi | |||||
| CALL vi/Oi | |||||
| length 100 | |||||
| FMT(vdiph/ooi_2) | |||||
| endphoneme |
| //==================================================== | |||||
| // Vietnamese Phonemes - Make Sài gòn Dialect | |||||
| //==================================================== | |||||
| phoneme 1 // ngang tone: level | |||||
| stress | |||||
| Tone(32, 34, envelope/p_level, NULL) | |||||
| endphoneme | |||||
| phoneme 2 // huyền tone: low falling | |||||
| stress | |||||
| Tone(35,20 , envelope/p_fall, NULL) //20 | |||||
| endphoneme | |||||
| phoneme 3 // sắc Tone(rising | |||||
| stress | |||||
| Tone(40,60, envelope/p_rise, NULL) // 25 50 | |||||
| endphoneme | |||||
| phoneme 4 // hỏi Tone(curve (dipping rising) | |||||
| stress | |||||
| Tone(30,50, envelope/p_rise, NULL) //envelope/vi_5amp) // 28,58 | |||||
| endphoneme | |||||
| phoneme 5 // ngã tone: broken (creaking rising) | |||||
| stress | |||||
| Tone(30,50, envelope/p_rise, NULL) //20,80, envelope/p_214, envelope/vi_5amp) // 28,58 | |||||
| endphoneme | |||||
| phoneme 6 // nặng Tone(drop (constricted) | |||||
| stress | |||||
| //length 150 // ignore because it make too short sound 75 // reduce the length of the vowel | |||||
| Tone(10,5, envelope/p_512,NULL) // envelope/vi_6amp) | |||||
| endphoneme | |||||
| phoneme 7 // Tone(1 (ngang) at end of clause | |||||
| stress | |||||
| Tone(40, 20, envelope/p_fall, NULL) | |||||
| endphoneme | |||||
| // Redefine the length of vowels | |||||
| phoneme i | |||||
| CALL vi/i | |||||
| length 150 | |||||
| endphoneme | |||||
| phoneme E | |||||
| CALL vi/E | |||||
| length 150 | |||||
| endphoneme | |||||
| phoneme a: | |||||
| CALL vi/a: | |||||
| length 150 | |||||
| FMT(vietnam/a) | |||||
| endphoneme | |||||
| phoneme @ | |||||
| CALL vi/@ | |||||
| length 150 | |||||
| endphoneme | |||||
| phoneme @: | |||||
| CALL vi/@: | |||||
| length 150 | |||||
| endphoneme | |||||
| phoneme O | |||||
| CALL vi/O | |||||
| length 150 | |||||
| FMT(vowel/0) | |||||
| endphoneme | |||||
| phoneme Oi | |||||
| CALL vi/Oi | |||||
| length 100 | |||||
| FMT(vdiph/ooi_2) | |||||
| endphoneme | |||||
| phoneme y | |||||
| CALL vi/y | |||||
| FMT(vowel/u#_4) | |||||
| endphoneme | |||||
| phoneme o | |||||
| CALL vi/o | |||||
| FMT(vowel/o_5) | |||||
| endphoneme |
| VowelEnding(w/xw, -30) | VowelEnding(w/xw, -30) | ||||
| IF prevPh(isPause) THEN | |||||
| FMT(w/_w) | |||||
| IF prevPhW(isNasal) THEN | |||||
| FMT(w/w) | |||||
| ELSE | ELSE | ||||
| FMT(w/_w) | FMT(w/_w) | ||||
| ENDIF | ENDIF | ||||
| phoneme j | phoneme j | ||||
| liquid palatal | |||||
| liquid palatal starttype #i | |||||
| lengthmod 7 | lengthmod 7 | ||||
| IF nextPhW(isVowel) THEN | IF nextPhW(isVowel) THEN | ||||
| Vowelout f1=0 f2=2300 300 400 f3=-100 80 rms=20 | Vowelout f1=0 f2=2300 300 400 f3=-100 80 rms=20 | ||||
| IF nextPh(isPause) THEN | IF nextPh(isPause) THEN | ||||
| WAV(ufric/x, 110) | |||||
| WAV(ufric/x_, 60) | |||||
| ENDIF | ENDIF | ||||
| WAV(ufric/x_hr, 20) | WAV(ufric/x_hr, 20) | ||||
| endphoneme | endphoneme | ||||
| phonemetable ml hi | phonemetable ml hi | ||||
| include ph_malayalam | include ph_malayalam | ||||
| phonemetable te hi | |||||
| include ph_telugu | |||||
| phonemetable hu base | phonemetable hu base | ||||
| phonemetable vi-hue vi | phonemetable vi-hue vi | ||||
| include ph_vietnam_hue | include ph_vietnam_hue | ||||
| phonemetable vi-sgn vi | |||||
| include ph_vietnam_sgn | |||||
| phonemetable zhy base | phonemetable zhy base | ||||
| include ph_zh_yue | include ph_zh_yue | ||||
| phonemetable fa base | phonemetable fa base | ||||
| include ph_farsi | include ph_farsi | ||||
| // experimental | |||||
| phonemetable ko base | |||||
| include ph_korean | |||||
| phonemetable kl base | |||||
| include ph_greenlandic | |||||
| phonemetable am base | |||||
| include ph_amhari | |||||
| //************************************************************************************** | //************************************************************************************** | ||||
| // The following lines are experimental, for future additions. | // The following lines are experimental, for future additions. | ||||
| // These langauges are not in a usable state. | // These langauges are not in a usable state. | ||||
| // These lines can be deleted. | // These lines can be deleted. | ||||
| phonemetable si hi | |||||
| include ph_sinhala | |||||
| phonemetable sl sk | |||||
| include ph_slovenian | |||||
| //phonemetable rw base2 | |||||
| //include ph_kinyarwanda | |||||
| phonemetable rw base2 | |||||
| include ph_kinyarwanda | |||||
| //phonemetable mr hi | //phonemetable mr hi | ||||
| //include ph_marathi | //include ph_marathi | ||||
| //phonemetable mn base | //phonemetable mn base | ||||
| //include ph_mongolian | //include ph_mongolian | ||||
| //phonemetable prs base | |||||
| //include ph_dari | |||||
| phonemetable prs base | |||||
| include ph_dari | |||||
| phonemetable sl sk | |||||
| include ph_slovenian | |||||
| phonemetable gd base | |||||
| include ph_s_gaelic | |||||
| phonemetable nso base | |||||
| include ph_northern-sotho | |||||
| phonemetable ht fr | |||||
| include ph_haitian | |||||
| phonemetable az tr | |||||
| include ph_azerbaijani | |||||
| phonemetable ak base | |||||
| include ph_akan | |||||
| phonemetable am base | |||||
| include ph_amhari | |||||
| phonemetable wo base | |||||
| include ph_wolof | |||||
| //phonemetable gd base | |||||
| //include ph_s_gaelic | |||||
| phonemetable dv hi | |||||
| include ph_divehi | |||||
| //phonemetable nso base | |||||
| //include ph_northern-sotho | |||||
| phonemetable te hi | |||||
| include ph_telugu | |||||
| //phonemetable ht fr | |||||
| //include ph_haitian | |||||
| phonemetable si hi | |||||
| include ph_sinhala | |||||
| //phonemetable az tr | |||||
| //include ph_azerbaijani | |||||
| phonemetable tn base | |||||
| include ph_setswana | |||||
| //phonemetable ak base | |||||
| //include ph_akan | |||||
| //phonemetable wo base | |||||
| //include ph_wolof | |||||
| phonemetable mt base | |||||
| include ph_maltese | |||||
| //phonemetable dv hi | |||||
| //include ph_divehi | |||||
| phonemetable bo hi | |||||
| include ph_tibetan | |||||
| //phonemetable tn base | |||||
| //include ph_setswana | |||||
| phonemetable kk base | |||||
| include ph_kazakh | |||||
| //phonemetable mt base | |||||
| //include ph_maltese | |||||
| phonemetable tt base | |||||
| include ph_tatar | |||||
| //phonemetable bo hi | |||||
| //include ph_tibetan | |||||
| phonemetable ko base | |||||
| include ph_korean | |||||
| phonemetable kl base | |||||
| include ph_greenlandic | |||||
| //phonemetable kk base | |||||
| //include ph_kazakh | |||||
| phonemetable ar base | |||||
| include ph_arabic | |||||
| //phonemetable tt base | |||||
| //include ph_tatar | |||||
| phonemetable gu hi | |||||
| include ph_gujarati | |||||
| # Toolflags: | # Toolflags: | ||||
| CCflags = -c -C90 -depend !Depend -IC: -throwback -memaccess -zM -L22-S22-L41 | |||||
| C++flags = -c -depend !Depend -IC: -throwback -zM -L22-S22-L41 | |||||
| CCflags = -c -C90 -depend !Depend -IC: -throwback -zM -memaccess -L22-S22-L41 | |||||
| C++flags = -c -depend !Depend -IC: -throwback -zM -memaccess -L22-S22-L41 | |||||
| Linkflags = -rmf -c++ -o $@ | Linkflags = -rmf -c++ -o $@ | ||||
| ObjAsmflags = -throwback -NoCache -depend !Depend | ObjAsmflags = -throwback -NoCache -depend !Depend | ||||
| CMHGflags = | CMHGflags = | ||||
| # User-editable dependencies: | # User-editable dependencies: | ||||
| # Static dependencies: | # Static dependencies: | ||||
| @.o.speak_riscos: @.cpp.speak_riscos | |||||
| c++ $(c++flags) -o @.o.speak_riscos @.cpp.speak_riscos | |||||
| @.o.compiledict: @.cpp.compiledict | |||||
| c++ $(c++flags) -o @.o.compiledict @.cpp.compiledict | |||||
| @.o.dictionary: @.CPP.dictionary | |||||
| c++ $(c++flags) -o @.o.dictionary @.CPP.dictionary | |||||
| @.o.intonation: @.CPP.intonation | |||||
| c++ $(c++flags) -o @.o.intonation @.CPP.intonation | |||||
| @.o.numbers: @.CPP.numbers | |||||
| c++ $(c++flags) -o @.o.numbers @.CPP.numbers | |||||
| @.o.phonemelist: @.CPP.phonemelist | |||||
| c++ $(c++flags) -o @.o.phonemelist @.CPP.phonemelist | |||||
| @.o.readclause: @.CPP.readclause | |||||
| c++ $(c++flags) -o @.o.readclause @.CPP.readclause | |||||
| @.o.setlengths: @.CPP.setlengths | |||||
| c++ $(c++flags) -o @.o.setlengths @.CPP.setlengths | |||||
| @.o.synthdata: @.CPP.synthdata | |||||
| c++ $(c++flags) -o @.o.synthdata @.CPP.synthdata | |||||
| @.o.synth_mbrola: @.CPP.synth_mbrola | |||||
| c++ $(c++flags) -o @.o.synth_mbrola @.CPP.synth_mbrola | |||||
| @.o.synthesize: @.CPP.synthesize | |||||
| c++ $(c++flags) -o @.o.synthesize @.CPP.synthesize | |||||
| @.o.translate: @.CPP.translate | |||||
| c++ $(c++flags) -o @.o.translate @.CPP.translate | |||||
| @.o.tr_languages: @.CPP.tr_languages | |||||
| c++ $(c++flags) -o @.o.tr_languages @.CPP.tr_languages | |||||
| @.o.voices: @.CPP.voices | |||||
| c++ $(c++flags) -o @.o.voices @.CPP.voices | |||||
| @.o.wavegen: @.CPP.wavegen | |||||
| c++ $(c++flags) -o @.o.wavegen @.CPP.wavegen | |||||
| @.o.speak_riscos: @.c.speak_riscos | |||||
| cc $(ccflags) -o @.o.speak_riscos @.c.speak_riscos | |||||
| @.o.compiledict: @.c.compiledict | |||||
| cc $(ccflags) -o @.o.compiledict @.c.compiledict | |||||
| @.o.dictionary: @.c.dictionary | |||||
| cc $(ccflags) -o @.o.dictionary @.c.dictionary | |||||
| @.o.intonation: @.c.intonation | |||||
| cc $(ccflags) -o @.o.intonation @.c.intonation | |||||
| @.o.numbers: @.c.numbers | |||||
| cc $(ccflags) -o @.o.numbers @.c.numbers | |||||
| @.o.phonemelist: @.c.phonemelist | |||||
| cc $(ccflags) -o @.o.phonemelist @.c.phonemelist | |||||
| @.o.readclause: @.c.readclause | |||||
| cc $(ccflags) -o @.o.readclause @.c.readclause | |||||
| @.o.setlengths: @.c.setlengths | |||||
| cc $(ccflags) -o @.o.setlengths @.c.setlengths | |||||
| @.o.synthdata: @.c.synthdata | |||||
| cc $(ccflags) -o @.o.synthdata @.c.synthdata | |||||
| @.o.synth_mbrola: @.c.synth_mbrola | |||||
| cc $(ccflags) -o @.o.synth_mbrola @.c.synth_mbrola | |||||
| @.o.synthesize: @.c.synthesize | |||||
| cc $(ccflags) -o @.o.synthesize @.c.synthesize | |||||
| @.o.translate: @.c.translate | |||||
| cc $(ccflags) -o @.o.translate @.c.translate | |||||
| @.o.tr_languages: @.c.tr_languages | |||||
| cc $(ccflags) -o @.o.tr_languages @.c.tr_languages | |||||
| @.o.voices: @.c.voices | |||||
| cc $(ccflags) -o @.o.voices @.c.voices | |||||
| @.o.wavegen: @.c.wavegen | |||||
| cc $(ccflags) -o @.o.wavegen @.c.wavegen | |||||
| @.o.assemb: @.s.assemb | @.o.assemb: @.s.assemb | ||||
| objasm $(objasmflags) -from @.s.assemb -to @.o.assemb | objasm $(objasmflags) -from @.s.assemb -to @.o.assemb | ||||
| # Dynamic dependencies: | # Dynamic dependencies: | ||||
| o.wavegen: c.wavegen | |||||
| o.wavegen: h.StdAfx | |||||
| o.wavegen: h.speak_lib | |||||
| o.wavegen: h.speech | |||||
| o.wavegen: h.phoneme | |||||
| o.wavegen: h.synthesize | |||||
| o.wavegen: h.voice | |||||
| o.wavegen: h.sintab | |||||
| o.speak_riscos: c.speak_riscos | |||||
| o.speak_riscos: C:h.kernel | |||||
| o.speak_riscos: h.speech | |||||
| o.speak_riscos: h.speak_lib | |||||
| o.speak_riscos: h.phoneme | |||||
| o.speak_riscos: h.synthesize | |||||
| o.speak_riscos: h.voice | |||||
| o.speak_riscos: h.translate | |||||
| o.synthdata: c.synthdata | |||||
| o.synthdata: h.StdAfx | |||||
| o.synthdata: h.wctype | |||||
| o.synthdata: h.speak_lib | |||||
| o.synthdata: h.speech | |||||
| o.synthdata: h.phoneme | |||||
| o.synthdata: h.synthesize | |||||
| o.synthdata: h.voice | |||||
| o.synthdata: h.translate | |||||
| o.synthdata: h.wave | |||||
| o.synthdata: C:h.stdint |
| #define os_X 0x20000 | #define os_X 0x20000 | ||||
| // interface to the assembler section | // interface to the assembler section | ||||
| extern "C" { | |||||
| //extern "C" { | |||||
| extern void DMA_Handler(void); | extern void DMA_Handler(void); | ||||
| extern int sound_handler(_kernel_swi_regs *r, void *pw); | extern int sound_handler(_kernel_swi_regs *r, void *pw); | ||||
| extern int sound_entry(_kernel_swi_regs *r, void *pw); | extern int sound_entry(_kernel_swi_regs *r, void *pw); | ||||
| } | |||||
| //} | |||||
| extern int Generate(PHONEME_LIST *phoneme_list, int *n_ph, int resume); | extern int Generate(PHONEME_LIST *phoneme_list, int *n_ph, int resume); | ||||
| extern void RiscosOpenSound(); | extern void RiscosOpenSound(); | ||||
| char wavefile[120]; | char wavefile[120]; | ||||
| char textbuffile[L_tmpnam]; | char textbuffile[L_tmpnam]; | ||||
| int sample_rate_index; // current value | int sample_rate_index; // current value | ||||
| int current_voice_num=0; | |||||
| int sample_rate_doubled = 0; // 1= write audio data at 2x sample rate | |||||
| char current_voice_name[40] = {0}; | |||||
| int n_voice_files = 0; | int n_voice_files = 0; | ||||
| int n_voice_variant_files = 0; | int n_voice_variant_files = 0; | ||||
| // output sound buffer, 2 bytes per sample | // output sound buffer, 2 bytes per sample | ||||
| static unsigned short SoundBuf[4096]; | |||||
| static short SoundBuf[4096]; | |||||
| static void *module_data; | static void *module_data; | ||||
| static int callback_inhibit = 0; | static int callback_inhibit = 0; | ||||
| static int more_text=0; | static int more_text=0; | ||||
| "--punct=\"<characters>\"\n" | "--punct=\"<characters>\"\n" | ||||
| "\t Speak the names of punctuation characters during speaking. If\n" | "\t Speak the names of punctuation characters during speaking. If\n" | ||||
| "\t =<characters> is omitted, all punctuation is spoken.\n" | "\t =<characters> is omitted, all punctuation is spoken.\n" | ||||
| "--voices=<language>\n" | |||||
| "\t List the available voices for the specified language.\n" | |||||
| "\t If <language> is omitted, then list all voices.\n" | |||||
| "--voices=\n" | |||||
| "\t List the available voices. (More voices can be installed from the main eSpeak distribution)\n" | |||||
| "--voices=variant\n" | |||||
| "\t List the available voice variants which can be combined with voices, eg. en+f3\n" | |||||
| "-k <integer>\n" | "-k <integer>\n" | ||||
| "\t Indicate capital letters with: 1=sound, 2=the word \"capitals\",\n" | "\t Indicate capital letters with: 1=sound, 2=the word \"capitals\",\n" | ||||
| "\t higher values = a pitch increase (try -k20).\n"; | "\t higher values = a pitch increase (try -k20).\n"; | ||||
| } /* end of GetFileLength */ | } /* end of GetFileLength */ | ||||
| void MarkerEvent(int type, unsigned int char_position, int value, int value2, unsigned char *out_ptr) | |||||
| { | |||||
| } | |||||
| void ReadVoiceNames2(char *directory) | void ReadVoiceNames2(char *directory) | ||||
| {//================================== | {//================================== | ||||
| path_len = strlen(directory); | path_len = strlen(directory); | ||||
| voice_variant_names[0] = "(none)"; | |||||
| n_voice_variant_files = 1; | |||||
| while(regs.r[3] > 0) | while(regs.r[3] > 0) | ||||
| { | { | ||||
| error = _kernel_swi(0x0c+os_X,®s,®s); /* OS_GBPB 10, read directory entries */ | error = _kernel_swi(0x0c+os_X,®s,®s); /* OS_GBPB 10, read directory entries */ | ||||
| void MarkerEvent(int type, unsigned int char_position, int value, unsigned char *out_ptr) | |||||
| {//====================================================================================== | |||||
| void MarkerEvent(int type, unsigned int char_position, int value, int value2, unsigned char *out_ptr) | |||||
| {//================================================================================================= | |||||
| // Do nothing in the command-line version. | // Do nothing in the command-line version. | ||||
| } // end of MarkerEvent | } // end of MarkerEvent | ||||
| { | { | ||||
| int c; | int c; | ||||
| int ix; | int ix; | ||||
| char *vname; | |||||
| static static_length=0; | static static_length=0; | ||||
| static int user_token=0; /* increment for each call of translate() */ | static int user_token=0; /* increment for each call of translate() */ | ||||
| _kernel_swi_regs regs; | _kernel_swi_regs regs; | ||||
| option_endpause = 1; | option_endpause = 1; | ||||
| if((voice_num >= 0) && (voice_num != current_voice_num) && (voice_num < N_VOICE_NAMES)) | |||||
| vname = voice_names[voice_num]; | |||||
| if((voice_num >= 0) && (strcmp(vname, current_voice_name) != 0) && (voice_num < N_VOICE_NAMES)) | |||||
| { | { | ||||
| SetVoiceByName(voice_names[voice_num]); | SetVoiceByName(voice_names[voice_num]); | ||||
| WavegenSetVoice(voice); | |||||
| WavegenSetVoice(voice); | |||||
| } | } | ||||
| current_voice_num = voice_num; | |||||
| strcmp(current_voice_name, vname); | |||||
| /* don't count CR as terminator if length is specified */ | /* don't count CR as terminator if length is specified */ | ||||
| if(len > 0) terminator = 0; | if(len > 0) terminator = 0; | ||||
| option_waveout = 0; | option_waveout = 0; | ||||
| option_multibyte = 0; // auto | option_multibyte = 0; // auto | ||||
| option_capitals = 0; | option_capitals = 0; | ||||
| option_punctuation = 0; | |||||
| option_punctlist[0] = 0; | |||||
| if(reg2 >= 0) | |||||
| { | |||||
| // not using SWI_SPEAK+14 to set voice and punctiation option | |||||
| option_punctuation = 0; | |||||
| option_punctlist[0] = 0; | |||||
| } | |||||
| else | |||||
| { | |||||
| SetParameter(espeakPUNCTUATION,option_punctuation,0); | |||||
| } | |||||
| } /* end of set_say_options */ | } /* end of set_say_options */ | ||||
| case 3: | case 3: | ||||
| // translate into phonemes | // translate into phonemes | ||||
| use_ipa = 0; | use_ipa = 0; | ||||
| if((r[2] >= 1) && (use_ipa <= 3)) | |||||
| if((r[2] >= 1) && (r[2] <= 5)) | |||||
| use_ipa = r[2]; | use_ipa = r[2]; | ||||
| TranslateClause(translator,NULL,(char *)r[1],NULL,NULL); | TranslateClause(translator,NULL,(char *)r[1],NULL,NULL); | ||||
| GetTranslatedPhonemeString(translator->phon_out, sizeof(translator->phon_out), use_ipa); | GetTranslatedPhonemeString(translator->phon_out, sizeof(translator->phon_out), use_ipa); | ||||
| if(r[1] < N_VOICE_NAMES) | if(r[1] < N_VOICE_NAMES) | ||||
| { | { | ||||
| SetVoiceByName(voice_names[r[1]]); | SetVoiceByName(voice_names[r[1]]); | ||||
| current_voice_num = r[1]; | |||||
| strcmp(current_voice_name, voice_names[r[1]]); | |||||
| WavegenSetVoice(voice); | WavegenSetVoice(voice); | ||||
| } | } | ||||
| break; | break; | ||||
| int value; | int value; | ||||
| int value2; | int value2; | ||||
| int q_length; | int q_length; | ||||
| char *p; | |||||
| int ix; | |||||
| value = r[0]; | value = r[0]; | ||||
| switch(swi_no) | switch(swi_no) | ||||
| case 0: // ready ? | case 0: // ready ? | ||||
| // returns the index into the source text of the currently speaking word | // returns the index into the source text of the currently speaking word | ||||
| if(current_source_index > 0) | |||||
| r[1] = current_source_index-1; | |||||
| ix = current_source_index & 0x7ff; | |||||
| if(ix > 0) | |||||
| r[1] = ix-1; | |||||
| else | else | ||||
| r[1] = current_source_index; /* source index */ | |||||
| r[1] = ix; /* source index */ | |||||
| r[2] = 0; /* source tag */ | r[2] = 0; /* source tag */ | ||||
| r[3] = 0; /* for future expansion */ | r[3] = 0; /* for future expansion */ | ||||
| r[4] = 0; | r[4] = 0; | ||||
| r[5] = 0; | r[5] = 0; | ||||
| if(WcmdqUsed() < 5) | |||||
| if((WcmdqUsed() < 5) && (more_text == 0)) | |||||
| { | { | ||||
| r[0] = -1; /* ready, or nearly */ | r[0] = -1; /* ready, or nearly */ | ||||
| } | } | ||||
| break; | break; | ||||
| case 14: // set voice by name | case 14: // set voice by name | ||||
| SetVoiceByName((char *)r[0]); | |||||
| WavegenSetVoice(voice); | |||||
| p = (char *)r[0]; | |||||
| if(strcmp(p, current_voice_name) != 0) | |||||
| { | |||||
| SetVoiceByName(p); | |||||
| WavegenSetVoice(voice); | |||||
| strcpy(current_voice_name, p); | |||||
| } | |||||
| option_punctuation = 0; | |||||
| if(r[1] != 0) | |||||
| { | |||||
| p = (char *)r[1]; | |||||
| if(p[0] == 0) | |||||
| option_punctuation = 1; | |||||
| else | |||||
| { | |||||
| for(ix=0; ix < N_PUNCTLIST; ix++) | |||||
| { | |||||
| if((option_punctlist[ix] = p[ix]) == 0) | |||||
| break; | |||||
| } | |||||
| option_punctlist[N_PUNCTLIST-1] = 0; | |||||
| option_punctuation = 2; | |||||
| } | |||||
| } | |||||
| break; | break; | ||||
| } | } | ||||
| return(NULL); | return(NULL); | ||||
| const espeak_VOICE **voices; | const espeak_VOICE **voices; | ||||
| espeak_VOICE voice_select; | espeak_VOICE voice_select; | ||||
| static char genders[4] = {' ','M','F',' '}; | |||||
| static char genders[4] = {'-','M','F','-'}; | |||||
| if(language[0] == '=') | if(language[0] == '=') | ||||
| { | { | ||||
| { | { | ||||
| count = 0; | count = 0; | ||||
| p = v->languages; | p = v->languages; | ||||
| if(memcmp(language,"=variant",8)==0) | |||||
| { | |||||
| if(strcmp(p+1,"variant") != 0) | |||||
| continue; | |||||
| } | |||||
| else | |||||
| if(language[0] == 0) | |||||
| { | |||||
| if(strcmp(p+1,"variant") == 0) | |||||
| continue; | |||||
| } | |||||
| while(*p != 0) | while(*p != 0) | ||||
| { | { | ||||
| len = strlen(p+1); | len = strlen(p+1); | ||||
| lang_name = p+1; | lang_name = p+1; | ||||
| if(v->age == 0) | if(v->age == 0) | ||||
| strcpy(age_buf," "); | strcpy(age_buf," "); | ||||
| else | else | ||||
| count++; | count++; | ||||
| p += len+2; | p += len+2; | ||||
| } | } | ||||
| // if(scores) | |||||
| // fprintf(f_out,"%3d ",v->score); | |||||
| fputc('\n',f_out); | fputc('\n',f_out); | ||||
| } | } | ||||
| } // end of DisplayVoices | } // end of DisplayVoices | ||||
| int option_index = 0; | int option_index = 0; | ||||
| int c; | int c; | ||||
| int value; | int value; | ||||
| int speed; | |||||
| int amp; | |||||
| int wordgap; | |||||
| int speed = 175; | |||||
| int amp = 100; | |||||
| int wordgap = 0; | |||||
| int speaking = 0; | int speaking = 0; | ||||
| int flag_stdin = 0; | int flag_stdin = 0; | ||||
| int flag_compile = 0; | int flag_compile = 0; | ||||
| char command[80]; | char command[80]; | ||||
| char *p; | char *p; | ||||
| int ix; | int ix; | ||||
| int quiet; | |||||
| int quiet = 0; | |||||
| voicename[0] = 0; | voicename[0] = 0; | ||||
| wavefile[0] = 0; | wavefile[0] = 0; | ||||
| filename[0] = 0; | filename[0] = 0; | ||||
| option_ssml = 0; | |||||
| option_linelength = 0; | option_linelength = 0; | ||||
| option_phonemes = 0; | option_phonemes = 0; | ||||
| option_waveout = 0; | option_waveout = 0; | ||||
| quiet = 0; | |||||
| option_multibyte = 0; // auto | option_multibyte = 0; // auto | ||||
| option_capitals = 0; | option_capitals = 0; | ||||
| option_punctuation = 0; | option_punctuation = 0; | ||||
| case 'k': | case 'k': | ||||
| option_capitals = param_number(&p); | option_capitals = param_number(&p); | ||||
| SetParameter(espeakCAPITALS,option_capitals,0); | |||||
| break; | break; | ||||
| case 'x': | case 'x': | ||||
| case 'a': | case 'a': | ||||
| amp = param_number(&p); | amp = param_number(&p); | ||||
| SetParameter(espeakVOLUME,amp,0); | |||||
| break; | break; | ||||
| case 's': | case 's': | ||||
| speed = param_number(&p); | speed = param_number(&p); | ||||
| SetParameter(espeakRATE,speed,0); | |||||
| break; | break; | ||||
| case 'g': | case 'g': | ||||
| wordgap = param_number(&p); | wordgap = param_number(&p); | ||||
| SetParameter(espeakWORDGAP,wordgap,0); | |||||
| break; | break; | ||||
| case 'v': | case 'v': | ||||
| option_punctlist[N_PUNCTLIST-1] = 0; | option_punctlist[N_PUNCTLIST-1] = 0; | ||||
| option_punctuation = 2; | option_punctuation = 2; | ||||
| } | } | ||||
| SetParameter(espeakPUNCTUATION,option_punctuation,0); | |||||
| } | } | ||||
| else | else | ||||
| if(memcmp(command,"version",7)==0) | if(memcmp(command,"version",7)==0) | ||||
| } | } | ||||
| } | } | ||||
| SetParameter(espeakCAPITALS,option_capitals,0); | |||||
| SetParameter(espeakWORDGAP,wordgap,0); | |||||
| SetParameter(espeakPUNCTUATION,option_punctuation,0); | |||||
| SetParameter(espeakRATE,speed,0); | |||||
| SetParameter(espeakVOLUME,amp,0); | |||||
| if((option_phonemes > 1) && !option_waveout) | if((option_phonemes > 1) && !option_waveout) | ||||
| quiet = 1; // can't call sprintf() during callback | quiet = 1; // can't call sprintf() during callback | ||||
| int size; | int size; | ||||
| int *dma_buf; | int *dma_buf; | ||||
| int x; | int x; | ||||
| int x2; | |||||
| int ix; | int ix; | ||||
| module_data = (int *)pw; | module_data = (int *)pw; | ||||
| dma_buf = (int *)r->r[1]; | dma_buf = (int *)r->r[1]; | ||||
| size = (r->r[2] - r->r[1])/4; | size = (r->r[2] - r->r[1])/4; | ||||
| FillSoundBuf(size); | |||||
| if(sample_rate_doubled == 0) | |||||
| { | |||||
| FillSoundBuf(size); | |||||
| for(ix=0; ix<size; ix++) | |||||
| for(ix=0; ix<size; ix++) | |||||
| { | |||||
| x = SoundBuf[ix] & 0xffff; | |||||
| dma_buf[ix] = x + (x << 16); | |||||
| } | |||||
| } | |||||
| else | |||||
| { | { | ||||
| x = SoundBuf[ix]; | |||||
| dma_buf[ix] = x + (x << 16); | |||||
| // write audio data at 2x sample rate | |||||
| size = size /2; | |||||
| FillSoundBuf(size); | |||||
| for(ix=0; ix<size; ix++) | |||||
| { | |||||
| x = SoundBuf[ix] & 0xffff; | |||||
| dma_buf[ix*2] = x + (x << 16); | |||||
| if((ix+1) < size) | |||||
| { | |||||
| x = ((SoundBuf[ix] + SoundBuf[ix+1]) / 2) & 0xffff; // interpolate | |||||
| } | |||||
| dma_buf[ix*2 + 1] = x + (x << 16); | |||||
| } | |||||
| } | } | ||||
| n_queue = WcmdqUsed(); | n_queue = WcmdqUsed(); | ||||
| int srate; | int srate; | ||||
| int n_srix; | int n_srix; | ||||
| int ix; | int ix; | ||||
| int double_rate_ix = -1; | |||||
| int nearest_ix; | |||||
| int nearest_diff = 0x7fffffff; | |||||
| int diff; | |||||
| _kernel_swi_regs regs; | _kernel_swi_regs regs; | ||||
| _kernel_oserror *error; | _kernel_oserror *error; | ||||
| sound_mode = 0; | sound_mode = 0; | ||||
| sample_rate_doubled = 0; | |||||
| regs.r[0] = 0; | regs.r[0] = 0; | ||||
| error = _kernel_swi(0x40144+os_X,®s,®s); | error = _kernel_swi(0x40144+os_X,®s,®s); | ||||
| sound_mode = regs.r[0]; | sound_mode = regs.r[0]; | ||||
| /* 16 bit sound, find sample rate index */ | /* 16 bit sound, find sample rate index */ | ||||
| regs.r[0] = 0; | regs.r[0] = 0; | ||||
| regs.r[1] = 0; | regs.r[1] = 0; | ||||
| _kernel_swi(0x40146,®s,®s); | |||||
| _kernel_swi(0x40146,®s,®s); // Sound_SampleRate | |||||
| n_srix = regs.r[1]; | n_srix = regs.r[1]; | ||||
| regs.r[0] = 1; | regs.r[0] = 1; | ||||
| regs.r[0] = 2; | regs.r[0] = 2; | ||||
| regs.r[1] = ix; | regs.r[1] = ix; | ||||
| _kernel_swi(0x40146,®s,®s); | _kernel_swi(0x40146,®s,®s); | ||||
| srate = regs.r[2]; | |||||
| if(srate >= (sample_rate*1024)) | |||||
| srate = regs.r[2] / 1024; | |||||
| if(srate == sample_rate) | |||||
| { | { | ||||
| return(ix); | return(ix); | ||||
| } | } | ||||
| if(srate == sample_rate*2) | |||||
| { | |||||
| double_rate_ix = ix; | |||||
| } | |||||
| if((diff = abs(sample_rate - srate)) < nearest_diff) | |||||
| { | |||||
| nearest_diff = diff; | |||||
| nearest_ix = ix; | |||||
| } | |||||
| } | } | ||||
| } | } | ||||
| return(14); // this was the index for 22050 | |||||
| if(double_rate_ix >= 0) | |||||
| { | |||||
| // matching sample rate is not available, but double this rate is. | |||||
| sample_rate_doubled = 1; | |||||
| return(double_rate_ix); | |||||
| } | |||||
| else | |||||
| { | |||||
| return(nearest_ix); | |||||
| } | |||||
| } // end of InitSound16 | } // end of InitSound16 | ||||
| // other characters give the correct results with iswalpha() etc. | // other characters give the correct results with iswalpha() etc. | ||||
| static char *locale = "ISO8859-1"; | static char *locale = "ISO8859-1"; | ||||
| setlocale(LC_CTYPE,locale); | |||||
| setlocale(LC_CTYPE,locale); | |||||
| module_data = pw; | module_data = pw; | ||||
| copy <obey$dir>.^.src.compiledict/cpp <obey$dir>.cpp.compiledict fq~c | |||||
| copy <obey$dir>.^.src.dictionary/cpp <obey$dir>.cpp.dictionary fq~c | |||||
| copy <obey$dir>.^.src.intonation/cpp <obey$dir>.cpp.intonation fq~c | |||||
| copy <obey$dir>.^.src.numbers/cpp <obey$dir>.cpp.numbers fq~c | |||||
| copy <obey$dir>.^.src.phonemelist/cpp <obey$dir>.cpp.phonemelist fq~c | |||||
| copy <obey$dir>.^.src.readclause/cpp <obey$dir>.cpp.readclause fq~c | |||||
| copy <obey$dir>.^.src.setlengths/cpp <obey$dir>.cpp.setlengths fq~c | |||||
| copy <obey$dir>.^.src.synthdata/cpp <obey$dir>.cpp.synthdata fq~c | |||||
| copy <obey$dir>.^.src.synth_mbrola/cpp <obey$dir>.cpp.synth_mbrola fq~c | |||||
| copy <obey$dir>.^.src.synthesize/cpp <obey$dir>.cpp.synthesize fq~c | |||||
| copy <obey$dir>.^.src.translate/cpp <obey$dir>.cpp.translate fq~c | |||||
| copy <obey$dir>.^.src.tr_languages/cpp <obey$dir>.cpp.tr_languages fq~c | |||||
| copy <obey$dir>.^.src.voices/cpp <obey$dir>.cpp.voices fq~c | |||||
| copy <obey$dir>.^.src.wavegen/cpp <obey$dir>.cpp.wavegen fq~c | |||||
| copy <obey$dir>.^.src.compiledict/cpp <obey$dir>.c.compiledict fq~c | |||||
| copy <obey$dir>.^.src.dictionary/cpp <obey$dir>.c.dictionary fq~c | |||||
| copy <obey$dir>.^.src.intonation/cpp <obey$dir>.c.intonation fq~c | |||||
| copy <obey$dir>.^.src.numbers/cpp <obey$dir>.c.numbers fq~c | |||||
| copy <obey$dir>.^.src.phonemelist/cpp <obey$dir>.c.phonemelist fq~c | |||||
| copy <obey$dir>.^.src.readclause/cpp <obey$dir>.c.readclause fq~c | |||||
| copy <obey$dir>.^.src.setlengths/cpp <obey$dir>.c.setlengths fq~c | |||||
| copy <obey$dir>.^.src.synthdata/cpp <obey$dir>.c.synthdata fq~c | |||||
| copy <obey$dir>.^.src.synth_mbrola/cpp <obey$dir>.c.synth_mbrola fq~c | |||||
| copy <obey$dir>.^.src.synthesize/cpp <obey$dir>.c.synthesize fq~c | |||||
| copy <obey$dir>.^.src.translate/cpp <obey$dir>.c.translate fq~c | |||||
| copy <obey$dir>.^.src.tr_languages/cpp <obey$dir>.c.tr_languages fq~c | |||||
| copy <obey$dir>.^.src.voices/cpp <obey$dir>.c.voices fq~c | |||||
| copy <obey$dir>.^.src.wavegen/cpp <obey$dir>.c.wavegen fq~c | |||||
| copy <obey$dir>.^.src.phoneme/h <obey$dir>.h.phoneme fq~c | copy <obey$dir>.^.src.phoneme/h <obey$dir>.h.phoneme fq~c | ||||
| copy <obey$dir>.^.src.sintab/h <obey$dir>.h.sintab fq~c | copy <obey$dir>.^.src.sintab/h <obey$dir>.h.sintab fq~c |
| [Setup] | [Setup] | ||||
| AppName=eSpeak | AppName=eSpeak | ||||
| AppVerName=eSpeak version 1.47.04 | |||||
| AppVerName=eSpeak version 1.47.08 | |||||
| AppCopyright=Licensed under GNU General Public License version 3. (See file License.txt for details). | AppCopyright=Licensed under GNU General Public License version 3. (See file License.txt for details). | ||||
| WindowVisible=yes | WindowVisible=yes | ||||
| [Setup] | [Setup] | ||||
| AppName=eSpeakEdit | AppName=eSpeakEdit | ||||
| AppVerName=eSpeakEdit version 1.47.04 | |||||
| AppVerName=eSpeakEdit version 1.47.08 | |||||
| DefaultDirName={pf}\eSpeak | DefaultDirName={pf}\eSpeak | ||||
| DefaultGroupName=eSpeak | DefaultGroupName=eSpeak | ||||
| OutputBaseFilename=setup_espeakedit | OutputBaseFilename=setup_espeakedit |
| static void InstnPlusPhoneme(int instn) | static void InstnPlusPhoneme(int instn) | ||||
| {//==================================== | {//==================================== | ||||
| int phcode; | int phcode; | ||||
| DecThenCount(); | |||||
| phcode = NextItemBrackets(tPHONEMEMNEM,0); | phcode = NextItemBrackets(tPHONEMEMNEM,0); | ||||
| *prog_out++ = instn + phcode; | *prog_out++ = instn + phcode; | ||||
| case i_CHANGE_IF+2: | case i_CHANGE_IF+2: | ||||
| case i_CHANGE_IF+3: | case i_CHANGE_IF+3: | ||||
| InstnPlusPhoneme(keyword << 8); | InstnPlusPhoneme(keyword << 8); | ||||
| DecThenCount(); | |||||
| break; | break; | ||||
| case i_PAUSE_BEFORE: | case i_PAUSE_BEFORE: | ||||
| value = NextItemMax(255); | value = NextItemMax(255); | ||||
| *prog_out++ = (i_PAUSE_BEFORE << 8) + value; | *prog_out++ = (i_PAUSE_BEFORE << 8) + value; | ||||
| DecThenCount(); | |||||
| break; | break; | ||||
| case i_PAUSE_AFTER: | case i_PAUSE_AFTER: | ||||
| value = NextItemMax(255); | value = NextItemMax(255); | ||||
| *prog_out++ = (i_PAUSE_AFTER << 8) + value; | *prog_out++ = (i_PAUSE_AFTER << 8) + value; | ||||
| DecThenCount(); | |||||
| break; | break; | ||||
| case i_SET_LENGTH: | case i_SET_LENGTH: | ||||
| { | { | ||||
| *prog_out++ = (ipa_buf[ix+start] << 8) + (ipa_buf[ix+start+1] & 0xff); | *prog_out++ = (ipa_buf[ix+start] << 8) + (ipa_buf[ix+start+1] & 0xff); | ||||
| } | } | ||||
| DecThenCount(); | |||||
| break; | break; | ||||
| } | } | ||||
| break; | break; | ||||
| case kCALLPH: | case kCALLPH: | ||||
| CallPhoneme(); | CallPhoneme(); | ||||
| DecThenCount(); | |||||
| break; | break; | ||||
| case kFMT: | case kFMT: | ||||
| break; | break; | ||||
| case kTONESPEC: | case kTONESPEC: | ||||
| DecThenCount(); | |||||
| endphoneme = CompileToneSpec(); | endphoneme = CompileToneSpec(); | ||||
| break; | break; | ||||
| {"$stem", 0x30}, // must have a suffix | {"$stem", 0x30}, // must have a suffix | ||||
| {"$atend", 0x31}, // use this pronunciation if at end of clause | {"$atend", 0x31}, // use this pronunciation if at end of clause | ||||
| {"$atstart", 0x32}, // use this pronunciation at start of clause | {"$atstart", 0x32}, // use this pronunciation at start of clause | ||||
| {"$native", 0x33}, // not if we've switched translators | |||||
| // doesn't set dictionary_flags | // doesn't set dictionary_flags | ||||
| {"$?", 100}, // conditional rule, followed by byte giving the condition number | {"$?", 100}, // conditional rule, followed by byte giving the condition number | ||||
| ix = utf8_in(&c2,p); | ix = utf8_in(&c2,p); | ||||
| if(c2 == 0) | if(c2 == 0) | ||||
| break; | break; | ||||
| if(iswupper(c2)) | |||||
| if(iswupper2(c2)) | |||||
| { | { | ||||
| utf8_out(towlower(c2),p); | |||||
| utf8_out(towlower2(c2),p); | |||||
| } | } | ||||
| else | else | ||||
| { | { |
| unsigned short ipa1[96] = { | unsigned short ipa1[96] = { | ||||
| 0x20,0x21,0x22,0x2b0,0x24,0x25,0x0e6,0x2c8,0x28,0x27e,0x2a,0x2b,0x2cc,0x2d,0x2e,0x2f, | 0x20,0x21,0x22,0x2b0,0x24,0x25,0x0e6,0x2c8,0x28,0x27e,0x2a,0x2b,0x2cc,0x2d,0x2e,0x2f, | ||||
| 0x252,0x31,0x32,0x25c,0x34,0x35,0x36,0x37,0x275,0x39,0x2d0,0x2b2,0x3c,0x3d,0x3e,0x294, | 0x252,0x31,0x32,0x25c,0x34,0x35,0x36,0x37,0x275,0x39,0x2d0,0x2b2,0x3c,0x3d,0x3e,0x294, | ||||
| 0x259,0x251,0x3b2,0xe7,0xf0,0x25b,0x46,0x262,0x127,0x26a,0x25f,0x4b,0x29f,0x271,0x14b,0x254, | |||||
| 0x259,0x251,0x3b2,0xe7,0xf0,0x25b,0x46,0x262,0x127,0x26a,0x25f,0x4b,0x26b,0x271,0x14b,0x254, | |||||
| 0x3a6,0x263,0x280,0x283,0x3b8,0x28a,0x28c,0x153,0x3c7,0xf8,0x292,0x32a,0x5c,0x5d,0x5e,0x5f, | 0x3a6,0x263,0x280,0x283,0x3b8,0x28a,0x28c,0x153,0x3c7,0xf8,0x292,0x32a,0x5c,0x5d,0x5e,0x5f, | ||||
| 0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x261,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f, | 0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x261,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f, | ||||
| 0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x303,0x7f | 0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x303,0x7f | ||||
| void GetTranslatedPhonemeString(char *phon_out, int n_phon_out, int use_ipa) | |||||
| {//========================================================================= | |||||
| /* Can be called after a clause has been translated into phonemes, in order | |||||
| void GetTranslatedPhonemeString(char *phon_out, int n_phon_out, int phoneme_mode) | |||||
| {//=============================================================================== | |||||
| /* Called after a clause has been translated into phonemes, in order | |||||
| to display the clause in phoneme mnemonic form. | to display the clause in phoneme mnemonic form. | ||||
| phoneme_mode bits 0-3: 0=only phoneme names, 1=ties, 2=ZWJ, 3=underscore separator | |||||
| bit 4: 0=eSpeak phoneme names, 1=IPA | |||||
| */ | */ | ||||
| int ix; | int ix; | ||||
| char *buf; | char *buf; | ||||
| int count; | int count; | ||||
| int flags; | int flags; | ||||
| int use_ipa; | |||||
| int use_tie; | |||||
| int separate_phonemes = 0; | |||||
| char phon_buf[30]; | char phon_buf[30]; | ||||
| char phon_buf2[30]; | char phon_buf2[30]; | ||||
| PHONEME_LIST *plist; | PHONEME_LIST *plist; | ||||
| static const char *stress_chars = "==,,''"; | static const char *stress_chars = "==,,''"; | ||||
| static const int char_tie[] = {0x0361, 0x200d}; // combining-double-inverted-breve, zero-width-joiner | static const int char_tie[] = {0x0361, 0x200d}; // combining-double-inverted-breve, zero-width-joiner | ||||
| use_ipa = phoneme_mode & 0x10; | |||||
| use_tie = phoneme_mode & 0x0f; | |||||
| if(use_tie >= 3) | |||||
| { | |||||
| // separate individual phonemes with underscores | |||||
| separate_phonemes = '_'; | |||||
| use_tie = 0; | |||||
| } | |||||
| if(phon_out != NULL) | if(phon_out != NULL) | ||||
| { | { | ||||
| for(ix=1; ix<(n_phoneme_list-2); ix++) | for(ix=1; ix<(n_phoneme_list-2); ix++) | ||||
| buf = phon_buf; | buf = phon_buf; | ||||
| plist = &phoneme_list[ix]; | plist = &phoneme_list[ix]; | ||||
| WritePhMnemonic(phon_buf2, plist->ph, plist, use_ipa, &flags); | |||||
| if(plist->newword) | if(plist->newword) | ||||
| *buf++ = ' '; | *buf++ = ' '; | ||||
| else | |||||
| { | |||||
| if((separate_phonemes != 0) && (ix > 1)) | |||||
| { | |||||
| utf8_in(&c, phon_buf2); | |||||
| if((c < 0x2b0) || (c > 0x36f)) // not if the phoneme starts with a superscript letter | |||||
| { | |||||
| *buf++ = separate_phonemes; | |||||
| } | |||||
| } | |||||
| } | |||||
| if(plist->synthflags & SFLAG_SYLLABLE) | if(plist->synthflags & SFLAG_SYLLABLE) | ||||
| { | { | ||||
| if(c != 0) | if(c != 0) | ||||
| { | { | ||||
| buf += utf8_out(c, buf); | buf += utf8_out(c, buf); | ||||
| // if(separate_phonemes) | |||||
| // *buf++ = separate_phonemes; | |||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| flags = 0; | flags = 0; | ||||
| WritePhMnemonic(phon_buf2, plist->ph, plist, use_ipa, &flags); | |||||
| count = 0; | count = 0; | ||||
| for(p=phon_buf2; *p != 0;) | for(p=phon_buf2; *p != 0;) | ||||
| { | { | ||||
| p += utf8_in(&c, p); | p += utf8_in(&c, p); | ||||
| if(use_ipa > 1) | |||||
| if(use_tie > 0) | |||||
| { | { | ||||
| // look for non-inital alphabetic character, but not diacritic, superscript etc. | // look for non-inital alphabetic character, but not diacritic, superscript etc. | ||||
| if((count>0) && !(flags & (1 << (count-1))) && ((c < 0x2b0) || (c > 0x36f)) && iswalpha(c)) | |||||
| if((count>0) && !(flags & (1 << (count-1))) && ((c < 0x2b0) || (c > 0x36f)) && iswalpha2(c)) | |||||
| { | { | ||||
| buf += utf8_out(char_tie[use_ipa-2], buf); | |||||
| buf += utf8_out(char_tie[use_tie-1], buf); | |||||
| } | } | ||||
| } | } | ||||
| buf += utf8_out(c, buf); | buf += utf8_out(c, buf); | ||||
| if(count==0) | if(count==0) | ||||
| c1 = c; | c1 = c; | ||||
| count++; | |||||
| if((c == '\'') && (tr->langopts.param[LOPT_UNPRONOUNCABLE] == 3)) | |||||
| { | |||||
| // don't count apostrophe | |||||
| } | |||||
| else | |||||
| count++; | |||||
| if(IsVowel(tr, c)) | if(IsVowel(tr, c)) | ||||
| { | { | ||||
| break; | break; | ||||
| } | } | ||||
| if((c != '\'') && !iswalpha(c)) | |||||
| if((c != '\'') && !iswalpha2(c)) | |||||
| return(0); | return(0); | ||||
| } | } | ||||
| if(!(control & 1) && ((ph = phoneme_tab[*p]) != NULL)) | if(!(control & 1) && ((ph = phoneme_tab[*p]) != NULL)) | ||||
| { | { | ||||
| if(ph->type == phSTRESS) | |||||
| ph = phoneme_tab[p[1]]; | |||||
| while((ph->type == phSTRESS) || (*p == phonEND_WORD)) | |||||
| { | |||||
| p++; | |||||
| ph = phoneme_tab[p[0]]; | |||||
| } | |||||
| #ifdef deleted | #ifdef deleted | ||||
| int gap = tr->langopts.word_gap & 0x700; | int gap = tr->langopts.word_gap & 0x700; | ||||
| break; | break; | ||||
| case RULE_NONALPHA: | case RULE_NONALPHA: | ||||
| if(!iswalpha(letter_w)) | |||||
| if(!iswalpha2(letter_w)) | |||||
| { | { | ||||
| add_points = (21-distance_right); | add_points = (21-distance_right); | ||||
| post_ptr += letter_xbytes; | post_ptr += letter_xbytes; | ||||
| break; | break; | ||||
| case RULE_NONALPHA: | case RULE_NONALPHA: | ||||
| if(!iswalpha(letter_w)) | |||||
| if(!iswalpha2(letter_w)) | |||||
| { | { | ||||
| add_points = (21-distance_right); | add_points = (21-distance_right); | ||||
| pre_ptr -= letter_xbytes; | pre_ptr -= letter_xbytes; | ||||
| if(tr->letter_bits_offset > 0) | if(tr->letter_bits_offset > 0) | ||||
| { | { | ||||
| // not a Latin alphabet, switch to the default Latin alphabet language | // not a Latin alphabet, switch to the default Latin alphabet language | ||||
| if((letter <= 0x241) && iswalpha(letter)) | |||||
| if((letter <= 0x241) && iswalpha2(letter)) | |||||
| { | { | ||||
| sprintf(phonemes,"%c%s",phonSWITCH,tr->langopts.ascii_language); | sprintf(phonemes,"%c%s",phonSWITCH,tr->langopts.ascii_language); | ||||
| return(0); | return(0); | ||||
| continue; | continue; | ||||
| } | } | ||||
| } | } | ||||
| if(dictionary_flags2 & FLAG_NATIVE) | |||||
| { | |||||
| if(tr != translator) | |||||
| continue; // don't use if we've switched translators | |||||
| } | |||||
| if(dictionary_flags & FLAG_ALT2_TRANS) | if(dictionary_flags & FLAG_ALT2_TRANS) | ||||
| { | { | ||||
| // language specific | // language specific | ||||
| {//============================================== | {//============================================== | ||||
| char buf[100]; | char buf[100]; | ||||
| static unsigned int flags[2]; | static unsigned int flags[2]; | ||||
| char *word1 = (char *)word; | |||||
| flags[0] = flags[1] = 0; | flags[0] = flags[1] = 0; | ||||
| char *word1 = (char *)word; | |||||
| LookupDictList(tr, &word1, buf, flags, 0, NULL); | LookupDictList(tr, &word1, buf, flags, 0, NULL); | ||||
| return(flags[0]); | return(flags[0]); | ||||
| } | } |
| #include <stdio.h> | #include <stdio.h> | ||||
| #include <stdlib.h> | #include <stdlib.h> | ||||
| #include <string.h> | #include <string.h> | ||||
| #include <ctype.h> | |||||
| #ifndef NEED_GETOPT | #ifndef NEED_GETOPT | ||||
| #include <getopt.h> | #include <getopt.h> | ||||
| #endif | #endif | ||||
| "\t Compile pronunciation rules and dictionary from the current\n" | "\t Compile pronunciation rules and dictionary from the current\n" | ||||
| "\t directory. <voice name> specifies the language\n" | "\t directory. <voice name> specifies the language\n" | ||||
| "--ipa Write phonemes to stdout using International Phonetic Alphabet\n" | "--ipa Write phonemes to stdout using International Phonetic Alphabet\n" | ||||
| "\t --ipa=1 Use ties, --ipa=2 Use ZWJ\n" | |||||
| "\t --ipa=1 Use ties, --ipa=2 Use ZWJ, --ipa=3 Separate with _\n" | |||||
| "--path=\"<path>\"\n" | "--path=\"<path>\"\n" | ||||
| "\t Specifies the directory containing the espeak-data directory\n" | "\t Specifies the directory containing the espeak-data directory\n" | ||||
| "--pho Write mbrola phoneme data (.pho) to stdout or to the file in --phonout\n" | "--pho Write mbrola phoneme data (.pho) to stdout or to the file in --phonout\n" | ||||
| if(path == NULL) | if(path == NULL) | ||||
| return(2); | return(2); | ||||
| if(path[0] == 0) | |||||
| return(0); | |||||
| if(strcmp(path,"stdout")==0) | |||||
| f_wavfile = stdout; | |||||
| else | |||||
| f_wavfile = fopen(path,"wb"); | |||||
| while(isspace(*path)) path++; | |||||
| f_wavfile = NULL; | |||||
| if(path[0] != 0) | |||||
| { | |||||
| if(strcmp(path,"stdout")==0) | |||||
| f_wavfile = stdout; | |||||
| else | |||||
| f_wavfile = fopen(path,"wb"); | |||||
| } | |||||
| if(f_wavfile == NULL) | if(f_wavfile == NULL) | ||||
| { | { | ||||
| fprintf(stderr,"Can't write to: '%s'\n",path); | fprintf(stderr,"Can't write to: '%s'\n",path); | ||||
| { | { | ||||
| value = -1; | value = -1; | ||||
| sscanf(optarg2,"%d",&value); | sscanf(optarg2,"%d",&value); | ||||
| if((value<0) || (value>2)) | |||||
| if((value<0) || (value>3)) | |||||
| { | { | ||||
| fprintf(stderr,"Bad value for -ipa=\n"); | fprintf(stderr,"Bad value for -ipa=\n"); | ||||
| value = 0; | value = 0; |
| EVT_MENU(MENU_OPT_SPEED, MyFrame::OnOptions) | EVT_MENU(MENU_OPT_SPEED, MyFrame::OnOptions) | ||||
| EVT_MENU(MENU_OPT_PUNCT, MyFrame::OnOptions) | EVT_MENU(MENU_OPT_PUNCT, MyFrame::OnOptions) | ||||
| EVT_MENU(MENU_OPT_SPELL, MyFrame::OnOptions) | EVT_MENU(MENU_OPT_SPELL, MyFrame::OnOptions) | ||||
| EVT_MENU(MENU_OPT_SPELL2, MyFrame::OnOptions) | |||||
| EVT_MENU(MENU_PATH0, MyFrame::OnOptions) | EVT_MENU(MENU_PATH0, MyFrame::OnOptions) | ||||
| EVT_MENU(MENU_PATH1, MyFrame::OnOptions) | EVT_MENU(MENU_PATH1, MyFrame::OnOptions) | ||||
| EVT_MENU(MENU_PATH2, MyFrame::OnOptions) | EVT_MENU(MENU_PATH2, MyFrame::OnOptions) | ||||
| break; | break; | ||||
| case MENU_OPT_SPELL: | case MENU_OPT_SPELL: | ||||
| transldlg->t_source->SetValue(_T("<say-as interpret-as=\"characters\">\n")); | |||||
| transldlg->t_source->SetInsertionPointEnd(); | |||||
| notebook->SetSelection(1); | |||||
| break; | |||||
| case MENU_OPT_SPELL2: | |||||
| transldlg->t_source->SetValue(_T("<say-as interpret-as=\"tts:char\">\n")); | transldlg->t_source->SetValue(_T("<say-as interpret-as=\"tts:char\">\n")); | ||||
| transldlg->t_source->SetInsertionPointEnd(); | transldlg->t_source->SetInsertionPointEnd(); | ||||
| notebook->SetSelection(1); | notebook->SetSelection(1); | ||||
| case MENU_PATH0: | case MENU_PATH0: | ||||
| string = wxFileSelector(_T("Master phonemes file"),wxFileName(path_phfile).GetPath(), | string = wxFileSelector(_T("Master phonemes file"),wxFileName(path_phfile).GetPath(), | ||||
| _T(""),_T(""),_T("*"),wxOPEN); | |||||
| _T("phonemes"),_T(""),_T("*"),wxOPEN); | |||||
| if(!string.IsEmpty()) | if(!string.IsEmpty()) | ||||
| { | { | ||||
| path_phfile = string; | path_phfile = string; |
| for(k=0; k<ix; ) | for(k=0; k<ix; ) | ||||
| { | { | ||||
| k += utf8_in(&wc,&buf[k]); | k += utf8_in(&wc,&buf[k]); | ||||
| wc = towlower(wc); // convert to lower case | |||||
| if(iswalpha(wc)) | |||||
| wc = towlower2(wc); // convert to lower case | |||||
| if(iswalpha2(wc)) | |||||
| { | { | ||||
| j += utf8_out(wc,&wbuf[j]); | j += utf8_out(wc,&wbuf[j]); | ||||
| n_chars++; | n_chars++; | ||||
| #endif | #endif | ||||
| #define MAX_WALPHA 0x24f | |||||
| void Make_walpha_tab() | |||||
| {//=================== | |||||
| int ix; | |||||
| int value; | |||||
| int c; | |||||
| short exceptions[40]; | |||||
| int ex = 0; | |||||
| FILE *f; | |||||
| f = fopen("/home/jsd1/walpha_tab.txt","w"); | |||||
| for(ix=0x80; ix<=MAX_WALPHA; ix++) | |||||
| { | |||||
| value = 0; | |||||
| if(iswalpha(ix)) | |||||
| { | |||||
| value = 0xfe; // no case | |||||
| if(iswlower(ix)) | |||||
| { | |||||
| value = 0xff; | |||||
| } | |||||
| else if(iswupper(ix)) | |||||
| { | |||||
| c = towlower(ix); | |||||
| if(c > 0) | |||||
| value = c - ix; | |||||
| if((value < 0) || (value > 0xfc)) | |||||
| { | |||||
| exceptions[ex] = ix; | |||||
| exceptions[ex+1] = c; | |||||
| ex+=2; | |||||
| value = 0xfd; | |||||
| } | |||||
| } | |||||
| } | |||||
| if(value > 0xfc) | |||||
| fprintf(f," 0x%.2x,", value); | |||||
| else | |||||
| fprintf(f," %4d,", value); | |||||
| if((ix % 16) == 15) | |||||
| { | |||||
| fprintf(f," // %.3x\n", ix & 0xfff0); | |||||
| } | |||||
| } | |||||
| fprintf(f, "\nstatic const short wchar_tolower[] = {\n"); | |||||
| for(ix=0; ix<ex; ix+=2) | |||||
| { | |||||
| fprintf(f,"\t0x%.3x, 0x%.3x,\n", exceptions[ix], exceptions[ix+1]); | |||||
| } | |||||
| fprintf(f, "\t0,0 };\n"); | |||||
| fprintf(f, "\nstatic const short wchar_toupper[] = {\n"); | |||||
| for(ix=0x80; ix<=MAX_WALPHA; ix++) | |||||
| { | |||||
| if(iswlower(ix)) | |||||
| { | |||||
| c = towupper(ix); | |||||
| value = ix - c; | |||||
| if((value != 32) && (value != 1)) | |||||
| { | |||||
| fprintf(f,"\t0x%.3x, 0x%.3x,\n", ix, c); | |||||
| } | |||||
| } | |||||
| } | |||||
| fprintf(f, "\t0,0 };\n"); | |||||
| fclose(f); | |||||
| } | |||||
| const char* text1 = "Hello world. Testing."; | const char* text1 = "Hello world. Testing."; | ||||
| //CharsetToUnicode("ISO-8859-4"); | //CharsetToUnicode("ISO-8859-4"); | ||||
| //CharsetToUnicode("ISCII"); | //CharsetToUnicode("ISCII"); | ||||
| if(control==2) | if(control==2) | ||||
| { | { | ||||
| return; | return; | ||||
| espeak_SetSynthCallback(TestSynthCallback); | espeak_SetSynthCallback(TestSynthCallback); | ||||
| espeak_SetUriCallback(TestUriCallback); | espeak_SetUriCallback(TestUriCallback); | ||||
| espeak_SetVoiceByName("en"); | |||||
| voice.languages = "fr"; | |||||
| espeak_SetVoiceByProperties(&voice); | |||||
| // espeak_SetVoiceByName("fr"); | |||||
| espeak_Synth("1", 5, 0, POS_CHARACTER, 0, espeakSSML|espeakCHARS_UTF8, &unique_identifier, (void *)user_data); | |||||
| // voice.languages = "en"; | |||||
| // espeak_SetVoiceByProperties(&voice); | |||||
| espeak_SetVoiceByName("de"); | |||||
| espeak_Synth(textbuf, strlen(textbuf)+1, 0, POS_CHARACTER, 0, espeakSSML|espeakCHARS_UTF8, &unique_identifier, (void *)user_data); | espeak_Synth(textbuf, strlen(textbuf)+1, 0, POS_CHARACTER, 0, espeakSSML|espeakCHARS_UTF8, &unique_identifier, (void *)user_data); | ||||
| // espeak_Synth(text1, strlen(text1)+1, 0, POS_CHARACTER, 0, espeakSSML|espeakCHARS_UTF8, &unique_identifier, (void *)(user_data+1)); | |||||
| // espeak_Synth(text1, strlen(text1)+1, 0, POS_CHARACTER, 0, espeakSSML|espeakCHARS_UTF8, &unique_identifier, (void *)(user_data+1)); | |||||
| espeak_SetParameter(espeakPUNCTUATION, 1, 0); | espeak_SetParameter(espeakPUNCTUATION, 1, 0); | ||||
| espeak_Synchronize(); | espeak_Synchronize(); |
| MENU_OPT_SPEED, | MENU_OPT_SPEED, | ||||
| MENU_OPT_PUNCT, | MENU_OPT_PUNCT, | ||||
| MENU_OPT_SPELL, | MENU_OPT_SPELL, | ||||
| MENU_OPT_SPELL2, | |||||
| MENU_PATHS, | MENU_PATHS, | ||||
| MENU_PATH0, | MENU_PATH0, | ||||
| MENU_PATH1, | MENU_PATH1, |
| option_menu = new wxMenu; | option_menu = new wxMenu; | ||||
| option_menu->Append(MENU_PATHS, _("Set &paths"), paths_menu); | option_menu->Append(MENU_PATHS, _("Set &paths"), paths_menu); | ||||
| option_menu->Append(MENU_OPT_SPEED, _("Speed...")); | option_menu->Append(MENU_OPT_SPEED, _("Speed...")); | ||||
| option_menu->Append(MENU_OPT_PUNCT, _("Speak punctiation")); | |||||
| option_menu->Append(MENU_OPT_SPELL, _("Speak character names")); | |||||
| option_menu->AppendSeparator(); | |||||
| option_menu->Append(MENU_OPT_PUNCT, _("Speak punctuation")); | |||||
| option_menu->Append(MENU_OPT_SPELL, _("Speak characters")); | |||||
| option_menu->Append(MENU_OPT_SPELL2, _("Speak character name")); | |||||
| // TOOLS | // TOOLS | ||||
| vowelchart_menu = new wxMenu; | vowelchart_menu = new wxMenu; |
| } // end of LookupLetter | } // end of LookupLetter | ||||
| static const char *hex_letters[] = {"'e:j","b'i:","s'i:","d'i:","'i:","'Ef"}; // using phonemes available to all languages | |||||
| // unicode ranges for non-ascii digits 0-9 | |||||
| static const int number_ranges[] = { | |||||
| 0x660, 0x6f0, // arabic | |||||
| 0x966, 0x9e6, 0xa66, 0xae6, 0xb66, 0xbe6, 0xc66, 0xce6, 0xd66, // indic | |||||
| 0xe50, 0xed0, 0xf20, 0x1040, 0x1090, | |||||
| 0 }; // these must be in ascending order | |||||
| int NonAsciiNumber(int letter) | |||||
| {//============================ | |||||
| // Change non-ascii digit into ascii digit '0' to '9', (or -1 if not) | |||||
| const int *p; | |||||
| int base; | |||||
| for(p=number_ranges; (base = *p) != 0; p++) | |||||
| { | |||||
| if(letter < base) | |||||
| break; // not found | |||||
| if(letter < (base+10)) | |||||
| return(letter-base+'0'); | |||||
| } | |||||
| return(-1); | |||||
| } | |||||
| #define L_SUB 0x4000 // subscript | |||||
| #define L_SUP 0x8000 // superscript | |||||
| static const char *modifiers[] = {NULL, "_sub", "_sup", NULL}; | |||||
| // this list must be in ascending order | |||||
| static unsigned short derived_letters[] = { | |||||
| 0x00aa, 'a'+L_SUP, | |||||
| 0x00b2, '2'+L_SUP, | |||||
| 0x00b3, '3'+L_SUP, | |||||
| 0x00b9, '1'+L_SUP, | |||||
| 0x00ba, 'o'+L_SUP, | |||||
| 0x02b0, 'h'+L_SUP, | |||||
| 0x02b1, 0x266+L_SUP, | |||||
| 0x02b2, 'j'+L_SUP, | |||||
| 0x02b3, 'r'+L_SUP, | |||||
| 0x02b4, 0x279+L_SUP, | |||||
| 0x02b5, 0x27b+L_SUP, | |||||
| 0x02b6, 0x281+L_SUP, | |||||
| 0x02b7, 'w'+L_SUP, | |||||
| 0x02b8, 'y'+L_SUP, | |||||
| 0x02c0, 0x294+L_SUP, | |||||
| 0x02c1, 0x295+L_SUP, | |||||
| 0x02e0, 0x263+L_SUP, | |||||
| 0x02e1, 'l'+L_SUP, | |||||
| 0x02e2, 's'+L_SUP, | |||||
| 0x02e3, 'x'+L_SUP, | |||||
| 0x2070, '0'+L_SUP, | |||||
| 0x2071, 'i'+L_SUP, | |||||
| 0x2074, '4'+L_SUP, | |||||
| 0x2075, '5'+L_SUP, | |||||
| 0x2076, '6'+L_SUP, | |||||
| 0x2077, '7'+L_SUP, | |||||
| 0x2078, '8'+L_SUP, | |||||
| 0x2079, '9'+L_SUP, | |||||
| 0x207a, '+'+L_SUP, | |||||
| 0x207b, '-'+L_SUP, | |||||
| 0x207c, '='+L_SUP, | |||||
| 0x207d, '('+L_SUP, | |||||
| 0x207e, ')'+L_SUP, | |||||
| 0x207f, 'n'+L_SUP, | |||||
| 0x2080, '0'+L_SUB, | |||||
| 0x2081, '1'+L_SUB, | |||||
| 0x2082, '2'+L_SUB, | |||||
| 0x2083, '3'+L_SUB, | |||||
| 0x2084, '4'+L_SUB, | |||||
| 0x2085, '5'+L_SUB, | |||||
| 0x2086, '6'+L_SUB, | |||||
| 0x2087, '7'+L_SUB, | |||||
| 0x2088, '8'+L_SUB, | |||||
| 0x2089, '9'+L_SUB, | |||||
| 0x208a, '+'+L_SUB, | |||||
| 0x208b, '-'+L_SUB, | |||||
| 0x208c, '='+L_SUB, | |||||
| 0x208d, '('+L_SUB, | |||||
| 0x208e, ')'+L_SUB, | |||||
| 0x2090, 'a'+L_SUB, | |||||
| 0x2091, 'e'+L_SUB, | |||||
| 0x2092, 'o'+L_SUB, | |||||
| 0x2093, 'x'+L_SUB, | |||||
| 0x2094, 0x259+L_SUB, | |||||
| 0x2095, 'h'+L_SUB, | |||||
| 0x2096, 'k'+L_SUB, | |||||
| 0x2097, 'l'+L_SUB, | |||||
| 0x2098, 'm'+L_SUB, | |||||
| 0x2099, 'n'+L_SUB, | |||||
| 0x209a, 'p'+L_SUB, | |||||
| 0x209b, 's'+L_SUB, | |||||
| 0x209c, 't'+L_SUB, | |||||
| 0,0}; | |||||
| static const char *hex_letters[] = {"'e:j","b'i:","s'i:","d'i:","'i:","'ef"}; // names, using phonemes available to all languages | |||||
| int TranslateLetter(Translator *tr, char *word, char *phonemes, int control) | int TranslateLetter(Translator *tr, char *word, char *phonemes, int control) | ||||
| {//========================================================================= | {//========================================================================= | ||||
| int letter; | int letter; | ||||
| int len; | int len; | ||||
| int ix; | int ix; | ||||
| int c; | |||||
| char *p2; | char *p2; | ||||
| char *pbuf; | char *pbuf; | ||||
| const char *modifier; | |||||
| ALPHABET *alphabet; | ALPHABET *alphabet; | ||||
| int al_offset; | int al_offset; | ||||
| int al_flags; | int al_flags; | ||||
| int language; | int language; | ||||
| int number; | |||||
| int phontab_1; | int phontab_1; | ||||
| int speak_letter_number; | int speak_letter_number; | ||||
| char capital[20]; | |||||
| char capital[30]; | |||||
| char ph_buf[80]; | char ph_buf[80]; | ||||
| char ph_buf2[80]; | char ph_buf2[80]; | ||||
| char ph_alphabet[80]; | char ph_alphabet[80]; | ||||
| if(control & 2) | if(control & 2) | ||||
| { | { | ||||
| // include CAPITAL information | // include CAPITAL information | ||||
| if(iswupper(letter)) | |||||
| if(iswupper2(letter)) | |||||
| { | { | ||||
| Lookup(tr, "_cap", capital); | Lookup(tr, "_cap", capital); | ||||
| } | } | ||||
| } | } | ||||
| letter = towlower2(letter); | letter = towlower2(letter); | ||||
| LookupLetter(tr, letter, word[n_bytes], ph_buf, control & 1); | LookupLetter(tr, letter, word[n_bytes], ph_buf, control & 1); | ||||
| if(ph_buf[0] == 0) | |||||
| { | |||||
| // is this a subscript or superscript letter ? | |||||
| for(ix=0; (c = derived_letters[ix]) != 0; ix+=2) | |||||
| { | |||||
| if(c > letter) | |||||
| break; | |||||
| if(c == letter) | |||||
| { | |||||
| c = derived_letters[ix+1]; | |||||
| letter = c & 0x3fff; | |||||
| if((modifier = modifiers[c >> 14]) != NULL) | |||||
| { | |||||
| Lookup(tr, modifier, capital); | |||||
| if(capital[0] == 0) | |||||
| { | |||||
| capital[2] = SetTranslator2("en"); // overwrites previous contents of translator2 | |||||
| Lookup(translator2, modifier, &capital[3]); | |||||
| if(capital[3] != 0) | |||||
| { | |||||
| capital[0] = phonPAUSE; | |||||
| capital[1] = phonSWITCH; | |||||
| len = strlen(&capital[3]); | |||||
| capital[len+3] = phonSWITCH; | |||||
| capital[len+4] = phontab_1; | |||||
| capital[len+5] = 0; | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| LookupLetter(tr, letter, word[n_bytes], ph_buf, control & 1); | |||||
| } | |||||
| if(ph_buf[0] == phonSWITCH) | if(ph_buf[0] == phonSWITCH) | ||||
| { | { | ||||
| strcpy(phonemes,ph_buf); | strcpy(phonemes,ph_buf); | ||||
| return(0); | return(0); | ||||
| } | } | ||||
| if((ph_buf[0] == 0) && ((number = NonAsciiNumber(letter)) > 0)) | |||||
| { | |||||
| // convert a non-ascii number to 0-9 | |||||
| LookupLetter(tr, number, 0, ph_buf, control & 1); | |||||
| } | |||||
| al_offset = 0; | al_offset = 0; | ||||
| al_flags = 0; | al_flags = 0; | ||||
| if((alphabet = AlphabetFromChar(letter)) != NULL) | if((alphabet = AlphabetFromChar(letter)) != NULL) | ||||
| speak_letter_number = 1; | speak_letter_number = 1; | ||||
| if(!(al_flags & AL_NO_SYMBOL)) | if(!(al_flags & AL_NO_SYMBOL)) | ||||
| { | { | ||||
| if(iswalpha(letter)) | |||||
| if(iswalpha2(letter)) | |||||
| Lookup(translator, "_?A", ph_buf); | Lookup(translator, "_?A", ph_buf); | ||||
| if((ph_buf[0]==0) && !iswspace(letter)) | if((ph_buf[0]==0) && !iswspace(letter)) | ||||
| speak_letter_number = 0; | speak_letter_number = 0; | ||||
| } | } | ||||
| if((ph_alphabet[0] != 0) && speak_letter_number) | |||||
| ph_buf[0] = 0; // don't speak "letter" if we speak alphabet name | |||||
| // if((ph_alphabet[0] != 0) && speak_letter_number) | |||||
| // ph_buf[0] = 0; // don't speak "letter" if we speak alphabet name | |||||
| if(speak_letter_number) | if(speak_letter_number) | ||||
| { | { | ||||
| if((tr->langopts.numbers & NUM_NOPAUSE) && (next_char == ' ')) | if((tr->langopts.numbers & NUM_NOPAUSE) && (next_char == ' ')) | ||||
| utf8_in(&next_char,p); | utf8_in(&next_char,p); | ||||
| if(!iswalpha(next_char) && (thousands_exact==0)) | |||||
| // if(!iswalpha(next_char) && !((wtab[thousandplex].flags & FLAG_HYPHEN_AFTER) && (thousands_exact != 0))) | |||||
| if(!iswalpha2(next_char) && (thousands_exact==0)) | |||||
| // if(!iswalpha2(next_char) && !((wtab[thousandplex].flags & FLAG_HYPHEN_AFTER) && (thousands_exact != 0))) | |||||
| strcat(ph_out,str_pause); // don't add pause for 100s, 6th, etc. | strcat(ph_out,str_pause); // don't add pause for 100s, 6th, etc. | ||||
| } | } | ||||
| // punctuations symbols that can end a clause | // punctuations symbols that can end a clause | ||||
| static const unsigned short punct_chars[] = {',','.','?','!',':',';', | static const unsigned short punct_chars[] = {',','.','?','!',':',';', | ||||
| 0x00a1, // inverted exclamation | |||||
| 0x00bf, // inverted question | |||||
| 0x2013, // en-dash | 0x2013, // en-dash | ||||
| 0x2014, // em-dash | 0x2014, // em-dash | ||||
| 0x2026, // elipsis | 0x2026, // elipsis | ||||
| // bits 0-7 pause x 10mS, bits 12-14 intonation type, bit 15 don't need following space or bracket | // bits 0-7 pause x 10mS, bits 12-14 intonation type, bit 15 don't need following space or bracket | ||||
| static const unsigned int punct_attributes [] = { 0, | static const unsigned int punct_attributes [] = { 0, | ||||
| CLAUSE_COMMA, CLAUSE_PERIOD, CLAUSE_QUESTION, CLAUSE_EXCLAMATION, CLAUSE_COLON, CLAUSE_SEMICOLON, | CLAUSE_COMMA, CLAUSE_PERIOD, CLAUSE_QUESTION, CLAUSE_EXCLAMATION, CLAUSE_COLON, CLAUSE_SEMICOLON, | ||||
| CLAUSE_SEMICOLON | 0x8000, // inverted exclamation | |||||
| CLAUSE_SEMICOLON | 0x8000, // inverted question | |||||
| CLAUSE_SEMICOLON, // en-dash | CLAUSE_SEMICOLON, // en-dash | ||||
| CLAUSE_SEMICOLON, // em-dash | CLAUSE_SEMICOLON, // em-dash | ||||
| CLAUSE_SEMICOLON | PUNCT_SAY_NAME | 0x8000, // elipsis | CLAUSE_SEMICOLON | PUNCT_SAY_NAME | 0x8000, // elipsis | ||||
| 0, // voice type | 0, // voice type | ||||
| }; | }; | ||||
| #ifdef NEED_WCHAR_FUNCTIONS | |||||
| // additional Latin characters beyond the Latin1 character set | |||||
| #define MAX_WALPHA 0x233 | |||||
| // indexed by character - 0x100 | |||||
| // 0=not alphabetic, 0xff=lower case, 0xfe=special case | |||||
| // additional Latin characters beyond the ascii character set | |||||
| #define MAX_WALPHA 0x24f | |||||
| // indexed by character - 0x80 | |||||
| // 0=not alphabetic, 0xff=lower case, 0xfe=no case, 0xfd=use wchar_tolower | |||||
| // other=value to add to upper case to convert to lower case | // other=value to add to upper case to convert to lower case | ||||
| static unsigned char walpha_tab[MAX_WALPHA-0xff] = { | |||||
| 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, // 100 | |||||
| 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, // 110 | |||||
| 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, // 120 | |||||
| 0xfe,0xff, 1,0xff, 1,0xff, 1,0xff,0xff, 1,0xff, 1,0xff, 1,0xff, 1, // 130 | |||||
| 0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff,0xff, 1,0xff, 1,0xff, 1,0xff, // 140 | |||||
| 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, // 150 | |||||
| 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, // 160 | |||||
| 1,0xff, 1,0xff, 1,0xff, 1,0xff,0xff, 1,0xff, 1,0xff, 1,0xff,0xff, // 170 | |||||
| 0xff, 210, 1,0xff, 1,0xff, 206, 1,0xff, 205, 205, 1,0xff,0xff, 79, 202, // 180 | |||||
| 203, 1,0xff, 205, 207,0xff, 211, 209, 1,0xff,0xff,0xff, 211, 213,0xff, 214, // 190 | |||||
| 1,0xff, 1,0xff, 1,0xff, 218, 1,0xff, 218,0xff,0xff, 1,0xff, 218, 1, // 1a0 | |||||
| 0xff, 217, 217, 1,0xff, 1,0xff, 219, 1,0xff,0xff,0xff, 1,0xff,0xff,0xff, // 1b0 | |||||
| 0xff,0xff,0xff,0xff, 2, 1,0xff, 2, 1,0xff, 2, 1,0xff, 1,0xff, 1, // 1c0 | |||||
| 0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff,0xff, 1,0xff, // 1d0 | |||||
| 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, // 1e0 | |||||
| 0xff, 2, 1,0xff, 1,0xff,0xff,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, // 1f0 | |||||
| 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, // 200 | |||||
| 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, // 210 | |||||
| 0xff, 0, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, 1,0xff, // 220 | |||||
| 1,0xff, 1,0xff }; // 230 | |||||
| static unsigned char walpha_tab[MAX_WALPHA-0x7f] = { | |||||
| 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 080 | |||||
| 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 090 | |||||
| 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0xfe, 0, 0, 0, 0, 0, // 0a0 | |||||
| 0, 0, 0, 0, 0, 0xff, 0, 0, 0, 0, 0xfe, 0, 0, 0, 0, 0, // 0b0 | |||||
| 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, // 0c0 | |||||
| 32, 32, 32, 32, 32, 32, 32, 0, 32, 32, 32, 32, 32, 32, 32, 0xff, // 0d0 | |||||
| 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, // 0e0 | |||||
| 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, // 0f0 | |||||
| 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, // 100 | |||||
| 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, // 110 | |||||
| 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, // 120 | |||||
| 0xfd, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 0xfe, 1, 0xff, 1, 0xff, 1, 0xff, 1, // 130 | |||||
| 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 0xfe, 1, 0xff, 1, 0xff, 1, 0xff, // 140 | |||||
| 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, // 150 | |||||
| 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, // 160 | |||||
| 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 0xfd, 1, 0xff, 1, 0xff, 1, 0xff, 0xff, // 170 | |||||
| 0xff, 210, 1, 0xff, 1, 0xff, 206, 1, 0xff, 205, 205, 1, 0xff, 0xfe, 79, 202, // 180 | |||||
| 203, 1, 0xff, 205, 207, 0xff, 211, 209, 1, 0xff, 0xff, 0xfe, 211, 213, 0xff, 214, // 190 | |||||
| 1, 0xff, 1, 0xff, 1, 0xff, 218, 1, 0xff, 218, 0xfe, 0xfe, 1, 0xff, 218, 1, // 1a0 | |||||
| 0xff, 217, 217, 1, 0xff, 1, 0xff, 219, 1, 0xff, 0xfe, 0xfe, 1, 0xff, 0xfe, 0xff, // 1b0 | |||||
| 0xfe, 0xfe, 0xfe, 0xfe, 2, 0xff, 0xff, 2, 0xff, 0xff, 2, 0xff, 0xff, 1, 0xff, 1, // 1c0 | |||||
| 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 0xff, 1, 0xff, // 1d0 | |||||
| 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, // 1e0 | |||||
| 0xfe, 2, 0xff, 0xff, 1, 0xff, 0xfd, 0xfd, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, // 1f0 | |||||
| 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, // 200 | |||||
| 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, // 210 | |||||
| 0xfd, 0xfe, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, // 220 | |||||
| 1, 0xff, 1, 0xff, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfd, 1, 0xff, 0xfd, 0xfd, 0xfe, // 230 | |||||
| 0xfe, 1, 0xff, 0xfd, 69, 71, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff, 1, 0xff}; // 240 | |||||
| static const short wchar_tolower[] = { | |||||
| 0x130, 0x069, | |||||
| 0x178, 0x0ff, | |||||
| 0x1f6, 0x195, | |||||
| 0x1f7, 0x1bf, | |||||
| 0x220, 0x19e, | |||||
| 0x23a, 0x2c65, | |||||
| 0x23d, 0x19a, | |||||
| 0x23e, 0x2c66, | |||||
| 0x243, 0x180, | |||||
| 0,0 }; | |||||
| static const short wchar_toupper[] = { | |||||
| 0x0b5, 0x39c, | |||||
| 0x0df, 0x0df, | |||||
| 0x0ff, 0x178, | |||||
| 0x131, 0x049, | |||||
| 0x17f, 0x053, | |||||
| 0x180, 0x243, | |||||
| 0x195, 0x1f6, | |||||
| 0x19a, 0x23d, | |||||
| 0x19e, 0x220, | |||||
| 0x1bf, 0x1f7, | |||||
| 0x1c6, 0x1c4, | |||||
| 0x1c9, 0x1c7, | |||||
| 0x1cc, 0x1ca, | |||||
| 0x1dd, 0x18e, | |||||
| 0x1f3, 0x1f1, | |||||
| 0,0 }; | |||||
| #ifdef NEED_WCHAR_FUNCTIONS | |||||
| // use ctype.h functions for Latin1 (character < 0x100) | // use ctype.h functions for Latin1 (character < 0x100) | ||||
| int iswalpha(int c) | int iswalpha(int c) | ||||
| { | { | ||||
| if(c < 0x100) | |||||
| if(c < 0x80) | |||||
| return(isalpha(c)); | return(isalpha(c)); | ||||
| if((c > 0x3040) && (c <= 0xa700)) | if((c > 0x3040) && (c <= 0xa700)) | ||||
| return(1); // japanese, chinese characters | return(1); // japanese, chinese characters | ||||
| if(c > MAX_WALPHA) | if(c > MAX_WALPHA) | ||||
| return(0); | return(0); | ||||
| return(walpha_tab[c-0x100]); | |||||
| return(walpha_tab[c-0x80]); | |||||
| } | } | ||||
| int iswdigit(int c) | int iswdigit(int c) | ||||
| { | { | ||||
| if(c < 0x100) | |||||
| if(c < 0x80) | |||||
| return(isdigit(c)); | return(isdigit(c)); | ||||
| return(0); | return(0); | ||||
| } | } | ||||
| int towlower(int c) | int towlower(int c) | ||||
| { | { | ||||
| int x; | int x; | ||||
| if(c < 0x100) | |||||
| int ix; | |||||
| if(c < 0x80) | |||||
| return(tolower(c)); | return(tolower(c)); | ||||
| if((c > MAX_WALPHA) || ((x = walpha_tab[c-0x100])==0xff)) | |||||
| return(c); // already lower case | |||||
| if(x == 0xfe) | |||||
| if((c > MAX_WALPHA) || ((x = walpha_tab[c-0x80]) >= 0xfe)) | |||||
| return(c); | |||||
| if(x == 0xfd) | |||||
| { | { | ||||
| // special cases | |||||
| if(c == 0x130) // uppercase i-dot | |||||
| return('i'); | |||||
| // special cases, lookup translation table | |||||
| for(ix=0; wchar_tolower[ix] != 0; ix+=2) | |||||
| { | |||||
| if(wchar_tolower[ix] == c) | |||||
| return(wchar_tolower[ix+1]); | |||||
| } | |||||
| } | } | ||||
| return(c + x); // convert to lower case | return(c + x); // convert to lower case | ||||
| } | } | ||||
| int towupper(int c) | int towupper(int c) | ||||
| { | { | ||||
| // check whether the previous character code is the upper-case equivalent of this character | |||||
| if(tolower(c-1) == c) | |||||
| return(c-1); // yes, use it | |||||
| int ix; | |||||
| // check whether a previous character code is the upper-case equivalent of this character | |||||
| if(towlower(c-32) == c) | |||||
| return(c-32); // yes, use it | |||||
| if(towlower(c-1) == c) | |||||
| return(c-1); | |||||
| for(ix=0; wchar_toupper[ix] != 0; ix+=2) | |||||
| { | |||||
| if(wchar_toupper[ix] == c) | |||||
| return(wchar_toupper[ix+1]); | |||||
| } | |||||
| return(c); // no | return(c); // no | ||||
| } | } | ||||
| int iswupper(int c) | int iswupper(int c) | ||||
| { | { | ||||
| int x; | int x; | ||||
| if(c < 0x100) | |||||
| if(c < 0x80) | |||||
| return(isupper(c)); | return(isupper(c)); | ||||
| if(((c > MAX_WALPHA) || (x = walpha_tab[c-0x100])==0) || (x == 0xff)) | |||||
| if(((c > MAX_WALPHA) || (x = walpha_tab[c-0x80])==0) || (x == 0xff)) | |||||
| return(0); | return(0); | ||||
| return(1); | return(1); | ||||
| } | } | ||||
| int iswlower(int c) | int iswlower(int c) | ||||
| { | { | ||||
| if(c < 0x100) | |||||
| if(c < 0x80) | |||||
| return(islower(c)); | return(islower(c)); | ||||
| if((c > MAX_WALPHA) || (walpha_tab[c-0x100] != 0xff)) | |||||
| if((c > MAX_WALPHA) || (walpha_tab[c-0x80] != 0xff)) | |||||
| return(0); | return(0); | ||||
| return(1); | return(1); | ||||
| } | } | ||||
| int iswspace(int c) | int iswspace(int c) | ||||
| { | { | ||||
| if(c < 0x100) | |||||
| if(c < 0x80) | |||||
| return(isspace(c)); | return(isspace(c)); | ||||
| if(c == 0xa0) | |||||
| return(1); | |||||
| return(0); | return(0); | ||||
| } | } | ||||
| } | } | ||||
| #endif | #endif | ||||
| // use internal data for iswalpha up to U+024F | |||||
| // iswalpha() on Windows is unreliable (U+AA, U+BA). | |||||
| int iswalpha2(int c) | |||||
| { | |||||
| if(c < 0x80) | |||||
| return(isalpha(c)); | |||||
| if((c > 0x3040) && (c <= 0xa700)) | |||||
| return(1); // japanese, chinese characters | |||||
| if(c > MAX_WALPHA) | |||||
| return(iswalpha(c)); | |||||
| return(walpha_tab[c-0x80]); | |||||
| } | |||||
| int iswlower2(int c) | |||||
| { | |||||
| if(c < 0x80) | |||||
| return(islower(c)); | |||||
| if(c > MAX_WALPHA) | |||||
| return(iswlower(c)); | |||||
| if(walpha_tab[c-0x80] == 0xff) | |||||
| return(1); | |||||
| return(0); | |||||
| } | |||||
| int iswupper2(int c) | |||||
| { | |||||
| int x; | |||||
| if(c < 0x80) | |||||
| return(isupper(c)); | |||||
| if(c > MAX_WALPHA) | |||||
| return(iswupper(c)); | |||||
| if(((x = walpha_tab[c-0x80]) > 0) && (x < 0xfe)) | |||||
| return(1); | |||||
| return(0); | |||||
| } | |||||
| int towlower2(unsigned int c) | int towlower2(unsigned int c) | ||||
| { | { | ||||
| int x; | |||||
| int ix; | |||||
| // check for non-standard upper to lower case conversions | // check for non-standard upper to lower case conversions | ||||
| if(c == 'I') | if(c == 'I') | ||||
| { | { | ||||
| if(translator->translator_name == L('t','r')) | |||||
| if(translator->langopts.dotless_i) | |||||
| { | { | ||||
| c = 0x131; // I -> ı | c = 0x131; // I -> ı | ||||
| } | } | ||||
| } | } | ||||
| #ifdef __WIN32__ | |||||
| if(c == 0x130) // uppercase i-dot | |||||
| return('i'); | |||||
| #endif | |||||
| return(towlower(c)); | |||||
| if(c < 0x80) | |||||
| return(tolower(c)); | |||||
| if(c > MAX_WALPHA) | |||||
| return(towlower(c)); | |||||
| if((x = walpha_tab[c-0x80]) >= 0xfe) | |||||
| return(c); // this is not an upper case letter | |||||
| if(x == 0xfd) | |||||
| { | |||||
| // special cases, lookup translation table | |||||
| for(ix=0; wchar_tolower[ix] != 0; ix+=2) | |||||
| { | |||||
| if(wchar_tolower[ix] == (int)c) | |||||
| return(wchar_tolower[ix+1]); | |||||
| } | |||||
| } | |||||
| return(c + x); // convert to lower case | |||||
| } | } | ||||
| int towupper2(unsigned int c) | |||||
| { | |||||
| int ix; | |||||
| if(c > MAX_WALPHA) | |||||
| return(towupper(c)); | |||||
| // check whether a previous character code is the upper-case equivalent of this character | |||||
| if(towlower2(c-32) == (int)c) | |||||
| return(c-32); // yes, use it | |||||
| if(towlower2(c-1) == (int)c) | |||||
| return(c-1); | |||||
| for(ix=0; wchar_toupper[ix] != 0; ix+=2) | |||||
| { | |||||
| if(wchar_toupper[ix] == (int)c) | |||||
| return(wchar_toupper[ix+1]); | |||||
| } | |||||
| return(c); // no | |||||
| } | |||||
| static int IsRomanU(unsigned int c) | static int IsRomanU(unsigned int c) | ||||
| {//================================ | {//================================ | ||||
| c2 = ' '; | c2 = ' '; | ||||
| } | } | ||||
| else | else | ||||
| if((c2 == '/') || iswalpha(c2)) | |||||
| if((c2 == '/') || iswalpha2(c2)) | |||||
| { | { | ||||
| // check for space in the output buffer for embedded commands produced by the SSML tag | // check for space in the output buffer for embedded commands produced by the SSML tag | ||||
| if(ix > (n_buf - 20)) | if(ix > (n_buf - 20)) | ||||
| } | } | ||||
| } | } | ||||
| if(iswupper(c1)) | |||||
| if(iswupper2(c1)) | |||||
| { | { | ||||
| tr->clause_upper_count++; | tr->clause_upper_count++; | ||||
| if((option_capitals == 2) && (sayas_mode == 0) && !iswupper(cprev)) | |||||
| if((option_capitals == 2) && (sayas_mode == 0) && !iswupper2(cprev)) | |||||
| { | { | ||||
| char text_buf[40]; | char text_buf[40]; | ||||
| char text_buf2[30]; | char text_buf2[30]; | ||||
| } | } | ||||
| } | } | ||||
| else | else | ||||
| if(iswalpha(c1)) | |||||
| if(iswalpha2(c1)) | |||||
| tr->clause_lower_count++; | tr->clause_lower_count++; | ||||
| if(option_phoneme_input) | if(option_phoneme_input) | ||||
| if(!iswspace(c1)) | if(!iswspace(c1)) | ||||
| { | { | ||||
| if(!IsAlpha(c1) || !iswlower(c1)) | |||||
| // if(iswdigit(c1) || (IsAlpha(c1) && !iswlower(c1))) | |||||
| if(!IsAlpha(c1) || !iswlower2(c1)) | |||||
| // if(iswdigit(c1) || (IsAlpha(c1) && !iswlower2(c1))) | |||||
| { | { | ||||
| UngetC(c2); | UngetC(c2); | ||||
| ungot_char2 = c1; | ungot_char2 = c1; | ||||
| if(nl_count==0) | if(nl_count==0) | ||||
| { | { | ||||
| if((c1 == ',') && (cprev == '.') && (tr->translator_name == L('h','u')) && iswdigit(cprev2) && (iswdigit(c_next) || (iswlower(c_next)))) | |||||
| if((c1 == ',') && (cprev == '.') && (tr->translator_name == L('h','u')) && iswdigit(cprev2) && (iswdigit(c_next) || (iswlower2(c_next)))) | |||||
| { | { | ||||
| // lang=hu, fix for ordinal numbers, eg: "december 2., szerda", ignore ',' after ordinal number | // lang=hu, fix for ordinal numbers, eg: "december 2., szerda", ignore ',' after ordinal number | ||||
| c1 = CHAR_COMMA_BREAK; | c1 = CHAR_COMMA_BREAK; | ||||
| } | } | ||||
| else | else | ||||
| { | { | ||||
| if (iswlower(c_next) || (c_next=='-')) // hyphen is needed for lang-hu (eg. 2.-kal) | |||||
| if (iswlower2(c_next) || (c_next=='-')) // hyphen is needed for lang-hu (eg. 2.-kal) | |||||
| is_end_clause = 0; // only if followed by lower-case, (or if there is a XML tag) | is_end_clause = 0; // only if followed by lower-case, (or if there is a XML tag) | ||||
| } | } | ||||
| } | } | ||||
| { | { | ||||
| is_end_clause = 0; // eg. u.s.a.'s | is_end_clause = 0; // eg. u.s.a.'s | ||||
| } | } | ||||
| if(iswlower(c_next)) | |||||
| if(iswlower2(c_next)) | |||||
| { | { | ||||
| // next word has no capital letter, this dot is probably from an abbreviation | // next word has no capital letter, this dot is probably from an abbreviation | ||||
| // c1 = ' '; | // c1 = ' '; |
| #include <stdio.h> | #include <stdio.h> | ||||
| #include <stdlib.h> | #include <stdlib.h> | ||||
| #include <string.h> | #include <string.h> | ||||
| #include <ctype.h> | |||||
| #ifndef PLATFORM_DOS | #ifndef PLATFORM_DOS | ||||
| #ifdef PLATFORM_WINDOWS | #ifdef PLATFORM_WINDOWS | ||||
| "\t Compile pronunciation rules and dictionary from the current\n" | "\t Compile pronunciation rules and dictionary from the current\n" | ||||
| "\t directory. <voice name> specifies the language\n" | "\t directory. <voice name> specifies the language\n" | ||||
| "--ipa Write phonemes to stdout using International Phonetic Alphabet\n" | "--ipa Write phonemes to stdout using International Phonetic Alphabet\n" | ||||
| "\t --ipa=1 Use ties, --ipa=2 Use ZWJ\n" | |||||
| "\t --ipa=1 Use ties, --ipa=2 Use ZWJ, --ipa=3 Separate with _\n" | |||||
| "--path=\"<path>\"\n" | "--path=\"<path>\"\n" | ||||
| "\t Specifies the directory containing the espeak-data directory\n" | "\t Specifies the directory containing the espeak-data directory\n" | ||||
| "--pho Write mbrola phoneme data (.pho) to stdout or to the file in --phonout\n" | "--pho Write mbrola phoneme data (.pho) to stdout or to the file in --phonout\n" | ||||
| if(path == NULL) | if(path == NULL) | ||||
| return(2); | return(2); | ||||
| if(strcmp(path,"stdout")==0) | |||||
| while(isspace(*path)) path++; | |||||
| f_wave = NULL; | |||||
| if(path[0] != 0) | |||||
| { | { | ||||
| if(strcmp(path,"stdout")==0) | |||||
| { | |||||
| #ifdef PLATFORM_WINDOWS | #ifdef PLATFORM_WINDOWS | ||||
| // prevent Windows adding 0x0d before 0x0a bytes | // prevent Windows adding 0x0d before 0x0a bytes | ||||
| _setmode(_fileno(stdout), _O_BINARY); | |||||
| _setmode(_fileno(stdout), _O_BINARY); | |||||
| #endif | #endif | ||||
| f_wave = stdout; | |||||
| f_wave = stdout; | |||||
| } | |||||
| else | |||||
| f_wave = fopen(path,"wb"); | |||||
| } | } | ||||
| else | |||||
| f_wave = fopen(path,"wb"); | |||||
| if(f_wave != NULL) | if(f_wave != NULL) | ||||
| { | { | ||||
| { | { | ||||
| value = -1; | value = -1; | ||||
| sscanf(optarg2,"%d",&value); | sscanf(optarg2,"%d",&value); | ||||
| if((value<0) || (value>2)) | |||||
| if((value<0) || (value>3)) | |||||
| { | { | ||||
| fprintf(stderr,"Bad value for -ipa=\n"); | fprintf(stderr,"Bad value for -ipa=\n"); | ||||
| value = 0; | value = 0; |
| } // end of espeak_SetPhonemes | } // end of espeak_SetPhonemes | ||||
| ESPEAK_API void espeak_TextToPhonemes(const void *text, char *buffer, int size, int textmode, int phonememode) | |||||
| {//============================================================================================================== | |||||
| /* phoneme_mode bits 0-3: 0=only phoneme names, 1=ties, 2=ZWJ, 3=underscore separator | |||||
| bits 4-7: 0=eSpeak phoneme names, 1=IPA | |||||
| */ | |||||
| option_multibyte = textmode & 7; | |||||
| TranslateClause(translator, NULL, text, NULL, NULL); | |||||
| GetTranslatedPhonemeString(buffer, size, phonememode); | |||||
| } | |||||
| ESPEAK_API void espeak_CompileDictionary(const char *path, FILE *log, int flags) | ESPEAK_API void espeak_CompileDictionary(const char *path, FILE *log, int flags) | ||||
| {//============================================================================= | {//============================================================================= | ||||
| ENTER("espeak_CompileDictionary"); | ENTER("espeak_CompileDictionary"); |
| Changed espeak_EVENT structure to add id.string[] for phoneme mnemonics. | Changed espeak_EVENT structure to add id.string[] for phoneme mnemonics. | ||||
| Added espeakINITIALIZE_PHONEME_IPA option for espeak_Initialize() to report phonemes as IPA names. | Added espeakINITIALIZE_PHONEME_IPA option for espeak_Initialize() to report phonemes as IPA names. | ||||
| Revision 8 26.Apr.2013 | |||||
| Added function espeak_TextToPhonemes(). | |||||
| */ | */ | ||||
| /********************/ | /********************/ | ||||
| /* Initialization */ | /* Initialization */ | ||||
| char string[8]; // used for phoneme names (UTF8). Terminated by a zero byte unless the name needs the full 8 bytes. | char string[8]; // used for phoneme names (UTF8). Terminated by a zero byte unless the name needs the full 8 bytes. | ||||
| } id; | } id; | ||||
| } espeak_EVENT; | } espeak_EVENT; | ||||
| /* | |||||
| /* | |||||
| When a message is supplied to espeak_synth, the request is buffered and espeak_synth returns. When the message is really processed, the callback function will be repetedly called. | When a message is supplied to espeak_synth, the request is buffered and espeak_synth returns. When the message is really processed, the callback function will be repetedly called. | ||||
| In PLAYBACK mode, the callback function is called as soon as an event happens. | In PLAYBACK mode, the callback function is called as soon as an event happens. | ||||
| For example suppose that the following message is supplied to espeak_Synth: | |||||
| For example suppose that the following message is supplied to espeak_Synth: | |||||
| "hello, hello." | "hello, hello." | ||||
| * Once processed in RETRIEVAL mode, it could lead to 3 calls of the callback function : | * Once processed in RETRIEVAL mode, it could lead to 3 calls of the callback function : | ||||
| ** Block 1: | ** Block 1: | ||||
| <audio data> + | |||||
| <audio data> + | |||||
| List of events: SENTENCE + WORD + LIST_TERMINATED | List of events: SENTENCE + WORD + LIST_TERMINATED | ||||
| ** Block 2: | ** Block 2: | ||||
| <audio data> + | <audio data> + | ||||
| List of events: WORD + END + LIST_TERMINATED | List of events: WORD + END + LIST_TERMINATED | ||||
| typedef enum { | typedef enum { | ||||
| /* PLAYBACK mode: plays the audio data, supplies events to the calling program*/ | /* PLAYBACK mode: plays the audio data, supplies events to the calling program*/ | ||||
| AUDIO_OUTPUT_PLAYBACK, | |||||
| AUDIO_OUTPUT_PLAYBACK, | |||||
| /* RETRIEVAL mode: supplies audio data and events to the calling program */ | /* RETRIEVAL mode: supplies audio data and events to the calling program */ | ||||
| AUDIO_OUTPUT_RETRIEVAL, | AUDIO_OUTPUT_RETRIEVAL, | ||||
| /* SYNCHRONOUS mode: as RETRIEVAL but doesn't return until synthesis is completed */ | /* SYNCHRONOUS mode: as RETRIEVAL but doesn't return until synthesis is completed */ | ||||
| AUDIO_OUTPUT_SYNCHRONOUS, | AUDIO_OUTPUT_SYNCHRONOUS, | ||||
| ESPEAK_API void espeak_SetSynthCallback(t_espeak_callback* SynthCallback); | ESPEAK_API void espeak_SetSynthCallback(t_espeak_callback* SynthCallback); | ||||
| /* Must be called before any synthesis functions are called. | /* Must be called before any synthesis functions are called. | ||||
| This specifies a function in the calling program which is called when a buffer of | This specifies a function in the calling program which is called when a buffer of | ||||
| speech sound data has been produced. | |||||
| speech sound data has been produced. | |||||
| The callback function is of the form: | The callback function is of the form: | ||||
| start of the text. | start of the text. | ||||
| position_type: Determines whether "position" is a number of characters, words, or sentences. | position_type: Determines whether "position" is a number of characters, words, or sentences. | ||||
| Values: | |||||
| Values: | |||||
| end_position: If set, this gives a character position at which speaking will stop. A value | end_position: If set, this gives a character position at which speaking will stop. A value | ||||
| of zero indicates no end position. | of zero indicates no end position. | ||||
| espeakCHARS_8BIT The 8 bit ISO-8859 character set for the particular language. | espeakCHARS_8BIT The 8 bit ISO-8859 character set for the particular language. | ||||
| espeakCHARS_AUTO 8 bit or UTF8 (this is the default) | espeakCHARS_AUTO 8 bit or UTF8 (this is the default) | ||||
| espeakCHARS_WCHAR Wide characters (wchar_t) | espeakCHARS_WCHAR Wide characters (wchar_t) | ||||
| espeakCHARS_16BIT 16 bit characters. | |||||
| espeakSSML Elements within < > are treated as SSML elements, or if not recognised are ignored. | espeakSSML Elements within < > are treated as SSML elements, or if not recognised are ignored. | ||||
| espeakENDPAUSE If set then a sentence pause is added at the end of the text. If not set then | espeakENDPAUSE If set then a sentence pause is added at the end of the text. If not set then | ||||
| this pause is suppressed. | this pause is suppressed. | ||||
| unique_identifier: message identifier; helpful for identifying later | |||||
| unique_identifier: message identifier; helpful for identifying later | |||||
| data supplied to the callback. | data supplied to the callback. | ||||
| user_data: pointer which will be passed to the callback function. | user_data: pointer which will be passed to the callback function. | ||||
| Return: EE_OK: operation achieved | |||||
| EE_BUFFER_FULL: the command can not be buffered; | |||||
| Return: EE_OK: operation achieved | |||||
| EE_BUFFER_FULL: the command can not be buffered; | |||||
| you may try after a while to call the function again. | you may try after a while to call the function again. | ||||
| EE_INTERNAL_ERROR. | EE_INTERNAL_ERROR. | ||||
| */ | */ | ||||
| For the other parameters, see espeak_Synth() | For the other parameters, see espeak_Synth() | ||||
| Return: EE_OK: operation achieved | |||||
| EE_BUFFER_FULL: the command can not be buffered; | |||||
| Return: EE_OK: operation achieved | |||||
| EE_BUFFER_FULL: the command can not be buffered; | |||||
| you may try after a while to call the function again. | you may try after a while to call the function again. | ||||
| EE_INTERNAL_ERROR. | EE_INTERNAL_ERROR. | ||||
| */ | */ | ||||
| If key_name is a single character, it speaks the name of the character. | If key_name is a single character, it speaks the name of the character. | ||||
| Otherwise, it speaks key_name as a text string. | Otherwise, it speaks key_name as a text string. | ||||
| Return: EE_OK: operation achieved | |||||
| EE_BUFFER_FULL: the command can not be buffered; | |||||
| Return: EE_OK: operation achieved | |||||
| EE_BUFFER_FULL: the command can not be buffered; | |||||
| you may try after a while to call the function again. | you may try after a while to call the function again. | ||||
| EE_INTERNAL_ERROR. | EE_INTERNAL_ERROR. | ||||
| */ | */ | ||||
| extern "C" | extern "C" | ||||
| #endif | #endif | ||||
| ESPEAK_API espeak_ERROR espeak_Char(wchar_t character); | ESPEAK_API espeak_ERROR espeak_Char(wchar_t character); | ||||
| /* Speak the name of the given character | |||||
| /* Speak the name of the given character | |||||
| Return: EE_OK: operation achieved | |||||
| EE_BUFFER_FULL: the command can not be buffered; | |||||
| Return: EE_OK: operation achieved | |||||
| EE_BUFFER_FULL: the command can not be buffered; | |||||
| you may try after a while to call the function again. | you may try after a while to call the function again. | ||||
| EE_INTERNAL_ERROR. | EE_INTERNAL_ERROR. | ||||
| */ | */ | ||||
| espeakRANGE: pitch range, range 0-100. 0-monotone, 50=normal | espeakRANGE: pitch range, range 0-100. 0-monotone, 50=normal | ||||
| espeakPUNCTUATION: which punctuation characters to announce: | espeakPUNCTUATION: which punctuation characters to announce: | ||||
| value in espeak_PUNCT_TYPE (none, all, some), | |||||
| value in espeak_PUNCT_TYPE (none, all, some), | |||||
| see espeak_GetParameter() to specify which characters are announced. | see espeak_GetParameter() to specify which characters are announced. | ||||
| espeakCAPITALS: announce capital letters by: | espeakCAPITALS: announce capital letters by: | ||||
| espeakWORDGAP: pause between words, units of 10mS (at the default speed) | espeakWORDGAP: pause between words, units of 10mS (at the default speed) | ||||
| Return: EE_OK: operation achieved | |||||
| EE_BUFFER_FULL: the command can not be buffered; | |||||
| Return: EE_OK: operation achieved | |||||
| EE_BUFFER_FULL: the command can not be buffered; | |||||
| you may try after a while to call the function again. | you may try after a while to call the function again. | ||||
| EE_INTERNAL_ERROR. | EE_INTERNAL_ERROR. | ||||
| */ | */ | ||||
| punctlist: A list of character codes, terminated by a zero character. | punctlist: A list of character codes, terminated by a zero character. | ||||
| Return: EE_OK: operation achieved | |||||
| EE_BUFFER_FULL: the command can not be buffered; | |||||
| Return: EE_OK: operation achieved | |||||
| EE_BUFFER_FULL: the command can not be buffered; | |||||
| you may try after a while to call the function again. | you may try after a while to call the function again. | ||||
| EE_INTERNAL_ERROR. | EE_INTERNAL_ERROR. | ||||
| */ | */ | ||||
| stream output stream for the phoneme symbols (and trace). If stream=NULL then it uses stdout. | stream output stream for the phoneme symbols (and trace). If stream=NULL then it uses stdout. | ||||
| */ | */ | ||||
| #ifdef __cplusplus | |||||
| extern "C" | |||||
| #endif | |||||
| ESPEAK_API void espeak_TextToPhonemes(const void *text, char *buffer, int size, int textmode, int phonememode); | |||||
| /* Translates text into phonemes. Call espeak_SetVoiceByName() first, to select a language. | |||||
| text: The text to translate, terminated by a zero character. | |||||
| buffer: Output buffer for the phoneme translation. | |||||
| size: Size of the output buffer in bytes. | |||||
| textmode: Type of character codes, one of: | |||||
| espeakCHARS_UTF8 UTF8 encoding | |||||
| espeakCHARS_8BIT The 8 bit ISO-8859 character set for the particular language. | |||||
| espeakCHARS_AUTO 8 bit or UTF8 (this is the default) | |||||
| espeakCHARS_WCHAR Wide characters (wchar_t) | |||||
| espeakCHARS_16BIT 16 bit characters. | |||||
| phonememode: bits0-3: | |||||
| 0= just phonemes. | |||||
| 1= include ties (U+361) for phoneme names of more than one letter. | |||||
| 2= include zero-width-joiner for phoneme names of more than one letter. | |||||
| 3= separate phonemes with underscore characters. | |||||
| bits 4-7: | |||||
| 0= eSpeak's ascii phoneme names. | |||||
| 1= International Phonetic Alphabet (as UTF-8 characters). | |||||
| */ | |||||
| #ifdef __cplusplus | #ifdef __cplusplus | ||||
| extern "C" | extern "C" | ||||
| #endif | #endif | ||||
| unsigned char gender; // 0=none 1=male, 2=female, | unsigned char gender; // 0=none 1=male, 2=female, | ||||
| unsigned char age; // 0=not specified, or age in years | unsigned char age; // 0=not specified, or age in years | ||||
| unsigned char variant; // only used when passed as a parameter to espeak_SetVoiceByProperties | unsigned char variant; // only used when passed as a parameter to espeak_SetVoiceByProperties | ||||
| unsigned char xx1; // for internal use | |||||
| unsigned char xx1; // for internal use | |||||
| int score; // for internal use | int score; // for internal use | ||||
| void *spare; // for internal use | void *spare; // for internal use | ||||
| } espeak_VOICE; | } espeak_VOICE; | ||||
| /* Searches for a voice with a matching "name" field. Language is not considered. | /* Searches for a voice with a matching "name" field. Language is not considered. | ||||
| "name" is a UTF8 string. | "name" is a UTF8 string. | ||||
| Return: EE_OK: operation achieved | |||||
| EE_BUFFER_FULL: the command can not be buffered; | |||||
| Return: EE_OK: operation achieved | |||||
| EE_BUFFER_FULL: the command can not be buffered; | |||||
| you may try after a while to call the function again. | you may try after a while to call the function again. | ||||
| EE_INTERNAL_ERROR. | EE_INTERNAL_ERROR. | ||||
| */ | */ | ||||
| function returns, the audio output is fully stopped and the synthesizer is ready to | function returns, the audio output is fully stopped and the synthesizer is ready to | ||||
| synthesize a new message. | synthesize a new message. | ||||
| Return: EE_OK: operation achieved | |||||
| Return: EE_OK: operation achieved | |||||
| EE_INTERNAL_ERROR. | EE_INTERNAL_ERROR. | ||||
| */ | */ | ||||
| #endif | #endif | ||||
| ESPEAK_API espeak_ERROR espeak_Synchronize(void); | ESPEAK_API espeak_ERROR espeak_Synchronize(void); | ||||
| /* This function returns when all data have been spoken. | /* This function returns when all data have been spoken. | ||||
| Return: EE_OK: operation achieved | |||||
| Return: EE_OK: operation achieved | |||||
| EE_INTERNAL_ERROR. | EE_INTERNAL_ERROR. | ||||
| */ | */ | ||||
| #endif | #endif | ||||
| ESPEAK_API espeak_ERROR espeak_Terminate(void); | ESPEAK_API espeak_ERROR espeak_Terminate(void); | ||||
| /* last function to be called. | /* last function to be called. | ||||
| Return: EE_OK: operation achieved | |||||
| Return: EE_OK: operation achieved | |||||
| EE_INTERNAL_ERROR. | EE_INTERNAL_ERROR. | ||||
| */ | */ | ||||
| #include "translate.h" | #include "translate.h" | ||||
| #include "wave.h" | #include "wave.h" | ||||
| const char *version_string = "1.47.04 02.Apr.13"; | |||||
| const char *version_string = "1.47.08 26.Apr.13"; | |||||
| const int version_phdata = 0x014701; | const int version_phdata = 0x014701; | ||||
| int option_device_number = -1; | int option_device_number = -1; |
| if((option_phonemes > 0) || (phoneme_callback != NULL)) | if((option_phonemes > 0) || (phoneme_callback != NULL)) | ||||
| { | { | ||||
| int use_ipa = 0; | |||||
| int phoneme_mode = 0; | |||||
| if(option_phonemes >= 3) | if(option_phonemes >= 3) | ||||
| use_ipa = option_phonemes-2; // 1=ipa, 2=ipa with tie, 3=ipa with ZWJ | |||||
| phoneme_mode = 0x10 + option_phonemes-3; // 0x10=ipa, 0x11=ipa with tie, 0x12=ipa with ZWJ, 0x13=ipa with separators | |||||
| GetTranslatedPhonemeString(translator->phon_out, sizeof(translator->phon_out), use_ipa); | |||||
| GetTranslatedPhonemeString(translator->phon_out, sizeof(translator->phon_out), phoneme_mode); | |||||
| if(option_phonemes > 0) | if(option_phonemes > 0) | ||||
| { | { | ||||
| fprintf(f_trans,"%s\n",translator->phon_out); | fprintf(f_trans,"%s\n",translator->phon_out); | ||||
| if(!iswalpha(0x010d)) | |||||
| { | |||||
| // check that c-caron is recognized as an alphabetic character | |||||
| fprintf(stderr,"Warning: Accented letters are not recognized, eg: U+010D\nSet LC_CTYPE to a UTF-8 locale\n"); | |||||
| } | |||||
| } | } | ||||
| if(phoneme_callback != NULL) | if(phoneme_callback != NULL) | ||||
| { | { |
| // a clause translated into phoneme codes (first stage) | // a clause translated into phoneme codes (first stage) | ||||
| typedef struct { | typedef struct { | ||||
| unsigned short synthflags; // NOTE Put shorts on 32bit boundaries, because of RISC OS compiler bug? | |||||
| unsigned char phcode; | unsigned char phcode; | ||||
| unsigned char stresslevel; | unsigned char stresslevel; | ||||
| unsigned char wordstress; | |||||
| unsigned char tone_ph; // tone phoneme to use with this vowel | |||||
| unsigned short synthflags; | |||||
| unsigned short sourceix; // ix into the original source text string, only set at the start of a word | unsigned short sourceix; // ix into the original source text string, only set at the start of a word | ||||
| unsigned char wordstress; // the highest level stress in this word | |||||
| unsigned char tone_ph; // tone phoneme to use with this vowel | |||||
| } PHONEME_LIST2; | } PHONEME_LIST2; | ||||
| typedef struct { | typedef struct { | ||||
| // The first section is a copy of PHONEME_LIST2 | // The first section is a copy of PHONEME_LIST2 | ||||
| unsigned short synthflags; | |||||
| unsigned char phcode; | unsigned char phcode; | ||||
| unsigned char stresslevel; | unsigned char stresslevel; | ||||
| unsigned short sourceix; // ix into the original source text string, only set at the start of a word | |||||
| unsigned char wordstress; // the highest level stress in this word | unsigned char wordstress; // the highest level stress in this word | ||||
| unsigned char tone_ph; // tone phoneme to use with this vowel | unsigned char tone_ph; // tone phoneme to use with this vowel | ||||
| unsigned short synthflags; | |||||
| unsigned short sourceix; // ix into the original source text string, only set at the start of a word | |||||
| PHONEME_TAB *ph; | PHONEME_TAB *ph; | ||||
| short length; // length_mod | short length; // length_mod |
| tr->langopts.stress_rule = STRESSPOSN_1L; | tr->langopts.stress_rule = STRESSPOSN_1L; | ||||
| tr->langopts.numbers = 1; | tr->langopts.numbers = 1; | ||||
| tr->langopts.accents = 2; // 'capital' after letter name | tr->langopts.accents = 2; // 'capital' after letter name | ||||
| tr->langopts.param[LOPT_UNPRONOUNCABLE] = 3; // don't count apostrophe | |||||
| } | } | ||||
| break; | break; | ||||
| SetLetterBits(tr,LETTERGP_VOWEL2,hy_vowels); | SetLetterBits(tr,LETTERGP_VOWEL2,hy_vowels); | ||||
| SetLetterBits(tr,LETTERGP_C,hy_consonants); | SetLetterBits(tr,LETTERGP_C,hy_consonants); | ||||
| tr->langopts.max_initial_consonants = 6; | tr->langopts.max_initial_consonants = 6; | ||||
| tr->langopts.numbers = NUM_DECIMAL_COMMA | NUM_OMIT_1_HUNDRED; | |||||
| tr->langopts.numbers = NUM_DECIMAL_COMMA | NUM_ALLOW_SPACE | NUM_OMIT_1_HUNDRED; | |||||
| // tr->langopts.param[LOPT_UNPRONOUNCABLE] = 1; // disable check for unpronouncable words | // tr->langopts.param[LOPT_UNPRONOUNCABLE] = 1; // disable check for unpronouncable words | ||||
| } | } | ||||
| break; | break; | ||||
| ResetLetterBits(tr,0x2); | ResetLetterBits(tr,0x2); | ||||
| SetLetterBits(tr,1,"bcdfgjkmnpqstvxz"); // B hard consonants, excluding h,l,r,w,y | SetLetterBits(tr,1,"bcdfgjkmnpqstvxz"); // B hard consonants, excluding h,l,r,w,y | ||||
| tr->langopts.param[LOPT_ALT] = 2; // call ApplySpecialAttributes2() if a word has $alt or $alt2 | tr->langopts.param[LOPT_ALT] = 2; // call ApplySpecialAttributes2() if a word has $alt or $alt2 | ||||
| tr->langopts.accents = 2; // 'capital' after letter name | |||||
| } | } | ||||
| break; | break; | ||||
| 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 = S_NO_AUTO_2; //no automatic secondary stress | tr->langopts.stress_flags = S_NO_AUTO_2; //no automatic secondary stress | ||||
| tr->langopts.dotless_i = 1; | |||||
| tr->langopts.param[LOPT_SUFFIX] = 1; | tr->langopts.param[LOPT_SUFFIX] = 1; | ||||
| if(name2 == L('a','z')) | if(name2 == L('a','z')) |
| 0 | 0 | ||||
| }; | }; | ||||
| if(iswalpha(c)) | |||||
| if(iswalpha2(c)) | |||||
| return(1); | return(1); | ||||
| if(c < 0x300) | |||||
| return(0); | |||||
| if((c >= 0x901) && (c <= 0xdf7)) | if((c >= 0x901) && (c <= 0xdf7)) | ||||
| { | { | ||||
| // Indic scripts: Devanagari, Tamil, etc | // Indic scripts: Devanagari, Tamil, etc | ||||
| while((*word != 0) && !isspace2(*word)) | while((*word != 0) && !isspace2(*word)) | ||||
| { | { | ||||
| word += utf8_in(&c, word); | word += utf8_in(&c, word); | ||||
| if(!iswupper(c)) | |||||
| if(!iswupper2(c)) | |||||
| return(0); | return(0); | ||||
| } | } | ||||
| return(1); | return(1); | ||||
| } | } | ||||
| } | } | ||||
| if((wflags & FLAG_ALL_UPPER) && (word_length > 1)&& iswalpha(first_char)) | |||||
| if((wflags & FLAG_ALL_UPPER) && (word_length > 1)&& iswalpha2(first_char)) | |||||
| { | { | ||||
| if((option_tone_flags & OPTION_EMPHASIZE_ALLCAPS) && !(dictionary_flags[0] & FLAG_ABBREV)) | if((option_tone_flags & OPTION_EMPHASIZE_ALLCAPS) && !(dictionary_flags[0] & FLAG_ABBREV)) | ||||
| { | { | ||||
| tr->expect_past--; | tr->expect_past--; | ||||
| } | } | ||||
| if((word_length == 1) && (tr->translator_name == L('e','n')) && iswalpha(first_char) && (first_char != 'i')) | |||||
| if((word_length == 1) && (tr->translator_name == L('e','n')) && iswalpha2(first_char) && (first_char != 'i')) | |||||
| { | { | ||||
| // English Specific !!!! | // English Specific !!!! | ||||
| // any single letter before a dot is an abbreviation, except 'I' | // any single letter before a dot is an abbreviation, except 'I' | ||||
| while(*p2 != ' ') p2++; | while(*p2 != ' ') p2++; | ||||
| utf8_in(&c_word2, p2+1); // first character of the next word; | utf8_in(&c_word2, p2+1); // first character of the next word; | ||||
| if(!iswalpha(c_word2)) | |||||
| if(!iswalpha2(c_word2)) | |||||
| { | { | ||||
| ok =0; | ok =0; | ||||
| } | } | ||||
| // there is a list of character codes to be substituted with alternative codes | // there is a list of character codes to be substituted with alternative codes | ||||
| if(iswupper(c_lower = c)) | |||||
| if(iswupper2(c_lower = c)) | |||||
| { | { | ||||
| c_lower = towlower(c); | |||||
| c_lower = towlower2(c); | |||||
| upper_case = 1; | upper_case = 1; | ||||
| } | } | ||||
| new_c = replace_chars[ix+1]; | new_c = replace_chars[ix+1]; | ||||
| break; | break; | ||||
| } | } | ||||
| if((word >> 16) == (unsigned int)towlower(next_in)) | |||||
| if((word >> 16) == (unsigned int)towlower2(next_in)) | |||||
| { | { | ||||
| new_c = replace_chars[ix+1]; | new_c = replace_chars[ix+1]; | ||||
| ignore_next = 1; | ignore_next = 1; | ||||
| // there is a second character to be inserted | // there is a second character to be inserted | ||||
| // don't convert the case of the second character unless the next letter is also upper case | // don't convert the case of the second character unless the next letter is also upper case | ||||
| c2 = new_c >> 16; | c2 = new_c >> 16; | ||||
| if(upper_case && iswupper(next_in)) | |||||
| c2 = towupper(c2); | |||||
| if(upper_case && iswupper2(next_in)) | |||||
| c2 = towupper2(c2); | |||||
| *insert = c2; | *insert = c2; | ||||
| new_c &= 0xffff; | new_c &= 0xffff; | ||||
| } | } | ||||
| if(upper_case) | if(upper_case) | ||||
| new_c = towupper(new_c); | |||||
| new_c = towupper2(new_c); | |||||
| *wordflags |= FLAG_CHAR_REPLACED; | *wordflags |= FLAG_CHAR_REPLACED; | ||||
| return(new_c); | return(new_c); | ||||
| // look for 'n and replace by a special character (unicode: schwa) | // look for 'n and replace by a special character (unicode: schwa) | ||||
| if(!iswalpha(prev_in)) | |||||
| if(!iswalpha2(prev_in)) | |||||
| { | { | ||||
| utf8_in(&next2, &ptr[1]); | utf8_in(&next2, &ptr[1]); | ||||
| } | } | ||||
| else | else | ||||
| { | { | ||||
| if(iswupper(c)) | |||||
| if(iswupper2(c)) | |||||
| word_flags |= FLAG_FIRST_UPPER; | word_flags |= FLAG_FIRST_UPPER; | ||||
| if((prev_out == ' ') && iswdigit(sbuf[ix-2]) && !iswdigit(prev_in)) | if((prev_out == ' ') && iswdigit(sbuf[ix-2]) && !iswdigit(prev_in)) | ||||
| } | } | ||||
| } | } | ||||
| if(iswupper(c)) | |||||
| if(iswupper2(c)) | |||||
| { | { | ||||
| c = towlower2(c); | c = towlower2(c); | ||||
| } | } | ||||
| else | else | ||||
| { | { | ||||
| if((iswlower(prev_in)) && (prev_in != 0xba)) // Windows thinks masc.ordinal (0xba) is lower-case | |||||
| if(iswlower2(prev_in)) | |||||
| { | { | ||||
| // lower case followed by upper case in a word | // lower case followed by upper case in a word | ||||
| if(UpperCaseInWord(tr, &sbuf[ix], c) == 1) | if(UpperCaseInWord(tr, &sbuf[ix], c) == 1) | ||||
| { | { | ||||
| // convert to lower case and continue | // convert to lower case and continue | ||||
| c = towlower(c); | |||||
| c = towlower2(c); | |||||
| } | } | ||||
| else | else | ||||
| { | { | ||||
| // next_word_flags |= FLAG_NOSPACE; // problem: prevents FLAG_HAS_DOT being set | // next_word_flags |= FLAG_NOSPACE; // problem: prevents FLAG_HAS_DOT being set | ||||
| } | } | ||||
| } | } | ||||
| else if((c != ' ') && iswupper(prev_in) && iswlower(next_in)) | |||||
| else if((c != ' ') && iswupper2(prev_in) && iswlower2(next_in)) | |||||
| { | { | ||||
| int next2_in; | int next2_in; | ||||
| utf8_in(&next2_in,&source[source_index + next_in_nbytes]); | utf8_in(&next2_in,&source[source_index + next_in_nbytes]); |
| #define FLAG_ONLY 0x4000 | #define FLAG_ONLY 0x4000 | ||||
| #define FLAG_ONLY_S 0x8000 | #define FLAG_ONLY_S 0x8000 | ||||
| #define FLAG_STEM 0x10000 // must have a suffix | #define FLAG_STEM 0x10000 // must have a suffix | ||||
| #define FLAG_ATEND 0x20000 /* use this pronunciation if at end of clause */ | |||||
| #define FLAG_ATEND 0x20000 // use this pronunciation if at end of clause | |||||
| #define FLAG_ATSTART 0x40000 // use this pronunciation if at start of clause | #define FLAG_ATSTART 0x40000 // use this pronunciation if at start of clause | ||||
| #define FLAG_NATIVE 0x80000 // not if we've switched translators | |||||
| #define FLAG_LOOKUP_SYMBOL 0x40000000 // to indicate called from Lookup() | #define FLAG_LOOKUP_SYMBOL 0x40000000 // to indicate called from Lookup() | ||||
| #define BITNUM_FLAG_ALLCAPS 0x2a | #define BITNUM_FLAG_ALLCAPS 0x2a | ||||
| typedef struct{ | typedef struct{ | ||||
| unsigned int flags; | unsigned int flags; | ||||
| unsigned short start; | unsigned short start; | ||||
| unsigned short sourceix; | |||||
| unsigned char pre_pause; | unsigned char pre_pause; | ||||
| unsigned char wmark; | unsigned char wmark; | ||||
| unsigned short sourceix; | |||||
| unsigned char length; | unsigned char length; | ||||
| } WORD_TAB; | } WORD_TAB; | ||||
| char tone_numbers; | char tone_numbers; | ||||
| char ideographs; // treat as separate words | char ideographs; // treat as separate words | ||||
| char textmode; // the meaning of FLAG_TEXTMODE is reversed (to save data when *_list file is compiled) | char textmode; // the meaning of FLAG_TEXTMODE is reversed (to save data when *_list file is compiled) | ||||
| char dotless_i; // uses letter U+0131 | |||||
| int testing; // testing options: bit 1= specify stressed syllable in the form: "outdoor/2" | int testing; // testing options: bit 1= specify stressed syllable in the form: "outdoor/2" | ||||
| int listx; // compile *_listx after *list | int listx; // compile *_listx after *list | ||||
| const unsigned int *replace_chars; // characters to be substitutes | const unsigned int *replace_chars; // characters to be substitutes | ||||
| int IsDigit09(unsigned int c); | int IsDigit09(unsigned int c); | ||||
| int IsAlpha(unsigned int c); | int IsAlpha(unsigned int c); | ||||
| int IsVowel(Translator *tr, int c); | int IsVowel(Translator *tr, int c); | ||||
| int iswalpha2(int c); | |||||
| int isspace2(unsigned int c); | int isspace2(unsigned int c); | ||||
| int iswlower2(int c); | |||||
| int iswupper2(int c); | |||||
| int towlower2(unsigned int c); | int towlower2(unsigned int c); | ||||
| void GetTranslatedPhonemeString(char *phon_out, int n_phon_out, int use_ipa); | |||||
| int towupper2(unsigned int c); | |||||
| void GetTranslatedPhonemeString(char *phon_out, int n_phon_out, int phoneme_mode); | |||||
| const char *WordToString2(unsigned int word); | const char *WordToString2(unsigned int word); | ||||
| ALPHABET *AlphabetFromChar(int c); | ALPHABET *AlphabetFromChar(int c); | ||||
| ALPHABET *AlphabetFromName(const char *name); | ALPHABET *AlphabetFromName(const char *name); |
| t_phonetic->SetDefaultStyle(style_phonetic_large); | t_phonetic->SetDefaultStyle(style_phonetic_large); | ||||
| translate_text = 3; | translate_text = 3; | ||||
| use_ipa = 1; | |||||
| use_ipa = 0x10; | |||||
| break; | break; | ||||
| case T_PROCESS: | case T_PROCESS: |
| typedef struct { | typedef struct { | ||||
| char v_name[40]; | char v_name[40]; | ||||
| char language_name[20]; | |||||
| int phoneme_tab_ix; // phoneme table number | int phoneme_tab_ix; // phoneme table number | ||||
| int pitch_base; // Hz<<12 | int pitch_base; // Hz<<12 |
| voice->n_harmonic_peaks = 5; | voice->n_harmonic_peaks = 5; | ||||
| voice->peak_shape = 0; | voice->peak_shape = 0; | ||||
| voice->voicing = 64; | voice->voicing = 64; | ||||
| voice->consonant_amp = 90; // change to 85 for v.1.47 was 100 | |||||
| voice->consonant_amp = 90; // change from 100 to 90 for v.1.47 | |||||
| voice->consonant_ampv = 100; | voice->consonant_ampv = 100; | ||||
| voice->samplerate = samplerate_native; | voice->samplerate = samplerate_native; | ||||
| memset(voice->klattv,0,sizeof(voice->klattv)); | memset(voice->klattv,0,sizeof(voice->klattv)); | ||||
| int c; | int c; | ||||
| unsigned int value = 0; | unsigned int value = 0; | ||||
| for(ix=0; (ix<4) & ((c = string[ix]) != 0); ix++) | |||||
| for(ix=0; (ix<4) && ((c = string[ix]) != 0); ix++) | |||||
| { | { | ||||
| value = (value << 8) | (c & 0xff); | value = (value << 8) | (c & 0xff); | ||||
| } | } | ||||
| // which directory to look for a named voice. List of voice names, must end in a space. | // which directory to look for a named voice. List of voice names, must end in a space. | ||||
| static const char *voices_asia = | static const char *voices_asia = | ||||
| "bn fa fa-pin hi hy hy-west id ka kn ku ml ms ne pa ta te tr vi vi-hue zh zh-yue "; | |||||
| "az bn fa fa-pin hi hy hy-west id ka kn ku ml ms ne pa ta te tr vi vi-hue vi-sgn zh zh-yue "; | |||||
| static const char *voices_europe = | static const char *voices_europe = | ||||
| "an bg bs ca cs cy da de el en en-us es et fi fr fr-be ga hr hu is it lt lv mk nl no pl pt-pt ro ru sk sq sr sv "; | "an bg bs ca cs cy da de el en en-us es et fi fr fr-be ga hr hu is it lt lv mk nl no pl pt-pt ro ru sk sq sr sv "; | ||||
| new_translator = SelectTranslator(translator_name); | new_translator = SelectTranslator(translator_name); | ||||
| langopts = &new_translator->langopts; | langopts = &new_translator->langopts; | ||||
| strncpy0(voice->language_name, language_name, sizeof(voice->language_name)); | |||||
| } | } | ||||
| } | } | ||||
| break; | break; | ||||
| } | } | ||||
| DoVoiceChange(voice); | DoVoiceChange(voice); | ||||
| voice_selector.languages = voice->language_name; | |||||
| SetVoiceStack(&voice_selector, variant_name); | SetVoiceStack(&voice_selector, variant_name); | ||||
| return(EE_OK); | return(EE_OK); | ||||
| } | } | ||||
| LoadVoice(variant_name,2); | LoadVoice(variant_name,2); | ||||
| } | } | ||||
| DoVoiceChange(voice); | DoVoiceChange(voice); | ||||
| voice_selector.languages = voice->language_name; | |||||
| SetVoiceStack(&voice_selector, variant_name); | SetVoiceStack(&voice_selector, variant_name); | ||||
| return(EE_OK); | return(EE_OK); | ||||
| } | } | ||||
| ESPEAK_API const espeak_VOICE **espeak_ListVoices(espeak_VOICE *voice_spec) | ESPEAK_API const espeak_VOICE **espeak_ListVoices(espeak_VOICE *voice_spec) | ||||
| {//======================================================================== | {//======================================================================== | ||||
| char path_voices[sizeof(path_home)+12]; | char path_voices[sizeof(path_home)+12]; | ||||
| #ifdef PLATFORM_RISCOS | #ifdef PLATFORM_RISCOS | ||||
| if(n_voices_list == 0) | if(n_voices_list == 0) | ||||
| { | { |