123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518 |
- // 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)
- 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)
- 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)
- endphoneme
-
-
-
-
-
- phoneme w
- liquid
- lengthmod 7
- FMT(w/w_)
- endphoneme
-
-
-
- phoneme j
- liquid palatal
- 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_)
- 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
- 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
-
- 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)
- 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
- ENDIF
- FMT(voc/dh) addWav(vocw/dh)
- 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
- 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)
- 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)
- 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
-
- 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)
- ENDIF
- FMT(r/r_)
- 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
|