| // 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 | 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 | 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 | endphoneme | ||||
| phoneme w | |||||
| liquid | |||||
| phoneme dH //arabic Dhad | |||||
| alv vls stop | |||||
| ipa dˤ | |||||
| voicingswitch d[ | |||||
| lengthmod 7 | 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 | endphoneme | ||||
| phoneme j | |||||
| liquid palatal | |||||
| phoneme s[ | |||||
| vls dnt stop | |||||
| voicingswitch s | |||||
| length 160 | |||||
| lengthmod 7 | 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 | 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 | 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 | 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 | 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 | ENDIF | ||||
| FMT(voc/dh) addWav(vocw/dh) | |||||
| FMT(vowel/a) | |||||
| endphoneme | 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 | 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 | 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 | 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 | 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 | ENDIF | ||||
| FMT(r/r_) | |||||
| FMT(vowel/u) | |||||
| endphoneme | 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 |