Files
espeak-ng/phsource/ph_spanish
T
chrislm d90c7f259a Created spanish diphthongs [oi], added statements to distinguish final diphtong, Created file phoneme oo_ unstressed final vowel.
Replace upercase O in ditc source

Added statements for unstressed vowels, change length/amplitude for unstressed vowels.

improved spanish prosody in tr_language.c

Added rule for suffix mente in es_rules

Translated language names

Added rules for letter spanish ce cedilla, see issue 130

Intonation: improved head and prehead in tune q6
2016-07-22 18:43:27 +02: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
vowel starttype #a endtype #a
length 190
ChangeIfNotStressed(a/)
FMT(vowel/a_4)
endphoneme
phoneme a/
vowel starttype #a endtype #a
length 155
IF thisPh(isWordEnd) THEN
FMT(vowel/a_4, 85)
ENDIF
FMT(vowel/a_4, 95)
endphoneme
phoneme e
vowel starttype #e endtype #e
length 190
ChangeIfNotStressed(e/)
FMT(vowel/e_mid2)
endphoneme
phoneme e/
vowel starttype #e endtype #e
length 150
FMT(vowel/e_mid2, 90)
endphoneme
phoneme E
vowel starttype #e endtype #e
length 175
ChangeIfNotStressed(e/)
FMT(vowel/e_mid2)
endphoneme
phoneme i
vowel starttype #i endtype #i
length 190
IfNextVowelAppend(;)
FMT(vowel/i)
endphoneme
phoneme o
vowel 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/
vowel starttype #o endtype #o
length 155
IF thisPh(isWordEnd) THEN
FMT(vwl_es/oo_)
ENDIF
FMT(vowel/oo, 90)
endphoneme
phoneme u
vowel starttype #u endtype #u
length 200
FMT(vowel/u_bck2)
endphoneme
phoneme oI
vowel 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 stop
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 stop
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 stop
IF nextPh(isVowel) OR nextPh(isRhotic) OR nextPh(isLiquid) THEN
IF prevPh(isPause) OR prevPh(isNasal) THEN
ELSE
ChangePhoneme(B)
ENDIF
ENDIF
CALL base/b
endphoneme
phoneme D
vcd dnt frc
lengthmod 6
voicingswitch T
CALL base/D
IF nextPh(isPause2) THEN
FMT(voc/dh_) addWav(vocw/dh, 35) // weaker
ENDIF
endphoneme
phoneme s
vls alv frc sibilant
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 base/*
endphoneme