Files
espeak-ng/phsource/ph_italian
T
chrislm 80da24bec7 Removed lengthen penultimate stressed vowels from dictionary.c lines 1469-1475. (See #80).
Fixed length stressed vowels in tr_language.c (see #80).

Improved phonemes, new statements for [a] and long close [o].

Added last improvements in italian dict source tested on april-may 2016.
2016-06-05 16:25:45 +02:00

226 lines
3.7 KiB
Plaintext

//====================================================
// Italian, last update 4 june 2016 by Chris <llajta2012@gmail.com>
//====================================================
phoneme : // Lengthen previous vowel by "length"
virtual
length 50
endphoneme
phoneme a
vowel starttype #a endtype #a
length 160
ChangeIfNotStressed(a/)
IF thisPh(isWordEnd) AND prevPhW(t) AND thisPh(isStressed) THEN
FMT(vowel/a)
ENDIF
IF nextPhW(o/) THEN
FMT(vowel/a_2)
ENDIF
IF prevPhW(isVowel) OR prevPhW(j) THEN
FMT(vowel/a, 90)
ENDIF
FMT(vwl_it/a)
endphoneme
phoneme a/
vowel starttype #a endtype #a
length 145
IF thisPh(isWordEnd) THEN
FMT(vowel/a_7, 75)
ENDIF
FMT(vowel/a_8)
endphoneme
phoneme e
vowel starttype #e endtype #e
length 155
ChangeIfNotStressed(e/)
FMT(vowel/e_2, 80)
endphoneme
phoneme e/
vowel starttype #e endtype #e
length 140
IF nextPhW(isNasal) OR nextPhW(isLiquid) THEN
FMT(vowel/e_mid2)
ELIF thisPh(isWordEnd) THEN
FMT(vowel/e, 65)
ENDIF
FMT(vowel/e)
endphoneme
phoneme E
vowel starttype #e endtype #e
length 150
ChangeIfUnstressed(e/)
FMT(vwl_it/e_open)
endphoneme
phoneme i
vowel starttype #i endtype #i
length 145
IfNextVowelAppend(;)
IF thisPh(isWordEnd) AND thisPh(isNotStressed) AND NOT prevPhW(E) THEN
ChangePhoneme(I)
ENDIF
FMT(vwl_it/i)
endphoneme
phoneme i# // Used for 'gia_' where [i] is only spoken if stressed
vowel starttype #i endtype #i
length 145
ChangeIfNotStressed(NULL)
ChangePhoneme(i)
endphoneme
phoneme I
vowel starttype #i endtype #i
length 140
IfNextVowelAppend(;)
FMT(vowel/i_4)
endphoneme
phoneme o
vowel starttype #o endtype #o
length 160
ChangeIfNotStressed(o/)
FMT(vwl_it/o)
endphoneme
phoneme o/
vowel starttype #o endtype #o
length 145
IF nextPhW(isNasal) OR nextPhW(isLiquid) THEN
FMT(vwl_it/o_open, 80)
ENDIF
IF thisPh(isWordEnd) THEN
FMT(vwl_it/o, 65)
ENDIF
FMT(vowel/o)
endphoneme
phoneme O
vowel starttype #o endtype #o
length 150
ChangeIfUnstressed(o/)
FMT(vwl_it/o_open)
endphoneme
phoneme u
vowel starttype #u endtype #u
length 160
ChangeIfNotStressed(U)
FMT(vwl_it/u)
endphoneme
phoneme U
vowel starttype #u endtype #u
length 140
FMT(vowel/u_bck2)
endphoneme
phoneme aU
vowel starttype #a endtype #u
length 270
FMT(vdiph/au_4)
endphoneme
phoneme aI
vowel starttype #a endtype #i
length 250
FMT(vdiph/ai)
endphoneme
phoneme oI
vowel starttype #o endtype #i
length 230
FMT(vdiph/oi)
endphoneme
// CONSONANTS
//==========
phoneme l
liquid
lengthmod 7
IF nextPh(isNotVowel) THEN
ChangePhoneme(l/)
ENDIF
NextVowelStarts
VowelStart(l/l@)
VowelStart(l/la, -10)
VowelStart(l/le, -15)
VowelStart(l/li, -15)
VowelStart(l/lo, -20)
VowelStart(l/lu, -17)
EndSwitch
IF prevPh(#@) THEN
VowelEnding(l/xl, -50)
ELIF prevPh(isVowel) THEN
VowelEnding(l/xl, -40)
ENDIF
IF prevPh(isPause) THEN
FMT(l/_l)
ENDIF
IF prevPh(t) THEN
FMT(l/tl)
ENDIF
IF prevPh(l/) THEN
FMT(l/l_long)
ENDIF
FMT(l/l)
endphoneme
phoneme l^
import_phoneme base/l^
Length 130
endphoneme
phoneme ts
vls alv afr sibilant
voicingswitch s
lengthmod 9
Vowelin f1=0 f2=1700 -300 300 f3=-100 60 len=60
Vowelout f1=0 f2=1700 -300 250 f3=-100 70 rms=14
IF nextPh(isNotVowel) THEN
WAV(ustop/ts_, 80)
ENDIF
IF prevPhW(isNotVowel) THEN
WAV(ustop/ts_, 70)
ENDIF
WAV(ustop/ts)
endphoneme
phoneme dz
import_phoneme consonants/dz
voicingswitch z
lengthmod 3
endphoneme
phoneme ss
vls alv frc sibilant
voicingswitch z
lengthmod 6
Vowelin f1=2 f2=1700 -300 300 f3=-100 80
Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20
length 170
WAV(ufric/s, 86)
endphoneme