ph_portugal 2.49 KB

//====================================================
//  Portuguese/Portugal  - based on Portuguese/Brazil
//====================================================



phoneme &
  vowel starttype #@ endtype #@
  length 180
  ipa ɐ
  FMT(vowel/a#_3)
  unstressed
endphoneme

phoneme &/       // Used for final "a" when next word starts with "a"
  vowel starttype #@ endtype #@
  length 180
  ipa ɐ
  IF nextPh(isVowel) THEN
    ChangePhoneme(NULL)
  ENDIF
  FMT(vowel/a#_3)
endphoneme

phoneme a
  vowel starttype #a endtype #a
  length 180
  ChangeIfNotStressed(&)
  FMT(vowel/a_2)
endphoneme

phoneme &~
  vowel  starttype #e endtype #@
  ipa ɐU+0303
  length 240
  FMT(vnasal/ee_n2)
endphoneme

phoneme &U~
  vowel  starttype #@ endtype #u
  ipa ɐU+0303ʊU+0303
  length 240
  FMT(vnasal/a#u_n)
endphoneme



phoneme E
  vowel starttype #e endtype #e
  length 180
  ChangeIfUnstressed(y)
  FMT(vowel/e_mid)
endphoneme

phoneme e
  vowel starttype #e endtype #e
  length 180
  ChangeIfUnstressed(y)
  FMT(vowel/e)
endphoneme

phoneme y
  vowel starttype #@ endtype #@
  length 130
  ipa ɨ
  FMT(vowel/i#_5)
endphoneme


phoneme i
  vowel starttype #i endtype #i
  length 170
  IfNextVowelAppend(;)
  FMT(vowel/i)
endphoneme


phoneme i/            // changes to NULL before a vowel
  vowel starttype #i endtype #i
  length 130
  ipa ɨ
  IF nextPh(isVowel) THEN
    ChangePhoneme(NULL)
  ENDIF
  IfNextVowelAppend(;)
  FMT(vowel/i#_5)
endphoneme


phoneme O
  vowel starttype #o endtype #o
  length 180
//  ChangeIfNotStressed(o)
  FMT(vowel/0_2)
endphoneme


phoneme o
  vowel starttype #o endtype #o
  length 180
  ChangeIfNotStressed(u)
  FMT(vowel/o)
endphoneme


phoneme u
  vowel starttype #u endtype #u
  length 180
  FMT(vowel/u_6)
endphoneme

phoneme U
  vowel starttype #u endtype #u
  length 130
  IF thisPh(isWordEnd) AND thisPh(isAfterStress) AND nextPh(isVowel) THEN
    ChangePhoneme(w)
  ENDIF
  FMT(vowel/u_6)
endphoneme


phoneme EU
  vowel starttype #e endtype #u
  length 230
  FMT(vdiph/eeu_2)
endphoneme



phoneme w
  import_phoneme base2/w2
endphoneme


phoneme x      // [r] for Portugal
  liquid
  trill
  ipa ʁ
  lengthmod 7
  Vowelin f1=0  f2=1500 -400 400  f3=-400 80
  IF nextPh(isNotVowel) THEN
    ChangePhoneme(r/)
  ENDIF
  FMT(vwl_fr/@R) addWav(r3/rx, 120)
endphoneme


phoneme R    // for Portugal this is same the as [r]
  import_phoneme pt/r
endphoneme


phoneme s#     // This is [s] for Brazil, [S] for Portugal
  IF nextPh(isVoiced) THEN
    ChangePhoneme(Z)
  ENDIF
  CALL base/S
  ipa ʃ
endphoneme