| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296 | 
//=========================================================
// Dutch
//=========================================================
// Vowels
//=======
phoneme @   //  Schwa
  vowel starttype #@ endtype #@
  unstressed
  length 125
  FMT(vowel/@_4)
endphoneme
phoneme i
  vowel starttype #i endtype #i
  length 130
  FMT(vowel/i_2)
endphoneme
phoneme I
  vowel starttype #i endtype #i
  length 130
  FMT(vowel/ii)
endphoneme
phoneme y
  vowel starttype #u endtype #u
  length 180
  FMT(vowel/y)
endphoneme
phoneme 8
  vowel starttype #u endtype #u
  length 140
  FMT(vowel/y#)
endphoneme
phoneme u
  vowel starttype #u endtype #u
  length 150
  FMT(vowel/u_bck)
endphoneme
phoneme E
  vowel starttype #e endtype #e
  length 140
  FMT(vowel/e_mid2)
endphoneme
phoneme E2    //  as[E] but reduces to @ if unstressed
  vowel starttype #e endtype #e
  length 140
  ChangeIfDiminished(@)
  FMT(vowel/ee_2)
endphoneme
phoneme O
  vowel starttype #o endtype #o
  length 140
  FMT(vowel/o_6)
endphoneme
phoneme O:      // for "oor"
  vowel starttype #o endtype #o
  length 210
  FMT(vowel/o_6)
endphoneme
phoneme a:
  vowel starttype #a endtype #a
  length 210
  IF thisPh(isUnstressed) THEN
    IF thisPh(isWordEnd) THEN
      FMT(vowel/a#_2)
    ELSE
      FMT(vowel/a#_4)
    ENDIF
  ENDIF
  FMT(vowel/a)
endphoneme
phoneme a   // ?? suggested by aegis, but seems too short
  vowel starttype #a endtype #a
  length 150
  FMT(vowel/a_2)
endphoneme
phoneme A
  vowel starttype #a endtype #a
  length 150
  IF thisPh(isUnstressed) THEN
    FMT(vowel/a#_2)
  ENDIF
  FMT(vowel/aa_8)
endphoneme
phoneme A~
  import_phoneme fr/A~
endphoneme
phoneme O~
  vowel starttype #o endtype #o
  length 190
  FMT(vnasal/oo_n2)
endphoneme
// Diphthongs
//===========
phoneme e:
  vowel starttype #e endtype #i
  length 190
  FMT(vdiph/ei)
endphoneme
phoneme e#    // as [e:] but change to [@] in unstressed syllables
  vowel starttype #e endtype #i
  length 190
  ChangeIfUnstressed(@)
  ChangePhoneme(e:)
endphoneme
phoneme Y:
  vowel starttype #@ endtype #@
  length 220
  FMT(vdiph/y#y_3)
endphoneme
phoneme o:
  vowel starttype #o endtype #u
  length 150
  FMT(vdiph/ou_4)
endphoneme
phoneme EI
  vowel starttype #a endtype #i
  length 210
  FMT(vdiph/eei)
endphoneme
phoneme Wy
  vowel starttype #@ endtype #u
  length 220
  FMT(vdiph/&y)
endphoneme
phoneme VU
  vowel starttype #a endtype #o
  length 220
  FMT(vdiph/aau_2)
endphoneme
phoneme eU
  vowel starttype #e endtype #u
  length 220
  FMT(vdiph/eu)
endphoneme
phoneme yU
  vowel starttype #u endtype #u
  length 220
  FMT(vdiph2/yu)
endphoneme
// CONSONANTS
//===========
phoneme r
  import_phoneme base/R2
endphoneme
phoneme Q
  vcd vel frc
  lengthmod 6
  voicingswitch x
  Vowelin f1=2  f2=2300 200 300  f3=-300 80
  Vowelout f1=2  f2=2300 250 300  f3=-300 80 brk
  IF prevPhW(x) THEN
    ChangePhoneme(NULL)
  ENDIF
  IF nextPhW(isVoiced) THEN
  ELSE
    ChangePhoneme(x)
  ENDIF
  IF nextPh(isPause2) THEN
    FMT(voc/Q_) addWav(vocw/Q_)
  ENDIF
  FMT(voc/Q_less) addWav(vocw/Q2, 140)
endphoneme
phoneme !  //  Short pause, replaces assimilated t,d,p,b at end of word
  pause
  ipa NULL
  starttype _ endtype _
  lengthmod 1
  length 25
endphoneme
phoneme k
  import_phoneme consonants/k-  // unaspirated
endphoneme
phoneme t
  IF thisPh(isWordEnd) THEN
    IF nextPh(t) OR nextPh(d) THEN
      ChangePhoneme(!)
    ENDIF
  ENDIF
  CALL consonants/t-
endphoneme
phoneme d
  IF thisPh(isWordEnd) THEN
    IF nextPh(t) OR nextPh(d) THEN
      ChangePhoneme(!)
    ENDIF
  ENDIF
  IF prevPh(!) THEN  // previous was [t] or [d], now assimilated
    ChangePhoneme(t)
  ENDIF
  CALL base/d
endphoneme
phoneme p
  IF thisPh(isWordEnd) THEN
    IF nextPh(p) OR nextPh(b) THEN
      ChangePhoneme(!)
    ENDIF
  ENDIF
  CALL consonants/p-  // unaspirated
endphoneme
phoneme b
  IF thisPh(isWordEnd) THEN
    IF nextPh(p) OR nextPh(b) THEN
      ChangePhoneme(!)
    ENDIF
  ENDIF
  IF prevPh(!) THEN  // previous was [p] or [b], now assimilated
    ChangePhoneme(p)
  ENDIF
  CALL base/b
endphoneme
phoneme s
  IF thisPh(isWordEnd) THEN
    IF nextPh(s) OR nextPh(z) THEN
      ChangePhoneme(!)
    ENDIF
  ENDIF
  CALL base/s
endphoneme
phoneme z
  IF thisPh(isWordEnd) THEN
    IF nextPh(s) OR nextPh(z) THEN
      ChangePhoneme(!)
    ENDIF
  ENDIF
  IF prevPh(!) THEN  // previous was [s] or [z], now assimilated
    ChangePhoneme(s)
  ENDIF
  CALL base/z
endphoneme
phoneme l
  import_phoneme en/l
endphoneme
phoneme x2
  import_phoneme af/x2
endphoneme
 |