//==================================================== // Italian, last update may 31 2018 by Chris //==================================================== phoneme : // Lengthen previous vowel by "length" virtual length 50 endphoneme phoneme a vwl 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/) OR prevPhW(isVowel) OR prevPhW(j) THEN FMT(vowel/a) ENDIF FMT(vwl_it/a) endphoneme phoneme a/ vwl starttype #a endtype #a length 150 IF prevPhW(l) THEN FMT(vowel/a_7, 80) ENDIF IF thisPh(isWordEnd) THEN FMT(vowel/a_8, 70) ENDIF IF thisPh(isWordStart) THEN FMT(vwl_it/a, 85) ENDIF FMT(vowel/a_8, 80) endphoneme phoneme e vwl starttype #e endtype #e length 160 ChangeIfNotStressed(e/) FMT(vowel/e_2) endphoneme phoneme e/ vwl starttype #e endtype #e length 145 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 vwl starttype #e endtype #e length 150 ChangeIfUnstressed(e/) FMT(vwl_it/e_open) endphoneme phoneme i vwl starttype #i endtype #i length 155 IfNextVowelAppend(;) IF thisPh(isWordEnd) AND thisPh(isNotStressed) AND prevPhW(isNotVowel) THEN ChangePhoneme(I) ENDIF IF thisPh(isNotStressed) AND prevPhW(isNotVowel) AND nextPhW(isVowel) THEN ChangePhoneme(i/) ENDIF IF thisPh(isNotStressed) AND prevPhW(isNotVowel) AND nextPhW(isNotVowel) THEN ChangePhoneme(i/) ENDIF FMT(vwl_it/i) endphoneme phoneme i/ vwl starttype #i endtype #i unstressed length 130 IfNextVowelAppend(;) FMT(vwl_it/i, 90) endphoneme phoneme i# // Used for 'gia_' where [i] is only spoken if stressed vwl starttype #i endtype #i length 145 ChangeIfNotStressed(NULL) ChangePhoneme(i) endphoneme phoneme I vwl starttype #i endtype #i length 145 IfNextVowelAppend(;) FMT(vowel/i_7) endphoneme phoneme o vwl starttype #o endtype #o length 170 ChangeIfNotStressed(o/) FMT(vwl_it/o) endphoneme phoneme o/ vwl starttype #o endtype #o length 145 IF nextPhW(isNasal) OR nextPhW(isLiquid) THEN FMT(vwl_it/o_open, 80) ENDIF IF thisPh(isWordEnd) AND NOT prevPhW(a) THEN length 150 FMT(vowel/o_mid, 65) ENDIF FMT(vowel/o, 90) endphoneme phoneme O vwl starttype #o endtype #o length 150 ChangeIfUnstressed(o/) FMT(vwl_it/o_open) endphoneme phoneme u vwl starttype #u endtype #u length 175 ChangeIfNotStressed(U) FMT(vwl_it/u) endphoneme phoneme U vwl starttype #u endtype #u length 140 FMT(vowel/u_bck2) endphoneme phoneme aU vwl starttype #a endtype #u length 270 FMT(vdiph/au_4) endphoneme phoneme aI vwl starttype #a endtype #i length 250 FMT(vdiph/ai) endphoneme phoneme oI vwl 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 base1/l^ length 130 endphoneme phoneme ts vls alv afr sib voicingswitch s lengthmod 2 Vowelin f1=0 f2=1700 -300 300 f3=-100 60 len=60 Vowelout f1=0 f2=1700 -300 250 f3=-100 70 rms=18 IF nextPh(isPause2) THEN WAV(ustop/ts_) ENDIF WAV(ustop/ts) endphoneme phoneme ts2 vls alv afr sib voicingswitch dz lengthmod 9 Vowelin f1=2 f2=1700 -300 300 f3=-200 120 len=10 Vowelout f1=0 f2=1700 -300 250 f3=-100 170 rms=20 brk IF nextPh(isStressed) THEN Vowelin f1=0 f2=1700 -300 300 f3=-100 60 len=60 Vowelout f1=0 f2=1700 -300 250 f3=-100 70 rms=14 WAV(ustop/ts_, 80) ENDIF WAV(ustop/ts_, 70) endphoneme phoneme dz import_phoneme consonants/dz voicingswitch z lengthmod 3 endphoneme phoneme ss vls alv frc sib voicingswitch z lengthmod 3 Vowelin f1=0 f2=1700 -300 300 f3=-100 90 Vowelout f1=2 f2=1700 -200 250 f3=-100 60 rms=20 length 140 WAV(ufric/s, 75) endphoneme phoneme v vcd lbd frc voicingswitch f lengthmod 6 Vowelin f1=0 f2=1000 -300 -200 f3=-300 100 Vowelout f1=0 f2=1000 -500 -300 f3=-300 60 len=50 IF prevPhW(z) THEN length 70 FMT(voc/v_) addWav(vocw/v, 60) ENDIF IF KlattSynth THEN Vowelout f1=1 f2=1000 -500 -300 f3=-300 60 len=50 brk IF nextPh(isPause2) THEN FMT(klatt/v_) addWav(vocw/v) ENDIF FMT(klatt/v) addWav(vocw/v, 150) ENDIF IF nextPh(isPause2) THEN FMT(voc/v_) addWav(vocw/v) ENDIF IF thisPh(isWordStart) AND nextPhW(isLiquid) THEN length 70 ENDIF FMT(voc/v) addWav(vocw/v, 90) endphoneme phoneme z vcd alv frc sib voicingswitch s lengthmod 6 Vowelout f1=0 f2=1700 -300 300 f3=-100 60 len=50 IF KlattSynth THEN Vowelin f1=0 f2=1390 -300 300 f3=0 0 Vowelout f1=1 f2=1390 -300 300 f3=-100 60 len=50 brk ENDIF IF nextPhW(v) OR nextPhW(b) THEN FMT(voc/z) addWav(ufric/s!, 60) ENDIF FMT(voc/z) addWav(ufric/s_, 85) endphoneme // Consonant weakening [ITA] (Spirantizzazione delle occlusive) phoneme k~ vls vel stp lengthmod 2 voicingswitch g IF prevPh(isVowel) AND nextPhW(isVowel) THEN ChangePhoneme(h) ENDIF Vowelin f1=0 f2=2300 200 400 f3=-100 80 Vowelout f1=0 f2=2300 300 400 f3=-100 80 rms=20 IF nextPh(isPause2) THEN WAV(ustop/k_) ELIF nextPh(isRhotic) THEN WAV(ustop/kr) ELIF nextPh(l) THEN WAV(ustop/kl) ENDIF WAV(ustop/k_unasp, 70) endphoneme phoneme tS~ vls pla afr sib voicingswitch dZ lengthmod 2 IF prevPh(isVowel) AND nextPhW(isVowel) THEN ChangePhoneme(S) ENDIF Vowelin f1=0 f2=2300 200 400 f3=-100 80 IF nextPh(isPause2) THEN WAV(ustop/tsh_) ENDIF WAV(ustop/tsh) endphoneme phoneme dZ~ vcd pla afr sib voicingswitch S lengthmod 5 IF prevPh(isVowel) AND nextPhW(isVowel) THEN ChangePhoneme(Z) ENDIF Vowelin f1=2 f2=2300 200 400 f3=100 80 Vowelout f1=2 f2=2300 250 300 f3=100 80 brk IF PreVoicing THEN FMT(dzh/xdzh) ENDIF IF nextPh(isPause2) THEN FMT(dzh/dzh_) addWav(x/dzh_) ENDIF FMT(dzh/dzh) addWav(x/dzh) endphoneme phoneme g~ vcd vel stp voicingswitch k lengthmod 5 IF prevPh(isVowel) AND nextPhW(isVowel) THEN ChangePhoneme(Q~) ENDIF Vowelin f1=2 f2=2300 200 300 f3=-300 80 Vowelout f1=2 f2=2300 250 300 f3=-300 80 brk IF nextPh(isPause2) THEN FMT(g/g_) addWav(x/g_) ENDIF FMT(g/g) addWav(x/g2, 130) endphoneme phoneme Q~ vcd vel frc voicingswitch x lengthmod 6 Vowelin f1=2 f2=2300 200 400 f3=-100 80 Vowelout f1=2 f2=2300 250 300 f3=-300 80 brk IF KlattSynth THEN IF nextPh(isPause2) THEN FMT(klatt/qqh_) addWav(vocw/Q_) ENDIF FMT(klatt/qqh) addWav(vocw/Q) ENDIF IF nextPh(isPause2) THEN FMT(voc/Q_) addWav(vocw/Q_) ENDIF FMT(voc/Q) addWav(vocw/Q2, 70) endphoneme phoneme S~ vls pla frc sib voicingswitch Z lengthmod 3 Vowelin f1=0 f2=2100 100 300 f3=-100 80 Vowelout f1=0 f2=2100 100 300 f3=-100 80 IF nextPhW(isVowel) THEN ChangePhoneme(s) ENDIF WAV(ufric/sh, 85) endphoneme