| @@ -1,518 +1,114 @@ | |||
| // short vowels | |||
| phoneme a | |||
| vowel starttype #a endtype #a | |||
| unstressed | |||
| length 180 | |||
| CALL ShortVowelLength | |||
| IF prevPh(s[) OR prevPh(d[) OR prevPh(t[) OR prevPh(Z) THEN | |||
| FMT(vowel/0_3) | |||
| ELSE | |||
| FMT(vowel/a#) | |||
| ENDIF | |||
| endphoneme | |||
| phoneme i | |||
| vowel starttype #i endtype #i | |||
| length 140 | |||
| unstressed | |||
| CALL ShortVowelLength | |||
| FMT(vowel/i) | |||
| endphoneme | |||
| phoneme u | |||
| vowel starttype #u endtype #u | |||
| unstressed | |||
| length 140 | |||
| CALL ShortVowelLength | |||
| FMT(vowel/u) | |||
| phoneme #r virtual | |||
| // Used for "r" sounds | |||
| endphoneme | |||
| phoneme : // lengthen previous vowel by "length" | |||
| virtual | |||
| length 200 | |||
| endphoneme | |||
| // long vowels | |||
| phoneme a: | |||
| vowel starttype #a endtype #a | |||
| length 300 | |||
| //CALL LongVowelLength | |||
| IF prevPh(s[) OR prevPh(d[) OR prevPh(t[) OR prevPh(Z) THEN | |||
| FMT(vowel/0_3) | |||
| ELSE | |||
| FMT(vowel/a#) | |||
| ENDIF | |||
| endphoneme | |||
| phoneme i: | |||
| vowel starttype #i endtype #i | |||
| length 300 | |||
| //CALL LongVowelLength | |||
| FMT(vowel/i) | |||
| endphoneme | |||
| phoneme u: | |||
| vowel starttype #u endtype #u | |||
| length 300 | |||
| //CALL LongVowelLength | |||
| FMT(vowel/u) | |||
| phoneme H // arabic Hah | |||
| vls phr frc | |||
| ipa ħ | |||
| lengthmod 5 | |||
| WAV(vwl_ar/hah) | |||
| endphoneme | |||
| // Redifine consnant for arabic | |||
| 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) | |||
| phoneme Z // arabic ZAH .Todo | |||
| vls phr frc | |||
| ipa ðˤ | |||
| lengthmod 5 | |||
| voicingswitch z | |||
| Vowelin f1=1 f2=2700 400 600 f3=200 70 rate len=70 | |||
| Vowelout f1=1 f2=2700 400 600 f3=200 70 rate | |||
| WAV(vwl_ar/zah) | |||
| endphoneme | |||
| //phoneme A // arabic Ain | |||
| // vls phr frc | |||
| // ipa ʕ | |||
| // voicingswitch a | |||
| // length 160 | |||
| // Vowelin f1=2 f2=2300 -400 500 f3=300 80 | |||
| // Vowelout f1=2 f2=2300 -300 450 f3=-100 10 | |||
| // WAV(vwl_ar/ain) | |||
| //endphoneme | |||
| phoneme gH // arabic ghain, | |||
| // the phoneme is derived from Q | |||
| vcd vel frc | |||
| voicingswitch R2 | |||
| ipa ɣ | |||
| lengthmod 6 | |||
| Vowelin f1=2 f2=2300 200 400 f3=-100 80 | |||
| Vowelout f1=2 f2=2300 250 300 f3=-300 80 brk | |||
| FMT(voc/Q) //addWav(vocw/Q) | |||
| endphoneme | |||
| phoneme w | |||
| liquid | |||
| phoneme dH //arabic Dhad | |||
| alv vls stop | |||
| ipa dˤ | |||
| voicingswitch d[ | |||
| lengthmod 7 | |||
| FMT(w/w_) | |||
| Vowelin f1=2 f2=1500 -300 300 f3=-150 80 | |||
| Vowelout f1=2 f2=1500 -300 300 f3=-150 80 | |||
| WAV(vwl_ar/dhad) | |||
| //FMT(vwl_ar/d_dnt) | |||
| endphoneme | |||
| phoneme j | |||
| liquid palatal | |||
| phoneme s[ | |||
| vls dnt stop | |||
| voicingswitch s | |||
| length 160 | |||
| lengthmod 7 | |||
| FMT(j/j_) | |||
| endphoneme | |||
| //******************************************************************* | |||
| // NASAL CONSONANTS | |||
| //******************************************************************* | |||
| phoneme m | |||
| vcd blb nasal | |||
| Vowelout f1=2 f2=1000 -500 -350 f3=-200 80 brk | |||
| lengthmod 4 | |||
| FMT(m/m_) | |||
| WAV(vwl_ar/shin) | |||
| endphoneme | |||
| phoneme n | |||
| vcd alv nasal | |||
| Vowelout f1=2 f2=1700 -300 250 f3=-100 80 rms=20 brk | |||
| lengthmod 4 | |||
| FMT(n/n_) | |||
| endphoneme | |||
| //******************************************************************* | |||
| // VOICED STOPS | |||
| //******************************************************************* | |||
| phoneme b | |||
| vcd blb stop | |||
| voicingswitch p | |||
| Vowelout f1=2 f2=1000 -500 -300 f3=-300 80 brk | |||
| phoneme X | |||
| vls uvl frc | |||
| voicingswitch Q | |||
| lengthmod 7 | |||
| 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 | |||
| 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 | |||
| FMT(d/d) addWav(x/d_dnt, 100) | |||
| endphoneme | |||
| phoneme dZ | |||
| vcd pla afr sibilant | |||
| voicingswitch tS | |||
| //lengthmod 8 | |||
| Vowelin f1=2 f2=2300 200 400 f3=100 80 | |||
| Vowelout f1=2 f2=2300 250 300 f3=100 80 brk | |||
| Vowelin f1=0 f2=2300 200 400 f3=-100 80 | |||
| Vowelout f1=0 f2=2300 300 400 f3=-100 80 rms=20 | |||
| WAV(ufric/xx, 70) | |||
| FMT(dzh/dzh) addWav(x/dzh) | |||
| 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 KlattSynth THEN | |||
| IF nextPh(isPause2) THEN | |||
| FMT(klatt/dz_pzd_) addWav(x/dzh, 35) | |||
| ENDIF | |||
| FMT(klatt/dz_pzd) addWav(x/dzh, 45) | |||
| // vowels | |||
| phoneme a | |||
| vowel starttype #a endtype #a | |||
| IF nextPhW(isPause) THEN | |||
| length 80 | |||
| ELSE | |||
| length 140 | |||
| 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 | |||
| FMT(g/g) addWav(x/g2, 150) | |||
| endphoneme | |||
| //******************************************************************* | |||
| // VOICED fricatives | |||
| //******************************************************************* | |||
| phoneme D | |||
| 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 | |||
| IF nextPhW(a) THEN | |||
| length 200 | |||
| ENDIF | |||
| FMT(voc/dh) addWav(vocw/dh) | |||
| FMT(vowel/a) | |||
| endphoneme | |||
| phoneme z | |||
| vcd alv frc sibilant | |||
| //voicingswitch s | |||
| lengthmod 1 | |||
| 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 | |||
| phoneme i | |||
| vowel starttype #i endtype #i | |||
| IF nextPhW(isPause) THEN | |||
| length 80 | |||
| ELSE | |||
| length 140 | |||
| ENDIF | |||
| FMT(voc/z) addWav(ufric/s_, 85) | |||
| endphoneme | |||
| phoneme Z | |||
| 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_) addWav(vocw/zh) | |||
| ENDIF | |||
| FMT(klatt/zh) addWav(vocw/zh, 130) | |||
| IF nextPhW(i) THEN | |||
| length 200 | |||
| ENDIF | |||
| FMT(voc/zh) addWav(vocw/zh, 130) | |||
| endphoneme | |||
| //******************************************************************* | |||
| // UNVOICED STOPS | |||
| //******************************************************************* | |||
| 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 | |||
| 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 | |||
| WAV(ustop/t_dnt, 35) | |||
| FMT(vowel/i) | |||
| 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 | |||
| phoneme u | |||
| vowel starttype #u endtype #u | |||
| IF nextPhW(isPause) THEN | |||
| length 80 | |||
| ELSE | |||
| length 140 | |||
| 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 | |||
| 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 | |||
| WAV(ufric/f) | |||
| endphoneme | |||
| phoneme T | |||
| 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 | |||
| 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 | |||
| WAV(ufric/s) | |||
| endphoneme | |||
| phoneme S | |||
| 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 | |||
| WAV(ufric/sh) | |||
| endphoneme | |||
| phoneme x | |||
| 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 | |||
| //WAV(ufric/x) | |||
| WAV(vwl_ar/kha) | |||
| endphoneme | |||
| phoneme h | |||
| vls glt apr | |||
| lengthmod 3 | |||
| ipa h | |||
| WAV(h/h_, 70) // no vowel following | |||
| endphoneme | |||
| // Added specific consnant to arabic | |||
| phoneme H // arabic Hah | |||
| vls phr frc | |||
| ipa U+0127 | |||
| lengthmod 5 | |||
| WAV(vwl_ar/H2) | |||
| endphoneme | |||
| phoneme Z // arabic ZAH .Todo | |||
| vls phr frc | |||
| lengthmod 5 | |||
| voicingswitch z | |||
| WAV(vwl_ar/ZH4) | |||
| endphoneme | |||
| phoneme E // arabic Ain | |||
| vls phr frc | |||
| //ipa U+0127 | |||
| //voicingswitch a | |||
| lengthmod 5 | |||
| //WAV(vwl_ar/AN2,50) | |||
| WAV(vwl_ar/ain2) | |||
| endphoneme | |||
| phoneme G //arabic Ghain | |||
| //vcd uvl frc | |||
| vls uvl frc | |||
| lengthmod 3 | |||
| Vowelin f1=0 f2=2300 200 400 f3=-100 80 | |||
| Vowelout f1=0 f2=2300 300 400 f3=-100 80 rms=20 | |||
| voicingswitch R | |||
| //lengthmod 5 | |||
| //ipa U+0280 | |||
| WAV(vwl_ar/ghain6) | |||
| //FMT(voc/Q_ulv) addWav(vwl_ar/gh, 100) | |||
| //FMT(voc/Q_ulv) addWav(vwl_ar/ghain3, 100) | |||
| endphoneme | |||
| phoneme d[ //arabic Dhad | |||
| vls dnt stop | |||
| voicingswitch d | |||
| length 120 | |||
| WAV(vwl_ar/da7) | |||
| endphoneme | |||
| phoneme s[ | |||
| vls dnt stop | |||
| //voicingswitch s | |||
| lengthmod 7 | |||
| WAV(vwl_ar/SA1) | |||
| endphoneme | |||
| phoneme r | |||
| liquid rhotic | |||
| ipa ? | |||
| lengthmod 7 | |||
| IF nextPh(a) OR nextPh(a:) THEN | |||
| FMT(r/ra) | |||
| IF nextPhW(u) THEN | |||
| length 200 | |||
| ENDIF | |||
| FMT(r/r_) | |||
| FMT(vowel/u) | |||
| endphoneme | |||
| procedure ShortVowelLength | |||
| //IF prevPhW(isVoiced) AND nextPhW(isVoiced) THEN // voiced | |||
| IF prevPhW(isNotVowel) AND nextPhW(isNotVowel) THEN // consonants | |||
| length 140 | |||
| RETURN | |||
| //ENDIF | |||
| ELSE | |||
| IF prevPh(isStressed) THEN | |||
| length 160 | |||
| ELSE | |||
| length 175 | |||
| ENDIF | |||
| ENDIF | |||
| endprocedure | |||
| procedure LongVowelLength | |||
| //IF prevPhW(isVoiced) AND nextPhW(isVoiced) THEN // voiced | |||
| IF nextPhW(:) THEN | |||
| length 300 | |||
| RETURN | |||
| //ENDIF | |||
| ELIF prevPhW(isNotVowel) AND nextPhW(isNotVowel) THEN // consonants | |||
| length 340 | |||
| RETURN | |||
| //ENDIF | |||
| ELSE | |||
| IF prevPh(isStressed) THEN | |||
| length 360 | |||
| ELSE | |||
| length 375 | |||
| ENDIF | |||
| ENDIF | |||
| endprocedure | |||