Files
espeak-ng/phsource/ph_spanish
T
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

194 lines
3.2 KiB
Plaintext
Raw 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.
//====================================================
// Spanish - based on Base2
//====================================================
phoneme a
vwl starttype #a endtype #a
length 190
ChangeIfNotStressed(a/)
FMT(vowel/a_4)
endphoneme
phoneme a/
vwl starttype #a endtype #a
length 155
IF thisPh(isWordEnd) THEN
FMT(vowel/a_4, 85)
ENDIF
FMT(vowel/a_4, 95)
endphoneme
phoneme e
vwl starttype #e endtype #e
length 190
ChangeIfNotStressed(e/)
FMT(vowel/e_mid2)
endphoneme
phoneme e/
vwl starttype #e endtype #e
length 150
FMT(vowel/e_mid2, 90)
endphoneme
phoneme E
vwl starttype #e endtype #e
length 175
ChangeIfNotStressed(e/)
FMT(vowel/e_mid2)
endphoneme
phoneme i
vwl starttype #i endtype #i
length 190
IfNextVowelAppend(;)
FMT(vowel/i)
endphoneme
phoneme o
vwl starttype #o endtype #o
length 195
ChangeIfNotStressed(o/)
IF nextPhW(n) THEN
length 160
FMT(vowel/o_mid2)
ENDIF
FMT(vowel/oo)
endphoneme
phoneme o/
vwl starttype #o endtype #o
length 155
IF thisPh(isWordEnd) THEN
FMT(vwl_es/oo_)
ENDIF
FMT(vowel/oo, 90)
endphoneme
phoneme u
vwl starttype #u endtype #u
length 200
FMT(vowel/u_bck2)
endphoneme
phoneme oI
vwl starttype #o endtype #i
length 245
IF thisPh(isWordEnd) OR prevPh(r) THEN
length 260
FMT(vwl_es/ooi_)
ENDIF
FMT(vwl_es/ooi)
endphoneme
phoneme g
vcd vel stp
lengthmod 5
voicingswitch k
Vowelin f1=2 f2=2300 200 300 f3=-300 80
Vowelout f1=2 f2=2300 250 300 f3=-300 80 brk
IF nextPh(isVowel) OR nextPh(isRhotic) OR nextPh(isLiquid) THEN
IF prevPh(isPause) OR prevPh(isNasal) THEN
ELSE
ChangePhoneme(Q)
ENDIF
ENDIF
IF PreVoicing THEN
FMT(g/xg)
ENDIF
IF nextPh(isPause2) THEN
FMT(g/g_) addWav(x/g_)
ENDIF
FMT(g/g) addWav(x/g2) // weaker [g]
endphoneme
phoneme d
vcd dnt stp
IF nextPh(isVowel) OR nextPh(isRhotic) OR nextPh(j) THEN
IF prevPh(isPause) OR prevPh(isNasal) OR prevPh(l) THEN
ELSE
ChangePhoneme(D)
ENDIF
ENDIF
CALL base2/d
endphoneme
phoneme b
vcd blb stp
IF nextPh(isVowel) OR nextPh(isRhotic) OR nextPh(isLiquid) THEN
IF prevPh(isPause) OR prevPh(isNasal) THEN
ELSE
ChangePhoneme(B)
ENDIF
ENDIF
CALL base1/b
endphoneme
phoneme D
vcd dnt frc
lengthmod 6
voicingswitch T
CALL base1/D
IF nextPh(isPause2) THEN
FMT(voc/dh_) addWav(vocw/dh, 35) // weaker
ENDIF
endphoneme
phoneme s
vls alv frc sib
lengthmod 3
voicingswitch z
Vowelin f1=0 f2=1700 -300 300 f3=-100 80
Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20
IF nextPh(isPause) THEN
WAV(ufric/s_, 60) // quieter 's' at end of word
ELIF nextPh(p) OR nextPh(t) OR nextPh(k) THEN
WAV(ufric/s!)
ENDIF
WAV(ufric/s, 80)
endphoneme
phoneme v# // a shorter [v], a little towards [b]
vcd lbd frc
ipa ʋ
lengthmod 6
voicingswitch f
Vowelin f1=1 f2=1000 -300 -200 f3=-300 100
Vowelout f1=0 f2=1000 -500 -300 f3=-300 60 len=10
IF nextPh(isPause2) THEN
FMT(voc/v_) addWav(vocw/v, 80)
ENDIF
FMT(voc/v2) addWav(vocw/v, 80)
endphoneme
phoneme r
vcd alv flp rhotic
brkafter
ipa ɾ
lengthmod 3
IF nextPhW(isVowel) THEN
ChangePhoneme(**)
ENDIF
CALL base1/*
endphoneme