//==================================================== // Spanish - based on Base2 //==================================================== phoneme e vowel starttype #e endtype #e length 170 FMT(vowel/e_mid2) endphoneme phoneme E vowel starttype #e endtype #e length 180 FMT(vowel/e_mid) endphoneme phoneme O vowel starttype #o endtype #o length 170 FMT(vowel/oo) 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 thisPh(isWordStart) AND nextPh(isVowel) 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 thisPh(isWordStart) AND nextPh(isVowel) 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 thisPh(isWordStart) AND nextPh(isVowel) 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, 40) // 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) 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