| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147 | phoneme #r  virtual
// Used for "r" sounds
endphoneme
phoneme H       // arabic Hah
  vls phr frc
  ipa ħ
  lengthmod 5
  WAV(vwl_ar/hah,80)
endphoneme
phoneme Z      // arabic ZAH
  vcd dnt frc
  ipa ð
  // following definition is taken from English D
  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 A       // arabic Ain
  vcd 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
  FMT(r/xr,25) addWav(h/h_,30)
endphoneme
phoneme gH      // arabic Ghain, the phoneme is derived from Q
  vcd vel frc
  voicingswitch R2
  ipa ɣ
  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(vwl_ar/dhad)
endphoneme
phoneme dH      //arabic Dhad TODO this probably should be simple d from standard phonemes
  vcd alv stp
  ipa dˤ
  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_)
  ENDIF
  FMT(d/d) addWav(x/d)
endphoneme
phoneme s[
  vls dnt stp
  voicingswitch s
  IF nextPh(s[) THEN
    length 50
  ELSE
    length 160
  ENDIF
  lengthmod 7
  WAV(vwl_ar/shin)
endphoneme
phoneme X
  vls uvl frc
  voicingswitch Q
  lengthmod 7
  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)
endphoneme
// vowels
phoneme a
  vwl starttype #a endtype #a
  IF nextPhW(isPause) THEN
    length 80
  ELSE
    length 140
  ENDIF
  FMT(vowel/a_2)
endphoneme
phoneme i
  vwl starttype #i endtype #i
  IF nextPhW(isPause) THEN
    length 80
  ELSE
    length 140
  ENDIF
  FMT(vowel/i)
endphoneme
phoneme u
  vwl starttype #u endtype #u
  IF nextPhW(isPause) THEN
    length 80
  ELSE
    length 140
  ENDIF
  FMT(vowel/u)
endphoneme
// "dark" vowels after "thick" consonants
phoneme a.
  vwl starttype #a endtype #a
  IF nextPhW(isPause) THEN
    length 80
  ELSE
    length 140
  ENDIF
  FMT(vowel/aa_7)
endphoneme
phoneme i.
  vwl starttype #i endtype #i
  IF nextPhW(isPause) THEN
    length 80
  ELSE
    length 140
  ENDIF
  FMT(vowel/ii_5)
endphoneme
phoneme u.
  vwl starttype #u endtype #u
  IF nextPhW(isPause) THEN
    length 80
  ELSE
    length 140
  ENDIF
  FMT(vowel/u_7)
endphoneme
phoneme : //  lengthen previous vowel by "length"
  virtual
  length 180
endphoneme
 |