Files
Reece H. Dunn 9ef1f2eec6 Use base1 as the base phonemetable, not 'base'.
This is a step in the transition to using a common IPA-based
phoneme table for the pronunciations. It allows the base phonemes
to import the IPA versions during this transition phase.
2017-01-30 20:16:47 +00:00

225 lines
3.3 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
//====================================================
// 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