From 03c1cbc3e146996e27488996599c5c1c955d8b07 Mon Sep 17 00:00:00 2001 From: JRMeyer Date: Tue, 11 Oct 2016 18:14:36 +0200 Subject: [PATCH 1/9] added Gulnazs translations --- dictsource/ky_list | 77 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) diff --git a/dictsource/ky_list b/dictsource/ky_list index 9c2c0e34..c2bd726c 100644 --- a/dictsource/ky_list +++ b/dictsource/ky_list @@ -28,6 +28,83 @@ _2 ek'i _3 'ytS _4 t'Ort _5 b'eS +_6 aL'tI +_7 dZe'ti +_8 se'giz +_9 to'Guz +_10 'on +_11 onb'ir +_12 onek'i +_13 on'ytS +_14 ont'Ort +_15 onb'eS +_16 onaL'tI +_17 ondZe'ti +_18 onse'giz +_19 onto'Guz +_2X dZIjIr'ma +_3X o'tuz +_4X 'qIrq +_5X e'ly: +_6X aLtI'mIS +_7X dZeti'miS +_8X sek'sen +_9X toq'son +_0C dZyz +_2C eki'dZyz +_3C ytS'dZyz +_4C tOrt'dZyz +_5C beS'dZyz +_6C aLtI'dZyz +_7C dZeti'dZyz +_8C segiz'dZyz +_9C toGuz'dZyz + +_0M1 'miN +_1MA2 mili'on +_0M2 milion'dor +_1MA3 mili'art +_0M3 miliart'tar +_dpt _:ja'na_: + +// symbols +@ majmyl'tSa +# tortSo $max3 +$ dol'lar +% prats'ent $max3 +^ kr'ySka +& ampers'and +* dZILdIz'tSa $max3 ++ qo'Su: $max3 += bara'bar $max3 +/ sl'eS $max3 +\ beksl'eS $max3 +_- sIzIq'tSa +_ podtS;'8rk $max3 +~ t'ilda +邃・no'mer + + +_( qaSa:a'tSu: -кашаа ачуу +_) qaSa:dZa'bu: -кашаа жабуу +_| v'ert +_{ otkrfi'gur +_} zakrfi'gur +_[ otkrkvad'rat +_] zakrkvad'rat +_> 'tSoN +_< kitSi'ne +_ツォ otkrug'lof +_ツサ zakrug'lof +_! ilep bel'gi +_? suro: bel'gi +_. tSe'kit +_, y'tyr +_` ak'tsent +_" tIrmaq'tSa +_' aposto'rof +_; tSe'kit y'tyr +_: qoS tSe'kit From 4b6889844e674e91f6267094f415d40075a3df9b Mon Sep 17 00:00:00 2001 From: JRMeyer Date: Thu, 13 Oct 2016 14:22:08 +0200 Subject: [PATCH 2/9] added ts but still not working for some reason --- dictsource/ky_list | 3 ++- phsource/ph_kyrgyz | 12 +++++++++--- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/dictsource/ky_list b/dictsource/ky_list index c2bd726c..6ada11ea 100644 --- a/dictsource/ky_list +++ b/dictsource/ky_list @@ -23,6 +23,7 @@ // Numbers +_0 'noL _1 b'ir _2 ek'i _3 'ytS @@ -80,7 +81,7 @@ $ dol'lar / sl'eS $max3 \ beksl'eS $max3 _- sIzIq'tSa -_ podtS;'8rk $max3 +_ pod'tSerk $max3 ~ t'ilda 邃・no'mer diff --git a/phsource/ph_kyrgyz b/phsource/ph_kyrgyz index c443ce1b..361d5cd7 100644 --- a/phsource/ph_kyrgyz +++ b/phsource/ph_kyrgyz @@ -447,9 +447,15 @@ phoneme b endphoneme phoneme ts - ipa ts - Length 10 - import_phoneme consonants/ts + vls alv afr sibilant + voicingswitch dz + lengthmod 2 + Vowelin f1=0 f2=1700 -300 300 f3=-100 80 + Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20 + IF nextPh(isPause2) THEN + WAV(ustop/ts_) + ENDIF + WAV(ustop/ts) endphoneme phoneme tS // **ch**urch From b7f8d690956b18dc622bca4530efaa724e610ec5 Mon Sep 17 00:00:00 2001 From: JRMeyer Date: Thu, 13 Oct 2016 14:35:31 +0200 Subject: [PATCH 3/9] ts now added --- phsource/#phonemes# | 1982 +++++++++++++++++++++++++++++++++++++++++++ phsource/ph_kyrgyz | 2 +- 2 files changed, 1983 insertions(+), 1 deletion(-) create mode 100644 phsource/#phonemes# diff --git a/phsource/#phonemes# b/phsource/#phonemes# new file mode 100644 index 00000000..f208ac7b --- /dev/null +++ b/phsource/#phonemes# @@ -0,0 +1,1982 @@ + +// This is the master phoneme file. + + +// The base phoneme table contains the utility phonemes, the consonants, +// and a schwa. The vowels are defined in the language specific phoneme +// tables, which can also redefine consonants if they wish. + + +//******************************************************************* +// UTILITY PHONEMES +//******************************************************************* + + +phoneme % // Unstressed + stress + stress_type 1 +endphoneme + +phoneme %% // Diminished stress + stress + stress_type 0 +endphoneme + +phoneme \, // [,] Secondary stress + stress + stress_type 2 +endphoneme + +phoneme \,\, // [,,] Secondary stress + stress + stress_type 3 +endphoneme + +phoneme ' // Primary stress + stress + stress_type 4 +endphoneme + +phoneme '' // Primary stress (priority) + stress + stress_type 5 +endphoneme + +phoneme '! // Primary stress (emphasized) + stress + stress_type 6 +endphoneme + +phoneme = // Place stress on previous vowel + stress + stress_type 2 +endphoneme + +phoneme || // End Word + pause + lengthmod 9 // no effect +endphoneme + +phoneme _ // Short pause + pause + starttype _ endtype _ + lengthmod 1 + length 25 +endphoneme + +phoneme _! // Short pause, don't replace by linking + pause + starttype _ endtype _ + lengthmod 1 + nolink + length 35 +endphoneme + +phoneme _| // Very short pause + pause + starttype _ endtype _ + lengthmod 5 + length 1 +endphoneme + +phoneme _: // Standard pause + pause + starttype _ endtype _ + lengthmod 1 + length 75 +endphoneme + +phoneme _:: // Long pause + pause + starttype _ endtype _ + lengthmod 1 + length 150 +endphoneme + +phoneme _;_ // clause pause + pause + starttype _ endtype _ + lengthmod 1 + length 200 +endphoneme + +phoneme _^_ // Change dictionary (followed by language-code in ascii + pause + starttype _ endtype _ + lengthmod 1 + length 10 +endphoneme + +phoneme _X1 // a language specific action + pause + starttype _ endtype _ + lengthmod 1 + length 10 +endphoneme + +phoneme ? // glottal stop + vls glt stop + lengthmod 3 // ?? + nolink + Vowelin glstop + Vowelout glstop + WAV(ustop/null) +endphoneme + + +phoneme : // lengthen previous vowel by "length" + virtual + length 70 +endphoneme + +phoneme - // Indicates the previous phoneme is a syllabic consonant + virtual +endphoneme + + +// Some default vowel definitions + +phoneme @ // Schwa, e.g. alph**a** + vowel starttype #@ endtype #@ + unstressed + length 140 + FMT(vowel/@) +endphoneme + + +phoneme @- // very short schwa + vowel starttype #@ endtype #@ + unstressed nonsyllabic + + ipa ə + IF nextPhW(*) OR nextPhW(r) THEN + ipa NULL // @-* is used to make 'r' + ENDIF + length 50 + FMT(vowel/@-) +endphoneme + + +phoneme a // tr**a**p + vowel starttype #a endtype #a + length 180 + FMT(vowel/a) +endphoneme + + +phoneme e // German **eh**, French **é** + vowel starttype #e endtype #e + length 170 + FMT(vowel/e) +endphoneme + + +phoneme i + vowel starttype #i endtype #i + length 170 + IfNextVowelAppend(;) + FMT(vowel/i) +endphoneme + + +phoneme o // German **oo**, French **o** + vowel starttype #o endtype #o + length 170 + FMT(vowel/oo) +endphoneme + + +phoneme u + vowel starttype #u endtype #u + length 170 + FMT(vowel/u) +endphoneme + + +// Syllablic consonants +//===================== + +phoneme m- + vowel starttype #@ endtype #@ + ipa mU+0329 + lengthmod 4 + length 170 + + IF thisPh(isWordStart) THEN + length 190 + ENDIF + IF KlattSynth THEN + FMT(klatt/m-syl) + ENDIF + FMT(m/m-syl) +endphoneme + +phoneme n- + vowel starttype #@ endtype #@ + ipa nU+0329 + lengthmod 4 + length 170 + + IF thisPh(isWordStart) THEN + length 190 + ENDIF + IF KlattSynth THEN + FMT(klatt/n-syl) + ENDIF + FMT(n/n-syl) +endphoneme + +phoneme N- + vowel starttype #e endtype #e + ipa ŋU+0329 + lengthmod 4 + length 190 + FMT(nn/nn-syl) +endphoneme + + +//******************************************************************* +// Other sounds +//******************************************************************* + +phoneme #X1 // click, use for indicating capital letters + vls alv frc sibilant + lengthmod 3 + WAV(ustop/percus10, 60) +endphoneme + + +//******************************************************************* +// VIRTUAL - referred to in vowels' vowel starttype and endtype +// These each apply to a class of vowels +//******************************************************************* + +phoneme #@ virtual +endphoneme + +phoneme #a virtual +endphoneme + +phoneme #e virtual +endphoneme + +phoneme #i virtual +endphoneme + +phoneme #o virtual +endphoneme + +phoneme #u virtual +endphoneme + + +//******************************************************************* +// SONORANTS +//******************************************************************* + + +phoneme r- // syllabic r + vowel starttype #@ endtype #@ + ipa rU+0329 + unstressed + length 220 + FMT(vowelr/r-voc) +endphoneme + +phoneme l- // syllabic l + vowel starttype #@ endtype #@ + ipa lU+0329 + unstressed + length 200 + FMT(vwl_hi/l-voc) +endphoneme + + +phoneme r // **r**ed (Omitted if not immediately followed by a vowel) + liquid rhotic + ipa ɹ + lengthmod 7 + + IF nextPh(isNotVowel) THEN + ChangePhoneme(r/) + ENDIF + + NextVowelStarts + VowelStart(r/r@, -15) + VowelStart(r/ra, -15) + VowelStart(r/re, -15) + VowelStart(r/ri, -15) + VowelStart(r/ro, -15) + VowelStart(r/ru, -15) + EndSwitch + + IF prevPh(isVowel) THEN + VowelEnding(r/xr, -50) + ENDIF + + IF prevPh(isPause) THEN + FMT(r/_r) + ELIF prevPh(t) OR prevPh(p) OR prevPh(k) THEN + FMT(r/tr) + ENDIF + + FMT(r/r) +endphoneme + + + +phoneme r/ // used for [r] when not preceding a vowel + liquid rhotic + lengthmod 2 + + IF nextPh(n) THEN + FMT(r3/r_n) addWav(r3/rx) + ENDIF + + IF prevPh(t) OR prevPh(p) OR prevPh(k) THEN + FMT(r/trr) + ENDIF + + IF prevPh(isNotVowel) THEN + FMT(r/rr) + ENDIF + + FMT(r3/r_) addWav(r3/rx) +endphoneme + + + +phoneme R + liquid + trill + lengthmod 6 + ipa r + IF nextPhW(R2) THEN + ipa NULL + ENDIF + Vowelin f1=0 f2=1600 -300 300 f3=-200 80 + Vowelout f1=2 f2=1600 -300 300 f3=-200 80 brk + FMT(r3/r_trill2) addWav(r3/r_trill2.wav, 65) +endphoneme + +phoneme R2 // this is [R] from Slovak/Czech + liquid + trill + lengthmod 6 + ipa r + Vowelin f1=0 f2=1700 -300 300 f3=-300 80 + Vowelout f1=2 f2=1700 -300 300 f3=-300 80 brk + FMT(r3/r_trill) addWav(r3/r_trill.wav, 50) +endphoneme + +phoneme R3 // Afrikaans + liquid + trill + lengthmod 6 + length 60 + ipa r + Vowelin f1=2 f2=2700 -300 -200 f3=-1300 80 + Vowelout f1=2 f2=1700 -300 -200 f3=-1300 80 + + // vowel modifier is the same as for [r] + NextVowelStarts + VowelStart(r/r@, -15) + VowelStart(r/ra, -15) + VowelStart(r/re, -15) + VowelStart(r/ri, -15) + VowelStart(r/ro, -15) + VowelStart(r/ru, -15) + EndSwitch + + IF prevPh(isVowel) THEN + VowelEnding(r/xr, -50) + ENDIF + + FMT(r3/r_trill) addWav(r3/r_trill3.wav) +endphoneme + + +phoneme r" // uvular trill + vcd uvl frc + ipa ʀ + lengthmod 6 + IF nextPh(isNotVowel) THEN + FMT(r3/r_uvl) addWav(r3/r_uvl.wav, 50) + ENDIF + FMT(r3/r_uvl) addWav(r3/r_uvl.wav, 75) +endphoneme + + +procedure vowelstart_l + NextVowelStarts + VowelStart(l/l@) + VowelStart(l/la) + VowelStart(l/le) + VowelStart(l/li, -10) + VowelStart(l/lo) + VowelStart(l/lu) + EndSwitch +endprocedure + +phoneme l + liquid + lengthmod 7 + + IF nextPh(isNotVowel) THEN + ChangePhoneme(l/) + ENDIF + + IF nextPh(isNotVowel) THEN + // in case the next phoneme is no longer a vowel, in pass=2 + PrevVowelEndings + VowelEnding(l/L1_@L, -60) + VowelEnding(l/L1_aL, -40) + VowelEnding(l/L1_eL, -30) + VowelEnding(l/L1_iL, -30) + VowelEnding(l/L1_oL, -40) + VowelEnding(l/L1_uL, -40) + EndSwitch + + FMT(l/l_) + RETURN + ENDIF + + CALL vowelstart_l + + IF prevPh(#@) THEN + VowelEnding(l/xl, -50) + ELIF prevPh(isVowel) THEN + VowelEnding(l/xl, -40) + ENDIF + + IF prevPh(isPause) THEN + FMT(l/_l) + ENDIF + + IF prevPh(t) THEN + FMT(l/tl) + ENDIF + + IF prevPh(l/) THEN + FMT(l/l_long) // double l, make it longer + ENDIF + + FMT(l/l) +endphoneme + + +phoneme l/ // used for [l] when not before a vowel + liquid + lengthmod 7 + + IF nextPh(isVowel) THEN + ChangePhoneme(l) + ENDIF + + PrevVowelEndings + VowelEnding(l/L1_@L, -60) + VowelEnding(l/L1_aL, -40) + VowelEnding(l/L1_eL, -30) + VowelEnding(l/L1_iL, -30) + VowelEnding(l/L1_oL, -40) + VowelEnding(l/L1_uL, -40) + EndSwitch + + // we need to replace these with new FMT sequeces for jl and wl + IF prevPhW(j) THEN + FMT(l/L1_eL) + ENDIF + IF prevPhW(w) THEN + FMT(l/L1_eL) + ENDIF + + FMT(l/l_) +endphoneme + +phoneme l/2 // 'dark' [l] after a vowel + liquid + lengthmod 7 + + IF nextPh(isVowel) THEN + ChangePhoneme(l) + ENDIF + + CALL vowelstart_l + + IF prevPhW(j) THEN + FMT(l/L2_eL) + ENDIF + IF prevPhW(w) THEN + FMT(l/L2_uL) + ENDIF + + PrevVowelEndings + VowelEnding(l/L2_@L, -60) + VowelEnding(l/L2_aL, -50) + VowelEnding(l/L2_eL, -40) + VowelEnding(l/L2_iL, -30) + VowelEnding(l/L2_oL, -50) + VowelEnding(l/L2_uL, -40) + EndSwitch +endphoneme + + +phoneme l/3 // Replacement for [l/] + liquid + lengthmod 7 + + IF nextPh(isVowel) THEN + ChangePhoneme(l) + ENDIF + + PrevVowelEndings + VowelEnding(l/l_@) + VowelEnding(l/l_a) + VowelEnding(l/l_e) + VowelEnding(l/l_i) + VowelEnding(l/l_o) + VowelEnding(l/l_u, -20) + EndSwitch + +// IF nextPh(isLiquid) THEN +// FMT(l/_l) +// ENDIF + + FMT(l/l_) +endphoneme + + + +phoneme l^ // palatal l, e.g. Italian **g**li + liquid + ipa ʎ + lengthmod 7 + Vowelout len=60 lenadd rate + length 100 + + NextVowelStarts + VowelStart(l^/j2@) + VowelStart(l^/j2a) + VowelStart(l^/j2e) + VowelStart(l^/j2i) + VowelStart(l^/j2o) + VowelStart(l^/j2u) + EndSwitch + + IF prevPh(isPause) THEN + FMT(l^/_l^) + ENDIF + + FMT(l^/l^) +endphoneme + + +phoneme l. + liquid rfx + ipa ɭ + lengthmod 7 + FMT(l^/l_rfx) +endphoneme + + +phoneme L/ + import_phoneme base/l/2 +endphoneme + +phoneme L // velar L + liquid + lengthmod 7 + + IF nextPh(isNotVowel) THEN + ChangePhoneme(L/) // use 'dark' [l] after a vowel + ENDIF + + VowelEnding(ll/xll, -40) + + IF prevPh(isPause) THEN + FMT(ll/_ll) + ENDIF + + FMT(ll/ll) +endphoneme + + + + +phoneme w + liquid + lengthmod 7 + starttype #u + + IF nextPh(isVowel) THEN + NextVowelStarts + VowelStart(w/w@) + VowelStart(w/wa) + VowelStart(w/we) + VowelStart(w/wi) + VowelStart(w/wo) + VowelStart(w/wu) + EndSwitch + + VowelEnding(w/xw, -30) + + IF prevPhW(isNasal) THEN + FMT(w/w) + ELSEIF prevPhW(h) THEN + // none, [hw] + ELSE + FMT(w/_w) + ENDIF + ELSE + // no vowel follows + Vowelout len=50 + IF prevPh(#i) THEN + FMT(w/iw_) + ENDIF + FMT(w/w_) + ENDIF +endphoneme + + + + +phoneme j // **y**es + liquid palatal starttype #i + lengthmod 7 + + IF nextPhW(isVowel) THEN + NextVowelStarts + VowelStart(j/j@) + VowelStart(j/ja) + VowelStart(j/je) + VowelStart(j/ji) + VowelStart(j/jo) + VowelStart(j/ju) + EndSwitch + + VowelEnding(j/xj, -30) + + IF prevPh(isPause) THEN + FMT(j/_j) + ENDIF + ELSE + // no vowel follows + Vowelout len=70 + FMT(j/j_) + ENDIF +endphoneme + + +phoneme ; // linking j, used between (i) vowels and a following vowel + // also to palatalize consonants + liquid palatal + lengthmod 0 + + IF prevPh(#i) THEN + ipa NULL // linking after i vowel, don't show in ipa + ENDIF + + IF nextPh(isNotVowel) THEN + ChangePhoneme(NULL) // this is to ignore this phoneme if not before a vowel + ENDIF + + NextVowelStarts + VowelStart(j2/j2@) + VowelStart(j2/j2a) + VowelStart(j2/j2e) + VowelStart(j2/j2i) + VowelStart(j2/j2o) + VowelStart(j2/j2u) + EndSwitch + + IF prevPh(#i) THEN + VowelEnding(j2/xj2, -40) + ENDIF + + IF prevPh(isPause) THEN + FMT(j2/_j2) + ENDIF +endphoneme + + +//******************************************************************* +// NASAL CONSONANTS +//******************************************************************* + + +phoneme m + vcd blb nasal + Vowelout f1=2 f2=1000 -500 -350 f3=-200 80 brk + lengthmod 4 + + IF KlattSynth THEN + Vowelin f1=0 f2=1000 -50 -200 f3=-200 80 + IF nextPh(isPause2) THEN + FMT(klatt/m_) + ENDIF + FMT(klatt/m) + ENDIF + + NextVowelStarts + VowelStart(m/m@) + VowelStart(m/ma) + VowelStart(m/me) + VowelStart(m/mi) + VowelStart(m/mo) + VowelStart(m/mu) + EndSwitch + + IF prevPh(isNotVowel) AND nextPhW(isLiquid) THEN + FMT(m/mj) + ELIF prevPh(isPause) THEN + FMT(m/_m) + ELIF nextPh(isNotVowel) THEN + FMT(m/m_) + ENDIF +endphoneme + + +phoneme n + vcd alv nasal + Vowelout f1=2 f2=1500 -300 250 f3=-100 80 rms=20 brk + lengthmod 4 + + IF KlattSynth THEN + Vowelin f1=0 f2=1500 -200 200 f3=0 80 + FMT(klatt/n) + ENDIF + + NextVowelStarts + VowelStart(n/n@) + VowelStart(n/na) + VowelStart(n/ne) + VowelStart(n/ni) + VowelStart(n/no) + VowelStart(n/nu) + EndSwitch + + IF prevPh(isNotVowel) AND nextPhW(isLiquid) THEN + FMT(n/nj) + ELIF prevPh(isPause) OR prevPh(n) THEN + FMT(n/_n) + ELIF nextPh(isNotVowel) THEN + FMT(n/n_) + ENDIF +endphoneme + + +phoneme n. + vcd rfx nasal + ipa ɳ + starttype n endtype n + Vowelin f1=2 f2=1700 -300 300 f3=-500 80 rms=20 colr=2 + Vowelout f1=2 f2=1700 -300 300 f3=-500 80 rms=20 brk colr=2 + lengthmod 4 + + IF KlattSynth THEN + FMT(klatt/nr) + ENDIF + + NextVowelStarts + VowelStart(n/nr@) + VowelStart(n/nra) + VowelStart(n/nre) + VowelStart(n/nri) + VowelStart(n/nro) + VowelStart(n/nru) + EndSwitch + + IF prevPh(isNotVowel) AND nextPhW(isLiquid) THEN + FMT(n/nj) + ELIF prevPh(isPause) OR prevPh(n.) THEN + FMT(n/_nr) + ELIF nextPh(isNotVowel) THEN + FMT(n/nr_) + ENDIF +endphoneme + + +phoneme n^ // Spanish **ñ** + vcd pal nasal palatal + ipa ɲ + Vowelout f1=3 f2=2500 300 500 f3=100 80 len=45 brk rate + lengthmod 4 + + IF KlattSynth THEN + VowelStart(klatt/n^@) + FMT(klatt/n^) + ENDIF + + NextVowelStarts + VowelStart(n^/n^@) + VowelStart(n^/n^a) + VowelStart(n^/n^e) + VowelStart(n^/n^i) + VowelStart(n^/n^o) + VowelStart(n^/n^u) + EndSwitch + + IF prevPh(isPause) THEN + FMT(n^/_n^) + ELIF nextPh(isNotVowel) THEN + IF nextPhW(n^) THEN + Length 75 + ELIF prevPhW(n^) THEN + Length 100 + ENDIF + FMT(n^/n^_) + ENDIF +endphoneme + + +phoneme N // si**ng** + vcd vel nasal + Vowelout f1=3 f2=2300 300 400 f3=-200 80 len=40 rms=20 brk + lengthmod 8 // longer than 'n' + + IF KlattSynth THEN + Vowelin f1=0 f2=2100 50 300 f3=0 80 + IF nextPh(isPause2) THEN + FMT(klatt/nn_) + ENDIF + FMT(klatt/nn) + ENDIF + + NextVowelStarts + VowelStart(nn/nn@) + VowelStart(nn/nna) + VowelStart(nn/nne) + VowelStart(nn/nni) + VowelStart(nn/nno) + VowelStart(nn/nnu) + EndSwitch + + IF prevPh(#i) THEN + VowelEnding(nn/inn, -40) + ENDIF + + IF prevPh(isNotVowel) AND nextPhW(isLiquid) THEN + FMT(nn/nnj) + ELIF prevPh(isPause) THEN + FMT(nn/_nn) + ELIF nextPh(isNotVowel) THEN + FMT(nn/nn_) + ENDIF +endphoneme + + +phoneme ** // TEST flap + liquid alv rhotic + ipa ɾ + lengthmod 3 + Vowelout f1=3 f2=1600 -300 300 f3=-300 80 rms=35 len=15 + Vowelin f1=2 f2=1600 -300 300 f3=-100 80 len=20 + + IF prevPh(#i) OR prevPh(#e) THEN + FMT(r3/@tap2) + ENDIF + FMT(r3/@tap) +endphoneme + + + +phoneme * // flap + vcd alv flp rhotic + brkafter + ipa ɾ + lengthmod 3 + + IF prevPhW(@-) THEN + ipa r // @-* sequence for [r] + ENDIF + + IF nextPh(#e) OR nextPh(#i) THEN + Vowelin f1=0 f2=1500 -300 300 f3=-200 80 + FMT(d/tap1) addWav(r3/rx, 150) + FMT(d/tap1) addWav(r3/rx, 150) + ENDIF + + Vowelin f1=2 f2=1500 -300 300 f3=-200 80 + IF nextPh(#a) THEN + FMT(d/tap3) addWav(r3/rx, 200) + ENDIF + + IF nextPh(r) THEN + FMT(d/dr) + ENDIF + + Vowelout f1=3 f2=1500 -400 300 f3=-200 80 rms=35 len=50 + Vowelin f1=0 f2=1500 -300 300 f3=-200 80 + FMT(d/tap3) addWav(r3/rx, 200) +endphoneme + + + +phoneme r. // retroflex + liquid rfx + lengthmod 3 + Vowelout f1=3 f2=1400 -400 300 f3=-400 80 rms=35 len=15 colr=2 + Vowelin f1=2 f2=1400 -400 300 f3=-400 80 len=20 + + IF nextPh(isNotVowel) THEN + FMT(r3/@tap_rfx_) + ENDIF + FMT(r3/@tap_rfx) +endphoneme + + +//******************************************************************* +// VOICED STOPS +//******************************************************************* + + +phoneme b + vcd blb stop + voicingswitch p + Vowelout f1=2 f2=1000 -500 -300 f3=-300 80 brk + lengthmod 5 + + IF PreVoicing THEN + FMT(b/xb) + ENDIF + + IF KlattSynth THEN + Vowelin f1=1 f2=1000 -500 -300 f3=-300 80 + IF nextPh(isPause2) THEN + FMT(klatt/b) addWav(x/b_) + ENDIF + FMT(klatt/b) addWav(x/b) + ENDIF + + IF nextPh(isPause2) THEN + FMT(b/b_) addWav(x/b_) + ELIF nextPh(@-) THEN + FMT(b/b@2) addWav(x/b) + ELIF nextPh(#@) THEN + FMT(b/b@) addWav(x/b) + ELIF nextPh(#a) THEN + FMT(b/ba) addWav(x/b) + ELIF nextPh(#e) THEN + FMT(b/be) addWav(x/b) + ELIF nextPh(#i) THEN + FMT(b/bi) addWav(x/b) + ELIF nextPh(#o) THEN + FMT(b/bo) addWav(x/b) + ELIF nextPh(#u) THEN + FMT(b/bu) addWav(x/b) + ENDIF + + FMT(b/b) addWav(x/b) +endphoneme + + +phoneme d + vcd alv stop + voicingswitch t + lengthmod 5 + Vowelin f1=1 f2=1700 -300 300 f3=-100 80 + Vowelout f1=2 f2=1700 -300 300 f3=-100 80 brk + + IF PreVoicing THEN + FMT(d/xd) + ENDIF + + IF nextPh(isPause2) THEN + FMT(d/d_) addWav(x/d_) +// ELIF nextPh(r) THEN +// FMT(d/dr) addWav(x/d) + ENDIF + + FMT(d/d) addWav(x/d) +endphoneme + + +phoneme d[ + vcd dnt stop + voicingswitch t[ + lengthmod 5 + Vowelin f1=2 f2=1500 -300 300 f3=-150 80 + Vowelout f1=2 f2=1500 -300 300 f3=-150 80 + + IF PreVoicing THEN + FMT(d/xd) + ENDIF + + IF nextPh(isPause2) THEN + FMT(d/d_) addWav(x/d_) + ELIF nextPh(r) THEN + FMT(d/dr) addWav(x/d_dnt, 100) + ENDIF + + FMT(d/d) addWav(x/d_dnt, 100) +endphoneme + + +phoneme dZ // **j**udge + vcd pla afr sibilant + voicingswitch tS + lengthmod 5 + Vowelin f1=2 f2=2300 200 400 f3=100 80 + Vowelout f1=2 f2=2300 250 300 f3=100 80 brk + + IF PreVoicing THEN + FMT(dzh/xdzh) + ENDIF + + IF nextPh(isPause2) THEN + FMT(dzh/dzh_) addWav(x/dzh_) + ENDIF + FMT(dzh/dzh) addWav(x/dzh) +endphoneme + + +phoneme dZ; + vcd pla afr sibilant palatal + voicingswitch tS; + ipa dʑ + lengthmod 5 + Vowelin f1=2 f2=2700 400 600 f3=300 80 rate len=70 + Vowelout f1=2 f2=2700 400 600 f3=300 80 + + IF PreVoicing THEN + FMT(dzh/xdzh) + ENDIF + + IF KlattSynth THEN + IF nextPh(isPause2) THEN + FMT(dzh/dzh_) addWav(x/dzh_) + ENDIF + FMT(dzh/dzh) addWav(x/dz_pzd) + ENDIF + + IF nextPh(isPause2) THEN + FMT(dzh/dzh_) addWav(x/dzh_) + ENDIF + FMT(dzh/dzh) addWav(x/dz_pzd) +endphoneme + + +phoneme J + vcd pal afr sibilant palatal + voicingswitch c + lengthmod 5 + Vowelin f1=2 f2=2700 400 600 f3=300 80 rate len=70 + Vowelout f1=2 f2=2700 400 600 f3=300 80 colr=1 + + IF PreVoicing THEN + FMT(dzh/xdz_pzd) + ENDIF + + IF KlattSynth THEN + IF nextPh(isPause2) THEN + FMT(klatt/dz_pzd_) addWav(x/dzh, 35) + ENDIF + FMT(klatt/dz_pzd) addWav(x/dzh, 45) + ENDIF + + IF nextPh(isPause2) THEN + FMT(dzh/dz_pzd_) addWav(x/dzh, 35) + ENDIF + FMT(dzh/dz_pzd) addWav(x/dzh, 45) +endphoneme + + +phoneme g + vcd vel stop + voicingswitch k + lengthmod 5 + Vowelin f1=2 f2=2300 200 300 f3=-300 80 + Vowelout f1=2 f2=2300 250 300 f3=-300 80 brk + + IF PreVoicing THEN + FMT(g/xg) + ENDIF + + IF nextPh(isPause2) THEN + FMT(g/g_) addWav(x/g_) + ENDIF + FMT(g/g) addWav(x/g2, 150) +endphoneme + + + +//******************************************************************* +// VOICED fricatives +//******************************************************************* + + +phoneme B + vcd blb frc + voicingswitch f + lengthmod 6 + Vowelin f1=2 f2=1000 -300 -200 f3=-100 100 + Vowelout f1=2 f2=1000 -500 -300 f3=-100 60 len=50 + + IF KlattSynth THEN + IF nextPh(isPause2) THEN + FMT(klatt/v_) addWav(vocw/v) + ENDIF + FMT(klatt/bh) addWav(vocw/v) + ENDIF + + IF nextPh(isPause2) THEN + FMT(voc/v_) addWav(vocw/v) + ENDIF + FMT(voc/bh) addWav(vocw/v) +endphoneme + + +phoneme v + vcd lbd frc + voicingswitch f + lengthmod 6 + Vowelin f1=0 f2=1000 -300 -200 f3=-300 100 + Vowelout f1=0 f2=1000 -500 -300 f3=-300 60 len=50 + + IF KlattSynth THEN + Vowelout f1=1 f2=1000 -500 -300 f3=-300 60 len=50 brk + IF nextPh(isPause2) THEN + FMT(klatt/v_) addWav(vocw/v) + ENDIF + FMT(klatt/v) addWav(vocw/v, 150) + ENDIF + + IF nextPh(isPause2) THEN + FMT(voc/v_) addWav(vocw/v) + ENDIF + IF thisPh(isWordStart) AND nextPhW(isLiquid) THEN + Length 70 + ENDIF + FMT(voc/v) addWav(vocw/v) +endphoneme + + +phoneme v# // approximant, not fricative + vcd lbd frc + ipa ʋ + lengthmod 6 + voicingswitch f + Vowelin f1=0 f2=1000 -300 -200 f3=-300 100 + Vowelout f1=0 f2=1000 -500 -300 f3=-300 60 len=50 + IF nextPh(isPause2) THEN + FMT(voc/v#_) + ENDIF + FMT(voc/v#) +endphoneme + + +phoneme D // **th**is + vcd dnt frc + voicingswitch T + lengthmod 6 + Vowelout f1=0 f2=1700 -300 300 f3=-100 60 len=50 + + IF KlattSynth THEN + Vowelin f1=0 f2=1290 -300 300 f3=0 0 + ENDIF + + IF nextPh(isPause2) THEN + FMT(voc/dh_) addWav(vocw/dh) + ENDIF + FMT(voc/dh) addWav(vocw/dh) +endphoneme + + +phoneme z + vcd alv frc sibilant + voicingswitch s + lengthmod 6 + Vowelout f1=0 f2=1700 -300 300 f3=-100 60 len=50 + + IF KlattSynth THEN + Vowelin f1=0 f2=1390 -300 300 f3=0 0 + Vowelout f1=1 f2=1390 -300 300 f3=-100 60 len=50 brk + ENDIF + + IF nextPh(isPause2) THEN + FMT(voc/z_) addWav(ufric/s_, 70) + ENDIF + FMT(voc/z) addWav(ufric/s_, 85) +endphoneme + + +phoneme Z // plea**s**ure + vcd pla frc sibilant + voicingswitch S + lengthmod 6 + Vowelin f1=0 f2=2000 0 300 f3=-200 80 + Vowelout f1=2 f2=2000 0 300 f3=-200 80 brk + + IF KlattSynth THEN + IF nextPh(isPause2) THEN + FMT(klatt/zh_, 60) addWav(vocw/zh, 70) + ENDIF + FMT(klatt/zh) addWav(vocw/zh, 130) + ENDIF + + IF nextPh(isPause2) THEN + FMT(voc/zh_, 60) addWav(vocw/zh, 70) + ENDIF + FMT(voc/zh) addWav(vocw/zh, 130) +endphoneme + + +phoneme z. + vcd pla frc sibilant + ipa ʐ + voicingswitch s. + lengthmod 6 + Vowelin f1=0 f2=1800 -100 300 f3=-300 80 + Vowelout f1=2 f2=1800 -100 300 f3=-300 80 brk + + IF KlattSynth THEN + IF nextPh(isPause2) THEN + FMT(klatt/zh_) addWav(vocw/zh_rfx) + ENDIF + FMT(klatt/zh) addWav(vocw/zh_rfx) + ENDIF + + IF nextPh(isPause2) THEN + FMT(voc/zh_) addWav(vocw/zh_rfx) + ENDIF + FMT(voc/zh) addWav(vocw/zh_rfx) +endphoneme + + +phoneme z; + vcd pal frc sibilant palatal + ipa ʑ + voicingswitch s; + lengthmod 6 + Vowelin f1=2 f2=2700 400 600 f3=300 80 rate len=70 + Vowelout f1=2 f2=2300 250 300 f3=-300 80 brk + + IF nextPh(isPause2) THEN + FMT(voc/z_pzd_) addWav(ufric/s_pzd_, 80) + ENDIF + FMT(voc/z_pzd) addWav(ufric/s_pzd, 80) +endphoneme + + +phoneme Z; + vcd pal frc sibilant palatal + voicingswitch S; + ipa ʑ + lengthmod 6 + Vowelin f1=2 f2=2700 400 600 f3=300 80 rate len=70 + Vowelout f1=2 f2=2300 250 300 f3=-300 80 brk + + IF nextPh(isPause2) THEN + FMT(voc/z_pzd_) addWav(ufric/sh_pzd_) + ENDIF + FMT(voc/z_pzd) addWav(ufric/sh_pzd, 80) +endphoneme + + +phoneme J^ // palatal fricative (Kirshenbaum C) + vcd pal frc palatal + ipa ʝ + voicingswitch C + lengthmod 6 + Vowelin f1=1 f2=2700 400 600 f3=200 70 + Vowelout f1=1 f2=2700 400 600 f3=200 70 len=100 + + FMT(voc/j) addWav(ufric/ch, 25) +endphoneme + + +phoneme Q + vcd vel frc + voicingswitch x + lengthmod 6 + Vowelin f1=2 f2=2300 200 400 f3=-100 80 + Vowelout f1=2 f2=2300 250 300 f3=-300 80 brk + + IF KlattSynth THEN + IF nextPh(isPause2) THEN + FMT(klatt/qqh_) addWav(vocw/Q_) + ENDIF + FMT(klatt/qqh) addWav(vocw/Q) + ENDIF + + IF nextPh(isPause2) THEN + FMT(voc/Q_) addWav(vocw/Q_) + ENDIF + FMT(voc/Q) addWav(vocw/Q) +endphoneme + + +phoneme Q^ + vcd vel frc + lengthmod 6 + Vowelin f1=2 f2=2700 400 600 f3=200 80 + Vowelout f1=2 f2=2700 40 600 f3=200 80 brk + + IF nextPh(isPause2) THEN + FMT(voc/Q_) addWav(vocw/Q_) + ENDIF + FMT(voc/Q) addWav(vocw/Q) +endphoneme + + +phoneme Q" + vcd uvl frc + ipa ʁ + lengthmod 6 + + IF nextPh(isPause2) THEN + FMT(voc/Q_ulv) addWav(ufric/xx, 60) + ENDIF + FMT(voc/Q_ulv) addWav(ufric/xx, 80) +endphoneme + + + + +//******************************************************************* +// UNVOICED STOPS +//******************************************************************* + + +phoneme p + vls blb stop + voicingswitch b + lengthmod 2 + Vowelin f1=0 f2=1000 -50 -100 f3=-200 80 amp=11 + Vowelout f1=0 f2=1000 -500 -350 f3=-300 80 rms=22 + + IF nextPh(isPause2) THEN + WAV(ustop/p_) + ELIF nextPh(r) THEN + WAV(ustop/pr, 70) + ELIF nextPh(R) OR nextPh(R2) THEN + WAV(ustop/pr) + ELIF nextPh(@-) THEN + WAV(ustop/p_unasp) + ELIF nextPh(l) THEN + WAV(ustop/pl) + ENDIF + WAV(ustop/p) +endphoneme + + +phoneme t + vls alv stop + voicingswitch d + lengthmod 2 + Vowelin f1=0 f2=1700 -300 300 f3=-100 80 + Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20 + + IF nextPh(isPause2) THEN + WAV(ustop/t_) + ELIF nextPh(r) OR nextPh(R) OR nextPh(R2) THEN + WAV(ustop/tr) + ELIF nextPh(@-) THEN + WAV(ustop/t_dnt, 50) + ENDIF + WAV(ustop/t, 90) +endphoneme + + +phoneme t[ // dental variant of /t/ + vls dnt stop + voicingswitch d[ + lengthmod 2 + Vowelin f1=1 f2=1500 -250 250 f3=-100 80 amp=16 + Vowelout f1=0 f2=1500 -300 250 f3=-100 80 rms=20 + + IF nextPh(isPause2) THEN + WAV(ustop/t_dnt, 35) + ENDIF + WAV(ustop/t_hi, 70) +endphoneme + + +phoneme tS // **ch**urch + vls pla afr sibilant + voicingswitch dZ + lengthmod 2 + Vowelin f1=0 f2=2300 200 400 f3=-100 80 + + IF nextPh(isPause2) THEN + WAV(ustop/tsh_) + ENDIF + WAV(ustop/tsh) +endphoneme + + +phoneme tS; + vls pal afr sibilant palatal + voicingswitch dZ; + ipa tɕ + lengthmod 2 + Vowelin f1=0 f2=2700 400 600 f3=300 80 rate len=70 + + IF nextPh(isPause2) THEN + WAV(ustop/ts_pzd) + ENDIF + WAV(ustop/ts_pzd) +endphoneme + + +phoneme c + vls pal stop palatal + voicingswitch J + lengthmod 2 + Vowelin f1=0 f2=2700 400 600 f3=300 80 rate len=70 + Vowelout f1=1 f2=2700 400 600 f3=200 70 len=50 colr=1 + + IF nextPh(isPause2) THEN + WAV(ustop/t_pzd, 30) + ENDIF + WAV(ustop/c, 150) +endphoneme + + +phoneme k + vls vel stop + voicingswitch g + lengthmod 2 + Vowelin f1=0 f2=2300 200 300 f3=-200 80 + Vowelout f1=0 f2=2300 300 400 f3=-200 80 rms=20 + + IF KlattSynth THEN + Vowelout f1=0 f2=2300 200 300 f3=-200 80 rms=20 + ENDIF + + IF nextPh(isPause2) THEN + WAV(ustop/k_) + ELIF nextPh(r) OR nextPh(R) OR nextPh(R2) THEN + WAV(ustop/kr) + ELIF nextPh(#i) OR nextPh(;) THEN + WAV(ustop/ki) + ELIF nextPh(l) THEN + WAV(ustop/kl) + ELIF nextPh(@-) THEN + WAV(ustop/k_unasp, 70) + ENDIF + WAV(ustop/k) +endphoneme + + +phoneme q + vls uvl stop + lengthmod 2 + Vowelin f1=1 f2=1700 0 200 f3=-300 80 gpaus f4 rms=30 + Vowelout f1=1 f2=1700 -100 200 f3=-300 80 f4 rms=35 + + IF nextPh(isPause2) THEN + WAV(ustop/q, 40) + ELIF nextPh(#u) THEN + WAV(ustop/q_u, 80) + ENDIF + WAV(ustop/q, 48) +endphoneme + + + +//******************************************************************* +// UNVOICED fricatives +//******************************************************************* + +phoneme f + vls lbd frc + voicingswitch v + lengthmod 3 + Vowelout f1=0 f2=1000 -500 -350 f3=-200 80 + + IF nextPh(isPause) THEN + WAV(ufric/f_) + ENDIF + WAV(ufric/f) +endphoneme + + +phoneme T // **th**in + vls dnt frc + voicingswitch D + lengthmod 3 + Vowelin f1=0 f2=1700 -300 300 f3=-100 80 + Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20 + + IF nextPh(isPause) THEN + WAV(ufric/th_) + ENDIF + WAV(ufric/th) +endphoneme + + +phoneme s + vls alv frc sibilant + voicingswitch z + lengthmod 3 + Vowelin f1=0 f2=1700 -300 300 f3=-100 80 + Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20 + + IF nextPh(isPause) THEN + WAV(ufric/s_) + ELIF nextPh(p) OR nextPh(t) OR nextPh(k) THEN + WAV(ufric/s!) + ENDIF + WAV(ufric/s) +endphoneme + + +phoneme S // **sh**op + vls pla frc sibilant + voicingswitch Z + lengthmod 3 + Vowelin f1=0 f2=2100 100 300 f3=-100 80 + Vowelout f1=0 f2=2100 100 300 f3=-100 80 + + IF nextPh(isPause) THEN + WAV(ufric/sh_) + ENDIF + WAV(ufric/sh) +endphoneme + + +phoneme s. + vls pla frc sibilant + ipa ʂ + voicingswitch z. + lengthmod 3 + Vowelin f1=0 f2=1800 -100 300 f3=-300 80 + Vowelout f1=0 f2=1800 -100 300 f3=-300 80 + + IF nextPh(isPause) THEN + WAV(ufric/sh_rfx, 60) + ENDIF + WAV(ufric/sh_rfx, 90) +endphoneme + + +phoneme s; + vls pal frc sibilant palatal + ipa ʂ + voicingswitch z; + lengthmod 3 + Vowelin f1=1 f2=2700 400 600 f3=200 70 rate len=70 + Vowelout f1=1 f2=2700 400 600 f3=200 70 rate len=70 + + IF nextPh(isPause) THEN + WAV(ufric/s_pzd_) + ENDIF + WAV(ufric/s_pzd) +endphoneme + + +phoneme S; + vls pal frc sibilant palatal + voicingswitch Z; + ipa ɕ + lengthmod 3 + Vowelin f1=1 f2=2700 400 600 f3=200 70 rate len=70 + Vowelout f1=1 f2=2700 400 600 f3=200 70 rate + + IF nextPh(isPause) THEN + WAV(ufric/sh_pzd_) + ENDIF + WAV(ufric/sh_pzd) +endphoneme + + +phoneme l# // Lateral fricative (eg. Welsh "ll") + vls alv frc + ipa ɬ + lengthmod 3 + + NextVowelStarts + VowelStart(l/l@) + VowelStart(l/la) + VowelStart(l/le) + VowelStart(l/li, -10) + VowelStart(l/lo) + VowelStart(l/lu) + EndSwitch + + IF prevPh(isVowel) THEN + VowelEnding(l/xl, -40) + ENDIF + + WAV(ufric/l#, 60) +endphoneme + + +phoneme C // German i**ch** + vls pal frc palatal + lengthmod 3 + Vowelin f1=0 f2=2700 400 600 f3=200 70 + Vowelout f1=0 f2=2700 400 600 f3=200 70 rms=20 + + IF nextPh(isPause) THEN + WAV(ufric/ch_) + ENDIF + WAV(ufric/ch) +endphoneme + + +phoneme x // German bu**ch** + vls vel frc + voicingswitch Q + lengthmod 3 + Vowelin f1=0 f2=2300 200 400 f3=-100 80 + Vowelout f1=0 f2=2300 300 400 f3=-100 80 rms=20 + + IF nextPh(isPause) THEN + WAV(ufric/x_, 60) + ENDIF + WAV(ufric/x_hr, 20) +endphoneme + + +phoneme X + vls uvl frc + voicingswitch Q" + lengthmod 3 + + IF nextPh(isPause) THEN + WAV(ufric/xx, 70) + ENDIF + WAV(ufric/xx,80) +endphoneme + + +phoneme h + vls glt apr + lengthmod 3 + ipa h + + IF nextPh(#@) THEN + WAV(h/h@) + ELIF nextPh(#a) THEN + WAV(h/ha) + ELIF nextPh(#e) THEN + WAV(h/he) + ELIF nextPh(#i) THEN + WAV(h/hi) + ELIF nextPh(#o) THEN + WAV(h/ho) + ELIF nextPh(#u) THEN + WAV(h/hu) + ENDIF + WAV(h/h_, 70) // no vowel following +endphoneme + + + +//******************************************************************* +// ADDITIONAL PHONEME TABLES +//******************************************************************* + +phonemetable consonants base +include ph_consonants + + +phonemetable base2 base +include ph_base2 + +phonemetable en base +include ph_english + +phonemetable en-n en +include ph_english_n + +phonemetable en-us en +include ph_english_us + +phonemetable en-sc en +include ph_english_sc + +phonemetable en-rp en +include ph_english_rp + +phonemetable en-wm en +include ph_english_wm + +phonemetable en-wi en +include ph_english_wi + + +phonemetable af base +include ph_afrikaans + +phonemetable cy base +include ph_welsh + +phonemetable ga base +include ph_irish + +phonemetable de base +include ph_german + +phonemetable eo base +include ph_esperanto + +phonemetable ia eo +include ph_interlingua + +phonemetable jbo eo +include ph_lojban + +phonemetable nci base2 +include ph_nahuatl + +phonemetable fi base +include ph_finnish + +phonemetable et base +include ph_estonian + +phonemetable fr base +include ph_french + +phonemetable fr-ca fr +include ph_french_ca + +phonemetable nl base +include ph_dutch + + +phonemetable hi_base base +include ph_hindi_base + +phonemetable hi hi_base +include ph_hindi + +phonemetable bn hi_base +include ph_bengali + +phonemetable ne hi_base +include ph_nepali + +phonemetable ur hi_base +include ph_urdu + +phonemetable pa hi_base +include ph_punjabi + +phonemetable ta hi_base +include ph_tamil + +phonemetable kn hi_base +include ph_kannada + +phonemetable ml hi_base +include ph_malayalam + +phonemetable gu hi_base +include ph_gujarati + +phonemetable mr hi_base +include ph_marathi + + + +phonemetable hu base +include ph_hungarian + +phonemetable lt base +include ph_lithuanian + + +phonemetable lv base +include ph_latvian + +phonemetable pl base +include ph_polish + +phonemetable sk pl +include ph_slovak + +phonemetable cs sk +include ph_czech + +phonemetable hr sk +include ph_croatian + +phonemetable mk hr +include ph_macedonian + +phonemetable sr hr +include ph_serbian + +phonemetable ru base +include ph_russian + +phonemetable bg pl +include ph_bulgarian + + +phonemetable it base2 +include ph_italian + +phonemetable la base +include ph_latin + +phonemetable es base2 +include ph_spanish + +phonemetable es-la es +include ph_spanish_la + +phonemetable ca es +include ph_catalan + +phonemetable an es +include ph_aragon + +phonemetable eu base2 +include ph_basque + +phonemetable pt base2 +include ph_pt_brazil + +phonemetable pt-pt pt +include ph_portugal + +phonemetable ro base2 +include ph_romanian + +phonemetable el base2 +include ph_greek + +phonemetable grc base2 +include ph_greek_ancient + +phonemetable sv base +include ph_swedish + +phonemetable no base +include ph_norwegian + +phonemetable is base +include ph_icelandic + +phonemetable vi base +include ph_vietnam + +phonemetable vi-hue vi +include ph_vietnam_hue + +phonemetable vi-sgn vi +include ph_vietnam_sgn + +phonemetable zhy base +include ph_zh_yue + +phonemetable zh base +include ph_zh + + +phonemetable sw base +include ph_swahili + +phonemetable tr base2 +include ph_turkish + +phonemetable ku base2 +include ph_kurdish + +phonemetable id base2 +include ph_indonesian + +phonemetable sq base +include ph_albanian + +phonemetable hy base +include ph_armenian + +phonemetable da base +include ph_danish + +phonemetable ka base +include ph_georgian + +phonemetable fa base +include ph_farsi + +phonemetable ar base +include ph_arabic + +phonemetable rw base2 +include ph_kinyarwanda + +phonemetable prs base +include ph_dari + +phonemetable sl pl +include ph_slovenian + +phonemetable gd base +include ph_s_gaelic + +phonemetable nso base +include ph_northern-sotho + +phonemetable ht fr +include ph_haitian + +phonemetable az tr +include ph_azerbaijani + +phonemetable ak base +include ph_akan + +phonemetable am base +include ph_amhari + +phonemetable wo base +include ph_wolof + +phonemetable dv hi_base +include ph_divehi + +phonemetable te hi_base +include ph_telugu + +phonemetable si hi_base +include ph_sinhala + +phonemetable as bn +include ph_assamese + +phonemetable or bn +include ph_oriya + +phonemetable mni bn +include ph_manipuri + +phonemetable tn base +include ph_setswana + +phonemetable mt base +include ph_maltese + +phonemetable bo hi +include ph_tibetan + +phonemetable kk base +include ph_kazakh + +phonemetable tt base +include ph_tatar + +phonemetable ko base +include ph_korean + +phonemetable kl base +include ph_greenlandic + +phonemetable om base +include ph_oromo + +phonemetable my base +include ph_burmese + +phonemetable gn base +include ph_guarani + +phonemetable ky base +include ph_kyrgyz + diff --git a/phsource/ph_kyrgyz b/phsource/ph_kyrgyz index 361d5cd7..5be86fe4 100644 --- a/phsource/ph_kyrgyz +++ b/phsource/ph_kyrgyz @@ -448,7 +448,7 @@ endphoneme phoneme ts vls alv afr sibilant - voicingswitch dz + voicingswitch dZ lengthmod 2 Vowelin f1=0 f2=1700 -300 300 f3=-100 80 Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20 From 09bcdd56ef9f7e089758927da89358fb43f37b21 Mon Sep 17 00:00:00 2001 From: JRMeyer Date: Thu, 13 Oct 2016 14:43:09 +0200 Subject: [PATCH 4/9] took out the flapped r for now --- dictsource/ky_rules | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dictsource/ky_rules b/dictsource/ky_rules index fcf6759e..6ba9afd4 100644 --- a/dictsource/ky_rules +++ b/dictsource/ky_rules @@ -153,7 +153,7 @@ .group р р (_ r // word final /r/ gets trilled L04) р (L03 r // syllable final /r/ gets trilled - р * // all non-word final /r/ go to flap + р r // all r get trilled (the flap sounded wrong syllable initial) .group п From 0e1ffad5eb23b668b4ea38e30b0848c937b2eedd Mon Sep 17 00:00:00 2001 From: JRMeyer Date: Thu, 13 Oct 2016 16:36:27 +0200 Subject: [PATCH 5/9] troubles with numbers and symbols still --- dictsource/ky_list | 120 +++++++++++++++++++++------------------------ phsource/ph_kyrgyz | 2 +- 2 files changed, 57 insertions(+), 65 deletions(-) diff --git a/dictsource/ky_list b/dictsource/ky_list index 6ada11ea..218c3eda 100644 --- a/dictsource/ky_list +++ b/dictsource/ky_list @@ -23,89 +23,81 @@ // Numbers -_0 'noL +_0 n'oL _1 b'ir _2 ek'i _3 'ytS _4 t'Ort _5 b'eS -_6 aL'tI -_7 dZe'ti -_8 se'giz -_9 to'Guz +_6 aLt'I +_7 dZet'i +_8 seg'iz +_9 toG'uz _10 'on _11 onb'ir _12 onek'i _13 on'ytS _14 ont'Ort _15 onb'eS -_16 onaL'tI -_17 ondZe'ti -_18 onse'giz -_19 onto'Guz -_2X dZIjIr'ma -_3X o'tuz -_4X 'qIrq -_5X e'ly: -_6X aLtI'mIS -_7X dZeti'miS -_8X sek'sen -_9X toq'son -_0C dZyz -_2C eki'dZyz -_3C ytS'dZyz -_4C tOrt'dZyz -_5C beS'dZyz -_6C aLtI'dZyz -_7C dZeti'dZyz -_8C segiz'dZyz -_9C toGuz'dZyz - -_0M1 'miN -_1MA2 mili'on -_0M2 milion'dor -_1MA3 mili'art -_0M3 miliart'tar -_dpt _:ja'na_: +_16 onaLt'I +_17 ondZet'i +_18 onseg'iz +_19 ontoG'uz +_2X dZIjIrm'a +_3X ot'uz +_4X q'Irq +_5X el'y: +_6X aLtIm'IS +_7X dZetim'iS +_8X seks'en +_9X toqs'on +_0C dZ'yz +_2C ekidZ'yz +_3C ytSdZ'yz +_4C tOrtdZ'yz +_5C beSdZ'yz +_6C aLtIdZ'yz +_7C dZetidZ'yz +_8C segizdZ'yz +_9C toGuzdZ'yz +_0M1 m'iN +_0M2 mili'on +_dpt _:jan'a_: // symbols -@ majmyl'tSa +@ majmyltS'a # tortSo $max3 -$ dol'lar +$ doll'ar % prats'ent $max3 ^ kr'ySka & ampers'and -* dZILdIz'tSa $max3 -+ qo'Su: $max3 -= bara'bar $max3 +* dZILdIztS'a $max3 ++ qoS'u: $max3 += barab'ar $max3 / sl'eS $max3 \ beksl'eS $max3 -_- sIzIq'tSa -_ pod'tSerk $max3 -~ t'ilda -邃・no'mer - - -_( qaSa:a'tSu: -кашаа ачуу -_) qaSa:dZa'bu: -кашаа жабуу -_| v'ert -_{ otkrfi'gur -_} zakrfi'gur -_[ otkrkvad'rat -_] zakrkvad'rat -_> 'tSoN -_< kitSi'ne -_ツォ otkrug'lof -_ツサ zakrug'lof -_! ilep bel'gi -_? suro: bel'gi -_. tSe'kit -_, y'tyr -_` ak'tsent -_" tIrmaq'tSa -_' aposto'rof -_; tSe'kit y'tyr -_: qoS tSe'kit +_- sIzIqtS'a +_ podtS'erk $max3 +~ tild'a +№ nom'er +! ilepbelg'i +? suro:belg'i +( qaSa:a'tSu: +) qaSa:dZa'bu: +| 'vert +{ otkrfig'ur +} zakrfig'ur +[ ot'kvad'rat +] zaq'vad'rat +> tS'oN +< kitSi'ne +. tSek'it +, y'tyr +` akts'ent +" tIrmaqtS'a +' apostor'of +; tSekityt'yr +: qoStSek'it diff --git a/phsource/ph_kyrgyz b/phsource/ph_kyrgyz index 5be86fe4..2ad6ad04 100644 --- a/phsource/ph_kyrgyz +++ b/phsource/ph_kyrgyz @@ -599,7 +599,7 @@ phoneme t // dental /t/ IF nextPh(isPause2) THEN WAV(ustop/t_dnt, 35) ENDIF - WAV(ustop/t_hi, 70) + WAV(ustop/t_dnt, 70) endphoneme From 00dd2f099fa029f9e84e3c0810822e6e795f0447 Mon Sep 17 00:00:00 2001 From: JRMeyer Date: Fri, 14 Oct 2016 13:53:25 +0200 Subject: [PATCH 6/9] updating sybols --- dictsource/ky_list | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/dictsource/ky_list b/dictsource/ky_list index 218c3eda..4dc86ea4 100644 --- a/dictsource/ky_list +++ b/dictsource/ky_list @@ -67,32 +67,32 @@ _dpt _:jan'a_: // symbols @ majmyltS'a # tortSo $max3 -$ doll'ar -% prats'ent $max3 +$ d'oLar +% pratsent $max3 //shorter e ^ kr'ySka & ampers'and * dZILdIztS'a $max3 + qoS'u: $max3 = barab'ar $max3 -/ sl'eS $max3 -\ beksl'eS $max3 +/ bOrtS'Ok $max3 +\ bOrtS'Ok $max3 _- sIzIqtS'a _ podtS'erk $max3 -~ tild'a -№ nom'er +~ tild'e +№ nom'er ! ilepbelg'i ? suro:belg'i ( qaSa:a'tSu: ) qaSa:dZa'bu: | 'vert -{ otkrfig'ur -} zakrfig'ur +{ figurnajaskopka +} figurnajaskopka [ ot'kvad'rat ] zaq'vad'rat > tS'oN < kitSi'ne -. tSek'it -, y'tyr +_. tSek'it +, yt'yr ` akts'ent " tIrmaqtS'a ' apostor'of From 624a4a9b13fd32d58144bb1eb74f60e87bc9d0ce Mon Sep 17 00:00:00 2001 From: JRMeyer Date: Sat, 15 Oct 2016 13:38:23 +0200 Subject: [PATCH 7/9] added more symbols --- dictsource/ky_list | 46 ++++++++++++++++++++++++++-------------------- phsource/ph_kyrgyz | 6 +++--- 2 files changed, 29 insertions(+), 23 deletions(-) diff --git a/dictsource/ky_list b/dictsource/ky_list index 4dc86ea4..8d6f21f5 100644 --- a/dictsource/ky_list +++ b/dictsource/ky_list @@ -66,7 +66,7 @@ _dpt _:jan'a_: // symbols @ majmyltS'a -# tortSo $max3 +# tortS'o $max3 $ d'oLar % pratsent $max3 //shorter e ^ kr'ySka @@ -75,33 +75,39 @@ $ d'oLar + qoS'u: $max3 = barab'ar $max3 / bOrtS'Ok $max3 -\ bOrtS'Ok $max3 +\ tetir'i||sl'eS $max3 _- sIzIqtS'a -_ podtS'erk $max3 +_ astInq'I||kenemt'e $max3 ~ tild'e № nom'er -! ilepbelg'i -? suro:belg'i -( qaSa:a'tSu: -) qaSa:dZa'bu: -| 'vert -{ figurnajaskopka -} figurnajaskopka -[ ot'kvad'rat -] zaq'vad'rat -> tS'oN -< kitSi'ne +! il'ep||belg'i +? sur'o:||belg'i +( qaS'a:a||tS'u: +) qaS'a:||dZab'u: +| t'ik||sl'eS +{ atSu:tS'u||figuraL'Iq||qaS'a: +} dZabu:tS'u||figuraL'Iq||qaS'a: +[ atSu:tS'u||kvadratt'Iq||qaS'a: +] dZabu:tS'u||kvadratt'Iq||qaS'a: +> azd'Iq||belgis'i +< kOpt'yk||belgis'i _. tSek'it , yt'yr -` akts'ent +` atSu:tS'u||apostr'of " tIrmaqtS'a -' apostor'of -; tSekityt'yr -: qoStSek'it +' dZabu:tS'u||apostr'of +; tSek'it||yt'yr +: q'oS||tSek'it +× kObOjty: +\\÷ +\\- дефис +《 atSu:tSu||franzuz||tIrmaqtSaLarI + 》dZabu:tSu||franzuz||tIrmaqtSaLarI +// Abbreviations - -// Function words +КР ka||er +км kiL,ometr // personal pronouns diff --git a/phsource/ph_kyrgyz b/phsource/ph_kyrgyz index 2ad6ad04..cf163e0c 100644 --- a/phsource/ph_kyrgyz +++ b/phsource/ph_kyrgyz @@ -53,14 +53,14 @@ endphoneme phoneme o ipa o vowel starttype #o endtype #o - length 200 + length 170 FMT(vowel/o_8) endphoneme phoneme u ipa u vowel starttype #u endtype #u - length 200 + length 170 FMT(vowel/u_bck) endphoneme @@ -138,7 +138,7 @@ endphoneme phoneme y: ipa y: vowel starttype #u endtype #u - length 275 + length 400 FMT(vowel/y) endphoneme From c106a43548a13a2d4c0435c2c55c059fb5fefb05 Mon Sep 17 00:00:00 2001 From: JRMeyer Date: Sat, 15 Oct 2016 13:41:51 +0200 Subject: [PATCH 8/9] added some documentation --- dictsource/ky_list | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/dictsource/ky_list b/dictsource/ky_list index 8d6f21f5..181652e9 100644 --- a/dictsource/ky_list +++ b/dictsource/ky_list @@ -18,9 +18,17 @@ // * . * // ***************************************************************************/ -// -// General categories come from Azerbaijani az_list +// SOME USEFUL SYNTAX +// ' primary stress +// , secondary stress +// % unstressed syllable +// = put the primary stress on the preceding syllable +// _: short pause +// _ a shorter pause +// || indicates a word boundary within a phoneme string +// | can be used to separate two adjacent characters, to prevent +// them from being considered as a multi-character phoneme mnemonic // Numbers _0 n'oL From c0ccd2cf2923e36b633918c6cbc93fd79f76c84b Mon Sep 17 00:00:00 2001 From: JRMeyer Date: Tue, 14 Feb 2017 08:44:57 +0100 Subject: [PATCH 9/9] fixed comment symbols (the slashes were in the wrong direction) --- dictsource/ky_list | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dictsource/ky_list b/dictsource/ky_list index 181652e9..54a43d4b 100644 --- a/dictsource/ky_list +++ b/dictsource/ky_list @@ -107,8 +107,8 @@ _. tSek'it ; tSek'it||yt'yr : q'oS||tSek'it × kObOjty: -\\÷ -\\- дефис +// ÷ +// - дефис 《 atSu:tSu||franzuz||tIrmaqtSaLarI 》dZabu:tSu||franzuz||tIrmaqtSaLarI