123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225 |
- //====================================================
- // Portuguese - based on Base2
- //====================================================
- phoneme I // epenthetic i
- vwl starttype #i endtype #i
- unstressed
- length 90
- FMT(vowel/ii_6)
- endphoneme
- phoneme e~
- vwl starttype #e endtype #e
- length 240
- FMT(vnasal/e_n)
- endphoneme
- phoneme i~
- vwl starttype #i endtype #i
- length 240
- IfNextVowelAppend(;)
- FMT(vnasal/i_n)
- endphoneme
- phoneme o~
- vwl starttype #o endtype #o
- length 240
- FMT(vnasal/o_n)
- endphoneme
- phoneme u~
- vwl starttype #u endtype #u
- length 180
- FMT(vnasal/u_n)
- endphoneme
- phoneme &~
- vwl starttype #@ endtype #@
- ipa ɐU+0303
- length 180
- IF thisPh(isFinalVowel) THEN
- FMT(vnasal/a#_n2)
- ELSE
- FMT(vnasal/a#_n)
- ENDIF
- endphoneme
- phoneme &U~
- vwl starttype #@ endtype #u
- ipa ɐU+0303ʊU+0303
- length 240
- FMT(vnasal/a#u_n)
- endphoneme
- phoneme oI~
- vwl starttype #o endtype #i
- ipa oU+0303ɪU+0303
- length 260
- FMT(vnasal/oi_n)
- endphoneme
- phoneme &
- vwl starttype #@ endtype #@
- length 180
- FMT(vowel/a#_3)
- endphoneme
- phoneme &/ // Used for final "a" when next word starts with "a"
- vwl starttype #@ endtype #@
- length 180
- IF nextPh(isVowel) THEN
- ChangePhoneme(NULL)
- ENDIF
- FMT(vowel/a#_3)
- endphoneme
- phoneme A // for "al" in European Portuguese, don't reduce to [&]
- vwl starttype #a endtype #a
- length 200
- FMT(vowel/a_2)
- endphoneme
- phoneme E
- vwl starttype #e endtype #e
- length 170
- FMT(vowel/ee_3)
- endphoneme
- phoneme e
- vwl starttype #e endtype #e
- length 160
- FMT(vowel/e)
- endphoneme
- phoneme y // this is the same as [i] for Brazil
- vwl starttype #i endtype #i
- length 110
- IfNextVowelAppend(;)
- FMT(vowel/ii_6)
- endphoneme
- phoneme i/ // changes to [j] before a vowel
- vwl starttype #i endtype #i
- length 150
- IF nextPh(isVowel) THEN
- ChangePhoneme(j)
- ENDIF
- IfNextVowelAppend(;)
- FMT(vowel/ii_6)
- endphoneme
- phoneme O
- vwl starttype #o endtype #o
- length 170
- FMT(vowel/0)
- endphoneme
- phoneme u
- vwl starttype #u endtype #u
- length 160
- FMT(vowel/u_bck)
- endphoneme
- phoneme U
- vwl starttype #u endtype #u
- length 140
- IF thisPh(isWordEnd) AND thisPh(isAfterStress) AND nextPh(isVowel) THEN
- ChangePhoneme(w)
- ENDIF
- FMT(vowel/uu_bck)
- endphoneme
- phoneme aI
- vwl starttype #a endtype #i
- length 230
- IfNextVowelAppend(;)
- FMT(vdiph/ai)
- endphoneme
- phoneme eI
- vwl starttype #e endtype #i
- length 210
- IfNextVowelAppend(;)
- FMT(vdiph/ei)
- endphoneme
- phoneme OI
- vwl starttype #o endtype #i
- length 230
- IfNextVowelAppend(;)
- FMT(vdiph/0i)
- endphoneme
- phoneme eU
- vwl starttype #e endtype #u
- length 230
- FMT(vdiph/eu)
- endphoneme
- phoneme EU
- vwl starttype #e endtype #u
- length 230
- FMT(vdiph/eeu)
- endphoneme
- phoneme l
- import_phoneme en/l // use 'dark' [l] after a vowel, should be [w]
- endphoneme
- phoneme x
- CALL base1/h
- ipa x
- endphoneme
- phoneme r-
- import_phoneme en/r-
- endphoneme
- phoneme s# // This is [s] for Brazil, [S] for Portugal
- IF nextPh(isVoiced) THEN
- ChangePhoneme(z)
- ENDIF
- CALL base1/s
- ipa s
- endphoneme
- phoneme *
- vcd alv stp
- lengthmod 6
- ipa ɾ
- Vowelin f1=1 f2=1700 -300 300 f3=0 80
- Vowelout f1=2 f2=1700 -300 300 f3=0 80
- IF PreVoicing THEN
- FMT(d/x_tap)
- ENDIF
- FMT(d/tap2) addWav(x/d, 40)
- endphoneme
|