| _3 t'i:n | _3 t'i:n | ||||
| _4 c'a:@'r | _4 c'a:@'r | ||||
| _5 ,pa~c | _5 ,pa~c | ||||
| _6 ch'O:j | |||||
| _6 c#'O:j | |||||
| _7 S'a:t | _7 S'a:t | ||||
| _8 'a:th. | |||||
| _8 'a:t.# | |||||
| _9 n'O:j | _9 n'O:j | ||||
| _10 d'O:S | _10 d'O:S | ||||
| _11 a'g'a:rO: | _11 a'g'a:rO: | ||||
| _12 b'a:rO: | _12 b'a:rO: | ||||
| _13 t'a:rO: | _13 t'a:rO: | ||||
| _14 ch:O:d'dO: | |||||
| _14 c#:O:d'dO: | |||||
| _15 p'O:n'e:rO: | _15 p'O:n'e:rO: | ||||
| _16 S'o:lO: | _16 S'o:lO: | ||||
| _17 SO:t'e:rO: | _17 SO:t'e:rO: | ||||
| _18 a:th'e:rO: | |||||
| _18 a:t#'e:rO: | |||||
| _19 U'n'IS | _19 U'n'IS | ||||
| _20 kU:'ri | _20 kU:'ri | ||||
| _23 t'e:IS | _23 t'e:IS | ||||
| _24 c'O:b'bIS | _24 c'O:b'bIS | ||||
| _25 pa~O:c'IS | _25 pa~O:c'IS | ||||
| _26 ch'a:'bb'IS | |||||
| _26 c#'a:'bb'IS | |||||
| _27 Sa:ta:S | _27 Sa:ta:S | ||||
| _28 ath'a:S | |||||
| _28 at#'a:S | |||||
| _29 Unt'rIs | _29 Unt'rIs | ||||
| _30 t'i:rIS | _30 t'i:rIS | ||||
| _33 tE't'rIS | _33 tE't'rIS | ||||
| _34 ca~o:u:t'rIS | _34 ca~o:u:t'rIS | ||||
| _35 pa~O:it'rIS | _35 pa~O:it'rIS | ||||
| _36 cha'trIS | |||||
| _36 c#a'trIS | |||||
| _37 Sa~it'rIS | _37 Sa~it'rIS | ||||
| _38 at'tr'IS | _38 at'tr'IS | ||||
| _39 U'nO:cO:l'IS | _39 U'nO:cO:l'IS | ||||
| _43 te:ta:l'lIS | _43 te:ta:l'lIS | ||||
| _44 cu:a:l'lIS | _44 cu:a:l'lIS | ||||
| _45 paI'nta:l'lIS | _45 paI'nta:l'lIS | ||||
| _46 che:co:l'lIS | |||||
| _46 c#e:co:l'lIS | |||||
| _47 Sat'co:l'lIs | _47 Sat'co:l'lIs | ||||
| _48 at'co:l'lIS | _48 at'co:l'lIS | ||||
| _49 Uno:pan'ca:S | _49 Uno:pan'ca:S | ||||
| _53 t'Ip'pan'no: | _53 t'Ip'pan'no: | ||||
| _54 cu:wan'no: | _54 cu:wan'no: | ||||
| _55 po:n'ca:n'no: | _55 po:n'ca:n'no: | ||||
| _56 chh@p:'an'no: | |||||
| _56 c#h@p:'an'no: | |||||
| _57 Sa:ta:n'no: | _57 Sa:ta:n'no: | ||||
| _58 ath'a:n'no: | |||||
| _59 Uno:s'ath | |||||
| _58 at#'a:n'no: | |||||
| _59 Uno:s'at# | |||||
| _60 s'a:th. | |||||
| _60 s'a:t.# | |||||
| _61 e:k'so:t'tI | _61 e:k'so:t'tI | ||||
| _62 ba:so:t'tI | _62 ba:so:t'tI | ||||
| _63 te:so:t'tI | _63 te:so:t'tI | ||||
| _64 ca~o:u:so:t'tI | _64 ca~o:u:so:t'tI | ||||
| _65 pa~I'so:t'tI | _65 pa~I'so:t'tI | ||||
| _66 che:so:t'tI | |||||
| _66 c#e:so:t'tI | |||||
| _67 Sat'so:t'tI | _67 Sat'so:t'tI | ||||
| _68 atso:t'ti | _68 atso:t'ti | ||||
| _69 ,Uno:Sat'to:r | _69 ,Uno:Sat'to:r | ||||
| _72 ba:hat'to:r | _72 ba:hat'to:r | ||||
| _73 tIat'to:r | _73 tIat'to:r | ||||
| _74 cu:at'to:r | _74 cu:at'to:r | ||||
| _75 pa~chat'to:r | |||||
| _76 chI'at:to:r | |||||
| _75 pa~c#at'to:r | |||||
| _76 c#I'at:to:r | |||||
| _77 Sa:t@'t:o:r | _77 Sa:t@'t:o:r | ||||
| _78 atat'to:r | _78 atat'to:r | ||||
| _79 ,Uno:a:Si: | _79 ,Uno:a:Si: | ||||
| _83 tIra:Si: | _83 tIra:Si: | ||||
| _84 cu:ra:Si: | _84 cu:ra:Si: | ||||
| _85 pa~ca:Si: | _85 pa~ca:Si: | ||||
| _86 chIa:Si: | |||||
| _86 c#Ia:Si: | |||||
| _87 Sa:ta:Si: | _87 Sa:ta:Si: | ||||
| _88 O:sto:a:Si: | _88 O:sto:a:Si: | ||||
| _89 Uno:no:b'bo:I | _89 Uno:no:b'bo:I | ||||
| _93 tIr'a:no:b'bo:I | _93 tIr'a:no:b'bo:I | ||||
| _94 cu:r'a:no:b'bo:I | _94 cu:r'a:no:b'bo:I | ||||
| _95 pa~ca:no:b'bo:I | _95 pa~ca:no:b'bo:I | ||||
| _96 chIa:no:b'bo:I | |||||
| _96 c#Ia:no:b'bo:I | |||||
| _97 S@ta:no:b'bo:I | _97 S@ta:no:b'bo:I | ||||
| _98 ata:no:b'bo:I | _98 ata:no:b'bo:I | ||||
| _99 nIra:no:b'bo:I | _99 nIra:no:b'bo:I | ||||
| _0C SO: | _0C SO: | ||||
| _0M1 h@z'a:r | _0M1 h@z'a:r | ||||
| _0M2 l'a:kh | |||||
| _0M2 l'a:k# | |||||
| _0M3 ko:tI | _0M3 ko:tI | ||||
| _0M4 o:r'bu:d | _0M4 o:r'bu:d | ||||
| _dpt d@so:mIk | _dpt d@so:mIk | ||||
| // Single consonants | // Single consonants | ||||
| ক k@ | ক k@ | ||||
| খ kh@ | |||||
| খ k#@ | |||||
| গ g@ | গ g@ | ||||
| ঘ gh@ | |||||
| ঘ g#@ | |||||
| ঙ N'g | ঙ N'g | ||||
| চ c@ | চ c@ | ||||
| ছ ch@ | |||||
| ছ c#@ | |||||
| জ J@ | জ J@ | ||||
| ঝ Jh@ | |||||
| ঝ J#@ | |||||
| ঞ n^@ | ঞ n^@ | ||||
| ট t.@ | ট t.@ | ||||
| ঠ th.@ | |||||
| ঠ t.#@ | |||||
| ড d.@ | ড d.@ | ||||
| ঢ dh.@ | |||||
| ঢ d.#@ | |||||
| ণ n.@ // retroflex n.@ | ণ n.@ // retroflex n.@ | ||||
| ত t@ | ত t@ | ||||
| থ th@ | |||||
| থ t#@ | |||||
| দ d@ | দ d@ | ||||
| ধ dh@ | |||||
| ধ d#@ | |||||
| ন n@ | ন n@ | ||||
| প p@ | প p@ | ||||
| ফ ph@ | |||||
| ফ p#@ | |||||
| ব b@ | ব b@ | ||||
| ভ bh@ | |||||
| ভ b#@ | |||||
| ম m@ | ম m@ | ||||
| য় O:j | য় O:j | ||||
| য J@ | য J@ |
| .group ক | .group ক | ||||
| ক k@ | ক k@ | ||||
| ক (B k | ক (B k | ||||
| ক্য (्য kja: | |||||
| ক্ষ kh'@ | |||||
| ক্য (्য kja: | |||||
| ক্ষ k#'@ | |||||
| .group খ | .group খ | ||||
| খ khV | |||||
| খ (B kh@ | |||||
| খ k#V | |||||
| খ (B k#@ | |||||
| .group গ | .group গ | ||||
| গ gV | গ gV | ||||
| ঈ)গ (ল g@ | ঈ)গ (ল g@ | ||||
| .group ঘ | .group ঘ | ||||
| ঘ ghV | |||||
| ঘ (B gh | |||||
| ঘ g#V | |||||
| ঘ (B g# | |||||
| .group ঙ | .group ঙ | ||||
| ঙ N'g | ঙ N'g | ||||
| .group চ | .group চ | ||||
| চ cV | চ cV | ||||
| চ (B c | চ (B c | ||||
| ্য) চ্য c'j@ | |||||
| ্য) চ্য c'j@ | |||||
| .group ছ | .group ছ | ||||
| ছ chV | |||||
| ছ (B ch@ | |||||
| ছ c#V | |||||
| ছ (B c#@ | |||||
| .group জ | .group জ | ||||
| জ J@ | জ J@ | ||||
| জ (B J@ | |||||
| ্) জ zV | |||||
| জ (B J@ | |||||
| জ (B J@ | |||||
| ্) জ zV | |||||
| জ (B J@ | |||||
| .group ঝ | .group ঝ | ||||
| ঝ Jh@ | |||||
| ঝ (B Jh@ | |||||
| ঝ J#@ | |||||
| ঝ (B J#@ | |||||
| .group ঞ | .group ঞ | ||||
| ঞ n^V | ঞ n^V | ||||
| ঞ্ (B n^ | ঞ্ (B n^ | ||||
| .group ট | .group ট | ||||
| ট tV | |||||
| ট (B tV | |||||
| ট (्য় t.j@ | |||||
| ট t.V | |||||
| ট (B t.V | |||||
| ট (्য় t.j@ | |||||
| .group ঠ | .group ঠ | ||||
| ঠ thV | |||||
| ঠ (B th. | |||||
| ঠ t.#V | |||||
| ঠ (B t.# | |||||
| .group ড | .group ড | ||||
| ড d.V | ড d.V | ||||
| ড (B d. | ড (B d. | ||||
| .group ঢ | .group ঢ | ||||
| ঢ dh.V | |||||
| ঢ (B dh. | |||||
| ঢ d.#V | |||||
| ঢ (B d.# | |||||
| .group ণ | .group ণ | ||||
| ণ n.V // (temporary) same as dental [n] | ণ n.V // (temporary) same as dental [n] | ||||
| ণ (B n. | ণ (B n. | ||||
| ণ্ম n.m | |||||
| ণ্ম n.m | |||||
| .group ত | .group ত | ||||
| ত t@ | ত t@ | ||||
| ত (B t@ | |||||
| ত (B t@ | |||||
| .group থ | .group থ | ||||
| থ th@ | |||||
| থ (B th. | |||||
| ক) থ (ন th@ | |||||
| থ t#@ | |||||
| থ (B t# | |||||
| ক) থ (ন t#@ | |||||
| .group দ | .group দ | ||||
| দ d@ | দ d@ | ||||
| দ (B d. | |||||
| দ (B d | |||||
| ব) দ (ল d@ | ব) দ (ল d@ | ||||
| .group ধ | .group ধ | ||||
| ধ dh@ | |||||
| ধ (B dh. | |||||
| সা) ধ (ন dh@ | |||||
| ধ d#@ | |||||
| ধ (B d# | |||||
| সা) ধ (ন d#@ | |||||
| .group ন | .group ন | ||||
| ন n@ | ন n@ | ||||
| প্য (्য p: | প্য (्য p: | ||||
| .group ফ | .group ফ | ||||
| ফ ph@ | |||||
| ফ (B ph@ | |||||
| ফ ph@ | |||||
| ফ p#@ | |||||
| ফ (B p#@ | |||||
| ফ p#@ | |||||
| .group ব | .group ব | ||||
| ব (B b@ | ব (B b@ | ||||
| .group ভ | .group ভ | ||||
| ভ bh@ | |||||
| ভ (B bh@ | |||||
| ভ b#@ | |||||
| ভ (B b#@ | |||||
| .group ম | .group ম | ||||
| ম mV | ম mV |
| @) ཀ (_ k | @) ཀ (_ k | ||||
| .group ཁ | .group ཁ | ||||
| ཁ kha | |||||
| ཁ (B kh | |||||
| @) ཁ (_ kh | |||||
| ཁ k#a | |||||
| ཁ (B k# | |||||
| @) ཁ (_ k# | |||||
| .group ག | .group ག | ||||
| ག ga | ག ga | ||||
| @) ག (_ g | @) ག (_ g | ||||
| .group གྷ | .group གྷ | ||||
| གྷ gha | |||||
| གྷ (B gh | |||||
| @) གྷ (_ gh | |||||
| གྷ g#a | |||||
| གྷ (B g# | |||||
| @) གྷ (_ g# | |||||
| .group ང | .group ང | ||||
| ང Na | ང Na | ||||
| @) ཅ (_ c | @) ཅ (_ c | ||||
| .group ཆ | .group ཆ | ||||
| ཆ cha | |||||
| ཆ (B ch | |||||
| @) ཆ (_ ch | |||||
| ཆ c#a | |||||
| ཆ (B c# | |||||
| @) ཆ (_ c# | |||||
| .group ཇ | .group ཇ | ||||
| ཇ Ja | ཇ Ja | ||||
| @) ཊ (_ t. | @) ཊ (_ t. | ||||
| .group ཋ | .group ཋ | ||||
| ཋ th.a | |||||
| ཋ (B th. | |||||
| @) ཋ (_ th. | |||||
| ཋ t.#a | |||||
| ཋ (B t.# | |||||
| @) ཋ (_ t.# | |||||
| .group ཌ | .group ཌ | ||||
| ཌ d.a | ཌ d.a | ||||
| @) ཌ (_ d. | @) ཌ (_ d. | ||||
| .group ཌྷ | .group ཌྷ | ||||
| ཌྷ dh.a | |||||
| ཌྷ (B dh. | |||||
| @) ཌྷ (_ dh. | |||||
| ཌྷ d.#a | |||||
| ཌྷ (B d.# | |||||
| @) ཌྷ (_ d.# | |||||
| .group ཎ | .group ཎ | ||||
| ཎ n.a | ཎ n.a | ||||
| @) ཏ (_ t | @) ཏ (_ t | ||||
| .group ཐ | .group ཐ | ||||
| ཐ tha | |||||
| ཐ (B th | |||||
| @) ཐ (_ th | |||||
| ཐ t#a | |||||
| ཐ (B t# | |||||
| @) ཐ (_ t# | |||||
| .group ད | .group ད | ||||
| ད da | ད da | ||||
| @) ད (_ d | @) ད (_ d | ||||
| .group དྷ | .group དྷ | ||||
| དྷ dha | |||||
| དྷ (B dh | |||||
| @) དྷ (_ dh | |||||
| དྷ d#a | |||||
| དྷ (B d# | |||||
| @) དྷ (_ d# | |||||
| .group ན | .group ན | ||||
| ན na | ན na | ||||
| @) པ (_ p | @) པ (_ p | ||||
| .group ཕ | .group ཕ | ||||
| ཕ pha | |||||
| ཕ (B ph | |||||
| @) ཕ (_ ph | |||||
| ཕ p#a | |||||
| ཕ (B p# | |||||
| @) ཕ (_ p# | |||||
| .group བ | .group བ | ||||
| བ ba | བ ba | ||||
| @) བ (_ b | @) བ (_ b | ||||
| .group བྷ | .group བྷ | ||||
| བྷ bha | |||||
| བྷ (B bh | |||||
| @) བྷ (_ bh | |||||
| བྷ b#a | |||||
| བྷ (B b# | |||||
| @) བྷ (_ b# | |||||
| .group མ | .group མ | ||||
| མ ma | མ ma | ||||
| @) ཙ (_ ts | @) ཙ (_ ts | ||||
| .group ཚ | .group ཚ | ||||
| ཚ tsha | |||||
| ཚ (B tsh | |||||
| @) ཚ (_ tsh | |||||
| ཚ ts#a | |||||
| ཚ (B ts# | |||||
| @) ཚ (_ ts# | |||||
| .group ཛ | .group ཛ | ||||
| ཛ dza | ཛ dza | ||||
| @) ཛ (_ dz | @) ཛ (_ dz | ||||
| .group ཛྷ | .group ཛྷ | ||||
| ཛྷ dzha | |||||
| ཛྷ (B dzh | |||||
| @) ཛྷ (_ dzh | |||||
| ཛྷ dz#a | |||||
| ཛྷ (B dz# | |||||
| @) ཛྷ (_ dz# | |||||
| .group ཝ | .group ཝ | ||||
| ཝ wa | ཝ wa | ||||
| ྐ (B k | ྐ (B k | ||||
| @) ྐ (_ k | @) ྐ (_ k | ||||
| ྑ kha | |||||
| ྑ (B kh | |||||
| @) ྑ (_ kh | |||||
| ྑ k#a | |||||
| ྑ (B k# | |||||
| @) ྑ (_ k# | |||||
| ྒ ga | ྒ ga | ||||
| ྒ (B g | ྒ (B g | ||||
| @) ྒ (_ g | @) ྒ (_ g | ||||
| ྒྷ gha | |||||
| @) ྒྷ (_ gh | |||||
| ྒྷ g#a | |||||
| @) ྒྷ (_ g# | |||||
| ྔ Na | ྔ Na | ||||
| ྔ (B N | ྔ (B N | ||||
| ྕ (B c | ྕ (B c | ||||
| @) ྕ (_ c | @) ྕ (_ c | ||||
| ྖ cha | |||||
| ྖ (B ch | |||||
| @) ྖ (_ ch | |||||
| ྖ c#a | |||||
| ྖ (B c# | |||||
| @) ྖ (_ c# | |||||
| ྗ Ja | ྗ Ja | ||||
| ྗ (B J | ྗ (B J | ||||
| ྚ (B t. | ྚ (B t. | ||||
| @) ྚ (_ t. | @) ྚ (_ t. | ||||
| ྛ th.a | |||||
| ྛ (B th. | |||||
| @) ྛ (_ th. | |||||
| ྛ t.#a | |||||
| ྛ (B t.# | |||||
| @) ྛ (_ t.# | |||||
| ྜ d.a | ྜ d.a | ||||
| ྜ (B d. | ྜ (B d. | ||||
| @) ྜ (_ d. | @) ྜ (_ d. | ||||
| ྜྷ dh.a | |||||
| ྜྷ (B dh. | |||||
| @) ྜྷ (_ dh. | |||||
| ྜྷ d.#a | |||||
| ྜྷ (B d.# | |||||
| @) ྜྷ (_ d.# | |||||
| ྞ n.a | ྞ n.a | ||||
| ྞ (B n. | ྞ (B n. | ||||
| ྟ (B t | ྟ (B t | ||||
| @) ྟ (_ t | @) ྟ (_ t | ||||
| ྠ tha | |||||
| ྠ (B th | |||||
| @) ྠ (_ th | |||||
| ྠ t#a | |||||
| ྠ (B t# | |||||
| @) ྠ (_ t# | |||||
| ྡ da | ྡ da | ||||
| ྡ (B d | ྡ (B d | ||||
| @) ྡ (_ d | @) ྡ (_ d | ||||
| ྡྷ dha | |||||
| ྡྷ (B dh | |||||
| @) ྡྷ (_ dh | |||||
| ྡྷ d#a | |||||
| ྡྷ (B d# | |||||
| @) ྡྷ (_ d# | |||||
| ྣ na | ྣ na | ||||
| ྣ (B n | ྣ (B n | ||||
| ྤ (B p | ྤ (B p | ||||
| @) ྤ (_ p | @) ྤ (_ p | ||||
| ྥ pha | |||||
| ྥ (B ph | |||||
| @) ྥ (_ ph | |||||
| ྥ p#a | |||||
| ྥ (B p# | |||||
| @) ྥ (_ p# | |||||
| ྦ ba | ྦ ba | ||||
| ྦ (B b | ྦ (B b | ||||
| @) ྦ (_ b | @) ྦ (_ b | ||||
| ྦྷ bha | |||||
| ྦྷ (B bh | |||||
| @) ྦྷ (_ bh | |||||
| ྦྷ b#a | |||||
| ྦྷ (B b# | |||||
| @) ྦྷ (_ b# | |||||
| ྨ ma | ྨ ma | ||||
| ྨ (B m | ྨ (B m | ||||
| ྩ (B ts | ྩ (B ts | ||||
| @) ྩ (_ ts | @) ྩ (_ ts | ||||
| ྪ tsha | |||||
| ྪ (B tsh | |||||
| @) ྪ (_ tsh | |||||
| ྪ ts#a | |||||
| ྪ (B ts# | |||||
| @) ྪ (_ ts# | |||||
| ྫ dza | ྫ dza | ||||
| ྫ (B dz | ྫ (B dz | ||||
| @) ྫ (_ dz | @) ྫ (_ dz | ||||
| ྫྷ dzha | |||||
| ྫྷ (B dzh | |||||
| @) ྫྷ (_ dzh | |||||
| ྫྷ dz#a | |||||
| ྫྷ (B dz# | |||||
| @) ྫྷ (_ dz# | |||||
| ྭ wa | ྭ wa | ||||
| ྭ (B w | ྭ (B w |
| _ar aR'AbIS | _ar aR'AbIS | ||||
| _cyr ky:R'IlIS | _cyr ky:R'IlIS | ||||
| _he hEbr'E:IS | _he hEbr'E:IS | ||||
| _zh Ci:n'e:zIS | |||||
| // Numbers | // Numbers |
| _1 e'keI | _1 e'keI | ||||
| _2 d'eI | _2 d'eI | ||||
| _3 tineI | _3 tineI | ||||
| _4 ha'tha'reI | |||||
| _4 ha't#a'reI | |||||
| _5 fa'heI | _5 fa'heI | ||||
| _6 ha'eI | _6 ha'eI | ||||
| _7 ha'theI | |||||
| _7 ha't#eI | |||||
| _8 a'SeI | _8 a'SeI | ||||
| _9 n'uaeI | _9 n'uaeI | ||||
| _10 d'ihaeI | _10 d'ihaeI | ||||
| _11 e'gj'a:r@1 //egaara | _11 e'gj'a:r@1 //egaara | ||||
| _12 b'ar@2 //baara | _12 b'ar@2 //baara | ||||
| _13 t'E:r@2 //theyra | _13 t'E:r@2 //theyra | ||||
| _14 ch'O:d@2 //saada (d like in _2) | |||||
| _14 c#'O:d@2 //saada (d like in _2) | |||||
| _15 p'Vndr@2 //fanara | _15 p'Vndr@2 //fanara | ||||
| _16 s'o:l@2 //soalha lh like in ޅ | _16 s'o:l@2 //soalha lh like in ޅ | ||||
| _17 s'Vt:r@2 //sathaara | _17 s'Vt:r@2 //sathaara | ||||
| _18 Vth.:'a:r@2 //ashaara | |||||
| _18 Vt.#:'a:r@2 //ashaara | |||||
| _19 Unn'Is //navaara | _19 Unn'Is //navaara | ||||
| _20 b'i:s //vihi (we he) | _20 b'i:s //vihi (we he) | ||||
| _23 t'e:Is //tei wees | _23 t'e:Is //tei wees | ||||
| _24 c'O:bIs sav wees | _24 c'O:bIs sav wees | ||||
| _25 p@c:'Is //fansavees | _25 p@c:'Is //fansavees | ||||
| _26 ch@bb'i:rs // sabbees | |||||
| _26 c#@bb'i:rs // sabbees | |||||
| _27 s@t:'a:Is // sathawees | _27 s@t:'a:Is // sathawees | ||||
| _28 ath:'a:Is // asha wees | |||||
| _28 at#:'a:Is // asha wees | |||||
| _29 Unt'Is // ona thirees | _29 Unt'Is // ona thirees | ||||
| _30 t'i:s // thirees | _30 t'i:s // thirees | ||||
| _33 tE~t'Is // E~ ? | _33 tE~t'Is // E~ ? | ||||
| _34 cO~t'Is | _34 cO~t'Is | ||||
| _35 pE~t'Is | _35 pE~t'Is | ||||
| _36 chaT'tIs | |||||
| _36 c#aT'tIs | |||||
| _37 sE~t'Is | _37 sE~t'Is | ||||
| _38 art'Is | _38 art'Is | ||||
| _39 Unta:l'Is | _39 Unta:l'Is | ||||
| _43 tE~ta:l'Is | _43 tE~ta:l'Is | ||||
| _44 cO:wa:l'Is | _44 cO:wa:l'Is | ||||
| _45 paI'nta:l'Is | _45 paI'nta:l'Is | ||||
| _46 chhIja:l'Is | |||||
| _46 c#hIja:l'Is | |||||
| _47 sE~ta:l'Is | _47 sE~ta:l'Is | ||||
| _48 arta:l'Is | _48 arta:l'Is | ||||
| _49 'Un^ca:s | _49 'Un^ca:s | ||||
| _52 b'a:wVn | _52 b'a:wVn | ||||
| _53 t'IrpVn | _53 t'IrpVn | ||||
| _54 c'Ou:wVn | _54 c'Ou:wVn | ||||
| _55 p'achpVn | |||||
| _56 chh@p:'Vn | |||||
| _55 p'ac#pVn | |||||
| _56 c#h@p:'Vn | |||||
| _57 sVt:'a:w@n | _57 sVt:'a:w@n | ||||
| _58 ath:'a:w@n | |||||
| _59 Uns'Vth | |||||
| _58 at#:'a:w@n | |||||
| _59 Uns'Vt# | |||||
| _60 s'a:th. //fas dho (ދ) lhas | |||||
| _61 'Iks@th. | |||||
| _62 b'a:s@th. | |||||
| _63 t'Irs@th. | |||||
| _64 c'O~s@th. | |||||
| _65 paIns@th. | |||||
| _66 ch'Ija:s@th. | |||||
| _67 s'Vrs@th. | |||||
| _68 ars@th. | |||||
| _60 s'a:t.# //fas dho (ދ) lhas | |||||
| _61 'Iks@t.# | |||||
| _62 b'a:s@t.# | |||||
| _63 t'Irs@t.# | |||||
| _64 c'O~s@t.# | |||||
| _65 paIns@t.# | |||||
| _66 c#'Ija:s@t.# | |||||
| _67 s'Vrs@t.# | |||||
| _68 ars@t.# | |||||
| _69 Un@h,at:'Vr: | _69 Un@h,at:'Vr: | ||||
| _70 sat:'Vr: // hai dhiha | _70 sat:'Vr: // hai dhiha | ||||
| _71 Ikhat:'Vr: | |||||
| _71 Ik#at:'Vr: | |||||
| _72 b@hat:'Vr: | _72 b@hat:'Vr: | ||||
| _73 tIhat:'Vr: | _73 tIhat:'Vr: | ||||
| _74 cO:hat:'Vr: | _74 cO:hat:'Vr: | ||||
| _75 pach,at:'Vr: | |||||
| _76 chIhat:'Vr: | |||||
| _75 pac#,at:'Vr: | |||||
| _76 c#Ihat:'Vr: | |||||
| _77 s@t@hat:'Vr: | _77 s@t@hat:'Vr: | ||||
| _78 athhat:'Vr: | |||||
| _78 at#hat:'Vr: | |||||
| _79 ,Un^Ia:s'i: | _79 ,Un^Ia:s'i: | ||||
| _80 ,Vss'i: // addiha | _80 ,Vss'i: // addiha | ||||
| _83 tIra:s'i: | _83 tIra:s'i: | ||||
| _84 cO:ra:s'i: | _84 cO:ra:s'i: | ||||
| _85 pI'ca:s'i: | _85 pI'ca:s'i: | ||||
| _86 chIja:s'i: | |||||
| _86 c#Ija:s'i: | |||||
| _87 sVt:a:s'i: | _87 sVt:a:s'i: | ||||
| _88 ath:a:s'i: | |||||
| _88 at#:a:s'i: | |||||
| _89 nVwa:s'i: | _89 nVwa:s'i: | ||||
| _90 nVb:'e: nuvadhiha | _90 nVb:'e: nuvadhiha | ||||
| _93 tIr'a:n@we: | _93 tIr'a:n@we: | ||||
| _94 cO:r'a:m@we: | _94 cO:r'a:m@we: | ||||
| _95 p@c'a:n@we: | _95 p@c'a:n@we: | ||||
| _96 chIj'a:n@we: | |||||
| _96 c#Ij'a:n@we: | |||||
| _97 s@t:'a:n@we: | _97 s@t:'a:n@we: | ||||
| _98 ath:'a:n@we: | |||||
| _98 at#:'a:n@we: | |||||
| _99 nIn^j'a:n@we: | _99 nIn^j'a:n@we: | ||||
| _0C sa'theIka //satheyka (th like them) | |||||
| _0C sa't#eIka //satheyka (th like them) | |||||
| _0M1 h@z'a:r (haas) | _0M1 h@z'a:r (haas) | ||||
| _0M2 l'a:kh // lakka | _0M2 l'a:kh // lakka | ||||
| _0M3 cr'ore //curoadu | _0M3 cr'ore //curoadu |
| _- h,aIf@n | _- h,aIf@n | ||||
| ?3 _- daS | ?3 _- daS | ||||
| _. d0t | _. d0t | ||||
| ?3_. pi@rI@d | |||||
| ?3_.p pi@rI@d | |||||
| _: koUl@n | _: koUl@n | ||||
| _; sEmIk'oUl@n | _; sEmIk'oUl@n | ||||
| _< lEsDan | _< lEsDan | ||||
| _ka dZ'O@dZ@n | _ka dZ'O@dZ@n | ||||
| _ko k3r'i@n | _ko k3r'i@n | ||||
| _eth i:TI'0pIk | _eth i:TI'0pIk | ||||
| _ja dZ'ap@ni:z | |||||
| _zh tS'aIni:z | |||||
| // Cyrillic letters | // Cyrillic letters | ||||
| а a | а a | ||||
| ר ReS_ | ר ReS_ | ||||
| ש Sin_ | ש Sin_ | ||||
| ת tav_ | ת tav_ | ||||
| ְ SvA: | |||||
| ֱ E | |||||
| ֲ a | |||||
| ֳ o | |||||
| ִ i: | |||||
| ֵ E | |||||
| ֶ E | |||||
| ַ a | |||||
| ָ a | |||||
| ֹ o | |||||
| ֻ u | |||||
| ּ d'agES | |||||
| // phonetic modifiers | // phonetic modifiers | ||||
| // General American | // General American | ||||
| ?3 agile adZ@L | |||||
| ?3 docile doUs@L | |||||
| ?3 facile fas@L | |||||
| ?3 fertile f3:t@L | |||||
| ?3 fragile fradZ@L | |||||
| ?3 futile fju:t@L | |||||
| ?3 hostile h0st@L | |||||
| ?3 mobile moUb@L | |||||
| agile $alt2 | |||||
| docile $alt2 | |||||
| ductile $alt2 | |||||
| facile $alt2 | |||||
| fertile $alt2 | |||||
| fragile $alt2 | |||||
| futile $alt2 | |||||
| hostile $alt2 | |||||
| mobile $alt2 | |||||
| ?3 missile mIs@L | ?3 missile mIs@L | ||||
| ?3 projectile pr@dZEkt@L | |||||
| ?3 puerile pjU@r@L | |||||
| ?3 sterile stEr@L | |||||
| ?3 virile vIr@L | |||||
| projectile $alt2 | |||||
| puerile $alt2 | |||||
| senile $alt2 | |||||
| sterile $alt2 | |||||
| tensile $alt2 | |||||
| virile $alt2 | |||||
| ?3 volatile v0la#t@L | ?3 volatile v0la#t@L | ||||
| _) be (gg bE | _) be (gg bE | ||||
| _) belarus bEl@r'u:s | _) belarus bEl@r'u:s | ||||
| _) be (lC bE | _) be (lC bE | ||||
| _) be (lli bI2 | |||||
| _) be (llig bI2 | |||||
| _) be (sC bI2 | _) be (sC bI2 | ||||
| _) be (stia bE | _) be (stia bE | ||||
| _) be (tB bE | _) be (tB bE | ||||
| for (see f%O@ | for (see f%O@ | ||||
| for (ward f'o@ // straightforward | for (ward f'o@ // straightforward | ||||
| ft (en f | ft (en f | ||||
| &) ful (_S3 f@L | |||||
| &) ful (_S3i f@L | |||||
| &) fully (_S5 f@li | &) fully (_S5 f@li | ||||
| &) fulness (_S7 f@Ln@s | &) fulness (_S7 f@Ln@s | ||||
| nt) il (_ @L | nt) il (_ @L | ||||
| @v) il (_ @L | @v) il (_ @L | ||||
| @) ila (_ 'Il@ | @) ila (_ 'Il@ | ||||
| ?3 &) ile (_$w_alt2 @L | |||||
| _C) i (lage aI | _C) i (lage aI | ||||
| _d) i (lat %aI | _d) i (lat %aI | ||||
| l) il (ah_ aIl | l) il (ah_ aIl | ||||
| os (al_ 'oUz | os (al_ 'oUz | ||||
| _l) os (e u:z | _l) os (e u:z | ||||
| ose (_ oUz | ose (_ oUz | ||||
| c) ose (_ oUs | |||||
| purp) ose @s | purp) ose @s | ||||
| _r) os (e# oUz | _r) os (e# oUz | ||||
| c) os (ec oUs | c) os (ec oUs |
| _3 t'i:n | _3 t'i:n | ||||
| _4 c:'a:r: | _4 c:'a:r: | ||||
| _5 'pa~c | _5 'pa~c | ||||
| _6 ch'@2 | |||||
| _6 c#'@2 | |||||
| _7 s'a:t | _7 s'a:t | ||||
| _8 'a:th. | |||||
| _8 'a:t.# | |||||
| _9 n'O: | _9 n'O: | ||||
| ?3 _9 n'aU | ?3 _9 n'aU | ||||
| _11 gj'a:r-ah | _11 gj'a:r-ah | ||||
| _12 b'a:rah | _12 b'a:rah | ||||
| _13 t'e:r@2h | _13 t'e:r@2h | ||||
| _14 ch'O:d@2h | |||||
| _14 c#'O:d@2h | |||||
| _15 p'Vndr@2h | _15 p'Vndr@2h | ||||
| _16 s'o:l@2h | _16 s'o:l@2h | ||||
| _17 sVtr@2h | _17 sVtr@2h | ||||
| _18 a:th:arah | |||||
| _18 a:t#:arah | |||||
| _19 Unn'Is | _19 Unn'Is | ||||
| _20 b'i:s | _20 b'i:s | ||||
| _23 t'ue:Is | _23 t'ue:Is | ||||
| _24 c'O:bIs | _24 c'O:bIs | ||||
| _25 p@c:'Is | _25 p@c:'Is | ||||
| _26 ch@bb'i:rs | |||||
| _26 c#@bb'i:rs | |||||
| _27 s@t:'a:Is | _27 s@t:'a:Is | ||||
| _28 ath:'a:Is | |||||
| _28 at#:'a:Is | |||||
| _29 ,Unt'Is | _29 ,Unt'Is | ||||
| _30 t'i:s | _30 t'i:s | ||||
| _33 tE~t'Is // E~ ? | _33 tE~t'Is // E~ ? | ||||
| _34 cO~t'Is | _34 cO~t'Is | ||||
| _35 pE~t'Is | _35 pE~t'Is | ||||
| _36 chaT'tIs | |||||
| _36 c#aT'tIs | |||||
| _37 sE~t'Is | _37 sE~t'Is | ||||
| _38 art'Is | _38 art'Is | ||||
| _39 Unta:l'Is | _39 Unta:l'Is | ||||
| _43 tE~ta:l'Is | _43 tE~ta:l'Is | ||||
| _44 cO:wa:l'Is | _44 cO:wa:l'Is | ||||
| _45 paI'nta:l'Is | _45 paI'nta:l'Is | ||||
| _46 chhIja:l'Is | |||||
| _46 c#hIja:l'Is | |||||
| _47 sE~ta:l'Is | _47 sE~ta:l'Is | ||||
| _48 arta:l'Is | _48 arta:l'Is | ||||
| _49 'Un^ca:s | _49 'Un^ca:s | ||||
| _52 b'a:wVn | _52 b'a:wVn | ||||
| _53 t'IrpVn | _53 t'IrpVn | ||||
| _54 c'Ou:wVn | _54 c'Ou:wVn | ||||
| _55 p'achpVn | |||||
| _56 chh@p:'Vn | |||||
| _55 p'ac#pVn | |||||
| _56 c#h@p:'Vn | |||||
| _57 santa:'w@n | _57 santa:'w@n | ||||
| _58 ath:a:'w@n | |||||
| _59 Uns'Vth | |||||
| _60 s'a:th. | |||||
| _61 'Iks@th. | |||||
| _62 b'a:s@th. | |||||
| _63 t'Irs@th. | |||||
| _64 cO:'s@th. | |||||
| _65 paI's@th. | |||||
| _66 ch'Ija:s@th. | |||||
| _67 s'Vrs@th. | |||||
| _68 ars@th. | |||||
| _58 at#:a:'w@n | |||||
| _59 Uns'Vt# | |||||
| _60 s'a:t.# | |||||
| _61 'Iks@t.# | |||||
| _62 b'a:s@t.# | |||||
| _63 t'Irs@t.# | |||||
| _64 cO:'s@t.# | |||||
| _65 paI's@t.# | |||||
| _66 c#'Ija:s@t.# | |||||
| _67 s'Vrs@t.# | |||||
| _68 ars@t.# | |||||
| _69 Un@h,at:'Vr: | _69 Un@h,at:'Vr: | ||||
| _70 sat:'Vr: | _70 sat:'Vr: | ||||
| _71 Ikhat:'Vr: | |||||
| _71 Ik#at:'Vr: | |||||
| _72 b@hat:'Vr: | _72 b@hat:'Vr: | ||||
| _73 tIhat:'Vr: | _73 tIhat:'Vr: | ||||
| _74 cO:hat:'Vr: | _74 cO:hat:'Vr: | ||||
| _75 pach,at:'Vr: | |||||
| _76 chIhat:'Vr: | |||||
| _75 pac#,at:'Vr: | |||||
| _76 c#Ihat:'Vr: | |||||
| _77 s@t@hat:'Vr: | _77 s@t@hat:'Vr: | ||||
| _78 athhat:'Vr: | |||||
| _78 at#hat:'Vr: | |||||
| _79 ,Un^Ia:s'i: | _79 ,Un^Ia:s'i: | ||||
| _80 ,Vss'i: | _80 ,Vss'i: | ||||
| _83 tIra:s'i | _83 tIra:s'i | ||||
| _84 cO:ra:s'i | _84 cO:ra:s'i | ||||
| _85 pI'ca:s'i | _85 pI'ca:s'i | ||||
| _86 chIja:s'i | |||||
| _86 c#Ija:s'i | |||||
| _87 sVt:a:s'i | _87 sVt:a:s'i | ||||
| _88 ath:a:s'i | |||||
| _88 at#:a:s'i | |||||
| _89 nVwa:s'i | _89 nVwa:s'i | ||||
| _90 nVb:'e: | _90 nVb:'e: | ||||
| _93 tIr'a:n@we: | _93 tIr'a:n@we: | ||||
| _94 cO:r'a:m@we: | _94 cO:r'a:m@we: | ||||
| _95 p@c'a:n@we: | _95 p@c'a:n@we: | ||||
| _96 chIj'a:n@we: | |||||
| _96 c#Ij'a:n@we: | |||||
| _97 s@t:'a:n@we: | _97 s@t:'a:n@we: | ||||
| _98 ath:'a:n@we: | |||||
| _98 at#:'a:n@we: | |||||
| _99 nIn^j'a:n@we: | _99 nIn^j'a:n@we: | ||||
| _0C s'O: | _0C s'O: | ||||
| _0M1 h@J,a:r | _0M1 h@J,a:r | ||||
| _0M2 l'a:kh | |||||
| _0M2 l'a:k# | |||||
| _0M3 k@ro:r.V | _0M3 k@ro:r.V | ||||
| _0M4 'Vr@b | _0M4 'Vr@b | ||||
| _0M5 kh'Vr@b | |||||
| _0M5 k#'Vr@b | |||||
| _dpt _d@s@ml'o:_ // ?? what is Hi for "." ? | _dpt _d@s@ml'o:_ // ?? what is Hi for "." ? | ||||
| // Single consonants | // Single consonants | ||||
| क k@ | क k@ | ||||
| क़ q@ | क़ q@ | ||||
| ख kh@ | |||||
| ख k#@ | |||||
| ख़ x@ | ख़ x@ | ||||
| ग g@ | ग g@ | ||||
| ग़ Q@ | ग़ Q@ | ||||
| घ gh@ | |||||
| घ g#@ | |||||
| ङ N@ | ङ N@ | ||||
| च c@ | च c@ | ||||
| छ ch@ | |||||
| छ c#@ | |||||
| ज J@ | ज J@ | ||||
| ज़ z@ | ज़ z@ | ||||
| झ Jh@ | |||||
| झ J#@ | |||||
| ञ n^@ | ञ n^@ | ||||
| ट t.@ | ट t.@ | ||||
| ठ th.@ | |||||
| ठ t.#@ | |||||
| ड d.@ | ड d.@ | ||||
| ड़ r.@ | ड़ r.@ | ||||
| ढ dh.@ | |||||
| ढ d.#@ | |||||
| ण n.@ // retroflex n.@ | ण n.@ // retroflex n.@ | ||||
| त t@ | त t@ | ||||
| थ th@ | |||||
| थ t#@ | |||||
| द d@ | द d@ | ||||
| ध dh@ | |||||
| ध d#@ | |||||
| न n@ | न n@ | ||||
| प p@ | प p@ | ||||
| फ ph@ | |||||
| फ p#@ | |||||
| फ़ f@ | फ़ f@ | ||||
| ब b@ | ब b@ | ||||
| भ bh@ | |||||
| भ b#@ | |||||
| म m@ | म m@ | ||||
| य j@ | य j@ | ||||
| र r@ | र r@ | ||||
| ॣ #X2l-: | ॣ #X2l-: | ||||
| ॐ #X1o~m | ॐ #X1o~m | ||||
| _?? Vks.@r | |||||
| _a ej | |||||
| _b bi: | |||||
| _c si: | |||||
| _d di: | |||||
| _e i: | |||||
| _f Ef | |||||
| // Punctuation | // Punctuation | ||||
| । dVn.d.V | । dVn.d.V |
| क़ (B q | क़ (B q | ||||
| .group ख | .group ख | ||||
| ख khV | |||||
| ख (B kh | |||||
| ख k#V | |||||
| ख (B k# | |||||
| ख़ xV | ख़ xV | ||||
| ख़ (B x | ख़ (B x | ||||
| ग़ (B Q | ग़ (B Q | ||||
| .group घ | .group घ | ||||
| घ ghV | |||||
| घ (B gh | |||||
| घ g#V | |||||
| घ (B g# | |||||
| .group ङ | .group ङ | ||||
| ङ NV | ङ NV | ||||
| च (्य c: | च (्य c: | ||||
| .group छ | .group छ | ||||
| छ chV | |||||
| छ (B ch | |||||
| छ c#V | |||||
| छ (B c# | |||||
| .group ज | .group ज | ||||
| ज JV | ज JV | ||||
| ज़ (B z | ज़ (B z | ||||
| .group झ | .group झ | ||||
| झ JhV | |||||
| झ (B Jh | |||||
| झ J#V | |||||
| झ (B J# | |||||
| .group ञ | .group ञ | ||||
| ञ n^V | ञ n^V | ||||
| ट (्य t.: | ट (्य t.: | ||||
| .group ठ | .group ठ | ||||
| ठ th.V | |||||
| ठ (B th. | |||||
| ठ t.#V | |||||
| ठ (B t.# | |||||
| .group ड | .group ड | ||||
| ड d.V | ड d.V | ||||
| ड़ (B r. | ड़ (B r. | ||||
| .group ढ | .group ढ | ||||
| ढ dh.V | |||||
| ढ (B dh. | |||||
| ढ d.#V | |||||
| ढ (B d.# | |||||
| ढ़ r.hV // nukta (should retroflex flap) | ढ़ r.hV // nukta (should retroflex flap) | ||||
| ढ़ (B r.h // nukta | ढ़ (B r.h // nukta | ||||
| त (्य t: | त (्य t: | ||||
| .group थ | .group थ | ||||
| थ thV | |||||
| थ (B th | |||||
| थ t#V | |||||
| थ (B t# | |||||
| .group द | .group द | ||||
| द dV | द dV | ||||
| द (B d | द (B d | ||||
| .group ध | .group ध | ||||
| ध dhV | |||||
| ध (B dh | |||||
| ध d#V | |||||
| ध (B d# | |||||
| .group न | .group न | ||||
| न nV | न nV | ||||
| प (्य p: | प (्य p: | ||||
| .group फ | .group फ | ||||
| फ phV | |||||
| फ (B ph | |||||
| फ p#V | |||||
| फ (B p# | |||||
| फ़ fV | फ़ fV | ||||
| फ़ (B f | फ़ (B f | ||||
| ब (B b | ब (B b | ||||
| .group भ | .group भ | ||||
| भ bhV | |||||
| भ (B bh | |||||
| भ b#V | |||||
| भ (B b# | |||||
| .group म | .group म | ||||
| म mV | म mV |
| // characters | // characters | ||||
| _#9 tAb | _#9 tAb | ||||
| _#32 so:kYz | |||||
| _#32 s'o:kYz | |||||
| _cap n'AJ_| | _cap n'AJ_| | ||||
| _?? kAR2AktEr||ko:d // unknown characters (change this) | _?? kAR2AktEr||ko:d // unknown characters (change this) | ||||
| ® bEjEJzEt: | ® bEjEJzEt: | ||||
| ™ ve:djEJ | ™ ve:djEJ | ||||
| _` tompA | _` tompA | ||||
| _ so:kYz | |||||
| _ s'o:kYz | |||||
| _« bElSY:|bAl|ide:zY:jEl | _« bElSY:|bAl|ide:zY:jEl | ||||
| _» bElSY:|jobb|ide:zY:jEl | _» bElSY:|jobb|ide:zY:jEl | ||||
| _ la:JkYtY:jEl | _ la:JkYtY:jEl | ||||
| // Alphabets | // Alphabets | ||||
| _ar 'AR2Ab | _ar 'AR2Ab | ||||
| _cry ts'iR2ill | |||||
| _cyr ts'iR2ill | |||||
| _he h'e:bER2 | _he h'e:bER2 | ||||
| _zh k'i:nAi | |||||
| // Main Exceptions List | // Main Exceptions List |
| szaba) d (szem d | szaba) d (szem d | ||||
| _tren) dsz (e d|s | _tren) dsz (e d|s | ||||
| vakon) d (sz d | vakon) d (sz d | ||||
| vé) d (jeggy d | |||||
| .group dz | .group dz | ||||
| fogó) dz (kod ts | fogó) dz (kod ts | ||||
| _elle) n (jav n | _elle) n (jav n | ||||
| vagyo) n (jog n | vagyo) n (jog n | ||||
| nny (elv n|n^ | nny (elv n|n^ | ||||
| haszo) n (jár n | |||||
| boszorká) ny (jelet n^ | |||||
| .group o | .group o | ||||
| o o | o o | ||||
| ki) s (szőlő S | ki) s (szőlő S | ||||
| körö) s (szeg S | körö) s (szeg S | ||||
| kolbászo) s S | kolbászo) s S | ||||
| feldolgozá) s S | |||||
| .group ss | .group ss | ||||
| ssz ss2 | ssz ss2 | ||||
| pénze) sz (k s | pénze) sz (k s | ||||
| ellenállá) sz (ón Sz | ellenállá) sz (ón Sz | ||||
| ré) sz (árás Sz | ré) sz (árás Sz | ||||
| _te) szts (or st|S | |||||
| .group t | .group t | ||||
| t t | t t | ||||
| zené) tj (átsz tj | zené) tj (átsz tj | ||||
| szen) tj (akab tj | szen) tj (akab tj | ||||
| közérze) tj (aví tj | közérze) tj (aví tj | ||||
| ké) tj (átszm tj | |||||
| .group ts | .group ts | ||||
| ts (_S2 tS //general rule with word end of ts letters | ts (_S2 tS //general rule with word end of ts letters | ||||
| leme) tsz (vén ts | leme) tsz (vén ts | ||||
| _cha) tsz (ob t|s | _cha) tsz (ob t|s | ||||
| robo) ts (of t|S | robo) ts (of t|S | ||||
| merényle) ts (or t|S | |||||
| .group tt | .group tt | ||||
| tt t: | tt t: |
| // letter names | // letter names | ||||
| ಕ್ ik | ಕ್ ik | ||||
| ಖ್ ikh | |||||
| ಖ್ ik# | |||||
| ಗ್ ig | ಗ್ ig | ||||
| ಘ್ igh | |||||
| ಘ್ ig# | |||||
| ಙ್ iN | ಙ್ iN | ||||
| ಚ್ ic | ಚ್ ic | ||||
| ಛ್ ich | |||||
| ಛ್ ic# | |||||
| ಜ್ iJ | ಜ್ iJ | ||||
| ಝ್ iJh | |||||
| ಝ್ iJ# | |||||
| ಞ್ in^ | ಞ್ in^ | ||||
| ಟ್ it. | ಟ್ it. | ||||
| ಠ್ ith. | |||||
| ಠ್ it.# | |||||
| ಡ್ id. | ಡ್ id. | ||||
| ಢ್ idh. | |||||
| ಢ್ id.# | |||||
| ಣ್ in. | ಣ್ in. | ||||
| ತ್ it | ತ್ it | ||||
| ಥ್ ith | |||||
| ಥ್ it# | |||||
| ದ್ id | ದ್ id | ||||
| ಧ್ id. | |||||
| ಧ್ id# | |||||
| ನ್ in | ನ್ in | ||||
| ಪ್ ip | ಪ್ ip | ||||
| ಫ್ iph | |||||
| ಫ್ ip# | |||||
| ಬ್ ib | ಬ್ ib | ||||
| ಭ್ ibh | |||||
| ಭ್ ib# | |||||
| ಮ್ im | ಮ್ im | ||||
| ಯ್ ij | ಯ್ ij | ||||
| ರ್ ir | ರ್ ir | ||||
| // symbols | // symbols | ||||
| % pratis.ata | % pratis.ata | ||||
| ! a:scharjachinhe | |||||
| ! a:sc#arjac#inhe | |||||
| _? aks.ara | _? aks.ara | ||||
| . pu:rn.avira:ma | . pu:rn.avira:ma | ||||
| , alpavira:ma | , alpavira:ma | ||||
| ¼ ka:lu | ¼ ka:lu | ||||
| ½ ardha | |||||
| ½ ard#a | |||||
| ¾ mukka:lu | ¾ mukka:lu | ||||
| (1 / 2) ardha | |||||
| (1 / 2) ard#a | |||||
| (1 / 4) ka:lu | (1 / 4) ka:lu | ||||
| (3 / 4) mukka:lu | (3 / 4) mukka:lu | ||||
| ÷ bha:ga:ka:ra | |||||
| ÷ b#a:ga:ka:ra | |||||
| & mattu | & mattu | ||||
| _6 'a:ru | _6 'a:ru | ||||
| _7 'e:l.u | _7 'e:l.u | ||||
| _8 'ent.u | _8 'ent.u | ||||
| _9 'ombath:u | |||||
| _1X h'ath:u | |||||
| _9 'ombat#:u | |||||
| _1X h'at#:u | |||||
| _11 hann'ondu | _11 hann'ondu | ||||
| _12 han:erad.u | _12 han:erad.u | ||||
| _13 hadim'u:ru | _13 hadim'u:ru | ||||
| _16 hadina:ru | _16 hadina:ru | ||||
| _17 hadin'e:l.u | _17 hadin'e:l.u | ||||
| _18 hadin'ent.u | _18 hadin'ent.u | ||||
| _19 ha'th:'ombath:u | |||||
| _19 ha't#:'ombat#:u | |||||
| _2X Ip:ath:u | |||||
| _21 'Ip:a'th:ondu | |||||
| _22 Ip:a'th:erad.u | |||||
| _23 Ip:a'th:m'u:ru | |||||
| _24 Ip:a'th:n'a:lku | |||||
| _25 Ip:a'th:'aIdu | |||||
| _26 Ip:a'th:a:ru | |||||
| _27 Ip:a'th:e:l.u | |||||
| _28 Ip:a'th:ent.u | |||||
| _29 Ip:a'th:ombath:u | |||||
| _2X Ip:at#:u | |||||
| _21 'Ip:a't#:ondu | |||||
| _22 Ip:a't#:erad.u | |||||
| _23 Ip:a't#:m'u:ru | |||||
| _24 Ip:a't#:n'a:lku | |||||
| _25 Ip:a't#:'aIdu | |||||
| _26 Ip:a't#:a:ru | |||||
| _27 Ip:a't#:e:l.u | |||||
| _28 Ip:a't#:ent.u | |||||
| _29 Ip:a't#:ombat#:u | |||||
| _3X m'ovath:u | |||||
| _31 m'ovath:ondu | |||||
| _32 m'ovatherad.u | |||||
| _33 m'ovathm'u:ru | |||||
| _34 m'ovathn'a:lku | |||||
| _35 m'ovath'aIdu | |||||
| _36 m'ovatha:ru | |||||
| _37 m'ovathe:l.u | |||||
| _38 m'ovathent.u | |||||
| _39 m'ovathombath:u | |||||
| _3X m'ovat#:u | |||||
| _31 m'ovat#:ondu | |||||
| _32 m'ovat#erad.u | |||||
| _33 m'ovat#m'u:ru | |||||
| _34 m'ovat#n'a:lku | |||||
| _35 m'ovat#'aIdu | |||||
| _36 m'ovat#a:ru | |||||
| _37 m'ovat#e:l.u | |||||
| _38 m'ovat#ent.u | |||||
| _39 m'ovat#ombat#:u | |||||
| _4X n'alavath:u | |||||
| _41 n'alavath:ondu | |||||
| _42 n'alavatherad.u | |||||
| _43 n'alavathm'u:ru | |||||
| _44 n'alavathn'a:lku | |||||
| _45 n'alavathaIdu | |||||
| _46 n'alavatha:ru | |||||
| _47 n'alavathe:l.u | |||||
| _48 n'alavathent.u | |||||
| _49 n'alavathombath:u | |||||
| _4X n'alavat#:u | |||||
| _41 n'alavat#:ondu | |||||
| _42 n'alavat#erad.u | |||||
| _43 n'alavat#m'u:ru | |||||
| _44 n'alavat#n'a:lku | |||||
| _45 n'alavat#aIdu | |||||
| _46 n'alavat#a:ru | |||||
| _47 n'alavat#e:l.u | |||||
| _48 n'alavat#ent.u | |||||
| _49 n'alavat#ombat#:u | |||||
| _5X 'aIvath:u | |||||
| _51 aIvath:ondu | |||||
| _52 aIvatherad.u | |||||
| _53 aIvathm'u:ru | |||||
| _54 aIvathn'a:lku | |||||
| _55 aIvath'aIdu | |||||
| _56 aIvatha:ru | |||||
| _57 aIvathe:l.u | |||||
| _58 aIvathent.u | |||||
| _59 aIvathombath:u | |||||
| _6X 'aravath:u | |||||
| _61 aravath:ondu | |||||
| _62 aravatherad.u | |||||
| _63 aravathm'u:ru | |||||
| _64 aravathn'a:lku | |||||
| _65 aravathaIdu | |||||
| _66 aravatha:ru | |||||
| _67 aravathe:l.u | |||||
| _68 aravathent.u | |||||
| _69 aravathombath:u | |||||
| _5X 'aIvat#:u | |||||
| _51 aIvat#:ondu | |||||
| _52 aIvat#erad.u | |||||
| _53 aIvat#m'u:ru | |||||
| _54 aIvat#n'a:lku | |||||
| _55 aIvat#'aIdu | |||||
| _56 aIvat#a:ru | |||||
| _57 aIvat#e:l.u | |||||
| _58 aIvat#ent.u | |||||
| _59 aIvat#ombat#:u | |||||
| _6X 'aravat#:u | |||||
| _61 aravat#:ondu | |||||
| _62 aravat#erad.u | |||||
| _63 aravat#m'u:ru | |||||
| _64 aravat#n'a:lku | |||||
| _65 aravat#aIdu | |||||
| _66 aravat#a:ru | |||||
| _67 aravat#e:l.u | |||||
| _68 aravat#ent.u | |||||
| _69 aravat#ombat#:u | |||||
| _7X 'Ep:ath:u | |||||
| _71 Ep:ath:ondu | |||||
| _72 Ep:atherad.u | |||||
| _73 Ep:athm'u:ru | |||||
| _74 Ep:athn'a:lku | |||||
| _75 Ep:athaIdu | |||||
| _76 Ep:atha:ru | |||||
| _77 Ep:athe:l.u | |||||
| _78 Ep:athent.u | |||||
| _79 Ep:athombath:u | |||||
| _8X 'Embath:u | |||||
| _81 Embath:ondu | |||||
| _82 Embatherad.u | |||||
| _83 Embathm'u:ru | |||||
| _84 Embathn'a:lku | |||||
| _85 EmbathaIdu | |||||
| _86 Embatha:ru | |||||
| _87 Embathe:l.u | |||||
| _88 Embathent.u | |||||
| _89 Embathombath:u | |||||
| _7X 'Ep:at#:u | |||||
| _71 Ep:at#:ondu | |||||
| _72 Ep:at#erad.u | |||||
| _73 Ep:at#m'u:ru | |||||
| _74 Ep:at#n'a:lku | |||||
| _75 Ep:at#aIdu | |||||
| _76 Ep:at#a:ru | |||||
| _77 Ep:at#e:l.u | |||||
| _78 Ep:at#ent.u | |||||
| _79 Ep:at#ombat#:u | |||||
| _8X 'Embat#:u | |||||
| _81 Embat#:ondu | |||||
| _82 Embat#erad.u | |||||
| _83 Embat#m'u:ru | |||||
| _84 Embat#n'a:lku | |||||
| _85 Embat#aIdu | |||||
| _86 Embat#a:ru | |||||
| _87 Embat#e:l.u | |||||
| _88 Embat#ent.u | |||||
| _89 Embat#ombat#:u | |||||
| _9X th'ombath:u | |||||
| _91 th'ombath:ondu | |||||
| _92 th'ombath:erad.u | |||||
| _93 th'ombathm'u:ru | |||||
| _94 th'ombathn'a:lku | |||||
| _95 th'ombathaIdu | |||||
| _96 th'ombatha:ru | |||||
| _97 th'ombathe:l.u | |||||
| _98 th'ombathent.u | |||||
| _99 th'ombathombath:u | |||||
| _9X t#'ombat#:u | |||||
| _91 t#'ombat#:ondu | |||||
| _92 t#'ombat#:erad.u | |||||
| _93 t#'ombat#m'u:ru | |||||
| _94 t#'ombat#n'a:lku | |||||
| _95 t#'ombat#aIdu | |||||
| _96 t#'ombat#a:ru | |||||
| _97 t#'ombat#e:l.u | |||||
| _98 t#'ombat#ent.u | |||||
| _99 t#'ombat#ombat#:u | |||||
| _0C0 n'u:ru | _0C0 n'u:ru | ||||
| _1C0 nu:ru | _1C0 nu:ru |
| ಕ (B k | ಕ (B k | ||||
| .group ಖ | .group ಖ | ||||
| ಖ kha | |||||
| ಖ (B kh | |||||
| ಖ k#a | |||||
| ಖ (B k# | |||||
| .group ಗ | .group ಗ | ||||
| ಗ ga | ಗ ga | ||||
| ಗ (B g | ಗ (B g | ||||
| .group ಘ | .group ಘ | ||||
| ಘ gha | |||||
| ಘ (B gh | |||||
| ಘ g#a | |||||
| ಘ (B g# | |||||
| .group ಙ | .group ಙ | ||||
| ಙ Na | ಙ Na | ||||
| ಚ (B c | ಚ (B c | ||||
| .group ಛ | .group ಛ | ||||
| ಛ cha | |||||
| ಛ (B ch | |||||
| ಛ c#a | |||||
| ಛ (B c# | |||||
| .group ಜ | .group ಜ | ||||
| ಜ Ja | ಜ Ja | ||||
| ಜ಼ (B z | ಜ಼ (B z | ||||
| .group ಝ | .group ಝ | ||||
| ಝ Jha | |||||
| ಝ (B Jh | |||||
| ಝ J#a | |||||
| ಝ (B J# | |||||
| .group ಞ | .group ಞ | ||||
| ಞ n^a | ಞ n^a | ||||
| ಟ (B t. | ಟ (B t. | ||||
| .group ಠ | .group ಠ | ||||
| ಠ th.a | |||||
| ಠ (B th. | |||||
| ಠ t.#a | |||||
| ಠ (B t.# | |||||
| .group ಡ | .group ಡ | ||||
| ಡ d.a | ಡ d.a | ||||
| ಡ (B d. | ಡ (B d. | ||||
| .group ಢ | .group ಢ | ||||
| ಢ dh.a | |||||
| ಢ (B dh. | |||||
| ಢ d.#a | |||||
| ಢ (B d.# | |||||
| .group ಣ | .group ಣ | ||||
| ಣ n.a | ಣ n.a | ||||
| ತ (B t | ತ (B t | ||||
| .group ಥ | .group ಥ | ||||
| ಥ tha | |||||
| ಥ (B th | |||||
| ಥ t#a | |||||
| ಥ (B t# | |||||
| .group ದ | .group ದ | ||||
| ದ da | ದ da | ||||
| ದ (B d | ದ (B d | ||||
| .group ಧ | .group ಧ | ||||
| ಧ dha | |||||
| ಧ (B dh | |||||
| ಧ d#a | |||||
| ಧ (B d# | |||||
| .group ನ | .group ನ | ||||
| ನ na | ನ na | ||||
| ಪ (B p | ಪ (B p | ||||
| .group ಫ | .group ಫ | ||||
| ಫ pha | |||||
| ಫ (B ph | |||||
| ಫ p#a | |||||
| ಫ (B p# | |||||
| ಫ಼ fa // nukta | ಫ಼ fa // nukta | ||||
| ಫ಼ (B f | ಫ಼ (B f | ||||
| ಬ (B b | ಬ (B b | ||||
| .group ಭ | .group ಭ | ||||
| ಭ bha | |||||
| ಭ (B bh | |||||
| ಭ b#a | |||||
| ಭ (B b# | |||||
| .group ಮ | .group ಮ | ||||
| ಮ ma | ಮ ma |
| U+d02 'a#m | U+d02 'a#m | ||||
| U+d03 visarg@m | U+d03 visarg@m | ||||
| U+d3d avagraha | U+d3d avagraha | ||||
| U+d4d chandraka:r@m | |||||
| U+d4e chil.acharam // ?? | |||||
| U+d4d c#andraka:r@m | |||||
| U+d4e c#il.ac#aram // ?? | |||||
| ൺ _'yn. // chillu consonants | ൺ _'yn. // chillu consonants | ||||
| ൻ _in | ൻ _in | ||||
| & samuccaj@m | & samuccaj@m | ||||
| _. bindu | _. bindu | ||||
| _, aNkuS;@m | _, aNkuS;@m | ||||
| _; ro:dhini | |||||
| _; ro:d#ini | |||||
| _? co:dj@cihn@m | _? co:dj@cihn@m | ||||
| _! a:S;c@rjacihn@m | _! a:S;c@rjacihn@m | ||||
| ക്ക (B k: | ക്ക (B k: | ||||
| .group ഖ | .group ഖ | ||||
| ഖ kha | |||||
| ഖ (B kh | |||||
| ഖ k#a | |||||
| ഖ (B k# | |||||
| .group ഗ | .group ഗ | ||||
| ഗ ga | ഗ ga | ||||
| ഗ (B g | ഗ (B g | ||||
| .group ഘ | .group ഘ | ||||
| ഘ gha | |||||
| ഘ (B gh | |||||
| ഘ g#a | |||||
| ഘ (B g# | |||||
| .group ങ | .group ങ | ||||
| ങ Na | ങ Na | ||||
| ച (B c | ച (B c | ||||
| .group ഛ | .group ഛ | ||||
| ഛ cha | |||||
| ഛ (B ch | |||||
| ഛ c#a | |||||
| ഛ (B c# | |||||
| .group ജ | .group ജ | ||||
| ജ Ja | ജ Ja | ||||
| ജ (B J | ജ (B J | ||||
| .group ഝ | .group ഝ | ||||
| ഝ Jha | |||||
| ഝ (B Jh | |||||
| ഝ J#a | |||||
| ഝ (B J# | |||||
| .group ഞ | .group ഞ | ||||
| ഞ n^a | ഞ n^a | ||||
| ട്ട (B t.: | ട്ട (B t.: | ||||
| .group ഠ | .group ഠ | ||||
| ഠ th.a | |||||
| ഠ (B th. | |||||
| ഠ t.#a | |||||
| ഠ (B t.# | |||||
| .group ഡ | .group ഡ | ||||
| ഡ d.a | ഡ d.a | ||||
| ഡ (B d. | ഡ (B d. | ||||
| .group ഢ | .group ഢ | ||||
| ഢ dh.a | |||||
| ഢ (B dh. | |||||
| ഢ d.#a | |||||
| ഢ (B d.# | |||||
| .group ണ | .group ണ | ||||
| ണ n.a | ണ n.a | ||||
| ത്ത (B t: | ത്ത (B t: | ||||
| .group ഥ | .group ഥ | ||||
| ഥ tha | |||||
| ഥ (B th | |||||
| ഥ t#a | |||||
| ഥ (B t# | |||||
| .group ദ | .group ദ | ||||
| ദ da | ദ da | ||||
| ദ (B d | ദ (B d | ||||
| .group ധ | .group ധ | ||||
| ധ dha | |||||
| ധ (B dh | |||||
| ധ d#a | |||||
| ധ (B d# | |||||
| .group ന | .group ന | ||||
| ന na | ന na | ||||
| പ്പ (B p: | പ്പ (B p: | ||||
| .group ഫ | .group ഫ | ||||
| ഫ pha | |||||
| ഫ (B p | |||||
| ഫ p#a | |||||
| ഫ (B p# | |||||
| _പ്രൊ) ഫ (സര് fa | _പ്രൊ) ഫ (സര് fa | ||||
| ബ (B b | ബ (B b | ||||
| .group ഭ | .group ഭ | ||||
| ഭ bha | |||||
| ഭ (B bh | |||||
| ഭ b#a | |||||
| ഭ (B b# | |||||
| .group മ | .group മ | ||||
| മ ma | മ ma | ||||
| .group റ | .group റ | ||||
| റ R2a | റ R2a | ||||
| റ (B R2 | റ (B R2 | ||||
| ന്) റ d# | |||||
| ന്) റ d2 | |||||
| റ്റ t.t. // ?? R2R2 = t.t. | റ്റ t.t. // ?? R2R2 = t.t. | ||||
| .group ല | .group ല |
| _3 t'i:n | _3 t'i:n | ||||
| _4 c'a:r: | _4 c'a:r: | ||||
| _5 p'a:nc | _5 p'a:nc | ||||
| _6 ch'@2 | |||||
| _6 c#'@2 | |||||
| _7 s'a:t | _7 s'a:t | ||||
| _8 'a:th. | |||||
| _8 'a:t.# | |||||
| _9 n'V'u: | _9 n'V'u: | ||||
| _10 d'Vs | _10 d'Vs | ||||
| _11 e:'gh'a:r'V | |||||
| _11 e:'g#'a:r'V | |||||
| _12 b'a:r@2 | _12 b'a:r@2 | ||||
| _13 t'e:hr@ | _13 t'e:hr@ | ||||
| _14 ch'O:d@2 | |||||
| _14 c#'O:d@2 | |||||
| _15 p'Vndr@2 | _15 p'Vndr@2 | ||||
| _16 s'o:r@2 | _16 s'o:r@2 | ||||
| _17 s'Vtr@2 | _17 s'Vtr@2 | ||||
| _18 a'th.'a:r@2 | |||||
| _18 a't.#'a:r@2 | |||||
| _19 U:nn'a:i's | _19 U:nn'a:i's | ||||
| _20 b'i:s | _20 b'i:s | ||||
| _23 t'e:Is | _23 t'e:Is | ||||
| _24 c'O:b'Is | _24 c'O:b'Is | ||||
| _25 p@c:'Is | _25 p@c:'Is | ||||
| _26 ch@b'b'i:s | |||||
| _26 c#@b'b'i:s | |||||
| _27 s@t:'a:Is | _27 s@t:'a:Is | ||||
| _28 ath:'a:Is | |||||
| _28 at#:'a:Is | |||||
| _29 U:n'Vnt'Is | _29 U:n'Vnt'Is | ||||
| _30 t'i:s | _30 t'i:s | ||||
| _33 t'e:t't'i:s | _33 t'e:t't'i:s | ||||
| _34 cO~,t'I:s | _34 cO~,t'I:s | ||||
| _35 pE~t'Is | _35 pE~t'Is | ||||
| _36 ch@:t't'I:s | |||||
| _36 c#@:t't'I:s | |||||
| _37 sE~t'Is | _37 sE~t'Is | ||||
| _38 art'Is | _38 art'Is | ||||
| _39 U:n'an'c'a:l'i:s | _39 U:n'an'c'a:l'i:s | ||||
| _43 t'ri:c'a:l'i:s | _43 t'ri:c'a:l'i:s | ||||
| _44 cO:wa:l'Is | _44 cO:wa:l'Is | ||||
| _45 paI'nta:l'Is | _45 paI'nta:l'Is | ||||
| _46 chhIja:l'Is | |||||
| _46 c#hIja:l'Is | |||||
| _47 s@'d.cta:l'Is | _47 s@'d.cta:l'Is | ||||
| _48 a'th.'c'a:l'Is | |||||
| _48 a't.#'c'a:l'Is | |||||
| _49 U'n'an'c'a:s | _49 U'n'an'c'a:s | ||||
| : | : | ||||
| _50 p@c'a:s | _50 p@c'a:s | ||||
| _53 t'rI:p'an'nV | _53 t'rI:p'an'nV | ||||
| _54 c'Ou:wVn'nV | _54 c'Ou:wVn'nV | ||||
| _55 p'ac'pVn'nV | _55 p'ac'pVn'nV | ||||
| _56 chh@p:'Vn'nV | |||||
| _56 c#h@p:'Vn'nV | |||||
| _57 s'Vn't:'a:w@n'n':V | _57 s'Vn't:'a:w@n'n':V | ||||
| _58 a'nth:'a:w@n'n':V | |||||
| _59 U'n'Vn's'a:th.i: | |||||
| _60 s'a:th.i: | |||||
| _61 e:k'as@th.'th.i: | |||||
| _62 b'E:s@th.':th.'i: | |||||
| _63 t'r'i:,s@th.'th.'i: | |||||
| _64 c'O:s@th.'th.'i: | |||||
| _65 p'E~'s@th.'th.'i: | |||||
| _66 ch'E's@th.'th.'i: | |||||
| _67 s'Vt's@th.'th.'i: | |||||
| _68 a'th.,s@th.'th.'i: | |||||
| _58 a'nt#:'a:w@n'n':V | |||||
| _59 U'n'Vn's'a:t.#i: | |||||
| _60 s'a:t.#i: | |||||
| _61 e:k'as@t.#'t.#i: | |||||
| _62 b'E:s@t.#':t.#'i: | |||||
| _63 t'r'i:,s@t.#'t.#'i: | |||||
| _64 c'O:s@t.#'t.#'i: | |||||
| _65 p'E~'s@t.#'t.#'i: | |||||
| _66 c#'E's@t.#'t.#'i: | |||||
| _67 s'Vt's@t.#'t.#'i: | |||||
| _68 a't.#,s@t.#'t.#'i: | |||||
| _69 U:n'an's'Vtt'ar'i: | _69 U:n'an's'Vtt'ar'i: | ||||
| _70 s'at't@r'i:: | _70 s'at't@r'i:: | ||||
| _72 b@h'att'Vr: | _72 b@h'att'Vr: | ||||
| _73 tIjatt:'Vr: | _73 tIjatt:'Vr: | ||||
| _74 cO:hat:'Vr: | _74 cO:hat:'Vr: | ||||
| _75 pach,at:'Vr: | |||||
| _76 ch@'j'ah'at't'Vr: | |||||
| _75 pac#,at:'Vr: | |||||
| _76 c#@'j'ah'at't'Vr: | |||||
| _77 s@t@hatt:'Vr: | _77 s@t@hatt:'Vr: | ||||
| _78 athhatt:'Vr: | |||||
| _78 at#hatt:'Vr: | |||||
| _79 U'n'a:s'i: | _79 U'n'a:s'i: | ||||
| _80 a's's'i: | _80 a's's'i: | ||||
| _83 trIj'a:s'i: | _83 trIj'a:s'i: | ||||
| _84 cO:ra:s'i: | _84 cO:ra:s'i: | ||||
| _85 p'ac'a:s'i: | _85 p'ac'a:s'i: | ||||
| _86 ch@j'a:s'i: | |||||
| _86 c#@j'a:s'i: | |||||
| _87 s'V:t'a:s'i: | _87 s'V:t'a:s'i: | ||||
| _88 a'th.:a:s'i: | |||||
| _88 a't.#:a:s'i: | |||||
| _89 u:n'a:n'ab'b'e: | _89 u:n'a:n'ab'b'e: | ||||
| _90 n@b'b'e: | _90 n@b'b'e: | ||||
| _93 trIj'a:n@b'b'e: | _93 trIj'a:n@b'b'e: | ||||
| _94 cO:r'a:n@b'b'e: | _94 cO:r'a:n@b'b'e: | ||||
| _95 p@n'c'a:n@b'b'e: | _95 p@n'c'a:n@b'b'e: | ||||
| _96 ch@j'a:n@b'b'e: | |||||
| _96 c#@j'a:n@b'b'e: | |||||
| _97 s@n't:'a:n@b'b'e: | _97 s@n't:'a:n@b'b'e: | ||||
| _98 a'n'th.'a:n@b'b'e: | |||||
| _98 a'n't.#'a:n@b'b'e: | |||||
| _99 U:n'n'a:nsh@je: | _99 U:n'n'a:nsh@je: | ||||
| _0C s'aj@ | _0C s'aj@ | ||||
| _0M1 h@z'a:r@ | _0M1 h@z'a:r@ | ||||
| _0M2 l'a:kh@ | |||||
| _0M2 l'a:k#@ | |||||
| _0M3 k'a'ro:d.@ | _0M3 k'a'ro:d.@ | ||||
| _0M4 'Vr@b | _0M4 'Vr@b | ||||
| _0M5 kh'Vr@b'V | |||||
| _0M5 k#'Vr@b'V | |||||
| _0M6 n'i:l' | _0M6 n'i:l' | ||||
| _0M7 p'Vd'm@ | _0M7 p'Vd'm@ | ||||
| _0M8 sh'an,kh@ | |||||
| _0M9 m'ah'a:,sh'ankh@ | |||||
| _0M10 p@r'a:rrd:dh@ | |||||
| _0M8 sh'an,k#@ | |||||
| _0M9 m'ah'a:,sh'ank#@ | |||||
| _0M10 p@r'a:rrd:d#@ | |||||
| _dpt _th'o:plo_ | |||||
| _dpt _t#'o:plo_ | |||||
| // Symbols in Nepali | // Symbols in Nepali | ||||
| // Single consonants | // Single consonants | ||||
| क k@ | क k@ | ||||
| क़ q@ | क़ q@ | ||||
| ख kh@ | |||||
| ख k#@ | |||||
| ख़ x@ | ख़ x@ | ||||
| ग g@ | ग g@ | ||||
| ग़ Q@ | ग़ Q@ | ||||
| घ gh@ | |||||
| घ g#@ | |||||
| ङ N@ | ङ N@ | ||||
| च c@ | च c@ | ||||
| छ ch@ | |||||
| छ c#@ | |||||
| ज J@ | ज J@ | ||||
| ज़ z@ | ज़ z@ | ||||
| झ Jh@ | |||||
| झ J#@ | |||||
| ञ n^@ | ञ n^@ | ||||
| ट t.@ | ट t.@ | ||||
| ठ th.@ | |||||
| ठ t.#@ | |||||
| ड d.@ | ड d.@ | ||||
| ड़ r.@ | ड़ r.@ | ||||
| ढ dh.@ | |||||
| ढ d.#@ | |||||
| ण n.@ // retroflex n.@ | ण n.@ // retroflex n.@ | ||||
| त t@ | त t@ | ||||
| थ th@ | |||||
| थ t#@ | |||||
| द d@ | द d@ | ||||
| ध dh@ | |||||
| ध d#@ | |||||
| न n@ | न n@ | ||||
| प p@ | प p@ | ||||
| फ ph@ | |||||
| फ p#@ | |||||
| फ़ f@ | फ़ f@ | ||||
| ब b@ | ब b@ | ||||
| भ bh@ | |||||
| भ b#@ | |||||
| म m@ | म m@ | ||||
| य j@ | य j@ | ||||
| र r@ | र r@ | ||||
| पो $u $pause | पो $u $pause | ||||
| हो $u $brk | हो $u $brk | ||||
| के k'e,: $brk | के k'e,: $brk | ||||
| दुःख d'u,,kh@ | |||||
| सुख s'u=kh@ | |||||
| दुःख d'u,,k#@ | |||||
| सुख s'u=k#@ | |||||
| जव J'Vv@ | जव J'Vv@ | ||||
| राष्ट्रिय r'a:S,t.rI:j@2 $2 | राष्ट्रिय r'a:S,t.rI:j@2 $2 | ||||
| सित s'it@ | सित s'it@ | ||||
| होइन h'oi:n@2 | होइन h'oi:n@2 | ||||
| भएन bh'Vj'en@2 | |||||
| भएन b#'Vj'en@2 | |||||
| गएन g'Vj'en@2 | गएन g'Vj'en@2 | ||||
| खाएन khaj'en@2 | |||||
| खाएन k#aj'en@2 | |||||
| दिएन d'ij'en@2 | दिएन d'ij'en@2 | ||||
| छुन ch'un'@ | |||||
| छुन c#'un'@ | |||||
| बाट b'a:t.@ | बाट b'a:t.@ | ||||
| अथवा $pause | अथवा $pause | ||||
| वा $pause | वा $pause |
| .group ख | .group ख | ||||
| ख khV | |||||
| ख (B kh | |||||
| ?1 ख (_ kh | |||||
| ्) ख (_ kh@/ | |||||
| ख (्ख kh, | |||||
| खँ khV~' | |||||
| खॅ khV~' | |||||
| ख k#V | |||||
| ख (B k# | |||||
| ?1 ख (_ k# | |||||
| ्) ख (_ k#@/ | |||||
| ख (्ख k#, | |||||
| खँ k#V~' | |||||
| खॅ k#V~' | |||||
| .group ग | .group ग | ||||
| ग gV | ग gV | ||||
| गॅ gV~' | गॅ gV~' | ||||
| .group घ | .group घ | ||||
| घ ghV | |||||
| घ (B gh | |||||
| ?1 घ (_ gh | |||||
| घ (्घ gh, | |||||
| ्) घ (_ gh@/ | |||||
| घँ ghV~' | |||||
| घॅ ghV~' | |||||
| घ g#V | |||||
| घ (B g# | |||||
| ?1 घ (_ g# | |||||
| घ (्घ g#, | |||||
| ्) घ (_ g#@/ | |||||
| घँ g#V~' | |||||
| घॅ g#V~' | |||||
| .group ङ // Phoneme adjustment suggested | .group ङ // Phoneme adjustment suggested | ||||
| चॅ cV~' | चॅ cV~' | ||||
| .group छ | .group छ | ||||
| छ chV | |||||
| छ (B ch | |||||
| ्) छ (C ch@ | |||||
| छ (_ ch@ | |||||
| छँ chV~' | |||||
| छॅ chV~' | |||||
| छ c#V | |||||
| छ (B c# | |||||
| ्) छ (C c#@ | |||||
| छ (_ c#@ | |||||
| छँ c#V~' | |||||
| छॅ c#V~' | |||||
| .group ज | .group ज | ||||
| ज JV | ज JV | ||||
| ्) ज (_ J@/ | ्) ज (_ J@/ | ||||
| .group झ // Phoneme adjustment suggested. | .group झ // Phoneme adjustment suggested. | ||||
| झ JhV | |||||
| झ (B Jh | |||||
| झँ JhV~' | |||||
| झॅ JhV~' | |||||
| झ J#V | |||||
| झ (B J# | |||||
| झँ J#V~' | |||||
| झॅ J#V~' | |||||
| झ (्झ J, | झ (्झ J, | ||||
| झ (_ Jh | |||||
| झ (_ J# | |||||
| .group ञ // Phoneme adjustment suggested | .group ञ // Phoneme adjustment suggested | ||||
| ञ n^V | ञ n^V | ||||
| ट (्य t.: | ट (्य t.: | ||||
| .group ठ | .group ठ | ||||
| ठ th.V | |||||
| ठ (B th. | |||||
| ठँ t.hV~' | |||||
| ठॅ t.hV~' | |||||
| ठ (्ठ th., | |||||
| ्) ठ (_ th.@/ | |||||
| ?1 ठ (_ t.h | |||||
| ठ t.#V | |||||
| ठ (B t.# | |||||
| ठँ t.#V~' | |||||
| ठॅ t.#V~' | |||||
| ठ (्ठ t.#, | |||||
| ्) ठ (_ t.#@/ | |||||
| ?1 ठ (_ t.# | |||||
| .group ड | .group ड | ||||
| ड d.V | ड d.V | ||||
| ड़ॅ d.:V~' | ड़ॅ d.:V~' | ||||
| .group ढ | .group ढ | ||||
| ढ dh.V | |||||
| ढ (B dh. | |||||
| ढँ d.hV~' | |||||
| ढॅ d.hV~' | |||||
| ्) ढ (_ dh.@/ | |||||
| ?1 ढ (_ d.h | |||||
| ढ़ d.hV: // nukta | |||||
| ढ़ (B d.h // nukta | |||||
| ढ d.#V | |||||
| ढ (B d.# | |||||
| ढँ d.#V~' | |||||
| ढॅ d.#V~' | |||||
| ्) ढ (_ d.#@/ | |||||
| ?1 ढ (_ d.# | |||||
| ढ़ d.#V: // nukta | |||||
| ढ़ (B d.# // nukta | |||||
| .group ण | .group ण | ||||
| ण n.V // Phoneme adjustment suggested | ण n.V // Phoneme adjustment suggested | ||||
| ?1 त (_ t, | ?1 त (_ t, | ||||
| .group थ | .group थ | ||||
| थ thV | |||||
| थँ thV~' | |||||
| थॅ thV~' | |||||
| थ (B th | |||||
| ्) थ (_ th@/ | |||||
| थ (्य th, | |||||
| ?1 थ (_ th | |||||
| थ t#V | |||||
| थँ t#V~' | |||||
| थॅ t#V~' | |||||
| थ (B t# | |||||
| ्) थ (_ t#@/ | |||||
| थ (्य t#, | |||||
| ?1 थ (_ t# | |||||
| .group द | .group द | ||||
| द dV | द dV | ||||
| ्) द (_ d@/ | ्) द (_ d@/ | ||||
| .group ध | .group ध | ||||
| ध dhV | |||||
| धँ dhV~' | |||||
| धॅ dhV~' | |||||
| ध (B dh | |||||
| ?1 ध (_ dh | |||||
| ्) ध (_ dh@/ | |||||
| ध d#V | |||||
| धँ d#V~' | |||||
| धॅ d#V~' | |||||
| ध (B d# | |||||
| ?1 ध (_ d# | |||||
| ्) ध (_ d#@/ | |||||
| .group न | .group न | ||||
| न nV | न nV | ||||
| ्) प (_ p@/ | ्) प (_ p@/ | ||||
| .group फ | .group फ | ||||
| फ phV | |||||
| फँ phV~' | |||||
| फॅ phV~' | |||||
| फ (B ph | |||||
| फ (्न ph: | |||||
| ?1 फ (_ ph | |||||
| ्) फ (_ ph@/ | |||||
| फ p#V | |||||
| फँ p#V~' | |||||
| फॅ p#V~' | |||||
| फ (B p# | |||||
| फ (्न p#: | |||||
| ?1 फ (_ p# | |||||
| ्) फ (_ p#@/ | |||||
| .group ब | .group ब | ||||
| ब bV | ब bV | ||||
| ्) ब (_ b@/ | ्) ब (_ b@/ | ||||
| .group भ | .group भ | ||||
| भ bhV | |||||
| भँ bhV~' | |||||
| भॅ bhV~' | |||||
| भ (B bh | |||||
| ?1 भ (_ bh | |||||
| भ (्य bh, | |||||
| भ b#V | |||||
| भँ b#V~' | |||||
| भॅ b#V~' | |||||
| भ (B b# | |||||
| ?1 भ (_ b# | |||||
| भ (्य b#, | |||||
| ्) भ (_ bh@/ | ्) भ (_ bh@/ | ||||
| .group म | .group म | ||||
| .group [ | .group [ | ||||
| [ l'eftbr'ak'et | [ l'eftbr'ak'et | ||||
| [ (_A th'ul'ok'osht.@2suru | |||||
| [ (_C th'ul'ok'osht.@2suru | |||||
| [ (_० th'ul'ok'osht.@2suru | |||||
| [ (_१ th'ul'ok'osht.@2suru | |||||
| [ (_२ th'ul'ok'osht.@2suru | |||||
| [ (_३ th'ul'ok'osht.@2suru | |||||
| [ (_४ th'ul'ok'osht.@2suru | |||||
| [ (_५ th'ul'ok'osht.@2suru | |||||
| [ (_६ th'ul'ok'osht.@2suru | |||||
| [ (_७ th'ul'ok'osht.@2suru | |||||
| [ (_८ th'ul'ok'osht.@2suru | |||||
| [ (_९ th'ul'ok'osht.@2suru | |||||
| [ (_A t#'ul'ok'osht.@2suru | |||||
| [ (_C t#'ul'ok'osht.@2suru | |||||
| [ (_० t#'ul'ok'osht.@2suru | |||||
| [ (_१ t#'ul'ok'osht.@2suru | |||||
| [ (_२ t#'ul'ok'osht.@2suru | |||||
| [ (_३ t#'ul'ok'osht.@2suru | |||||
| [ (_४ t#'ul'ok'osht.@2suru | |||||
| [ (_५ t#'ul'ok'osht.@2suru | |||||
| [ (_६ t#'ul'ok'osht.@2suru | |||||
| [ (_७ t#'ul'ok'osht.@2suru | |||||
| [ (_८ t#'ul'ok'osht.@2suru | |||||
| [ (_९ t#'ul'ok'osht.@2suru | |||||
| .group ] | .group ] | ||||
| ] r'aitbr'ak'et | ] r'aitbr'ak'et | ||||
| A_) ] th'ul'ok'osht.@2b'Vnd@2 | |||||
| C_) ] th'ul'ok'osht.@2b'Vnd@2 | |||||
| ०_) ] th'ul'ok'osht.@2b'Vnd@2 | |||||
| १_) ] th'ul'ok'osht.@2b'Vnd@2 | |||||
| २_) ] th'ul'ok'osht.@2b'Vnd@2 | |||||
| ३_) ] th'ul'ok'osht.@2b'Vnd@2 | |||||
| ४_) ] th'ul'ok'osht.@2b'Vnd@2 | |||||
| ५_) ] th'ul'ok'osht.@2b'Vnd@2 | |||||
| ६_) ] th'ul'ok'osht.@2b'Vnd@2 | |||||
| ७_) ] th'ul'ok'osht.@2b'Vnd@2 | |||||
| ८_) ] th'ul'ok'osht.@2b'Vnd@2 | |||||
| ९_) ] th'ul'ok'osht.@2b'Vnd@2 | |||||
| A_) ] t#'ul'ok'osht.@2b'Vnd@2 | |||||
| C_) ] t#'ul'ok'osht.@2b'Vnd@2 | |||||
| ०_) ] t#'ul'ok'osht.@2b'Vnd@2 | |||||
| १_) ] t#'ul'ok'osht.@2b'Vnd@2 | |||||
| २_) ] t#'ul'ok'osht.@2b'Vnd@2 | |||||
| ३_) ] t#'ul'ok'osht.@2b'Vnd@2 | |||||
| ४_) ] t#'ul'ok'osht.@2b'Vnd@2 | |||||
| ५_) ] t#'ul'ok'osht.@2b'Vnd@2 | |||||
| ६_) ] t#'ul'ok'osht.@2b'Vnd@2 | |||||
| ७_) ] t#'ul'ok'osht.@2b'Vnd@2 | |||||
| ८_) ] t#'ul'ok'osht.@2b'Vnd@2 | |||||
| ९_) ] t#'ul'ok'osht.@2b'Vnd@2 | |||||
| .group { | .group { | ||||
| { l'eftbr'eIs | { l'eftbr'eIs | ||||
| { (_A b'a:Ng'ek'oshth.@2suru | |||||
| { (_C b'a:Ng'ek'oshth.@2suru | |||||
| { (_० b'a:Ng'ek'oshth.@2suru | |||||
| { (_१ b'a:Ng'ek'oshth.@2suru | |||||
| { (_२ b'a:Ng'ek'oshth.@2suru | |||||
| { (_३ b'a:Ng'ek'oshth.@2suru | |||||
| { (_४ b'a:Ng'ek'oshth.@2suru | |||||
| { (_५ b'a:Ng'ek'oshth.@2suru | |||||
| { (_६ b'a:Ng'ek'oshth.@2suru | |||||
| { (_७ b'a:Ng'ek'oshth.@2suru | |||||
| { (_८ b'a:Ng'ek'oshth.@2suru | |||||
| { (_९ b'a:Ng'ek'oshth.@2suru | |||||
| { (_A b'a:Ng'ek'osht.#@2suru | |||||
| { (_C b'a:Ng'ek'osht.#@2suru | |||||
| { (_० b'a:Ng'ek'osht.#@2suru | |||||
| { (_१ b'a:Ng'ek'osht.#@2suru | |||||
| { (_२ b'a:Ng'ek'osht.#@2suru | |||||
| { (_३ b'a:Ng'ek'osht.#@2suru | |||||
| { (_४ b'a:Ng'ek'osht.#@2suru | |||||
| { (_५ b'a:Ng'ek'osht.#@2suru | |||||
| { (_६ b'a:Ng'ek'osht.#@2suru | |||||
| { (_७ b'a:Ng'ek'osht.#@2suru | |||||
| { (_८ b'a:Ng'ek'osht.#@2suru | |||||
| { (_९ b'a:Ng'ek'osht.#@2suru | |||||
| .group } | .group } | ||||
| } r'aItbr'eIs | } r'aItbr'eIs | ||||
| A_) } b'a:Ng'ek'oshth.@2b'Vnd@2 | |||||
| C_) } b'a:Ng'ek'oshth.@2b'Vnd@2 | |||||
| ०_) } b'a:Ng'ek'oshth.@2b'Vnd@2 | |||||
| १_) } b'a:Ng'ek'oshth.@2b'Vnd@2 | |||||
| २_) } b'a:Ng'ek'oshth.@2b'Vnd@2 | |||||
| ३_) } b'a:Ng'ek'oshth.@2b'Vnd@2 | |||||
| ४_) } b'a:Ng'ek'oshth.@2b'Vnd@2 | |||||
| ५_) } b'a:Ng'ek'oshth.@2b'Vnd@2 | |||||
| ६_) } b'a:Ng'ek'oshth.@2b'Vnd@2 | |||||
| ७_) } b'a:Ng'ek'oshth.@2b'Vnd@2 | |||||
| ८_) } b'a:Ng'ek'oshth.@2b'Vnd@2 | |||||
| ९_) } b'a:Ng'ek'oshth.@2b'Vnd@2 | |||||
| A_) } b'a:Ng'ek'osht.#@2b'Vnd@2 | |||||
| C_) } b'a:Ng'ek'osht.#@2b'Vnd@2 | |||||
| ०_) } b'a:Ng'ek'osht.#@2b'Vnd@2 | |||||
| १_) } b'a:Ng'ek'osht.#@2b'Vnd@2 | |||||
| २_) } b'a:Ng'ek'osht.#@2b'Vnd@2 | |||||
| ३_) } b'a:Ng'ek'osht.#@2b'Vnd@2 | |||||
| ४_) } b'a:Ng'ek'osht.#@2b'Vnd@2 | |||||
| ५_) } b'a:Ng'ek'osht.#@2b'Vnd@2 | |||||
| ६_) } b'a:Ng'ek'osht.#@2b'Vnd@2 | |||||
| ७_) } b'a:Ng'ek'osht.#@2b'Vnd@2 | |||||
| ८_) } b'a:Ng'ek'osht.#@2b'Vnd@2 | |||||
| ९_) } b'a:Ng'ek'osht.#@2b'Vnd@2 | |||||
| // Special Symbols with special meanings | // Special Symbols with special meanings | ||||
| .group | .group | ||||
| । pur',n.@,w'ir'a:m // Fullstop of Devanagari | । pur',n.@,w'ir'a:m // Fullstop of Devanagari | ||||
| ॥ d'i:rgh@,w'ir'a:m // Double Fullstop - means Read sentence twice. | |||||
| ॥ d'i:rg#@,w'ir'a:m // Double Fullstop - means Read sentence twice. | |||||
| ॱ dVS@mal@w@2 // Decimal of devanagari (dot [.] is mostly used!). | ॱ dVS@mal@w@2 // Decimal of devanagari (dot [.] is mostly used!). | ||||
| ॰ saNks.e:p@s'u:c@k@ | ॰ saNks.e:p@s'u:c@k@ | ||||
| $ dOlV | |||||
| $ dOlV | |||||
| % prVtish'vt | % prVtish'vt | ||||
| // Rarely used Special symbols. Written after Indepedent Vowel or between a Consonants and Symbolic Vowels! | // Rarely used Special symbols. Written after Indepedent Vowel or between a Consonants and Symbolic Vowels! | ||||
| ़ n'u'k't'a: // Name of symbol. | ़ n'u'k't'a: // Name of symbol. | ||||
| ॑ Ud'Vtt,@ | ॑ Ud'Vtt,@ | ||||
| ॓ Ud:dh@r,@n.@a:r'Vmbh@ | |||||
| ॔ ,Ud:dh@r,@n.@'Vnt@ | |||||
| ॽ k,@n.th.@w'Ira:m | |||||
| ॓ Ud:d#@r,@n.@a:r'Vmb#@ | |||||
| ॔ ,Ud:d#@r,@n.@'Vnt@ | |||||
| ॽ k,@n.t.#@w'Ira:m | |||||
| ॒ a'n'ud'Vtt,@ | ॒ a'n'ud'Vtt,@ | ||||
| | |||||
| // This file is UTF8 encoded | |||||
| // Punjabi/Gurmukhi | |||||
| // Numbers | |||||
| _0 z'iRo | |||||
| _1 'Ik: | |||||
| _2 d'o | |||||
| _3 t'I~n | |||||
| _4 c'aR | |||||
| _5 p'VnJ | |||||
| _6 ch'e | |||||
| _7 s'Vt: | |||||
| _8 'Vth.: | |||||
| _9 n'O~ | |||||
| _10 d'Vs | |||||
| _11 gI'aRa~ | |||||
| _12 b'aRa~ | |||||
| _13 t'eRa~ | |||||
| _14 c'Oda~ | |||||
| _15 p'Vnd@Ra~ | |||||
| _16 s'ol.a~ | |||||
| _17 s@t'aRa~ | |||||
| _18 Vth.'aRa~ | |||||
| _19 'Unni | |||||
| _20 v'iH | |||||
| _21 Ik:i | |||||
| _22 b'ai | |||||
| _23 t'ei | |||||
| _24 c'Ovi | |||||
| _25 p'Vc:i | |||||
| _26 ch'Vb:i | |||||
| _27 s@t'ai | |||||
| _28 Vth.'ai | |||||
| _29 Un'Vt:i | |||||
| _30 t'iH | |||||
| _31 Ik'Vt:i | |||||
| _32 b'Vt:i | |||||
| _33 t'et:i | |||||
| _34 c'ONti | |||||
| _35 p'ENti | |||||
| _36 ch'Vt:i | |||||
| _37 s'ENti | |||||
| _38 Vth.'Vt:i | |||||
| _39 U~Nt'ali | |||||
| _40 c'ali | |||||
| _41 Ik@t'ali | |||||
| _42 be'ali | |||||
| _43 t@R@t'ali | |||||
| _44 cUt'ali | |||||
| _45 p@nt'ali | |||||
| _46 chI'ali | |||||
| _47 s@nt'ali | |||||
| _48 ,@R2@t'ali | |||||
| _49 Un'VnJa | |||||
| _50 p@nJ'aH | |||||
| _51 ,@k@v'VnJa | |||||
| _52 b@v'VnJa | |||||
| _53 t,@R@v'VnJa | |||||
| _54 cUR'VnJa | |||||
| _55 p,@c@v'VnJa | |||||
| _56 ch@p'VnJa | |||||
| _57 s,@t@v'VnJa | |||||
| _58 ,@th.@v'VnJa | |||||
| _59 Un.'ath. | |||||
| _60 s'Vth.: | |||||
| _61 Ik'aH@t. | |||||
| _62 b'aH@t. | |||||
| _63 t@R'e~H@t. | |||||
| _64 c'O~H@t. | |||||
| _65 p'E~H@t. | |||||
| _66 che'aH@t. | |||||
| _67 s@t'aH@t. | |||||
| _68 ,@th.'aH@t. | |||||
| _69 Un.'Vt:@R | |||||
| _70 s'Vt:@R | |||||
| _71 Ik'Vt:@R | |||||
| _72 b@H'Vt:@R | |||||
| _73 t@H'et:@R | |||||
| _74 cOH'Vt:@R | |||||
| _75 p@J'Vt:@R | |||||
| _76 chIH'Vt:@R | |||||
| _77 s@t'Vt:@R | |||||
| _78 Vth.'Vt:@R | |||||
| _79 Un.'asi | |||||
| _80 'Vssi | |||||
| _81 ,IkI;'asi | |||||
| _82 bI;'asi | |||||
| _83 t,@RI;'asi | |||||
| _84 cUR'asi | |||||
| _85 p@c'asi | |||||
| _86 chI;'asi | |||||
| _87 s@t'asi | |||||
| _88 Vth.'asi | |||||
| _89 Un'an@v,e~ | |||||
| _90 n'Vb:e | |||||
| _91 Ik'an@v,e~ | |||||
| _92 b'an@v,e~ | |||||
| _93 t@R'a~n@v,e~ | |||||
| _94 cUR'an@v,e~ | |||||
| _95 p@c'an@v,e~ | |||||
| _96 chI'an@ve~ | |||||
| _97 s@t'an@ve~ | |||||
| _98 Vth.'an@ve~ | |||||
| _99 n@R2'I~n@v,e~ | |||||
| _0C s'O | |||||
| _0M1 H@J'aR | |||||
| _0M2 l'Vkh: // 100,000 | |||||
| _0M3 k'VRoR // 10,000,000 | |||||
| _0M4 'VR@b // 1,000,000,000 | |||||
| _0M5 kh'VR@b // 100,000,000,000 | |||||
| _dpt _dOth // ?? | |||||
| // character names | |||||
| ਂ bInd'i | |||||
| ੰ tIpp'i | |||||
| ੱ VddVk | |||||
| ਃ visaRg | |||||
| ੍ hVlVnt | |||||
| ਅ 'ERV | |||||
| ੲ 'IRI | |||||
| ੳ 'URV | |||||
| _ਆ 'ERV||kVnn'a | |||||
| _ਇ 'IRI||sIh'aRi | |||||
| _ਈ 'IRI||bIh'aRi | |||||
| _ਉ 'URV||'OnkaR | |||||
| _ਊ 'URV||dUl'EnkaR | |||||
| _ਏ 'IRI||l'avam | |||||
| _ਐ 'ERV||dUl'avam | |||||
| _ਓ 'URV||hoR'a | |||||
| _ਔ 'ERV||kVnOR'a | |||||
| ਾ kVnn'a | |||||
| ਿ sIh'aRi | |||||
| ੀ bIh'aRi | |||||
| ੁ OnkaR | |||||
| ੂ dUl'EnkaR | |||||
| ੇ l'ava~ | |||||
| ੈ d@l'ava~ | |||||
| ੋ hoR'a | |||||
| ੌ kVn'ORa | |||||
| । d.'Vnd.i | |||||
| ਸਰਕਾਰ sR@k'aR | |||||
| ਸਰਕਾਰੀ sR@k'aRi | |||||
| $textmode | |||||
| ਸੋਫਟਵਿਅਰ software | |||||
| ਈਮੇਲ email | |||||
| ਕੀਬੋਰਡ keyboard | |||||
| ਬੋਰਡ board | |||||
| $phonememode | |||||
| // This file is UTF8 encoded | |||||
| // Punjabi/Gurmukhi | |||||
| // Numbers | |||||
| _0 z'iRo | |||||
| _1 'Ik: | |||||
| _2 d'o | |||||
| _3 t'I~n | |||||
| _4 c'aR | |||||
| _5 p'VnJ | |||||
| _6 c#'e | |||||
| _7 s'Vt: | |||||
| _8 'Vt.#: | |||||
| _9 n'O~ | |||||
| _10 d'Vs | |||||
| _11 gI'aRa~ | |||||
| _12 b'aRa~ | |||||
| _13 t'eRa~ | |||||
| _14 c'Oda~ | |||||
| _15 p'Vnd@Ra~ | |||||
| _16 s'ol.a~ | |||||
| _17 s@t'aRa~ | |||||
| _18 Vt.#'aRa~ | |||||
| _19 'Unni | |||||
| _20 v'iH | |||||
| _21 Ik:i | |||||
| _22 b'ai | |||||
| _23 t'ei | |||||
| _24 c'Ovi | |||||
| _25 p'Vc:i | |||||
| _26 c#'Vb:i | |||||
| _27 s@t'ai | |||||
| _28 Vt.#'ai | |||||
| _29 Un'Vt:i | |||||
| _30 t'iH | |||||
| _31 Ik'Vt:i | |||||
| _32 b'Vt:i | |||||
| _33 t'et:i | |||||
| _34 c'ONti | |||||
| _35 p'ENti | |||||
| _36 c#'Vt:i | |||||
| _37 s'ENti | |||||
| _38 Vt.#'Vt:i | |||||
| _39 U~Nt'ali | |||||
| _40 c'ali | |||||
| _41 Ik@t'ali | |||||
| _42 be'ali | |||||
| _43 t@R@t'ali | |||||
| _44 cUt'ali | |||||
| _45 p@nt'ali | |||||
| _46 c#I'ali | |||||
| _47 s@nt'ali | |||||
| _48 ,@R2@t'ali | |||||
| _49 Un'VnJa | |||||
| _50 p@nJ'aH | |||||
| _51 ,@k@v'VnJa | |||||
| _52 b@v'VnJa | |||||
| _53 t,@R@v'VnJa | |||||
| _54 cUR'VnJa | |||||
| _55 p,@c@v'VnJa | |||||
| _56 c#@p'VnJa | |||||
| _57 s,@t@v'VnJa | |||||
| _58 ,@t.#@v'VnJa | |||||
| _59 Un.'at.# | |||||
| _60 s'Vt.#: | |||||
| _61 Ik'aH@t. | |||||
| _62 b'aH@t. | |||||
| _63 t@R'e~H@t. | |||||
| _64 c'O~H@t. | |||||
| _65 p'E~H@t. | |||||
| _66 c#e'aH@t. | |||||
| _67 s@t'aH@t. | |||||
| _68 ,@t.#'aH@t. | |||||
| _69 Un.'Vt:@R | |||||
| _70 s'Vt:@R | |||||
| _71 Ik'Vt:@R | |||||
| _72 b@H'Vt:@R | |||||
| _73 t@H'et:@R | |||||
| _74 cOH'Vt:@R | |||||
| _75 p@J'Vt:@R | |||||
| _76 c#IH'Vt:@R | |||||
| _77 s@t'Vt:@R | |||||
| _78 Vt.#'Vt:@R | |||||
| _79 Un.'asi | |||||
| _80 'Vssi | |||||
| _81 ,IkI;'asi | |||||
| _82 bI;'asi | |||||
| _83 t,@RI;'asi | |||||
| _84 cUR'asi | |||||
| _85 p@c'asi | |||||
| _86 c#I;'asi | |||||
| _87 s@t'asi | |||||
| _88 Vt.#'asi | |||||
| _89 Un'an@v,e~ | |||||
| _90 n'Vb:e | |||||
| _91 Ik'an@v,e~ | |||||
| _92 b'an@v,e~ | |||||
| _93 t@R'a~n@v,e~ | |||||
| _94 cUR'an@v,e~ | |||||
| _95 p@c'an@v,e~ | |||||
| _96 c#I'an@ve~ | |||||
| _97 s@t'an@ve~ | |||||
| _98 Vt.#'an@ve~ | |||||
| _99 n@R2'I~n@v,e~ | |||||
| _0C s'O | |||||
| _0M1 H@J'aR | |||||
| _0M2 l'Vk#: // 100,000 | |||||
| _0M3 k'VRoR // 10,000,000 | |||||
| _0M4 'VR@b // 1,000,000,000 | |||||
| _0M5 k#'VR@b // 100,000,000,000 | |||||
| _dpt _dOt# // ?? | |||||
| // character names | |||||
| ਂ bInd'i | |||||
| ੰ tIpp'i | |||||
| ੱ VddVk | |||||
| ਃ visaRg | |||||
| ੍ hVlVnt | |||||
| ਅ 'ERV | |||||
| ੲ 'IRI | |||||
| ੳ 'URV | |||||
| _ਆ 'ERV||kVnn'a | |||||
| _ਇ 'IRI||sIh'aRi | |||||
| _ਈ 'IRI||bIh'aRi | |||||
| _ਉ 'URV||'OnkaR | |||||
| _ਊ 'URV||dUl'EnkaR | |||||
| _ਏ 'IRI||l'avam | |||||
| _ਐ 'ERV||dUl'avam | |||||
| _ਓ 'URV||hoR'a | |||||
| _ਔ 'ERV||kVnOR'a | |||||
| ਾ kVnn'a | |||||
| ਿ sIh'aRi | |||||
| ੀ bIh'aRi | |||||
| ੁ OnkaR | |||||
| ੂ dUl'EnkaR | |||||
| ੇ l'ava~ | |||||
| ੈ d@l'ava~ | |||||
| ੋ hoR'a | |||||
| ੌ kVn'ORa | |||||
| // Punctuation | |||||
| । d.'Vnd.i | |||||
| // Pronouns | |||||
| // ਪੁਰਖਵਾਚੀ ਪੜਨਾਂਵ | |||||
| ਮੈਂ $u // main: I | |||||
| ਮੈਨੂੰ $u | |||||
| ਮੇਰਾ $u | |||||
| ਮੇਰੀ $u | |||||
| ਮੇਰੇ $u | |||||
| ਅਸੀਂ $u // we | |||||
| ਸਾਨੂੰ $u | |||||
| ਸਾਡਾ $u | |||||
| ਸਾਡੀ $u | |||||
| ਸਾਡੇ $u | |||||
| ਆਪ $u // you(formal) | |||||
| ਆਪਨੂੰ $u | |||||
| ਆਪਦਾ $u | |||||
| ਆਪਦੀ $u | |||||
| ਆਪਦੇ $u | |||||
| ਤੂੰ $u // you (informal) | |||||
| ਤੂਸੀਂ $u // you(formal) | |||||
| ਤੁਹਾਨੂੰ $u | |||||
| ਤੁਹਾਡਾ $u | |||||
| ਤੁਹਾਡੀ $u | |||||
| ਤੁਹਾਡੇ $u | |||||
| ਤੂੰ $u // you (informal) | |||||
| ਤੈਨੂੰ $u | |||||
| ਤੇਰਾ $u | |||||
| ਇਹ $u // he/she/it | |||||
| ਇਸਤੋਂ $u | |||||
| ਇਸਦਾ $u | |||||
| ਇਹ $u // they | |||||
| ਇਨ੍ਹਾਂਨੂੰ $u | |||||
| ਇਨ੍ਹਾਂਦਾ $u | |||||
| ਉਹ $u // he/she/it | |||||
| ਉਸਤੋਂ $u | |||||
| ਉਸਦਾ $u | |||||
| ਉਸਦੀ $u | |||||
| ਉਸਦੇ $u | |||||
| ਉਹ $u // they | |||||
| ਉਨ੍ਹਾਂਨੂੰ $u // unhannu: them | |||||
| ਉਨ੍ਹਾਂਦਾ $u | |||||
| ਉਨ੍ਹਾਂਦੀ $u | |||||
| ਉਨ੍ਹਾਂਦੇ $u | |||||
| // Prepositions/Postpositions | |||||
| ਦਾ $u // dā: of, possessive particle | |||||
| ਦੀ $u // dī | |||||
| ਦੇ $u // de | |||||
| ਨੂੰ $u // nu: to | |||||
| ਤੱਕ $u // tak: until, for(time) | |||||
| ਬਿਨਾ $u $pause // without (preposition) | |||||
| ਵਿਚ $u // in | |||||
| ਵਿੱਚ $u // in | |||||
| ਤੋਂ $u // ton: from, with, by | |||||
| // Verbs | |||||
| ਹਾਂ $u // to be | |||||
| ਹੋ $u | |||||
| ਹੈ $u | |||||
| ਹੈਂ $u | |||||
| ਹਨ $u | |||||
| ਸੀ $u // si: past aux | |||||
| ਸਨ $u // san: past aux | |||||
| ਰਹਾ $u // rahā: continuous | |||||
| ਰਹੇ $u // rahe | |||||
| ਰਹੀ $u // rahī | |||||
| $textmode | |||||
| ਸੋਫਟਵਿਅਰ software | |||||
| ਈਮੇਲ email | |||||
| ਕੀਬੋਰਡ keyboard | |||||
| ਬੋਰਡ board | |||||
| $phonememode | |||||
| ੱ) ਕ (_ k: | ੱ) ਕ (_ k: | ||||
| .group ਖ | .group ਖ | ||||
| ਖ khV | |||||
| ਖ (B kh | |||||
| @) ਖ (_ kh | |||||
| ੱ) ਖ kh:V | |||||
| ੱ) ਖ (B kh: | |||||
| ੱ) ਖ (_ kh: | |||||
| ਖ k#V | |||||
| ਖ (B k# | |||||
| @) ਖ (_ k# | |||||
| ੱ) ਖ k#:V | |||||
| ੱ) ਖ (B k#: | |||||
| ੱ) ਖ (_ k#: | |||||
| .group ਗ | .group ਗ | ||||
| ਗ gV | ਗ gV | ||||
| ੱ) ਗ (_ g: | ੱ) ਗ (_ g: | ||||
| .group ਘ | .group ਘ | ||||
| ਘ ghV | |||||
| ਘ (B gh | |||||
| @) ਘ (_ gh | |||||
| ਘ g#V | |||||
| ਘ (B g# | |||||
| @) ਘ (_ g# | |||||
| _) ਘ k+V // high tone | _) ਘ k+V // high tone | ||||
| _) ਘ (B k+ | _) ਘ (B k+ | ||||
| ੱ) ਚ (_ c: | ੱ) ਚ (_ c: | ||||
| .group ਛ | .group ਛ | ||||
| ਛ chV | |||||
| ਛ (B ch | |||||
| @) ਛ (_ ch | |||||
| ੱ) ਛ ch:V | |||||
| ੱ) ਛ (B ch: | |||||
| ੱ) ਛ (_ ch: | |||||
| ਛ c#V | |||||
| ਛ (B c# | |||||
| @) ਛ (_ c# | |||||
| ੱ) ਛ c#:V | |||||
| ੱ) ਛ (B c#: | |||||
| ੱ) ਛ (_ c#: | |||||
| .group ਜ | .group ਜ | ||||
| ਜ JV | ਜ JV | ||||
| ੱ) ਜ (_ J: | ੱ) ਜ (_ J: | ||||
| .group ਝ | .group ਝ | ||||
| ਝ JhV | |||||
| ਝ (B Jh | |||||
| @) ਝ (_ Jh | |||||
| ਝ J#V | |||||
| ਝ (B J# | |||||
| @) ਝ (_ J# | |||||
| _) ਝ c+V | _) ਝ c+V | ||||
| _) ਝ (B c+ | _) ਝ (B c+ | ||||
| ੱ) ਟ (_ t.: | ੱ) ਟ (_ t.: | ||||
| .group ਠ | .group ਠ | ||||
| ਠ th.V | |||||
| ਠ (B th. | |||||
| @) ਠ (_ th. | |||||
| ੱ) ਠ th.:V | |||||
| ੱ) ਠ (B th.: | |||||
| ੱ) ਠ (_ th.: | |||||
| ਠ t.#V | |||||
| ਠ (B t.# | |||||
| @) ਠ (_ t.# | |||||
| ੱ) ਠ t.#:V | |||||
| ੱ) ਠ (B t.#: | |||||
| ੱ) ਠ (_ t.#: | |||||
| .group ਡ | .group ਡ | ||||
| ਡ d.V | ਡ d.V | ||||
| ੱ) ਡ (_ d.: | ੱ) ਡ (_ d.: | ||||
| .group ਢ | .group ਢ | ||||
| ਢ dh.V | |||||
| ਢ (B dh. | |||||
| @) ਢ (_ dh. | |||||
| ਢ d.#V | |||||
| ਢ (B d.# | |||||
| @) ਢ (_ d.# | |||||
| _) ਢ t.+V | _) ਢ t.+V | ||||
| _) ਢ (B t. | _) ਢ (B t. | ||||
| ੱ) ਤ (_ t: | ੱ) ਤ (_ t: | ||||
| .group ਥ | .group ਥ | ||||
| ਥ thV | |||||
| ਥ (B th | |||||
| @) ਥ (_ th | |||||
| ੱ) ਥ th:V | |||||
| ੱ) ਥ (B th: | |||||
| ੱ) ਥ (_ th: | |||||
| ਥ t#V | |||||
| ਥ (B t# | |||||
| @) ਥ (_ t# | |||||
| ੱ) ਥ t#:V | |||||
| ੱ) ਥ (B t#: | |||||
| ੱ) ਥ (_ t#: | |||||
| .group ਦ | .group ਦ | ||||
| ਦ dV | ਦ dV | ||||
| ੱ) ਦ (_ d: | ੱ) ਦ (_ d: | ||||
| .group ਧ | .group ਧ | ||||
| ਧ dhV | |||||
| ਧ (B dh | |||||
| @) ਧ (_ dh | |||||
| ਧ d#V | |||||
| ਧ (B d# | |||||
| @) ਧ (_ d# | |||||
| _) ਧ t+V | _) ਧ t+V | ||||
| _) ਧ (B t+ | _) ਧ (B t+ | ||||
| ੱ) ਪ (_ p: | ੱ) ਪ (_ p: | ||||
| .group ਫ | .group ਫ | ||||
| ਫ phV | |||||
| ਫ (B ph | |||||
| @) ਫ (_ ph | |||||
| ੱ) ਫ ph:V | |||||
| ੱ) ਫ (B ph: | |||||
| ੱ) ਫ (_ ph: | |||||
| ਫ p#V | |||||
| ਫ (B p# | |||||
| @) ਫ (_ p# | |||||
| ੱ) ਫ p#:V | |||||
| ੱ) ਫ (B p#: | |||||
| ੱ) ਫ (_ p#: | |||||
| .group ਬ | .group ਬ | ||||
| ਬ bV | ਬ bV | ||||
| ੱ) ਬ (_ b: | ੱ) ਬ (_ b: | ||||
| .group ਭ | .group ਭ | ||||
| ਭ bhV | |||||
| ਭ (B bh | |||||
| @) ਭ (_ bh | |||||
| ਭ b#V | |||||
| ਭ (B b# | |||||
| @) ਭ (_ b# | |||||
| _) ਭ p+V | _) ਭ p+V | ||||
| _) ਭ (B p+ | _) ਭ (B p+ | ||||
| _ar 'a*aby | _ar 'a*aby | ||||
| _cyr si*'ilikU | _cyr si*'ilikU | ||||
| _he eb*'aIkU | _he eb*'aIkU | ||||
| _zh Sin'es | |||||
| // character names | // character names | ||||
| gameta $alt2 | gameta $alt2 | ||||
| geleia $alt | geleia $alt | ||||
| gelo $alt $verb | gelo $alt $verb | ||||
| genebra $alt | |||||
| germe $alt | germe $alt | ||||
| gesso $alt2 | gesso $alt2 | ||||
| golpe $alt | golpe $alt |
| _soub) e (L05_ E | _soub) e (L05_ E | ||||
| _rend) e (L06_ e | _rend) e (L06_ e | ||||
| _vend) e (L06_ e | _vend) e (L06_ e | ||||
| _atend) e (L06_ e | |||||
| tend) e (L06_ e / a- con- en- es- | |||||
| _compreend) e (L06_ e | _compreend) e (L06_ e | ||||
| _entend) e (L06_ e | |||||
| _estend) e (L06_ e | |||||
| respond) e (L06_ e // cor- | respond) e (L06_ e // cor- | ||||
| _enraivec) e (L07_ e | _enraivec) e (L07_ e | ||||
| _espairec) e (L07_ e | _espairec) e (L07_ e | ||||
| vert) e (L07_ e // in- re- con- | vert) e (L07_ e // in- re- con- | ||||
| _eleg) e (L07_ e | _eleg) e (L07_ e | ||||
| _ergu) e (L07_ e | _ergu) e (L07_ e | ||||
| _escond) e (L06_ e | |||||
| _mord) e (L06_ e | |||||
| _mord) e (L07_ e | _mord) e (L07_ e | ||||
| _morr) e (L07_ e | _morr) e (L07_ e | ||||
| _perd) e (L07_ e | _perd) e (L07_ e | ||||
| _agradec) e (L07_ e | _agradec) e (L07_ e | ||||
| _amanhec) e (L07_ e | _amanhec) e (L07_ e | ||||
| _anoitec) e (L07_ e | _anoitec) e (L07_ e | ||||
| _arrepend) e (L06_ e | |||||
| _arrepend) e (L07_ e | _arrepend) e (L07_ e | ||||
| _cresc) e (L07_ e | _cresc) e (L07_ e | ||||
| _defend) e (L06_ e | |||||
| _defend) e (L07_ e | _defend) e (L07_ e | ||||
| _depend) e (L06_ e | |||||
| _depend) e (L07_ e | _depend) e (L07_ e | ||||
| _emagrec) e (L07_ e | _emagrec) e (L07_ e | ||||
| _enlouquec) e (L07_ e | _enlouquec) e (L07_ e | ||||
| _escurec) e (L07_ e | _escurec) e (L07_ e | ||||
| _esquec) e (L07_ e | _esquec) e (L07_ e | ||||
| _interromp) e (L07_ e | _interromp) e (L07_ e | ||||
| _obedec) e (L07_ e | |||||
| obedec) e (L07_ e / des- | |||||
| _suspend) e (L07_ e | |||||
| _perec) e (L07_ e | _perec) e (L07_ e | ||||
| _rejuvenec) e (L07_ e | _rejuvenec) e (L07_ e | ||||
| aprend) e (L07_ e // re- | aprend) e (L07_ e // re- | ||||
| conhec) e (L07_ e // & re- des- | conhec) e (L07_ e // & re- des- | ||||
| entend) e (L07_ e | |||||
| tend) e (L07_ e / en- con- a- es- | |||||
| preend) e (L07_ e // sur- com- | preend) e (L07_ e // sur- com- | ||||
| respond) e (L07_ e // cor- | respond) e (L07_ e // cor- | ||||
| qu) e (brL04_ E | qu) e (brL04_ E | ||||
| acel) e (rL04_ E / des- | acel) e (rL04_ E / des- | ||||
| _hosp) e (dL03_ E | _hosp) e (dL03_ E | ||||
| _amort) e (çL03_ e | |||||
| _in) e (ptL03_ E | _in) e (ptL03_ E | ||||
| _gr) e (gL03_ e | _gr) e (gL03_ e | ||||
| _n) e (grL03_ e | _n) e (grL03_ e | ||||
| _aqu) e (çL03_ e | _aqu) e (çL03_ e | ||||
| _car) e (çL03_ e | _car) e (çL03_ e | ||||
| _mer) e (çL03_ e | _mer) e (çL03_ e | ||||
| _pad) e (çL03_ e // com- | |||||
| pad) e (çL03_ e // com- | |||||
| _per) e (çL03_ e | _per) e (çL03_ e | ||||
| conh) e (çL03_ e // re- | conh) e (çL03_ e // re- | ||||
| _esqu) e (çL03_ e | _esqu) e (çL03_ e |
| _ar arVbU | _ar arVbU | ||||
| _cyr sirillik | _cyr sirillik | ||||
| _he ;ebire:jVm | _he ;ebire:jVm | ||||
| _zh tS'i:nV | |||||
| // abbreviations | // abbreviations |
| _11 padakond.u | _11 padakond.u | ||||
| _12 pannemd.u | _12 pannemd.u | ||||
| _13 padamu:d.u: | _13 padamu:d.u: | ||||
| _14 padhna:lugu | |||||
| _14 pad#na:lugu | |||||
| _15 padihe:nu | _15 padihe:nu | ||||
| _16 padaha:ru | _16 padaha:ru | ||||
| _17 padihe:d.u | _17 padihe:d.u | ||||
| _18 paddhenimidi | |||||
| _18 padd#enimidi | |||||
| _19 pamdommadi | _19 pamdommadi | ||||
| _2X iravaI | _2X iravaI | ||||
| _3X muppaI | _3X muppaI | ||||
| _4X nalubhaI | |||||
| _5X ja:bhaI | |||||
| _4X nalub#aI | |||||
| _5X ja:b#aI | |||||
| _6X aravaI | _6X aravaI | ||||
| _7X d.ebhbaI | |||||
| _8X jenabhaI | |||||
| _9X tombhaI | |||||
| _7X d.eb#baI | |||||
| _8X jenab#aI | |||||
| _9X tomb#aI | |||||
| _0C vandala | _0C vandala | ||||
| _0C0 vandalu | _0C0 vandalu | ||||
| _1C okavanda | _1C okavanda | ||||
| _, ka:ma: | _, ka:ma: | ||||
| _; semi:ko:lan | _; semi:ko:lan | ||||
| _: ko:lan | _: ko:lan | ||||
| _! a:S;carja:rthaka | |||||
| _? praS;na:rthaka | |||||
| _! a:S;carja:rt#aka | |||||
| _? praS;na:rt#aka | |||||
| _- haIfan | _- haIfan | ||||
| __ amd.ar||sko:r | __ amd.ar||sko:r | ||||
| // consonants with virama | // consonants with virama | ||||
| క్ ik | క్ ik | ||||
| ఖ్ ikh | |||||
| ఖ్ ik# | |||||
| గ్ ig | గ్ ig | ||||
| ఘ్ igh | |||||
| ఘ్ ig# | |||||
| ఙ్ iN | ఙ్ iN | ||||
| చ్ ic | చ్ ic | ||||
| ఛ్ ich | |||||
| ఛ్ ic# | |||||
| జ్ iJ | జ్ iJ | ||||
| ఝ్ iJh | |||||
| ఝ్ iJ# | |||||
| ఞ్ in^ | ఞ్ in^ | ||||
| ట్ it. | ట్ it. | ||||
| ఠ్ ith. | |||||
| ఠ్ it.# | |||||
| డ్ id. | డ్ id. | ||||
| ఢ్ idh. | |||||
| ఢ్ id.# | |||||
| ణ్ in. | ణ్ in. | ||||
| త్ it | త్ it | ||||
| థ్ ith | |||||
| థ్ it# | |||||
| ద్ id | ద్ id | ||||
| ధ్ idh | |||||
| ధ్ id# | |||||
| న్ in | న్ in | ||||
| ప్ ip | ప్ ip | ||||
| ఫ్ iph | |||||
| ఫ్ ip# | |||||
| బ్ ib | బ్ ib | ||||
| భ్ ibh | |||||
| భ్ ib# | |||||
| మ్ im | మ్ im | ||||
| య్ ij | య్ ij | ||||
| ర్ ir | ర్ ir |
| క (B k | క (B k | ||||
| .group ఖ | .group ఖ | ||||
| ఖ kha | |||||
| ఖ (B kh | |||||
| ఖ k#a | |||||
| ఖ (B k# | |||||
| .group గ | .group గ | ||||
| గ ga | గ ga | ||||
| గ (B g | గ (B g | ||||
| .group ఘ | .group ఘ | ||||
| ఘ gha | |||||
| ఘ (B gh | |||||
| ఘ g#a | |||||
| ఘ (B g# | |||||
| .group ఙ | .group ఙ | ||||
| ఙ Na | ఙ Na | ||||
| చ (B c | చ (B c | ||||
| .group ఛ | .group ఛ | ||||
| ఛ cha | |||||
| ఛ (B ch | |||||
| ఛ c#a | |||||
| ఛ (B c# | |||||
| .group జ | .group జ | ||||
| జ Ja | జ Ja | ||||
| జ (B J | జ (B J | ||||
| .group ఝ | .group ఝ | ||||
| ఝ Jha | |||||
| ఝ (B Jh | |||||
| ఝ J#a | |||||
| ఝ (B J# | |||||
| .group ఞ | .group ఞ | ||||
| ఞ n^a | ఞ n^a | ||||
| ట (B t. | ట (B t. | ||||
| .group ఠ | .group ఠ | ||||
| ఠ th.a | |||||
| ఠ (B th. | |||||
| ఠ t.#a | |||||
| ఠ (B t.# | |||||
| .group డ | .group డ | ||||
| డ d.a | డ d.a | ||||
| డ (B d. | డ (B d. | ||||
| .group ఢ | .group ఢ | ||||
| ఢ dh.a | |||||
| ఢ (B dh. | |||||
| ఢ d.#a | |||||
| ఢ (B d.# | |||||
| .group ణ | .group ణ | ||||
| ణ n.a | ణ n.a | ||||
| త (B t | త (B t | ||||
| .group థ | .group థ | ||||
| థ tha | |||||
| థ (B th | |||||
| థ t#a | |||||
| థ (B t# | |||||
| .group ద | .group ద | ||||
| ద da | ద da | ||||
| ద (B d | ద (B d | ||||
| .group ధ | .group ధ | ||||
| ధ dha | |||||
| ధ (B dh | |||||
| ధ d#a | |||||
| ధ (B d# | |||||
| .group న | .group న | ||||
| న na | న na | ||||
| ప (B p | ప (B p | ||||
| .group ఫ | .group ఫ | ||||
| ఫ pha | |||||
| ఫ (B ph | |||||
| ఫ p#a | |||||
| ఫ (B p# | |||||
| .group బ | .group బ | ||||
| బ ba | బ ba | ||||
| బ (B b | బ (B b | ||||
| .group భ | .group భ | ||||
| భ bha | |||||
| భ (B bh | |||||
| భ b#a | |||||
| భ (B b# | |||||
| .group మ | .group మ | ||||
| మ ma | మ ma |
| ن nu:n | ن nu:n | ||||
| و va:O | و va:O | ||||
| ہ He: | ہ He: | ||||
| ں ghUnna | |||||
| ﮨ cho:ti:||He: | |||||
| ں g#Unna | |||||
| ﮨ c#o:ti:||He: | |||||
| ھ dO||caSmi:||He: | ھ dO||caSmi:||He: | ||||
| ء HamzaH | ء HamzaH | ||||
| ی cho:t.i:||je: | |||||
| ی c#o:t.i:||je: | |||||
| ے bar.i:||je: | ے bar.i:||je: | ||||
| ئ h'amza | ئ h'amza | ||||
| _3 t'i:n | _3 t'i:n | ||||
| _4 c'a:R | _4 c'a:R | ||||
| _5 p'a:Nc | _5 p'a:Nc | ||||
| _6 ch'eh | |||||
| _6 c#'eh | |||||
| _7 s'a:t | _7 s'a:t | ||||
| _8 'a:th | |||||
| _8 'a:t# | |||||
| _9 n'aU | _9 n'aU | ||||
| _10 d'as | _10 d'as | ||||
| _11 gj'a:RaH | _11 gj'a:RaH | ||||
| _15 p'andRaH | _15 p'andRaH | ||||
| _16 s'o:laH | _16 s'o:laH | ||||
| _17 s'atRaH | _17 s'atRaH | ||||
| _18 ath'a:RaH | |||||
| _18 at#'a:RaH | |||||
| _19 'Unni:s | _19 'Unni:s | ||||
| _20 b'i:s | _20 b'i:s | ||||
| _21 Ikk'i:s | _21 Ikk'i:s | ||||
| _23 te:'i:s | _23 te:'i:s | ||||
| _24 caUb'i:s | _24 caUb'i:s | ||||
| _25 pacc'i:s | _25 pacc'i:s | ||||
| _26 chabb'i:s | |||||
| _26 c#abb'i:s | |||||
| _27 sat:a:'i:s | _27 sat:a:'i:s | ||||
| _28 ,ath.a:j'i:s | |||||
| _28 ,at.#a:j'i:s | |||||
| _29 Unt'i:s | _29 Unt'i:s | ||||
| _30 t'i:s | _30 t'i:s | ||||
| _31 ikVt'i:s | _31 ikVt'i:s | ||||
| _33 t'aINt'i:s | _33 t'aINt'i:s | ||||
| _34 caUNt'i:s | _34 caUNt'i:s | ||||
| _35 paINt'i:s | _35 paINt'i:s | ||||
| _36 chat:'i:s | |||||
| _36 c#at:'i:s | |||||
| _37 saINt'i:s | _37 saINt'i:s | ||||
| _38 aRt'i:s | _38 aRt'i:s | ||||
| _39 Unta:l'i:s | _39 Unta:l'i:s | ||||
| _43 te:Nta:l'i:s | _43 te:Nta:l'i:s | ||||
| _44 cava:l'i:s | _44 cava:l'i:s | ||||
| _45 paINta:l'i:s | _45 paINta:l'i:s | ||||
| _46 chIja:l'i:s | |||||
| _46 c#Ija:l'i:s | |||||
| _47 saINta:l'i:s | _47 saINta:l'i:s | ||||
| _48 aRta:l'i:s | _48 aRta:l'i:s | ||||
| _49 Unc'a:s | _49 Unc'a:s | ||||
| _53 t'IRpan | _53 t'IRpan | ||||
| _54 c'aUvan | _54 c'aUvan | ||||
| _55 p'acpan | _55 p'acpan | ||||
| _56 ch'appan | |||||
| _56 c#'appan | |||||
| _57 sat:'a:van | _57 sat:'a:van | ||||
| _58 ath'a:van | |||||
| _59 Uns'ath | |||||
| _60 s'a:th | |||||
| _61 'Iksath | |||||
| _62 b'a:sath | |||||
| _63 t'IRsath | |||||
| _64 c'aUsath | |||||
| _65 p'aINsath | |||||
| _66 chIj'a:sath | |||||
| _67 s'aRsath | |||||
| _68 'aRsath | |||||
| _58 at#'a:van | |||||
| _59 Uns'at# | |||||
| _60 s'a:t# | |||||
| _61 'Iksat# | |||||
| _62 b'a:sat# | |||||
| _63 t'IRsat# | |||||
| _64 c'aUsat# | |||||
| _65 p'aINsat# | |||||
| _66 c#Ij'a:sat# | |||||
| _67 s'aRsat# | |||||
| _68 'aRsat# | |||||
| _69 UnH,at:'aR | _69 UnH,at:'aR | ||||
| _70 sat:'aR | _70 sat:'aR | ||||
| _71 IkHat:'aR | _71 IkHat:'aR | ||||
| _72 baHat:'aR | _72 baHat:'aR | ||||
| _73 tIHat:'aR | _73 tIHat:'aR | ||||
| _74 caUHat:'aR | _74 caUHat:'aR | ||||
| _75 pachat:'aR | |||||
| _76 chIHat:'aR | |||||
| _77 sathat:'aR | |||||
| _78 athHat:'aR | |||||
| _75 pac#at:'aR | |||||
| _76 c#IHat:'aR | |||||
| _77 sat#at:'aR | |||||
| _78 at#Hat:'aR | |||||
| _79 Unna:s'i: | _79 Unna:s'i: | ||||
| _80 ass'i: | _80 ass'i: | ||||
| _81 Ika:s'i: | _81 Ika:s'i: | ||||
| _83 tIRa:s'i: | _83 tIRa:s'i: | ||||
| _84 caURa:s'i: | _84 caURa:s'i: | ||||
| _85 paca:s'i: | _85 paca:s'i: | ||||
| _86 chIja:s'i: | |||||
| _86 c#Ija:s'i: | |||||
| _87 sat:a:s'i: | _87 sat:a:s'i: | ||||
| _88 atha:s'i: | |||||
| _88 at#a:s'i: | |||||
| _89 nava:s'i: | _89 nava:s'i: | ||||
| _90 navv'e: | _90 navv'e: | ||||
| _91 Ikj'a:nve: | _91 Ikj'a:nve: | ||||
| _93 tIT'a:nve: | _93 tIT'a:nve: | ||||
| _94 caUR'a:nve: | _94 caUR'a:nve: | ||||
| _95 pac'a:nve: | _95 pac'a:nve: | ||||
| _96 chIj'a:nve: | |||||
| _96 c#Ij'a:nve: | |||||
| _97 sat:'a:nve: | _97 sat:'a:nve: | ||||
| _98 ath:'a:nve: | |||||
| _98 at#:'a:nve: | |||||
| _99 nInj'a:nve: | _99 nInj'a:nve: | ||||
| _0C s'aU | _0C s'aU | ||||
| _0M1 Haz'a:R | _0M1 Haz'a:R | ||||
| _0M2 l'a:kh | |||||
| _0M2 l'a:k# | |||||
| _0M3 kaR'o:R | _0M3 kaR'o:R | ||||
| _0M4 'aRab | _0M4 'aRab | ||||
| _0M5 'khaRab | |||||
| _0M5 'k#aRab | |||||
| _dpt _ISaRI'Ia_ | _dpt _ISaRI'Ia_ | ||||
| کسے k'Ise: | کسے k'Ise: | ||||
| اسی 'Isi: | اسی 'Isi: | ||||
| اسے 'Ise: | اسے 'Ise: | ||||
| مجھ m'UJh | |||||
| مجھے m'UJhe: | |||||
| تجھے t'UJhe: | |||||
| مجھ m'UJ# | |||||
| مجھے m'UJ#e: | |||||
| تجھے t'UJ#e: | |||||
| جن J'In | جن J'In | ||||
| جنھیں J,InH'e:n | جنھیں J,InH'e:n | ||||
| انھوں ,UnH'o:n | انھوں ,UnH'o:n | ||||
| // Pronunciation exceptions | // Pronunciation exceptions | ||||
| پاکستان p'a:k'i:st'a:n | پاکستان p'a:k'i:st'a:n | ||||
| سندھ s'Indh | |||||
| کچھ k'Uch | |||||
| سندھ s'Ind# | |||||
| کچھ k'Uc# | |||||
| لنکس l'Ink,s | لنکس l'Ink,s | ||||
| لفظ l'afz. | لفظ l'afz. | ||||
| سرچ s'aRc | سرچ s'aRc | ||||
| مصری m'Is.R,i: | مصری m'Is.R,i: | ||||
| انتظام ,IntIz.'a:m | انتظام ,IntIz.'a:m | ||||
| مختصر m,Uxtas.'aR | مختصر m,Uxtas.'aR | ||||
| پھر ph'IR | |||||
| پھرا ph'IRa: | |||||
| پھر p#'IR | |||||
| پھرا p#'IRa: | |||||
| منتخب m,Unt'ax@b | منتخب m,Unt'ax@b | ||||
| منتقل m,Unt'aqIl | منتقل m,Unt'aqIl | ||||
| نیا n'aja: | نیا n'aja: | ||||
| اردو 'URd,u: | اردو 'URd,u: | ||||
| احتجاجی 'e:Hte:J,a:Ji: | احتجاجی 'e:Hte:J,a:Ji: | ||||
| احتجاج 'e:HtIJ,a:J | احتجاج 'e:HtIJ,a:J | ||||
| بدھ b'Udh | |||||
| بدھ b'Ud# | |||||
| تجزیے t,aJz'i:;e: | تجزیے t,aJz'i:;e: | ||||
| دوست d'o:st | دوست d'o:st | ||||
| زندگی z,Ind'agi: | زندگی z,Ind'agi: | ||||
| گزشتہ gUz'aSta | گزشتہ gUz'aSta | ||||
| رشتہ R'ISta | رشتہ R'ISta | ||||
| اخر 'a:xIR | اخر 'a:xIR | ||||
| آنکھ 'a:nkh | |||||
| آنکھ 'a:nk# | |||||
| شکار SIk'a:R | شکار SIk'a:R | ||||
| جلد J'ald | جلد J'ald | ||||
| مواد mav'a:d | مواد mav'a:d | ||||
| شدہ S'Ud,a | شدہ S'Ud,a | ||||
| بغیر baQ'e:R | بغیر baQ'e:R | ||||
| امیدوار Um'i:dva:R | امیدوار Um'i:dva:R | ||||
| لکھ l'Ikh | |||||
| لکھئیے l'Ikhj,e: | |||||
| لکھ l'Ik# | |||||
| لکھئیے l'Ik#j,e: |
| .group ب | .group ب | ||||
| ب bV | ب bV | ||||
| بھ bhV | |||||
| بھ (L01 bh | |||||
| بھ b#V | |||||
| بھ (L01 b# | |||||
| ب (L01 b | ب (L01 b | ||||
| .group پ | .group پ | ||||
| پ pV | پ pV | ||||
| پھ phV | |||||
| پھ p#V | |||||
| پ (L01 p | پ (L01 p | ||||
| پھ (L01 ph | |||||
| پھ (L01 p# | |||||
| .group ت | .group ت | ||||
| ت tV | ت tV | ||||
| تھ thV | |||||
| تھ t#V | |||||
| ت (L01 t | ت (L01 t | ||||
| تھ (L01 th | |||||
| تھ (L01 t# | |||||
| .group ٹ | .group ٹ | ||||
| ٹ t.V | ٹ t.V | ||||
| ٹھ th.V | |||||
| ٹھ t.#V | |||||
| ٹ (L01 t. | ٹ (L01 t. | ||||
| ٹھ (L01 th. | |||||
| ٹھ (L01 t.# | |||||
| .group ث | .group ث | ||||
| ث sV | ث sV | ||||
| .group ج | .group ج | ||||
| ج JV | ج JV | ||||
| جھ JhV | |||||
| جھ J#V | |||||
| ج (L01 J | ج (L01 J | ||||
| جھ (L01 Jh | |||||
| جھ (L01 J# | |||||
| .group چ | .group چ | ||||
| چ cV | چ cV | ||||
| چھ chV | |||||
| چھ c#V | |||||
| چ (L01 c | چ (L01 c | ||||
| چھ (L01 ch | |||||
| چھ (L01 c# | |||||
| .group ح | .group ح | ||||
| ح HV | ح HV | ||||
| .group د | .group د | ||||
| د dV | د dV | ||||
| دھ dhV | |||||
| دھ d#V | |||||
| د (L01 d | د (L01 d | ||||
| دھ (L01 dh | |||||
| دھ (L01 d# | |||||
| .group ڈ | .group ڈ | ||||
| ڈ d.V | ڈ d.V | ||||
| ڈھ dh.V | |||||
| ڈھ d.#V | |||||
| ڈ (L01 d. | ڈ (L01 d. | ||||
| ڈھ (L01 dh. | |||||
| ڈھ (L01 d.# | |||||
| .group ذ | .group ذ | ||||
| ذ DV | ذ DV | ||||
| .group ط | .group ط | ||||
| ط tV | ط tV | ||||
| طھ thV | |||||
| طھ t#V | |||||
| ط (L01 t | ط (L01 t | ||||
| طھ (L01 th | |||||
| طھ (L01 t# | |||||
| .group ظ | .group ظ | ||||
| ظ z.V | ظ z.V | ||||
| .group ک | .group ک | ||||
| ک kV | ک kV | ||||
| کھ khV | |||||
| کھ k#V | |||||
| ک (L01 k | ک (L01 k | ||||
| کھ (L01 kh | |||||
| کھ (L01 k# | |||||
| .group گ | .group گ | ||||
| گ gV | گ gV | ||||
| گھ ghV | |||||
| گھ g#V | |||||
| گ (L01 g | گ (L01 g | ||||
| گھ (L01 gh | |||||
| گھ (L01 g# | |||||
| .group ل | .group ل | ||||
| ل lV | ل lV |
| phoneme i // optional variant of [I] for end of words | phoneme i // optional variant of [I] for end of words | ||||
| vowel starttype #i endtype #i | vowel starttype #i endtype #i | ||||
| length 150 | length 150 | ||||
| IfNextVowelAppend(;) | |||||
| FMT(vowel/e_3) | |||||
| FMT(vowel/e_2) | |||||
| endphoneme | endphoneme | ||||
| vowel starttype #i endtype #i | vowel starttype #i endtype #i | ||||
| unstressed | unstressed | ||||
| length 160 | length 160 | ||||
| ipa ᵻ | |||||
| // FMT(vowel/@_fnt) | // FMT(vowel/@_fnt) | ||||
| FMT(vowel/ii#) | FMT(vowel/ii#) | ||||
| endphoneme | endphoneme |
| endphoneme | endphoneme | ||||
| phoneme ph | |||||
| phoneme p# | |||||
| import_phoneme consonants/ph | import_phoneme consonants/ph | ||||
| endphoneme | endphoneme | ||||
| endphoneme | endphoneme | ||||
| phoneme bh | |||||
| phoneme b# | |||||
| vcd blb stop | vcd blb stop | ||||
| lengthmod 5 | lengthmod 5 | ||||
| voicingswitch ph | |||||
| voicingswitch p# | |||||
| Vowelin f1=0 f2=1000 -50 -100 f3=-200 80 | Vowelin f1=0 f2=1000 -50 -100 f3=-200 80 | ||||
| Vowelout f1=0 f2=1000 -500 -350 f3=-300 80 rms=30 | Vowelout f1=0 f2=1000 -500 -350 f3=-300 80 rms=30 | ||||
| endphoneme | endphoneme | ||||
| phoneme th // dental variant of /t/ | |||||
| phoneme t# // dental variant of /t/ | |||||
| vls dnt stop | vls dnt stop | ||||
| lengthmod 2 | lengthmod 2 | ||||
| voicingswitch d | voicingswitch d | ||||
| endphoneme | endphoneme | ||||
| phoneme dh | |||||
| phoneme d# | |||||
| vcd dnt stop | vcd dnt stop | ||||
| lengthmod 5 | lengthmod 5 | ||||
| voicingswitch th | |||||
| voicingswitch t# | |||||
| Vowelin f1=0 f2=1500 -300 300 f3=-100 80 | Vowelin f1=0 f2=1500 -300 300 f3=-100 80 | ||||
| Vowelout f1=0 f2=1500 -300 250 f3=-100 80 rms=20 | Vowelout f1=0 f2=1500 -300 250 f3=-100 80 rms=20 | ||||
| WAV(ustop/t_short) | WAV(ustop/t_short) | ||||
| endphoneme | endphoneme | ||||
| phoneme th. | |||||
| phoneme t.# | |||||
| vls rfx stop | vls rfx stop | ||||
| lengthmod 2 | lengthmod 2 | ||||
| ipa ʈh | |||||
| voicingswitch dh. | |||||
| ipa ʈU+02B0 | |||||
| voicingswitch d.# | |||||
| Vowelin f1=0 f2=1800 -300 300 f3=-400 80 | Vowelin f1=0 f2=1800 -300 300 f3=-400 80 | ||||
| Vowelout f1=0 f2=1800 -300 250 f3=-400 80 rms=20 colr=2 | Vowelout f1=0 f2=1800 -300 250 f3=-400 80 rms=20 colr=2 | ||||
| // WAV(ustop/th_rfx) | // WAV(ustop/th_rfx) | ||||
| endphoneme | endphoneme | ||||
| phoneme dh. | |||||
| phoneme d.# | |||||
| vcd rfx stop | vcd rfx stop | ||||
| lengthmod 5 | lengthmod 5 | ||||
| ipa ɖh | |||||
| voicingswitch th. | |||||
| ipa ɖU+02B0 | |||||
| voicingswitch t.# | |||||
| Vowelin f1=1 f2=1800 -300 300 f3=-400 80 | Vowelin f1=1 f2=1800 -300 300 f3=-400 80 | ||||
| Vowelout f1=1 f2=1800 -300 300 f3=-400 80 colr=2 | Vowelout f1=1 f2=1800 -300 300 f3=-400 80 colr=2 | ||||
| endphoneme | endphoneme | ||||
| phoneme ch | |||||
| phoneme c# | |||||
| CALL base/tS; | CALL base/tS; | ||||
| ipa ch | ipa ch | ||||
| endphoneme | endphoneme | ||||
| endphoneme | endphoneme | ||||
| phoneme Jh | |||||
| phoneme J# | |||||
| vcd pal afr sibilant | vcd pal afr sibilant | ||||
| lengthmod 5 | lengthmod 5 | ||||
| voicingswitch ch | |||||
| voicingswitch c# | |||||
| Vowelin f1=0 f2=2700 400 600 f3=300 80 rate len=70 | Vowelin f1=0 f2=2700 400 600 f3=300 80 rate len=70 | ||||
| Vowelout f1=0 f2=2700 400 600 f3=300 80 colr=1 | Vowelout f1=0 f2=2700 400 600 f3=300 80 colr=1 | ||||
| voicingswitch g | voicingswitch g | ||||
| endphoneme | endphoneme | ||||
| phoneme kh | |||||
| phoneme k# | |||||
| import_phoneme consonants/kh | import_phoneme consonants/kh | ||||
| voicingswitch gh | |||||
| voicingswitch g# | |||||
| endphoneme | endphoneme | ||||
| endphoneme | endphoneme | ||||
| phoneme gh | |||||
| phoneme g# | |||||
| vcd dnt stop | vcd dnt stop | ||||
| lengthmod 5 | lengthmod 5 | ||||
| voicingswitch kh | |||||
| voicingswitch k# | |||||
| Vowelin f1=1 f2=2300 200 300 f3=-150 80 rms=20 | Vowelin f1=1 f2=2300 200 300 f3=-150 80 rms=20 | ||||
| Vowelout f1=0 f2=2300 300 400 f3=-150 80 rms=20 | Vowelout f1=0 f2=2300 300 400 f3=-150 80 rms=20 | ||||
| import_phoneme base/R2 | import_phoneme base/R2 | ||||
| endphoneme | endphoneme | ||||
| phoneme d# // 'rr' sounds like English 'd' | |||||
| phoneme d2 // 'rr' sounds like English 'd' | |||||
| import_phoneme base/d | import_phoneme base/d | ||||
| endphoneme | endphoneme | ||||
| phoneme kh2 | |||||
| vls vel stop | |||||
| lengthmod 2 | |||||
| voicingswitch g | |||||
| Vowelin f1=0 f2=2300 200 300 f3=-150 80 | |||||
| Vowelout f1=0 f2=2300 300 400 f3=-150 80 rms=20 | |||||
| IF nextPh(isPause2) THEN | |||||
| WAV(ustop/k_asp2, 50) | |||||
| ENDIF | |||||
| IF nextPh(l) THEN | |||||
| WAV(ustop/kl) | |||||
| ENDIF | |||||
| WAV(ustop/k_asp2, 90) | |||||
| endphoneme | |||||
| endphoneme | endphoneme | ||||
| phoneme t | phoneme t | ||||
| import_phoneme hi/th | |||||
| import_phoneme hi/t# | |||||
| endphoneme | endphoneme | ||||
| phoneme d | phoneme d |
| FMT(d/xdz) addWav(ustop/ts2, 140) | FMT(d/xdz) addWav(ustop/ts2, 140) | ||||
| endphoneme | endphoneme | ||||
| phoneme tsh | |||||
| phoneme ts# | |||||
| vls alv afr sibilant | vls alv afr sibilant | ||||
| voicingswitch dz | voicingswitch dz | ||||
| lengthmod 2 | lengthmod 2 | ||||
| endphoneme | endphoneme | ||||
| phoneme dzh | |||||
| phoneme dz# | |||||
| vcd alv afr sibilant | vcd alv afr sibilant | ||||
| voicingswitch ts | voicingswitch ts | ||||
| lengthmod 5 | lengthmod 5 |
| phonemetable cy base | phonemetable cy base | ||||
| include ph_welsh | include ph_welsh | ||||
| phonemetable ga base | |||||
| include ph_irish | |||||
| phonemetable de base | phonemetable de base | ||||
| include ph_german | include ph_german | ||||
| phonemetable fr-ca fr | phonemetable fr-ca fr | ||||
| include ph_french_ca | include ph_french_ca | ||||
| phonemetable nl base | |||||
| include ph_dutch | |||||
| phonemetable hi base | phonemetable hi base | ||||
| include ph_hindi | include ph_hindi | ||||
| phonemetable ur hi | phonemetable ur hi | ||||
| include ph_urdu | include ph_urdu | ||||
| phonemetable pa hi | |||||
| include ph_punjabi | |||||
| phonemetable ta hi | phonemetable ta hi | ||||
| include ph_tamil | include ph_tamil | ||||
| include ph_malayalam | include ph_malayalam | ||||
| phonemetable hu base | phonemetable hu base | ||||
| include ph_hungarian | include ph_hungarian | ||||
| phonemetable lv base | phonemetable lv base | ||||
| include ph_latvian | include ph_latvian | ||||
| phonemetable nl base | |||||
| include ph_dutch | |||||
| phonemetable pl base | phonemetable pl base | ||||
| include ph_polish | include ph_polish | ||||
| phonemetable ka base | phonemetable ka base | ||||
| include ph_georgian | include ph_georgian | ||||
| phonemetable fa base | |||||
| include ph_farsi | |||||
| //************************************************************************************** | //************************************************************************************** | ||||
| // The following lines are experimental, for future additions. | // The following lines are experimental, for future additions. | ||||
| //phonemetable mn base | //phonemetable mn base | ||||
| //include ph_mongolian | //include ph_mongolian | ||||
| phonemetable pa hi | |||||
| include ph_punjabi | |||||
| phonemetable prs base | phonemetable prs base | ||||
| include ph_dari | include ph_dari | ||||
| phonemetable kk base | phonemetable kk base | ||||
| include ph_kazakh | include ph_kazakh | ||||
| phonemetable fa base | |||||
| include ph_farsi | |||||
| phonemetable ga base | |||||
| include ph_irish | |||||
| phonemetable tt base | phonemetable tt base | ||||
| include ph_tatar | include ph_tatar | ||||
| phonemetable kl base | phonemetable kl base | ||||
| include ph_greenlandic | include ph_greenlandic | ||||
| {"p_alt5", 0x25}, | {"p_alt5", 0x25}, | ||||
| {"p_alt6", 0x26}, | {"p_alt6", 0x26}, | ||||
| {"p_alt", 0x21}, | {"p_alt", 0x21}, | ||||
| {NULL, -1} }; | |||||
| {NULL, -1} | |||||
| }; | |||||
| MNEM_TAB mnem_flags[] = { | MNEM_TAB mnem_flags[] = { | ||||
| // these in the first group put a value in bits0-3 of dictionary_flags | // these in the first group put a value in bits0-3 of dictionary_flags | ||||
| //========================================================== | //========================================================== | ||||
| /* Lookup a mnemonic string in a table, return its name */ | /* Lookup a mnemonic string in a table, return its name */ | ||||
| { | { | ||||
| while(table->mnem != NULL) | |||||
| { | |||||
| if(table->value==value) | |||||
| return(table->mnem); | |||||
| table++; | |||||
| } | |||||
| return(""); /* not found */ | |||||
| while(table->mnem != NULL) | |||||
| { | |||||
| if(table->value==value) | |||||
| return(table->mnem); | |||||
| table++; | |||||
| } | |||||
| return(""); /* not found */ | |||||
| } /* end of LookupMnemValue */ | } /* end of LookupMnemValue */ | ||||
| int len; | int len; | ||||
| int total = 0; | int total = 0; | ||||
| buf[0] = 0; | |||||
| buf[0] = 0; | |||||
| if((stress = flags[0] & 0xf) != 0) | if((stress = flags[0] & 0xf) != 0) | ||||
| { | { | ||||
| sprintf(buf, "%s", LookupMnemName(mnem_flags, stress + 0x40)); | |||||
| total = strlen(buf); | |||||
| buf += total; | |||||
| sprintf(buf, "%s", LookupMnemName(mnem_flags, stress + 0x40)); | |||||
| total = strlen(buf); | |||||
| buf += total; | |||||
| } | } | ||||
| for(ix=8; ix<64; ix++) | |||||
| { | |||||
| if(((ix < 30) && (flags[0] & (1 << ix))) || ((ix >= 0x20) && (flags[1] & (1 << (ix-0x20))))) | |||||
| { | |||||
| name = LookupMnemName(mnem_flags, ix); | |||||
| len = strlen(name) + 1; | |||||
| total += len; | |||||
| if(total >= buf_len) | |||||
| continue; | |||||
| sprintf(buf, " %s", name); | |||||
| buf += len; | |||||
| } | |||||
| } | |||||
| for(ix=8; ix<64; ix++) | |||||
| { | |||||
| if(((ix < 30) && (flags[0] & (1 << ix))) || ((ix >= 0x20) && (flags[1] & (1 << (ix-0x20))))) | |||||
| { | |||||
| name = LookupMnemName(mnem_flags, ix); | |||||
| len = strlen(name) + 1; | |||||
| total += len; | |||||
| if(total >= buf_len) | |||||
| continue; | |||||
| sprintf(buf, " %s", name); | |||||
| buf += len; | |||||
| } | |||||
| } | |||||
| } | } | ||||
| char *DecodeRule(const char *group_chars, int group_length, char *rule, int control) | char *DecodeRule(const char *group_chars, int group_length, char *rule, int control) | ||||
| {//================================================================================= | {//================================================================================= | ||||
| /* Convert compiled match template to ascii */ | |||||
| /* Convert compiled match template to ascii */ | |||||
| unsigned char rb; | |||||
| unsigned char rb; | |||||
| unsigned char c; | unsigned char c; | ||||
| char *p; | char *p; | ||||
| int ix; | |||||
| int ix; | |||||
| int match_type; | int match_type; | ||||
| int finished=0; | int finished=0; | ||||
| int value; | int value; | ||||
| int condition_num=0; | int condition_num=0; | ||||
| int at_start = 0; | int at_start = 0; | ||||
| const char *name; | const char *name; | ||||
| char buf[60]; | |||||
| char buf_pre[60]; | |||||
| char buf[60]; | |||||
| char buf_pre[60]; | |||||
| char suffix[20]; | char suffix[20]; | ||||
| static char output[60]; | static char output[60]; | ||||
| static char symbols[] = {' ',' ',' ',' ',' ',' ',' ',' ',' ',' ', | |||||
| '&','%','+','#','S','D','Z','A','L','!',' ','@','?','J','N','K','V','?','T','X','?','W'}; | |||||
| static char symbols[] = | |||||
| {' ',' ',' ',' ',' ',' ',' ',' ',' ',' ', | |||||
| '&','%','+','#','S','D','Z','A','L','!',' ','@','?','J','N','K','V','?','T','X','?','W' | |||||
| }; | |||||
| static char symbols_lg[] = {'A','B','C','H','F','G','Y'}; | static char symbols_lg[] = {'A','B','C','H','F','G','Y'}; | ||||
| match_type = 0; | match_type = 0; | ||||
| buf_pre[0] = 0; | |||||
| buf_pre[0] = 0; | |||||
| for(ix=0; ix<group_length; ix++) | for(ix=0; ix<group_length; ix++) | ||||
| { | { | ||||
| buf[ix] = 0; | buf[ix] = 0; | ||||
| p = &buf[strlen(buf)]; | p = &buf[strlen(buf)]; | ||||
| while(!finished) | |||||
| { | |||||
| while(!finished) | |||||
| { | |||||
| rb = *rule++; | rb = *rule++; | ||||
| if(rb <= RULE_LINENUM) | if(rb <= RULE_LINENUM) | ||||
| } | } | ||||
| c = ' '; | c = ' '; | ||||
| } | } | ||||
| else | |||||
| if(rb == RULE_ENDING) | |||||
| else if(rb == RULE_ENDING) | |||||
| { | { | ||||
| static const char *flag_chars = "eipvdfq tba "; | static const char *flag_chars = "eipvdfq tba "; | ||||
| flags = ((rule[0] & 0x7f)<< 8) + (rule[1] & 0x7f); | flags = ((rule[0] & 0x7f)<< 8) + (rule[1] & 0x7f); | ||||
| suffix_char = 'P'; | suffix_char = 'P'; | ||||
| sprintf(suffix,"%c%d",suffix_char,rule[2] & 0x7f); | sprintf(suffix,"%c%d",suffix_char,rule[2] & 0x7f); | ||||
| rule += 3; | rule += 3; | ||||
| for(ix=0;ix<9;ix++) | |||||
| for(ix=0; ix<9; ix++) | |||||
| { | { | ||||
| if(flags & 1) | if(flags & 1) | ||||
| sprintf(&suffix[strlen(suffix)],"%c",flag_chars[ix]); | sprintf(&suffix[strlen(suffix)],"%c",flag_chars[ix]); | ||||
| p += strlen(suffix); | p += strlen(suffix); | ||||
| c = ' '; | c = ' '; | ||||
| } | } | ||||
| else | |||||
| if(rb == RULE_LETTERGP) | |||||
| else if(rb == RULE_LETTERGP) | |||||
| { | { | ||||
| c = symbols_lg[*rule++ - 'A']; | c = symbols_lg[*rule++ - 'A']; | ||||
| } | } | ||||
| else | |||||
| if(rb == RULE_LETTERGP2) | |||||
| else if(rb == RULE_LETTERGP2) | |||||
| { | { | ||||
| value = *rule++ - 'A'; | value = *rule++ - 'A'; | ||||
| p[0] = 'L'; | p[0] = 'L'; | ||||
| } | } | ||||
| p+=2; | p+=2; | ||||
| } | } | ||||
| else | |||||
| if(rb <= RULE_LAST_RULE) | |||||
| else if(rb <= RULE_LAST_RULE) | |||||
| c = symbols[rb]; | c = symbols[rb]; | ||||
| else | |||||
| if(rb == RULE_SPACE) | |||||
| else if(rb == RULE_SPACE) | |||||
| c = '_'; | c = '_'; | ||||
| else | else | ||||
| c = rb; | c = rb; | ||||
| while(ix < 8) | while(ix < 8) | ||||
| output[ix++]=' '; | output[ix++]=' '; | ||||
| output[ix]=0; | output[ix]=0; | ||||
| return(output); | |||||
| return(output); | |||||
| } /* end of DecodeRule */ | } /* end of DecodeRule */ | ||||
| unsigned char flag_codes[100]; | unsigned char flag_codes[100]; | ||||
| char encoded_ph[200]; | char encoded_ph[200]; | ||||
| unsigned char bad_phoneme[4]; | unsigned char bad_phoneme[4]; | ||||
| static char nullstring[] = {0}; | |||||
| static char nullstring[] = {0}; | |||||
| text_not_phonemes = 0; | text_not_phonemes = 0; | ||||
| phonetic = word = nullstring; | phonetic = word = nullstring; | ||||
| { | { | ||||
| text_mode = 1; | text_mode = 1; | ||||
| } | } | ||||
| else | |||||
| if(flagnum == 201) | |||||
| else if(flagnum == 201) | |||||
| { | { | ||||
| text_mode = 0; | text_mode = 0; | ||||
| } | } | ||||
| else | |||||
| if(flagnum == BITNUM_FLAG_TEXTMODE) | |||||
| else if(flagnum == BITNUM_FLAG_TEXTMODE) | |||||
| { | { | ||||
| text_not_phonemes = 1; | text_not_phonemes = 1; | ||||
| } | } | ||||
| word = p+1; | word = p+1; | ||||
| step = 1; | step = 1; | ||||
| } | } | ||||
| else | |||||
| if(!isspace2(c)) | |||||
| else if(!isspace2(c)) | |||||
| { | { | ||||
| word = p; | word = p; | ||||
| step = 1; | step = 1; | ||||
| step = 3; | step = 3; | ||||
| } | } | ||||
| } | } | ||||
| else | |||||
| if(c == ')') | |||||
| else if(c == ')') | |||||
| { | { | ||||
| if(multiple_words) | if(multiple_words) | ||||
| { | { | ||||
| multiple_words = 0; | multiple_words = 0; | ||||
| step = 3; | step = 3; | ||||
| } | } | ||||
| else | |||||
| if(word[0] != '_') | |||||
| else if(word[0] != '_') | |||||
| { | { | ||||
| fprintf(f_log, "%5d: Missing '('\n", linenum); | fprintf(f_log, "%5d: Missing '('\n", linenum); | ||||
| error_count++; | error_count++; | ||||
| { | { | ||||
| multiple_words++; | multiple_words++; | ||||
| } | } | ||||
| else | |||||
| if(c == ')') | |||||
| else if(c == ')') | |||||
| { | { | ||||
| p[0] = ' '; // terminate extra string | p[0] = ' '; // terminate extra string | ||||
| multiple_string_end = p+1; | multiple_string_end = p+1; | ||||
| // This is a special word, used by eSpeak. Translate this into phonemes now | // This is a special word, used by eSpeak. Translate this into phonemes now | ||||
| strcat(phonetic, " "); // need a space to indicate word-boundary | strcat(phonetic, " "); // need a space to indicate word-boundary | ||||
| // PROBLEM vowel reductions are not applied to the translated phonemes | |||||
| // condition rules are not applied | |||||
| // PROBLEM vowel reductions are not applied to the translated phonemes | |||||
| // condition rules are not applied | |||||
| TranslateWord(translator,phonetic,0,NULL,NULL); | TranslateWord(translator,phonetic,0,NULL,NULL); | ||||
| text_not_phonemes = 0; | text_not_phonemes = 0; | ||||
| strncpy0(encoded_ph, word_phonemes, N_WORD_BYTES-4); | strncpy0(encoded_ph, word_phonemes, N_WORD_BYTES-4); | ||||
| error_need_dictionary++; | error_need_dictionary++; | ||||
| fprintf(f_log,"%5d: Need to compile dictionary again\n",linenum); | fprintf(f_log,"%5d: Need to compile dictionary again\n",linenum); | ||||
| } | } | ||||
| { | |||||
| { | |||||
| //char decoded_phonemes[128]; | //char decoded_phonemes[128]; | ||||
| //DecodePhonemes(word_phonemes,decoded_phonemes); | //DecodePhonemes(word_phonemes,decoded_phonemes); | ||||
| //printf("Translator %x %s [%s] [%s]\n",translator->translator_name,word,phonetic,decoded_phonemes); | //printf("Translator %x %s [%s] [%s]\n",translator->translator_name,word,phonetic,decoded_phonemes); | ||||
| } | |||||
| } | |||||
| } | } | ||||
| else | else | ||||
| { | { | ||||
| ix = utf8_out(wc, word); | ix = utf8_out(wc, word); | ||||
| word[ix] = 0; | word[ix] = 0; | ||||
| } | } | ||||
| else | |||||
| if(word[0] != '_') | |||||
| else if(word[0] != '_') | |||||
| { | { | ||||
| // convert to lower case, and note if the word is all-capitals | // convert to lower case, and note if the word is all-capitals | ||||
| int c2; | int c2; | ||||
| fprintf(f_log,"%5d: Expected 2 digits after 'L'\n",linenum); | fprintf(f_log,"%5d: Expected 2 digits after 'L'\n",linenum); | ||||
| error_count++; | error_count++; | ||||
| } | } | ||||
| else | |||||
| if((c <= 0) || (c >= N_LETTER_GROUPS) || (letterGroupsDefined[(int)c] == 0)) | |||||
| else if((c <= 0) || (c >= N_LETTER_GROUPS) || (letterGroupsDefined[(int)c] == 0)) | |||||
| { | { | ||||
| fprintf(f_log,"%5d: Letter group L%.2d not defined\n",linenum,c); | fprintf(f_log,"%5d: Letter group L%.2d not defined\n",linenum,c); | ||||
| error_count++; | error_count++; | ||||
| case 'a': | case 'a': | ||||
| sxflags |= SUFX_A; | sxflags |= SUFX_A; | ||||
| break; | break; | ||||
| case 'm': | |||||
| sxflags |= SUFX_M; | |||||
| break; | |||||
| case 'm': | |||||
| sxflags |= SUFX_M; | |||||
| break; | |||||
| default: | default: | ||||
| if(isdigit(c)) | if(isdigit(c)) | ||||
| value = (value*10) + (c - '0'); | value = (value*10) + (c - '0'); | ||||
| char *pa, *pb; | char *pa, *pb; | ||||
| int ix; | int ix; | ||||
| if((ix = strcmp(pa = *a,pb = *b)) != 0) | |||||
| return(ix); | |||||
| if((ix = strcmp(pa = *a,pb = *b)) != 0) | |||||
| return(ix); | |||||
| pa += (strlen(pa)+1); | pa += (strlen(pa)+1); | ||||
| pb += (strlen(pb)+1); | pb += (strlen(pb)+1); | ||||
| return(strcmp(pa,pb)); | |||||
| return(strcmp(pa,pb)); | |||||
| } /* end of string_sorter */ | } /* end of string_sorter */ | ||||
| if(rule_pre[0] != 0) | if(rule_pre[0] != 0) | ||||
| { | { | ||||
| p = buf; | p = buf; | ||||
| for(ix=strlen(rule_pre)-1;ix>=0;ix--) | |||||
| for(ix=strlen(rule_pre)-1; ix>=0; ix--) | |||||
| *p++ = rule_pre[ix]; | *p++ = rule_pre[ix]; | ||||
| sprintf(p,") "); | sprintf(p,") "); | ||||
| spaces -= strlen(buf); | spaces -= strlen(buf); | ||||
| for(ix=0; ix<spaces; ix++) | for(ix=0; ix<spaces; ix++) | ||||
| fputc(' ',f_out); | |||||
| fputc(' ',f_out); | |||||
| fprintf(f_out,"%s",buf); | fprintf(f_out,"%s",buf); | ||||
| spaces = 0; | spaces = 0; | ||||
| } | } | ||||
| int length; | int length; | ||||
| int max_length = 0; | int max_length = 0; | ||||
| #define N_LETTERGP_ITEMS 200 | |||||
| #define N_LETTERGP_ITEMS 200 | |||||
| char *items[N_LETTERGP_ITEMS]; | char *items[N_LETTERGP_ITEMS]; | ||||
| char item_length[N_LETTERGP_ITEMS]; | char item_length[N_LETTERGP_ITEMS]; | ||||
| break; | break; | ||||
| case 2: // .replace | case 2: // .replace | ||||
| { | |||||
| int replace1; | |||||
| int replace2; | |||||
| char *p; | |||||
| p = buf; | |||||
| replace1 = 0; | |||||
| replace2 = 0; | |||||
| while(isspace2(*p)) p++; | |||||
| ix = 0; | |||||
| while((unsigned char)(*p) > 0x20) // not space or zero-byte | |||||
| { | { | ||||
| int replace1; | |||||
| int replace2; | |||||
| char *p; | |||||
| p = buf; | |||||
| replace1 = 0; | |||||
| replace2 = 0; | |||||
| while(isspace2(*p)) p++; | |||||
| ix = 0; | |||||
| while((unsigned char)(*p) > 0x20) // not space or zero-byte | |||||
| { | |||||
| p += utf8_in(&c,p); | |||||
| replace1 += (c << ix); | |||||
| ix += 16; | |||||
| } | |||||
| while(isspace2(*p)) p++; | |||||
| ix = 0; | |||||
| while((unsigned char)(*p) > 0x20) | |||||
| { | |||||
| p += utf8_in(&c,p); | |||||
| replace2 += (c << ix); | |||||
| ix += 16; | |||||
| } | |||||
| if(replace1 != 0) | |||||
| { | |||||
| Write4Bytes(f_out,replace1); // write as little-endian | |||||
| Write4Bytes(f_out,replace2); // if big-endian, reverse the bytes in LoadDictionary() | |||||
| } | |||||
| p += utf8_in(&c,p); | |||||
| replace1 += (c << ix); | |||||
| ix += 16; | |||||
| } | } | ||||
| break; | |||||
| while(isspace2(*p)) p++; | |||||
| ix = 0; | |||||
| while((unsigned char)(*p) > 0x20) | |||||
| { | |||||
| p += utf8_in(&c,p); | |||||
| replace2 += (c << ix); | |||||
| ix += 16; | |||||
| } | |||||
| if(replace1 != 0) | |||||
| { | |||||
| Write4Bytes(f_out,replace1); // write as little-endian | |||||
| Write4Bytes(f_out,replace2); // if big-endian, reverse the bytes in LoadDictionary() | |||||
| } | |||||
| } | |||||
| break; | |||||
| } | } | ||||
| } | } | ||||
| fclose(f_temp); | fclose(f_temp); |
| /*************************************************************************** | /*************************************************************************** | ||||
| * Copyright (C) 2005 to 2011 by Jonathan Duddington * | |||||
| * Copyright (C) 2005 to 2013 by Jonathan Duddington * | |||||
| * email: [email protected] * | * email: [email protected] * | ||||
| * * | * * | ||||
| * This program is free software; you can redistribute it and/or modify * | * This program is free software; you can redistribute it and/or modify * | ||||
| PHONEME_LIST2 *plist2; | PHONEME_LIST2 *plist2; | ||||
| WORD_PH_DATA worddata; | WORD_PH_DATA worddata; | ||||
| memset(&worddata, 0, sizeof(worddata)); | |||||
| memset(&worddata, 0, sizeof(worddata)); | |||||
| plist2 = ph_list2; | plist2 = ph_list2; | ||||
| phlist = phoneme_list; | phlist = phoneme_list; | ||||
| end_sourceix = plist2[n_ph_list2-1].sourceix; | end_sourceix = plist2[n_ph_list2-1].sourceix; | ||||
| max_stress = 0; | max_stress = 0; | ||||
| for(j = n_ph_list2-3; j>=0; j--) | for(j = n_ph_list2-3; j>=0; j--) | ||||
| { | { | ||||
| // start with the last phoneme (before the terminating pauses) and move forwards | |||||
| // start with the last phoneme (before the terminating pauses) and move backwards | |||||
| if((plist2[j].stresslevel & 0x7f) > max_stress) | if((plist2[j].stresslevel & 0x7f) > max_stress) | ||||
| max_stress = plist2[j].stresslevel & 0x7f; | max_stress = plist2[j].stresslevel & 0x7f; | ||||
| if(plist2[j].sourceix != 0) | if(plist2[j].sourceix != 0) | ||||
| { | { | ||||
| voicing = 1; | voicing = 1; | ||||
| } | } | ||||
| else | |||||
| if((voicing==2) && (ph->end_type != 0)) // use end_type field for voicing_switch for consonants | |||||
| else if((voicing==2) && (ph->end_type != 0)) // use end_type field for voicing_switch for consonants | |||||
| { | { | ||||
| plist2[j].phcode = ph->end_type; // change to voiced equivalent | plist2[j].phcode = ph->end_type; // change to voiced equivalent | ||||
| } | } | ||||
| } | } | ||||
| else | |||||
| if((type==phVSTOP) || type==(phVFRICATIVE)) | |||||
| else if((type==phVSTOP) || type==(phVFRICATIVE)) | |||||
| { | { | ||||
| if((voicing==0) && (regression & 0xf)) | if((voicing==0) && (regression & 0xf)) | ||||
| { | { | ||||
| voicing = 2; | voicing = 2; | ||||
| } | } | ||||
| else | |||||
| if((voicing==1) && (ph->end_type != 0)) | |||||
| else if((voicing==1) && (ph->end_type != 0)) | |||||
| { | { | ||||
| plist2[j].phcode = ph->end_type; // change to unvoiced equivalent | plist2[j].phcode = ph->end_type; // change to unvoiced equivalent | ||||
| } | } | ||||
| if(plist3->phcode == phonSWITCH) | if(plist3->phcode == phonSWITCH) | ||||
| { | { | ||||
| if((plist3[1].phcode == phonSWITCH) || ((plist3[1].type == phPAUSE) && (plist3[2].phcode == phonSWITCH))) | |||||
| continue; // next phoneme is also a phonSWITCH, so ignore | |||||
| // change phoneme table | // change phoneme table | ||||
| SelectPhonemeTable(plist3->tone_ph); | SelectPhonemeTable(plist3->tone_ph); | ||||
| switched_language ^= SFLAG_SWITCHED_LANG; | switched_language ^= SFLAG_SWITCHED_LANG; | ||||
| phlist[ix].newword = 2; // end of clause | phlist[ix].newword = 2; // end of clause | ||||
| phlist[ix].phcode = phonPAUSE; | phlist[ix].phcode = phonPAUSE; | ||||
| phlist[ix].type = phPAUSE; // terminate with 2 Pause phonemes | |||||
| phlist[ix].type = phPAUSE; // terminate with 2 Pause phonemes | |||||
| phlist[ix].length = post_pause; // length of the pause, depends on the punctuation | phlist[ix].length = post_pause; // length of the pause, depends on the punctuation | ||||
| phlist[ix].sourceix = end_sourceix; | phlist[ix].sourceix = end_sourceix; | ||||
| phlist[ix].synthflags = 0; | phlist[ix].synthflags = 0; | ||||
| phlist[ix++].ph = phoneme_tab[phonPAUSE]; | |||||
| phlist[ix++].ph = phoneme_tab[phonPAUSE]; | |||||
| phlist[ix].phcode = phonPAUSE; | phlist[ix].phcode = phonPAUSE; | ||||
| phlist[ix].type = phPAUSE; | |||||
| phlist[ix].type = phPAUSE; | |||||
| phlist[ix].length = 0; | phlist[ix].length = 0; | ||||
| phlist[ix].sourceix=0; | phlist[ix].sourceix=0; | ||||
| phlist[ix].synthflags = 0; | phlist[ix].synthflags = 0; | ||||
| phlist[ix++].ph = phoneme_tab[phonPAUSE_SHORT]; | |||||
| phlist[ix++].ph = phoneme_tab[phonPAUSE_SHORT]; | |||||
| n_phoneme_list = ix; | n_phoneme_list = ix; | ||||
| } // end of MakePhonemeList | } // end of MakePhonemeList |
| static int AnnouncePunctuation(Translator *tr, int c1, int *c2_ptr, char *output, int *bufix, int end_clause) | static int AnnouncePunctuation(Translator *tr, int c1, int *c2_ptr, char *output, int *bufix, int end_clause) | ||||
| {//========================================================================================================== | |||||
| {//============================================================================================================= | |||||
| // announce punctuation names | // announce punctuation names | ||||
| // c1: the punctuation character | // c1: the punctuation character | ||||
| // c2: the following character | // c2: the following character | ||||
| int punct_count; | int punct_count; | ||||
| const char *punctname; | |||||
| int found = 0; | |||||
| const char *punctname = NULL; | |||||
| int soundicon; | int soundicon; | ||||
| int attributes; | int attributes; | ||||
| int short_pause; | int short_pause; | ||||
| int bufix1; | int bufix1; | ||||
| char buf[200]; | char buf[200]; | ||||
| char buf2[80]; | char buf2[80]; | ||||
| char ph_buf[30]; | |||||
| c2 = *c2_ptr; | c2 = *c2_ptr; | ||||
| buf[0] = 0; | buf[0] = 0; | ||||
| // add an embedded command to play the soundicon | // add an embedded command to play the soundicon | ||||
| sprintf(buf,"\001%dI ",soundicon); | sprintf(buf,"\001%dI ",soundicon); | ||||
| UngetC(c2); | UngetC(c2); | ||||
| found = 1; | |||||
| } | } | ||||
| else | else | ||||
| if((punctname = LookupCharName(tr, c1, 0)) != NULL) | |||||
| { | { | ||||
| found = 1; | |||||
| if((c1 == '.') && (end_clause) && (c2 != '.')) | |||||
| { | |||||
| if(LookupSpecial(tr, "_.p", ph_buf)) | |||||
| { | |||||
| punctname = ph_buf; // use word for 'period' instead of 'dot' | |||||
| } | |||||
| } | |||||
| if(punctname == NULL) | |||||
| { | |||||
| punctname = LookupCharName(tr, c1, 0); | |||||
| } | |||||
| if(punctname == NULL) | |||||
| return(-1); | |||||
| if((*bufix==0) || (end_clause ==0) || (tr->langopts.param[LOPT_ANNOUNCE_PUNCT] & 2)) | if((*bufix==0) || (end_clause ==0) || (tr->langopts.param[LOPT_ANNOUNCE_PUNCT] & 2)) | ||||
| { | { | ||||
| punct_count=1; | punct_count=1; | ||||
| } | } | ||||
| } | } | ||||
| if(found == 0) | |||||
| return(-1); | |||||
| bufix1 = *bufix; | bufix1 = *bufix; | ||||
| len = strlen(buf); | len = strlen(buf); | ||||
| strcpy(&output[*bufix],buf); | strcpy(&output[*bufix],buf); |
| #include "translate.h" | #include "translate.h" | ||||
| #include "wave.h" | #include "wave.h" | ||||
| const char *version_string = "1.46.44 08.Mar.13"; | |||||
| const char *version_string = "1.46.45 10.Mar.13"; | |||||
| const int version_phdata = 0x014640; | const int version_phdata = 0x014640; | ||||
| int option_device_number = -1; | int option_device_number = -1; |
| {"_dv", OFFSET_THAANA, 0x780, 0x7bf, 0, 0}, | {"_dv", OFFSET_THAANA, 0x780, 0x7bf, 0, 0}, | ||||
| {"_hi", OFFSET_DEVANAGARI, 0x900, 0x97f,L('h','i'), AL_WORDS}, | {"_hi", OFFSET_DEVANAGARI, 0x900, 0x97f,L('h','i'), AL_WORDS}, | ||||
| {"_bn", OFFSET_BENGALI, 0x0980, 0x9ff, 0, 0}, | {"_bn", OFFSET_BENGALI, 0x0980, 0x9ff, 0, 0}, | ||||
| {"_gur", OFFSET_GURMUKHI, 0xa00, 0xa7f, 0, 0}, | |||||
| {"_gur", OFFSET_GURMUKHI, 0xa00, 0xa7f, L('p','a'), AL_WORDS}, | |||||
| {"_gu", OFFSET_GUJARATI, 0xa80, 0xaff, 0, 0}, | {"_gu", OFFSET_GUJARATI, 0xa80, 0xaff, 0, 0}, | ||||
| {"_or", OFFSET_ORIYA, 0xb00, 0xb7f, 0, 0}, | {"_or", OFFSET_ORIYA, 0xb00, 0xb7f, 0, 0}, | ||||
| {"_ta", OFFSET_TAMIL, 0xb80, 0xbff, L('t','a'), AL_WORDS}, | {"_ta", OFFSET_TAMIL, 0xb80, 0xbff, L('t','a'), AL_WORDS}, | ||||
| {"_ka", OFFSET_GEORGIAN, 0x10a0,0x10ff, L('k','a'), AL_WORDS}, | {"_ka", OFFSET_GEORGIAN, 0x10a0,0x10ff, L('k','a'), AL_WORDS}, | ||||
| {"_ko", OFFSET_KOREAN, 0x1100,0x11ff, 0, 0}, | {"_ko", OFFSET_KOREAN, 0x1100,0x11ff, 0, 0}, | ||||
| {"_eth", OFFSET_ETHIOPIC, 0x1200,0x139f, 0, 0}, | {"_eth", OFFSET_ETHIOPIC, 0x1200,0x139f, 0, 0}, | ||||
| {"_ja", 0x3040, 0x3040,0x30ff, 0, AL_NOT_CODE}, | |||||
| {"_zh", 0x3100, 0x3100,0x9fff, 0, AL_NOT_CODE}, | |||||
| {NULL, 0, 0, 0, 0, 0} | {NULL, 0, 0, 0, 0, 0} | ||||
| }; | }; | ||||
| ALPHABET *AlphabetFromChar(int c) | ALPHABET *AlphabetFromChar(int c) | ||||
| {//=============================== | {//=============================== | ||||
| // Find the alphabet from a character. | |||||
| ALPHABET *alphabet = alphabets; | |||||
| while(alphabet->name != NULL) | |||||
| { | |||||
| if((c >= alphabet->range_min) && (c <= alphabet->range_max)) | |||||
| { | |||||
| return(alphabet); | |||||
| } | |||||
| alphabet++; | |||||
| } | |||||
| return(NULL); | |||||
| // Find the alphabet from a character. | |||||
| ALPHABET *alphabet = alphabets; | |||||
| while(alphabet->name != NULL) | |||||
| { | |||||
| if((c >= alphabet->range_min) && (c <= alphabet->range_max)) | |||||
| { | |||||
| return(alphabet); | |||||
| } | |||||
| alphabet++; | |||||
| } | |||||
| return(NULL); | |||||
| } | } | ||||
| tr->langopts.length_mods0 = tr->langopts.length_mods; // don't lengthen vowels in the last syllable | tr->langopts.length_mods0 = tr->langopts.length_mods; // don't lengthen vowels in the last syllable | ||||
| tr->langopts.stress_rule = STRESSPOSN_1L; | tr->langopts.stress_rule = STRESSPOSN_1L; | ||||
| tr->langopts.stress_flags = 0x10004; // use 'diminished' for unstressed final syllable | |||||
| tr->langopts.stress_flags = S_MID_DIM | S_FINAL_DIM; // use 'diminished' for unstressed final syllable | |||||
| tr->letter_bits_offset = OFFSET_BENGALI; | tr->letter_bits_offset = OFFSET_BENGALI; | ||||
| SetIndicLetters(tr); // call this after setting OFFSET_BENGALI | SetIndicLetters(tr); // call this after setting OFFSET_BENGALI | ||||
| SetLetterBitsRange(tr,LETTERGP_F,0x3e,0x4c); // vowel signs, but not virama | SetLetterBitsRange(tr,LETTERGP_F,0x3e,0x4c); // vowel signs, but not virama | ||||
| tr->langopts.length_mods0 = tr->langopts.length_mods; // don't lengthen vowels in the last syllable | tr->langopts.length_mods0 = tr->langopts.length_mods; // don't lengthen vowels in the last syllable | ||||
| tr->letter_bits_offset = OFFSET_THAANA; | tr->letter_bits_offset = OFFSET_THAANA; | ||||
| tr->langopts.stress_rule = STRESSPOSN_1L; | tr->langopts.stress_rule = STRESSPOSN_1L; | ||||
| tr->langopts.stress_flags = 0x10004; // use 'diminished' for unstressed final syllable | |||||
| tr->langopts.stress_flags = S_MID_DIM | S_FINAL_DIM; // use 'diminished' for unstressed final syllable | |||||
| SetLetterBitsRange(tr,LETTERGP_B,0x26,0x30); // vowel signs, and virama | SetLetterBitsRange(tr,LETTERGP_B,0x26,0x30); // vowel signs, and virama | ||||
| tr->langopts.break_numbers = 0x14a8; // 1000, 100,000 10,000,000 | tr->langopts.break_numbers = 0x14a8; // 1000, 100,000 10,000,000 | ||||
| tr->langopts.numbers = 1; | tr->langopts.numbers = 1; | ||||
| // stress last syllable if it doesn't end in vowel or "s" or "n" | // stress last syllable if it doesn't end in vowel or "s" or "n" | ||||
| // 'diminished' is an unstressed final syllable | // 'diminished' is an unstressed final syllable | ||||
| tr->langopts.stress_flags = 0x200 | 0x6 | 0x10; | |||||
| tr->langopts.stress_flags = S_FINAL_SPANISH | S_FINAL_DIM_ONLY | S_FINAL_NO_2; | |||||
| tr->langopts.unstressed_wd1 = 0; | tr->langopts.unstressed_wd1 = 0; | ||||
| tr->langopts.unstressed_wd2 = 2; | tr->langopts.unstressed_wd2 = 2; | ||||
| tr->langopts.param[LOPT_SONORANT_MIN] = 120; // limit the shortening of sonorants before short vowels | tr->langopts.param[LOPT_SONORANT_MIN] = 120; // limit the shortening of sonorants before short vowels | ||||
| if(name2 == L('c','a')) | if(name2 == L('c','a')) | ||||
| { | { | ||||
| // stress last syllable unless word ends with a vowel | |||||
| tr->punct_within_word = ca_punct_within_word; | tr->punct_within_word = ca_punct_within_word; | ||||
| tr->langopts.stress_flags = 0x200 | 0x6 | 0x30; // stress last syllable unless word ends with a vowel | |||||
| tr->langopts.stress_flags = S_FINAL_SPANISH | S_FINAL_DIM_ONLY | S_FINAL_NO_2 | S_NO_AUTO_2; | |||||
| } | } | ||||
| else | else | ||||
| if(name2 == L('a','n')) | if(name2 == L('a','n')) | ||||
| { | { | ||||
| tr->langopts.stress_flags = 0x200 | 0x6 | 0x10; | |||||
| tr->langopts.stress_flags = S_FINAL_SPANISH | S_FINAL_DIM_ONLY | S_FINAL_NO_2; | |||||
| } | } | ||||
| else | else | ||||
| if(name2 == L_pap) | if(name2 == L_pap) | ||||
| { | { | ||||
| tr->langopts.stress_flags = 0x100 | 0x6 | 0x30; // stress last syllable unless word ends with a vowel | |||||
| // stress last syllable unless word ends with a vowel | |||||
| tr->langopts.stress_flags = S_FINAL_STRESS_C | S_FINAL_DIM_ONLY | S_FINAL_NO_2 | S_NO_AUTO_2; | |||||
| } | } | ||||
| else | else | ||||
| { | { | ||||
| SetupTranslator(tr,stress_lengths_fi,stress_amps_fi); | SetupTranslator(tr,stress_lengths_fi,stress_amps_fi); | ||||
| tr->langopts.stress_rule = STRESSPOSN_1L; | tr->langopts.stress_rule = STRESSPOSN_1L; | ||||
| tr->langopts.stress_flags = 0x56; // move secondary stress from light to a following heavy syllable | |||||
| tr->langopts.stress_flags = S_FINAL_DIM_ONLY | S_FINAL_NO_2 | S_2_TO_HEAVY; // move secondary stress from light to a following heavy syllable | |||||
| tr->langopts.param[LOPT_IT_DOUBLING] = 1; | tr->langopts.param[LOPT_IT_DOUBLING] = 1; | ||||
| tr->langopts.long_stop = 130; | tr->langopts.long_stop = 130; | ||||
| { | { | ||||
| SetupTranslator(tr,stress_lengths_fr,stress_amps_fr); | SetupTranslator(tr,stress_lengths_fr,stress_amps_fr); | ||||
| tr->langopts.stress_rule = STRESSPOSN_1R; // stress on final syllable | tr->langopts.stress_rule = STRESSPOSN_1R; // stress on final syllable | ||||
| tr->langopts.stress_flags = 0x0024; // don't use secondary stress | |||||
| tr->langopts.stress_flags = S_NO_AUTO_2 | S_FINAL_DIM; // don't use secondary stress | |||||
| tr->langopts.param[LOPT_IT_LENGTHEN] = 1; // remove lengthen indicator from unstressed syllables | tr->langopts.param[LOPT_IT_LENGTHEN] = 1; // remove lengthen indicator from unstressed syllables | ||||
| tr->langopts.length_mods0 = tr->langopts.length_mods; // don't lengthen vowels in the last syllable | tr->langopts.length_mods0 = tr->langopts.length_mods; // don't lengthen vowels in the last syllable | ||||
| tr->langopts.accents = 2; // Say "Capital" after the letter. | tr->langopts.accents = 2; // Say "Capital" after the letter. | ||||
| } | } | ||||
| break; | break; | ||||
| case L('g','a'): // irish | |||||
| { | |||||
| tr->langopts.stress_rule = STRESSPOSN_1L; | |||||
| tr->langopts.numbers = 1; | |||||
| } | |||||
| break; | |||||
| case L('g','a'): // irish | |||||
| { | |||||
| tr->langopts.stress_rule = STRESSPOSN_1L; | |||||
| tr->langopts.numbers = 1; | |||||
| } | |||||
| break; | |||||
| case L('h','i'): // Hindi | case L('h','i'): // Hindi | ||||
| case L('n','e'): // Nepali | case L('n','e'): // Nepali | ||||
| tr->langopts.length_mods0 = tr->langopts.length_mods; // don't lengthen vowels in the last syllable | tr->langopts.length_mods0 = tr->langopts.length_mods; // don't lengthen vowels in the last syllable | ||||
| tr->langopts.stress_rule = 6; // stress on last heaviest syllable, excluding final syllable | tr->langopts.stress_rule = 6; // stress on last heaviest syllable, excluding final syllable | ||||
| tr->langopts.stress_flags = 0x10004; // use 'diminished' for unstressed final syllable | |||||
| tr->langopts.stress_flags = S_MID_DIM | S_FINAL_DIM; // use 'diminished' for unstressed final syllable | |||||
| tr->langopts.numbers = NUM_SWAP_TENS; | tr->langopts.numbers = NUM_SWAP_TENS; | ||||
| tr->langopts.break_numbers = 0x14aa8; // for languages which have numbers for 100,000 and 100,00,000, eg Hindi | tr->langopts.break_numbers = 0x14aa8; // for languages which have numbers for 100,000 and 100,00,000, eg Hindi | ||||
| tr->letter_bits_offset = OFFSET_DEVANAGARI; | tr->letter_bits_offset = OFFSET_DEVANAGARI; | ||||
| tr->charset_a0 = charsets[2]; // ISO-8859-2 | tr->charset_a0 = charsets[2]; // ISO-8859-2 | ||||
| tr->langopts.stress_rule = STRESSPOSN_1L; | tr->langopts.stress_rule = STRESSPOSN_1L; | ||||
| tr->langopts.stress_flags = 0x10; | |||||
| tr->langopts.stress_flags = S_FINAL_NO_2; | |||||
| tr->langopts.param[LOPT_REGRESSIVE_VOICING] = 0x3; | tr->langopts.param[LOPT_REGRESSIVE_VOICING] = 0x3; | ||||
| tr->langopts.max_initial_consonants = 5; | tr->langopts.max_initial_consonants = 5; | ||||
| tr->langopts.spelling_stress = 1; | tr->langopts.spelling_stress = 1; | ||||
| case L('h','t'): // Haitian Creole | case L('h','t'): // Haitian Creole | ||||
| // memcpy(tr->stress_lengths,stress_lengths_fr,sizeof(tr->stress_lengths)); | // memcpy(tr->stress_lengths,stress_lengths_fr,sizeof(tr->stress_lengths)); | ||||
| tr->langopts.stress_rule = STRESSPOSN_1R; // stress on final syllable | tr->langopts.stress_rule = STRESSPOSN_1R; // stress on final syllable | ||||
| tr->langopts.stress_flags = 0x0024; // don't use secondary stress | |||||
| tr->langopts.stress_flags = S_NO_AUTO_2 | S_FINAL_DIM; // don't use secondary stress | |||||
| tr->langopts.numbers = NUM_SINGLE_STRESS | NUM_OMIT_1_HUNDRED | NUM_NOPAUSE | NUM_ROMAN | NUM_VIGESIMAL | NUM_DFRACTION_4; | tr->langopts.numbers = NUM_SINGLE_STRESS | NUM_OMIT_1_HUNDRED | NUM_NOPAUSE | NUM_ROMAN | NUM_VIGESIMAL | NUM_DFRACTION_4; | ||||
| break; | break; | ||||
| tr->langopts.vowel_pause = 0x20; | tr->langopts.vowel_pause = 0x20; | ||||
| tr->langopts.stress_rule = STRESSPOSN_1L; | tr->langopts.stress_rule = STRESSPOSN_1L; | ||||
| tr->langopts.stress_flags = 0x8036 | S_HYPEN_UNSTRESS; | |||||
| tr->langopts.stress_flags = S_FINAL_DIM_ONLY | S_FINAL_NO_2 | S_NO_AUTO_2 | 0x8000 | S_HYPEN_UNSTRESS; | |||||
| tr->langopts.unstressed_wd1 = 2; | tr->langopts.unstressed_wd1 = 2; | ||||
| tr->langopts.param[LOPT_IT_DOUBLING] = 1; | tr->langopts.param[LOPT_IT_DOUBLING] = 1; | ||||
| tr->langopts.param[LOPT_ANNOUNCE_PUNCT] = 2; // don't break clause before announcing . ? ! | tr->langopts.param[LOPT_ANNOUNCE_PUNCT] = 2; // don't break clause before announcing . ? ! | ||||
| 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_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; | ||||
| SetupTranslator(tr,stress_lengths_id,stress_amps_id); | SetupTranslator(tr,stress_lengths_id,stress_amps_id); | ||||
| tr->langopts.stress_rule = STRESSPOSN_2R; | tr->langopts.stress_rule = STRESSPOSN_2R; | ||||
| tr->langopts.numbers = NUM_DECIMAL_COMMA | NUM_ALLOW_SPACE | NUM_ROMAN; | tr->langopts.numbers = NUM_DECIMAL_COMMA | NUM_ALLOW_SPACE | NUM_ROMAN; | ||||
| tr->langopts.stress_flags = 0x6 | 0x10; | |||||
| tr->langopts.stress_flags = S_FINAL_DIM_ONLY | S_FINAL_NO_2; | |||||
| tr->langopts.accents = 2; // "capital" after letter name | tr->langopts.accents = 2; // "capital" after letter name | ||||
| } | } | ||||
| break; | break; | ||||
| SetupTranslator(tr,stress_lengths_is,NULL); | SetupTranslator(tr,stress_lengths_is,NULL); | ||||
| tr->langopts.stress_rule = STRESSPOSN_1L; | tr->langopts.stress_rule = STRESSPOSN_1L; | ||||
| tr->langopts.stress_flags = 0x10; | |||||
| tr->langopts.stress_flags = S_FINAL_NO_2; | |||||
| tr->langopts.param[LOPT_IT_LENGTHEN] = 0x11; // remove lengthen indicator from unstressed vowels | tr->langopts.param[LOPT_IT_LENGTHEN] = 0x11; // remove lengthen indicator from unstressed vowels | ||||
| tr->langopts.param[LOPT_REDUCE] = 2; | tr->langopts.param[LOPT_REDUCE] = 2; | ||||
| tr->langopts.length_mods0 = tr->langopts.length_mods; // don't lengthen vowels in the last syllable | tr->langopts.length_mods0 = tr->langopts.length_mods; // don't lengthen vowels in the last syllable | ||||
| tr->langopts.stress_rule = STRESSPOSN_2R; | tr->langopts.stress_rule = STRESSPOSN_2R; | ||||
| tr->langopts.stress_flags = 0x10 | S_PRIORITY_STRESS; | |||||
| tr->langopts.stress_flags = S_FINAL_NO_2 | S_PRIORITY_STRESS; | |||||
| tr->langopts.vowel_pause = 1; | tr->langopts.vowel_pause = 1; | ||||
| tr->langopts.unstressed_wd1 = 2; | tr->langopts.unstressed_wd1 = 2; | ||||
| tr->langopts.unstressed_wd2 = 2; | tr->langopts.unstressed_wd2 = 2; | ||||
| { | { | ||||
| // character codes offset by 0x1080 | // character codes offset by 0x1080 | ||||
| static const char ka_vowels[] = {0x30,0x34,0x38,0x3d,0x43,0x55,0x57,0}; | static const char ka_vowels[] = {0x30,0x34,0x38,0x3d,0x43,0x55,0x57,0}; | ||||
| static const char ka_consonants[] = {0x31,0x32,0x33,0x35,0x36,0x37,0x39,0x3a,0x3b,0x3c,0x3e,0x3f, | |||||
| 0x40,0x41,0x42,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,0x50,0x51,0x52,0x53,0x54,0x56,0}; | |||||
| static const char ka_consonants[] = | |||||
| {0x31,0x32,0x33,0x35,0x36,0x37,0x39,0x3a,0x3b,0x3c,0x3e,0x3f,0x40,0x41,0x42,0x44, | |||||
| 0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,0x50,0x51,0x52,0x53,0x54,0x56,0}; | |||||
| SetupTranslator(tr,stress_lengths_ta,stress_amps_ta); | SetupTranslator(tr,stress_lengths_ta,stress_amps_ta); | ||||
| memset(tr->letter_bits,0,sizeof(tr->letter_bits)); | memset(tr->letter_bits,0,sizeof(tr->letter_bits)); | ||||
| SetLetterBits(tr,LETTERGP_A,ka_vowels); | SetLetterBits(tr,LETTERGP_A,ka_vowels); | ||||
| tr->langopts.spelling_stress = 1; | tr->langopts.spelling_stress = 1; | ||||
| tr->charset_a0 = charsets[4]; // ISO-8859-4 | tr->charset_a0 = charsets[4]; // ISO-8859-4 | ||||
| tr->langopts.numbers = NUM_DECIMAL_COMMA | NUM_OMIT_1_HUNDRED | NUM_DFRACTION_4 | NUM_ORDINAL_DOT; | tr->langopts.numbers = NUM_DECIMAL_COMMA | NUM_OMIT_1_HUNDRED | NUM_DFRACTION_4 | NUM_ORDINAL_DOT; | ||||
| tr->langopts.stress_flags = 0x16 + 0x40000; | |||||
| tr->langopts.stress_flags = S_FINAL_DIM_ONLY | S_FINAL_NO_2 | S_EO_CLAUSE1; | |||||
| } | } | ||||
| break; | break; | ||||
| break; | break; | ||||
| case L('t','t'): // Tatar | case L('t','t'): // Tatar | ||||
| { | |||||
| { | |||||
| SetCyrillicLetters(tr); | SetCyrillicLetters(tr); | ||||
| SetupTranslator(tr,stress_lengths_fr,stress_amps_fr); | SetupTranslator(tr,stress_lengths_fr,stress_amps_fr); | ||||
| tr->langopts.stress_rule = STRESSPOSN_1R; // stress on final syllable | tr->langopts.stress_rule = STRESSPOSN_1R; // stress on final 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.numbers = NUM_SINGLE_STRESS | NUM_DECIMAL_COMMA | NUM_OMIT_1_HUNDRED | NUM_OMIT_1_THOUSAND | NUM_DFRACTION_4; | tr->langopts.numbers = NUM_SINGLE_STRESS | NUM_DECIMAL_COMMA | NUM_OMIT_1_HUNDRED | NUM_OMIT_1_THOUSAND | NUM_DFRACTION_4; | ||||
| } | |||||
| break; | |||||
| } | |||||
| break; | |||||
| case L('u','k'): // Ukrainian | case L('u','k'): // Ukrainian | ||||
| { | { | ||||
| break; | break; | ||||
| case L('u','r'): // Urdu | case L('u','r'): // Urdu | ||||
| { | |||||
| tr->letter_bits_offset = OFFSET_ARABIC; | tr->letter_bits_offset = OFFSET_ARABIC; | ||||
| tr->langopts.param[LOPT_UNPRONOUNCABLE] = 1; // disable check for unpronouncable words | tr->langopts.param[LOPT_UNPRONOUNCABLE] = 1; // disable check for unpronouncable words | ||||
| tr->langopts.numbers = NUM_SWAP_TENS; | tr->langopts.numbers = NUM_SWAP_TENS; | ||||
| tr->langopts.break_numbers = 0x52a8; // for languages which have numbers for 100,000 and 100,00,000, eg Hindi | tr->langopts.break_numbers = 0x52a8; // for languages which have numbers for 100,000 and 100,00,000, eg Hindi | ||||
| } | |||||
| break; | break; | ||||
| case L('v','i'): // Vietnamese | case L('v','i'): // Vietnamese |
| // alphabet flags | // alphabet flags | ||||
| #define AL_DONT_NAME 0x01 // don't speak the alphabet name | #define AL_DONT_NAME 0x01 // don't speak the alphabet name | ||||
| #define AL_NOT_LETTERS 0x02 // don't use the language for speaking letters | #define AL_NOT_LETTERS 0x02 // don't use the language for speaking letters | ||||
| #define AL_WORDS 0x04 // use the language to speak words | |||||
| #define AL_WORDS 0x04 // use the language to speak words | |||||
| #define AL_NOT_CODE 0x08 // don't speak the character code | |||||
| #define N_LOPTS 21 | #define N_LOPTS 21 | ||||
| #define S_INITIAL_2 0x2000 | #define S_INITIAL_2 0x2000 | ||||
| // bit13= If there is only one syllable before the primary stress, give it a secondary stress | // bit13= If there is only one syllable before the primary stress, give it a secondary stress | ||||
| #define S_MID_DIM 0x10000 | |||||
| // bit 16= Set (not first or last) syllables to diminished stress | |||||
| #define S_PRIORITY_STRESS 0x20000 | #define S_PRIORITY_STRESS 0x20000 | ||||
| // bit17= "priority" stress reduces other primary stress to "unstressed" not "secondary" | // bit17= "priority" stress reduces other primary stress to "unstressed" not "secondary" | ||||
| #define S_EO_CLAUSE1 0x40000 | #define S_EO_CLAUSE1 0x40000 | ||||
| // bit18= don't lengthen short vowels more than long vowels at end-of-clause | // bit18= don't lengthen short vowels more than long vowels at end-of-clause | ||||
| #define S_FINAL_LONG 0x80000 | |||||
| // bit19=stress on final syllable if it has a long vowel, but previous syllable has a short vowel | |||||
| #define S_HYPEN_UNSTRESS 0x100000 | #define S_HYPEN_UNSTRESS 0x100000 | ||||
| // bit20= hyphenated words, 2nd part is unstressed | // bit20= hyphenated words, 2nd part is unstressed | ||||
| // bit21= don't lengthen vowels at end-of-clause | // bit21= don't lengthen vowels at end-of-clause | ||||
| // bit15= Give stress to the first unstressed syllable | // bit15= Give stress to the first unstressed syllable | ||||
| // bit19=stress on final syllable if it has a long vowel, but previous syllable has a short vowel | |||||
| int stress_flags; | int stress_flags; | ||||
| const char *transpose_map; | const char *transpose_map; | ||||
| char dictionary_name[40]; | char dictionary_name[40]; | ||||
| char phon_out[400]; | |||||
| char phon_out[500]; | |||||
| char phonemes_repeat[20]; | char phonemes_repeat[20]; | ||||
| int phonemes_repeat_count; | int phonemes_repeat_count; | ||||
| int phoneme_tab_ix; | int phoneme_tab_ix; |
| /*************************************************************************** | /*************************************************************************** | ||||
| * Copyright (C) 2005 to 2010 by Jonathan Duddington * | |||||
| * Copyright (C) 2005 to 2013 by Jonathan Duddington * | |||||
| * email: [email protected] * | * email: [email protected] * | ||||
| * * | * * | ||||
| * This program is free software; you can redistribute it and/or modify * | * This program is free software; you can redistribute it and/or modify * | ||||
| {"unknown", 0}, | {"unknown", 0}, | ||||
| {"male", 1}, | {"male", 1}, | ||||
| {"female", 2}, | {"female", 2}, | ||||
| {NULL, 0 }}; | |||||
| {NULL, 0 } | |||||
| }; | |||||
| int tone_points[12] = {600,170, 1200,135, 2000,110, 3000,110, -1,0}; | int tone_points[12] = {600,170, 1200,135, 2000,110, 3000,110, -1,0}; | ||||
| //int tone_points[12] = {250,200, 400,170, 600,170, 1200,135, 2000,110, -1,0}; | //int tone_points[12] = {250,200, 400,170, 600,170, 1200,135, 2000,110, -1,0}; | ||||
| V_STRESSADD, | V_STRESSADD, | ||||
| V_DICTRULES, | V_DICTRULES, | ||||
| V_STRESSRULE, | V_STRESSRULE, | ||||
| V_STRESSOPT, | |||||
| V_CHARSET, | V_CHARSET, | ||||
| V_NUMBERS, | V_NUMBERS, | ||||
| V_OPTION, | V_OPTION, | ||||
| static MNEM_TAB options_tab[] = { | static MNEM_TAB options_tab[] = { | ||||
| {"reduce_t", LOPT_REDUCE_T}, | {"reduce_t", LOPT_REDUCE_T}, | ||||
| {"bracket", LOPT_BRACKET_PAUSE}, | {"bracket", LOPT_BRACKET_PAUSE}, | ||||
| {NULL, -1} }; | |||||
| {NULL, -1} | |||||
| }; | |||||
| static MNEM_TAB keyword_tab[] = { | static MNEM_TAB keyword_tab[] = { | ||||
| {"name", V_NAME}, | {"name", V_NAME}, | ||||
| {"formant", V_FORMANT}, | {"formant", V_FORMANT}, | ||||
| {"pitch", V_PITCH}, | {"pitch", V_PITCH}, | ||||
| {"phonemes", V_PHONEMES}, | {"phonemes", V_PHONEMES}, | ||||
| {"translator", V_TRANSLATOR}, | |||||
| {"translator", V_TRANSLATOR}, | |||||
| {"dictionary", V_DICTIONARY}, | {"dictionary", V_DICTIONARY}, | ||||
| {"stressLength", V_STRESSLENGTH}, | {"stressLength", V_STRESSLENGTH}, | ||||
| {"stressAmp", V_STRESSAMP}, | {"stressAmp", V_STRESSAMP}, | ||||
| {"tunes", V_TUNES}, | {"tunes", V_TUNES}, | ||||
| {"dictrules", V_DICTRULES}, | {"dictrules", V_DICTRULES}, | ||||
| {"stressrule", V_STRESSRULE}, | {"stressrule", V_STRESSRULE}, | ||||
| {"stressopt", V_STRESSOPT}, | |||||
| {"charset", V_CHARSET}, | {"charset", V_CHARSET}, | ||||
| {"replace", V_REPLACE}, | {"replace", V_REPLACE}, | ||||
| {"words", V_WORDGAP}, | {"words", V_WORDGAP}, | ||||
| {"l_sonorant_min", 0x100+LOPT_SONORANT_MIN}, | {"l_sonorant_min", 0x100+LOPT_SONORANT_MIN}, | ||||
| {"l_length_mods", 0x100+LOPT_LENGTH_MODS}, | {"l_length_mods", 0x100+LOPT_LENGTH_MODS}, | ||||
| {"apostrophe", 0x100+LOPT_APOSTROPHE}, | {"apostrophe", 0x100+LOPT_APOSTROPHE}, | ||||
| {NULL, 0} }; | |||||
| {NULL, 0} | |||||
| }; | |||||
| #define N_VOICE_VARIANTS 12 | #define N_VOICE_VARIANTS 12 | ||||
| const char variants_either[N_VOICE_VARIANTS] = {1,2,12,3,13,4,14,5,11,0}; | const char variants_either[N_VOICE_VARIANTS] = {1,2,12,3,13,4,14,5,11,0}; | ||||
| tone_pts[ix] = -1; | tone_pts[ix] = -1; | ||||
| sscanf(string,"%d %d %d %d %d %d %d %d %d %d", | sscanf(string,"%d %d %d %d %d %d %d %d %d %d", | ||||
| &tone_pts[0],&tone_pts[1],&tone_pts[2],&tone_pts[3], | |||||
| &tone_pts[4],&tone_pts[5],&tone_pts[6],&tone_pts[7], | |||||
| &tone_pts[8],&tone_pts[9]); | |||||
| &tone_pts[0],&tone_pts[1],&tone_pts[2],&tone_pts[3], | |||||
| &tone_pts[4],&tone_pts[5],&tone_pts[6],&tone_pts[7], | |||||
| &tone_pts[8],&tone_pts[9]); | |||||
| } | } | ||||
| while(isspace(*p)) p++; | while(isspace(*p)) p++; | ||||
| strncpy0(vname,p,sizeof(vname)); | strncpy0(vname,p,sizeof(vname)); | ||||
| } | } | ||||
| else | |||||
| if(memcmp(linebuf,"language",8)==0) | |||||
| else if(memcmp(linebuf,"language",8)==0) | |||||
| { | { | ||||
| priority = DEFAULT_LANGUAGE_PRIORITY; | priority = DEFAULT_LANGUAGE_PRIORITY; | ||||
| vlanguage[0] = 0; | vlanguage[0] = 0; | ||||
| n_languages++; | n_languages++; | ||||
| } | } | ||||
| } | } | ||||
| else | |||||
| if(memcmp(linebuf,"gender",6)==0) | |||||
| else if(memcmp(linebuf,"gender",6)==0) | |||||
| { | { | ||||
| sscanf(&linebuf[6],"%s %d",vgender,&age); | sscanf(&linebuf[6],"%s %d",vgender,&age); | ||||
| } | } | ||||
| else | |||||
| if(memcmp(linebuf,"variants",8)==0) | |||||
| else if(memcmp(linebuf,"variants",8)==0) | |||||
| { | { | ||||
| sscanf(&linebuf[8],"%d",&n_variants); | sscanf(&linebuf[8],"%d",&n_variants); | ||||
| } | } | ||||
| // Adjustment of harmonic amplitudes, steps of 8Hz | // Adjustment of harmonic amplitudes, steps of 8Hz | ||||
| // value of 128 means no change | // value of 128 means no change | ||||
| // memset(voice->tone_adjust,128,sizeof(voice->tone_adjust)); | // memset(voice->tone_adjust,128,sizeof(voice->tone_adjust)); | ||||
| SetToneAdjust(voice,tone_points); | |||||
| SetToneAdjust(voice,tone_points); | |||||
| // default values of speed factors | // default values of speed factors | ||||
| voice->speedf1 = 256; | voice->speedf1 = 256; | ||||
| // Read 8 integer numbers | // Read 8 integer numbers | ||||
| memset(data, 0, 8+sizeof(int)); | memset(data, 0, 8+sizeof(int)); | ||||
| return(sscanf(data_in,"%d %d %d %d %d %d %d %d", | return(sscanf(data_in,"%d %d %d %d %d %d %d %d", | ||||
| &data[0],&data[1],&data[2],&data[3],&data[4],&data[5],&data[6],&data[7])); | |||||
| &data[0],&data[1],&data[2],&data[3],&data[4],&data[5],&data[6],&data[7])); | |||||
| } | } | ||||
| char buf[sizeof(path_home)+30]; | char buf[sizeof(path_home)+30]; | ||||
| char path_voices[sizeof(path_home)+12]; | char path_voices[sizeof(path_home)+12]; | ||||
| int dict_min = 0; | |||||
| int dict_min = 0; | |||||
| int stress_amps[8]; | int stress_amps[8]; | ||||
| int stress_lengths[8]; | int stress_lengths[8]; | ||||
| int stress_add[8]; | int stress_add[8]; | ||||
| static char voice_name[40]; // voice name for current_voice_selected | static char voice_name[40]; // voice name for current_voice_selected | ||||
| static char voice_languages[100]; // list of languages and priorities for current_voice_selected | static char voice_languages[100]; // list of languages and priorities for current_voice_selected | ||||
| // which directory to look for a named voice | |||||
| static const char *voices_asia = | |||||
| "fa fa-pin hi hy hy-west id ka kn ku ml ne pa ta tr vi vi-hue zh zh-yue "; | |||||
| static const char *voices_europe = | |||||
| "bg bs ca cs cy da el es et fi fr-be hr hu is it lt lv mk nl no pl pt-pt ro ru sk sq sr sv "; | |||||
| // which directory to look for a named voice | |||||
| static const char *voices_asia = | |||||
| "fa fa-pin hi hy hy-west id ka kn ku ml ne pa ta tr vi vi-hue zh zh-yue "; | |||||
| static const char *voices_europe = | |||||
| "bg bs ca cs cy da el es et fi fr-be hr hu is it lt lv mk nl no pl pt-pt ro ru sk sq sr sv "; | |||||
| strncpy0(voicename, vname, sizeof(voicename)); | strncpy0(voicename, vname, sizeof(voicename)); | ||||
| } | } | ||||
| else | else | ||||
| { | { | ||||
| if(voicename[0]==0) | |||||
| strcpy(voicename,"default"); | |||||
| if(voicename[0]==0) | |||||
| strcpy(voicename,"default"); | |||||
| sprintf(path_voices,"%s%cvoices%c",path_home,PATHSEP,PATHSEP); | sprintf(path_voices,"%s%cvoices%c",path_home,PATHSEP,PATHSEP); | ||||
| sprintf(buf,"%s%s",path_voices,voicename); // first, look in the main voices directory | sprintf(buf,"%s%s",path_voices,voicename); // first, look in the main voices directory | ||||
| if(GetFileLength(buf) <= 0) | if(GetFileLength(buf) <= 0) | ||||
| { | { | ||||
| // then look in the appropriate subdirectory | |||||
| if((voicename[0]=='m') && (voicename[1]=='b')) | |||||
| { | |||||
| voice_dir = "mb"; // mbrola voices | |||||
| } | |||||
| else | |||||
| { | |||||
| sprintf(name2, "%s ", voicename); | |||||
| if(strstr(voices_europe, voicename) != NULL) | |||||
| voice_dir = "europe"; | |||||
| else | |||||
| if(strstr(voices_asia, voicename) != NULL) | |||||
| voice_dir = "asia"; | |||||
| else | |||||
| voice_dir = "other"; | |||||
| sprintf(buf,"%s%s%c%s", path_voices,voice_dir,PATHSEP,voicename); | |||||
| if(GetFileLength(buf) <= 0) | |||||
| { | |||||
| // if not found, look in "test" sub-directory | |||||
| sprintf(buf,"%stest%c%s",path_voices,PATHSEP,voicename); | |||||
| } | |||||
| } | |||||
| // then look in the appropriate subdirectory | |||||
| if((voicename[0]=='m') && (voicename[1]=='b')) | |||||
| { | |||||
| voice_dir = "mb"; // mbrola voices | |||||
| } | |||||
| else | |||||
| { | |||||
| sprintf(name2, "%s ", voicename); | |||||
| if(strstr(voices_europe, voicename) != NULL) | |||||
| voice_dir = "europe"; | |||||
| else if(strstr(voices_asia, voicename) != NULL) | |||||
| voice_dir = "asia"; | |||||
| else | |||||
| voice_dir = "other"; | |||||
| sprintf(buf,"%s%s%c%s", path_voices,voice_dir,PATHSEP,voicename); | |||||
| if(GetFileLength(buf) <= 0) | |||||
| { | |||||
| // if not found, look in "test" sub-directory | |||||
| sprintf(buf,"%stest%c%s",path_voices,PATHSEP,voicename); | |||||
| } | |||||
| } | |||||
| } | } | ||||
| } | } | ||||
| switch(key) | switch(key) | ||||
| { | { | ||||
| case V_LANGUAGE: | case V_LANGUAGE: | ||||
| { | |||||
| unsigned int len; | |||||
| int priority; | |||||
| { | |||||
| unsigned int len; | |||||
| int priority; | |||||
| if(tone_only) | |||||
| break; | |||||
| if(tone_only) | |||||
| break; | |||||
| priority = DEFAULT_LANGUAGE_PRIORITY; | |||||
| language_name[0] = 0; | |||||
| priority = DEFAULT_LANGUAGE_PRIORITY; | |||||
| language_name[0] = 0; | |||||
| sscanf(p,"%s %d",language_name,&priority); | |||||
| if(strcmp(language_name,"variant") == 0) | |||||
| break; | |||||
| sscanf(p,"%s %d",language_name,&priority); | |||||
| if(strcmp(language_name,"variant") == 0) | |||||
| break; | |||||
| len = strlen(language_name) + 2; | |||||
| // check for space in languages[] | |||||
| if(len < (sizeof(voice_languages)-langix-1)) | |||||
| { | |||||
| voice_languages[langix] = priority; | |||||
| len = strlen(language_name) + 2; | |||||
| // check for space in languages[] | |||||
| if(len < (sizeof(voice_languages)-langix-1)) | |||||
| { | |||||
| voice_languages[langix] = priority; | |||||
| strcpy(&voice_languages[langix+1],language_name); | |||||
| langix += len; | |||||
| } | |||||
| strcpy(&voice_languages[langix+1],language_name); | |||||
| langix += len; | |||||
| } | |||||
| // only act on the first language line | |||||
| if(language_set == 0) | |||||
| { | |||||
| language_type = strtok(language_name,"-"); | |||||
| language_set = 1; | |||||
| strcpy(translator_name,language_type); | |||||
| strcpy(new_dictionary,language_type); | |||||
| strcpy(phonemes_name,language_type); | |||||
| SelectPhonemeTableName(phonemes_name); | |||||
| // only act on the first language line | |||||
| if(language_set == 0) | |||||
| { | |||||
| language_type = strtok(language_name,"-"); | |||||
| language_set = 1; | |||||
| strcpy(translator_name,language_type); | |||||
| strcpy(new_dictionary,language_type); | |||||
| strcpy(phonemes_name,language_type); | |||||
| SelectPhonemeTableName(phonemes_name); | |||||
| if(new_translator != NULL) | |||||
| DeleteTranslator(new_translator); | |||||
| new_translator = SelectTranslator(translator_name); | |||||
| langopts = &new_translator->langopts; | |||||
| } | |||||
| if(new_translator != NULL) | |||||
| DeleteTranslator(new_translator); | |||||
| new_translator = SelectTranslator(translator_name); | |||||
| langopts = &new_translator->langopts; | |||||
| } | } | ||||
| break; | |||||
| } | |||||
| break; | |||||
| case V_NAME: | case V_NAME: | ||||
| if(tone_only == 0) | if(tone_only == 0) | ||||
| break; | break; | ||||
| case V_GENDER: | case V_GENDER: | ||||
| { | |||||
| int age = 0; | |||||
| char vgender[80]; | |||||
| sscanf(p,"%s %d",vgender,&age); | |||||
| current_voice_selected.gender = LookupMnem(genders,vgender); | |||||
| current_voice_selected.age = age; | |||||
| } | |||||
| break; | |||||
| { | |||||
| int age = 0; | |||||
| char vgender[80]; | |||||
| sscanf(p,"%s %d",vgender,&age); | |||||
| current_voice_selected.gender = LookupMnem(genders,vgender); | |||||
| current_voice_selected.age = age; | |||||
| } | |||||
| break; | |||||
| case V_TRANSLATOR: | case V_TRANSLATOR: | ||||
| if(tone_only) break; | if(tone_only) break; | ||||
| sscanf(p,"%s",translator_name); | sscanf(p,"%s",translator_name); | ||||
| if(new_translator != NULL) | if(new_translator != NULL) | ||||
| DeleteTranslator(new_translator); | |||||
| DeleteTranslator(new_translator); | |||||
| new_translator = SelectTranslator(translator_name); | new_translator = SelectTranslator(translator_name); | ||||
| langopts = &new_translator->langopts; | langopts = &new_translator->langopts; | ||||
| break; | break; | ||||
| case V_PITCH: | case V_PITCH: | ||||
| { | |||||
| double factor; | |||||
| // default is pitch 82 118 | |||||
| n = sscanf(p,"%d %d",&pitch1,&pitch2); | |||||
| voice->pitch_base = (pitch1 - 9) << 12; | |||||
| voice->pitch_range = (pitch2 - pitch1) * 108; | |||||
| factor = double(pitch1 - 82)/82; | |||||
| voice->formant_factor = (int)((1+factor/4) * 256); // nominal formant shift for a different voice pitch | |||||
| } | |||||
| break; | |||||
| { | |||||
| double factor; | |||||
| // default is pitch 82 118 | |||||
| n = sscanf(p,"%d %d",&pitch1,&pitch2); | |||||
| voice->pitch_base = (pitch1 - 9) << 12; | |||||
| voice->pitch_range = (pitch2 - pitch1) * 108; | |||||
| factor = double(pitch1 - 82)/82; | |||||
| voice->formant_factor = (int)((1+factor/4) * 256); // nominal formant shift for a different voice pitch | |||||
| } | |||||
| break; | |||||
| case V_STRESSLENGTH: // stressLength | case V_STRESSLENGTH: // stressLength | ||||
| stress_lengths_set = Read8Numbers(p,stress_lengths); | stress_lengths_set = Read8Numbers(p,stress_lengths); | ||||
| case V_DICTRULES: // conditional dictionary rules and list entries | case V_DICTRULES: // conditional dictionary rules and list entries | ||||
| case V_NUMBERS: | case V_NUMBERS: | ||||
| // expect a list of numbers | |||||
| case V_STRESSOPT: | |||||
| // expect a list of numbers | |||||
| while(*p != 0) | while(*p != 0) | ||||
| { | { | ||||
| while(isspace(*p)) p++; | while(isspace(*p)) p++; | ||||
| if((n = atoi(p)) > 0) | if((n = atoi(p)) > 0) | ||||
| { | { | ||||
| p++; | p++; | ||||
| if((key==V_DICTRULES) && (n < 32)) | |||||
| conditional_rules |= (1 << n); | |||||
| if(n < 32) | |||||
| { | |||||
| if(key==V_DICTRULES) | |||||
| conditional_rules |= (1 << n); | |||||
| else if(key==V_NUMBERS) | |||||
| langopts->numbers |= (1 << n); | |||||
| else if(key==V_STRESSOPT) | |||||
| langopts->stress_flags |= (1 << n); | |||||
| } | |||||
| else | else | ||||
| if((key==V_NUMBERS) && (n < 32)) | |||||
| langopts->numbers |= (1 << n); | |||||
| else | |||||
| if((key==V_NUMBERS) && (n < 64)) | |||||
| langopts->numbers |= (1 << (n-32)); | |||||
| else | |||||
| fprintf(stderr,"Bad option number %d\n", n); | |||||
| { | |||||
| if((key==V_NUMBERS) && (n < 64)) | |||||
| langopts->numbers |= (1 << (n-32)); | |||||
| else | |||||
| fprintf(stderr,"Bad option number %d\n", n); | |||||
| } | |||||
| } | } | ||||
| while(isalnum(*p)) p++; | while(isalnum(*p)) p++; | ||||
| } | } | ||||
| case V_STRESSRULE: | case V_STRESSRULE: | ||||
| sscanf(p,"%d %d %d %d",&langopts->stress_rule, | sscanf(p,"%d %d %d %d",&langopts->stress_rule, | ||||
| &langopts->stress_flags, | |||||
| &langopts->unstressed_wd1, | |||||
| &langopts->unstressed_wd2); | |||||
| &langopts->stress_flags, | |||||
| &langopts->unstressed_wd1, | |||||
| &langopts->unstressed_wd2); | |||||
| break; | break; | ||||
| case V_CHARSET: | case V_CHARSET: | ||||
| break; | break; | ||||
| case V_TONE: | case V_TONE: | ||||
| { | |||||
| int tone_data[12]; | |||||
| ReadTonePoints(p,tone_data); | |||||
| SetToneAdjust(voice,tone_data); | |||||
| } | |||||
| break; | |||||
| { | |||||
| int tone_data[12]; | |||||
| ReadTonePoints(p,tone_data); | |||||
| SetToneAdjust(voice,tone_data); | |||||
| } | |||||
| break; | |||||
| case V_VOICING: | case V_VOICING: | ||||
| if(sscanf(p,"%d",&value)==1) | if(sscanf(p,"%d",&value)==1) | ||||
| break; | break; | ||||
| case V_BREATH: | case V_BREATH: | ||||
| voice->breath[0] = Read8Numbers(p,&voice->breath[1]); | |||||
| for(ix=1; ix<8; ix++) | |||||
| { | |||||
| if(ix % 2) | |||||
| voice->breath[ix] = -voice->breath[ix]; | |||||
| } | |||||
| voice->breath[0] = Read8Numbers(p,&voice->breath[1]); | |||||
| for(ix=1; ix<8; ix++) | |||||
| { | |||||
| if(ix % 2) | |||||
| voice->breath[ix] = -voice->breath[ix]; | |||||
| } | |||||
| break; | break; | ||||
| case V_BREATHW: | case V_BREATHW: | ||||
| voice->breathw[0] = Read8Numbers(p,&voice->breathw[1]); | |||||
| voice->breathw[0] = Read8Numbers(p,&voice->breathw[1]); | |||||
| break; | break; | ||||
| case V_CONSONANTS: | case V_CONSONANTS: | ||||
| break; | break; | ||||
| case V_MBROLA: | case V_MBROLA: | ||||
| { | |||||
| int srate = 16000; | |||||
| char name[40]; | |||||
| char phtrans[40]; | |||||
| { | |||||
| int srate = 16000; | |||||
| char name[40]; | |||||
| char phtrans[40]; | |||||
| phtrans[0] = 0; | |||||
| sscanf(p,"%s %s %d",name,phtrans,&srate); | |||||
| if(LoadMbrolaTable(name,phtrans,srate) != EE_OK) | |||||
| { | |||||
| fprintf(stderr,"mbrola voice not found\n"); | |||||
| } | |||||
| voice->samplerate = srate; | |||||
| phtrans[0] = 0; | |||||
| sscanf(p,"%s %s %d",name,phtrans,&srate); | |||||
| if(LoadMbrolaTable(name,phtrans,srate) != EE_OK) | |||||
| { | |||||
| fprintf(stderr,"mbrola voice not found\n"); | |||||
| } | } | ||||
| break; | |||||
| voice->samplerate = srate; | |||||
| } | |||||
| break; | |||||
| case V_KLATT: | case V_KLATT: | ||||
| voice->klattv[0] = 1; // default source: IMPULSIVE | voice->klattv[0] = 1; // default source: IMPULSIVE | ||||
| SetSpeed(3); | SetSpeed(3); | ||||
| break; | break; | ||||
| case V_DICTMIN: | |||||
| case V_DICTMIN: | |||||
| sscanf(p,"%d",&dict_min); | sscanf(p,"%d",&dict_min); | ||||
| break; | |||||
| break; | |||||
| default: | default: | ||||
| if((key & 0xff00) == 0x100) | if((key & 0xff00) == 0x100) | ||||
| } | } | ||||
| voice->phoneme_tab_ix = ix; | voice->phoneme_tab_ix = ix; | ||||
| new_translator->phoneme_tab_ix = ix; | new_translator->phoneme_tab_ix = ix; | ||||
| new_translator->dict_min_size = dict_min; | |||||
| new_translator->dict_min_size = dict_min; | |||||
| LoadDictionary(new_translator, new_dictionary, control & 4); | LoadDictionary(new_translator, new_dictionary, control & 4); | ||||
| if(dictionary_name[0]==0) | if(dictionary_name[0]==0) | ||||
| return(NULL); // no dictionary loaded | return(NULL); // no dictionary loaded | ||||
| // match on voice name | // match on voice name | ||||
| score += 500; | score += 500; | ||||
| } | } | ||||
| else | |||||
| if(strcmp(voice_spec->name,voice->identifier)==0) | |||||
| else if(strcmp(voice_spec->name,voice->identifier)==0) | |||||
| { | { | ||||
| score += 400; | score += 400; | ||||
| } | } | ||||
| } | } | ||||
| if(((voice_spec->gender == 1) || (voice_spec->gender == 2)) && | if(((voice_spec->gender == 1) || (voice_spec->gender == 2)) && | ||||
| ((voice->gender == 1) || (voice->gender == 2))) | |||||
| ((voice->gender == 1) || (voice->gender == 2))) | |||||
| { | { | ||||
| if(voice_spec->gender == voice->gender) | if(voice_spec->gender == voice->gender) | ||||
| score += 50; | score += 50; | ||||
| { | { | ||||
| match_fname = ix; // matching identifier, use this if no matching name | match_fname = ix; // matching identifier, use this if no matching name | ||||
| } | } | ||||
| else | |||||
| if(strcmp(last_part,&id[strlen(id)-last_part_len])==0) | |||||
| else if(strcmp(last_part,&id[strlen(id)-last_part_len])==0) | |||||
| { | { | ||||
| match_fname2 = ix; | match_fname2 = ix; | ||||
| } | } | ||||
| gender = 0; | gender = 0; | ||||
| if((voice_select2.gender == 2) || ((voice_select2.age > 0) && (voice_select2.age < 13))) | if((voice_select2.gender == 2) || ((voice_select2.age > 0) && (voice_select2.age < 13))) | ||||
| gender = 2; | gender = 2; | ||||
| else | |||||
| if(voice_select2.gender == 1) | |||||
| else if(voice_select2.gender == 1) | |||||
| gender = 1; | gender = 1; | ||||
| #define AGE_OLD 60 | #define AGE_OLD 60 | ||||
| } | } | ||||
| #else | #else | ||||
| #ifdef PLATFORM_WINDOWS | #ifdef PLATFORM_WINDOWS | ||||
| WIN32_FIND_DATAA FindFileData; | |||||
| HANDLE hFind = INVALID_HANDLE_VALUE; | |||||
| WIN32_FIND_DATAA FindFileData; | |||||
| HANDLE hFind = INVALID_HANDLE_VALUE; | |||||
| #undef UNICODE // we need FindFirstFileA() which takes an 8-bit c-string | #undef UNICODE // we need FindFirstFileA() which takes an 8-bit c-string | ||||
| sprintf(fname,"%s\\*",path); | sprintf(fname,"%s\\*",path); | ||||
| if(FindFileData.cFileName[0] != '.') | if(FindFileData.cFileName[0] != '.') | ||||
| { | { | ||||
| sprintf(fname,"%s%c%s",path,PATHSEP,FindFileData.cFileName); | |||||
| ftype = GetFileLength(fname); | |||||
| if(ftype == -2) | |||||
| { | |||||
| // a sub-sirectory | |||||
| GetVoices(fname); | |||||
| } | |||||
| else | |||||
| if(ftype > 0) | |||||
| { | |||||
| // a regular line, add it to the voices list | |||||
| if((f_voice = fopen(fname,"r")) == NULL) | |||||
| continue; | |||||
| // pass voice file name within the voices directory | |||||
| voice_data = ReadVoiceFile(f_voice, fname+len_path_voices, FindFileData.cFileName); | |||||
| fclose(f_voice); | |||||
| if(voice_data != NULL) | |||||
| { | |||||
| voices_list[n_voices_list++] = voice_data; | |||||
| } | |||||
| } | |||||
| sprintf(fname,"%s%c%s",path,PATHSEP,FindFileData.cFileName); | |||||
| ftype = GetFileLength(fname); | |||||
| if(ftype == -2) | |||||
| { | |||||
| // a sub-sirectory | |||||
| GetVoices(fname); | |||||
| } | |||||
| else if(ftype > 0) | |||||
| { | |||||
| // a regular line, add it to the voices list | |||||
| if((f_voice = fopen(fname,"r")) == NULL) | |||||
| continue; | |||||
| // pass voice file name within the voices directory | |||||
| voice_data = ReadVoiceFile(f_voice, fname+len_path_voices, FindFileData.cFileName); | |||||
| fclose(f_voice); | |||||
| if(voice_data != NULL) | |||||
| { | |||||
| voices_list[n_voices_list++] = voice_data; | |||||
| } | |||||
| } | |||||
| } | } | ||||
| } while(FindNextFileA(hFind, &FindFileData) != 0); | } while(FindNextFileA(hFind, &FindFileData) != 0); | ||||
| FindClose(hFind); | FindClose(hFind); | ||||
| if(n_voices_list >= (N_VOICES_LIST-2)) | if(n_voices_list >= (N_VOICES_LIST-2)) | ||||
| break; // voices list is full | break; // voices list is full | ||||
| if(ent->d_name[0] == '.') | |||||
| continue; | |||||
| if(ent->d_name[0] == '.') | |||||
| continue; | |||||
| sprintf(fname,"%s%c%s",path,PATHSEP,ent->d_name); | sprintf(fname,"%s%c%s",path,PATHSEP,ent->d_name); | ||||
| // a sub-sirectory | // a sub-sirectory | ||||
| GetVoices(fname); | GetVoices(fname); | ||||
| } | } | ||||
| else | |||||
| if(ftype > 0) | |||||
| else if(ftype > 0) | |||||
| { | { | ||||
| // a regular line, add it to the voices list | // a regular line, add it to the voices list | ||||
| if((f_voice = fopen(fname,"r")) == NULL) | if((f_voice = fopen(fname,"r")) == NULL) | ||||
| variant_name = ExtractVoiceVariantName(buf, 0, 1); | variant_name = ExtractVoiceVariantName(buf, 0, 1); | ||||
| for(ix=0; ;ix++) | |||||
| for(ix=0; ; ix++) | |||||
| { | { | ||||
| // convert voice name to lower case (ascii) | // convert voice name to lower case (ascii) | ||||
| if((buf[ix] = tolower(buf[ix])) == 0) | if((buf[ix] = tolower(buf[ix])) == 0) | ||||
| // sort the voices list | // sort the voices list | ||||
| qsort(voices_list,n_voices_list,sizeof(espeak_VOICE *), | qsort(voices_list,n_voices_list,sizeof(espeak_VOICE *), | ||||
| (int (__cdecl *)(const void *,const void *))VoiceNameSorter); | |||||
| (int (__cdecl *)(const void *,const void *))VoiceNameSorter); | |||||
| if(voice_spec) | if(voice_spec) |