| |
| |
| //========================================================= |
| // German |
| //========================================================= |
| |
| |
| |
| phoneme @ // Schwa |
| vwl starttype #@ endtype #@ |
| unstressed |
| length 120 |
| IF nextPh(r) THEN |
| IF next2Ph(isVowel) THEN |
| ELSE |
| ChangePhoneme(3) |
| ENDIF |
| ENDIF |
| FMT(vowel/@_4) |
| endphoneme |
| |
| |
| phoneme 3 // open Schwa+r |
| vwl starttype #@ endtype #@ |
| unstressed flag1 |
| length 140 |
| FMT(vowel/a#_3) // in eSpeak 1.44, this used vowel/V_3 at end-of-word |
| endphoneme |
| |
| |
| phoneme a |
| vwl starttype #a endtype #a |
| length 110 |
| IF nextPh(isRhotic) THEN |
| length 125 |
| ENDIF |
| FMT(vowel/a) |
| endphoneme |
| |
| |
| phoneme E |
| vwl starttype #e endtype #e |
| length 120 |
| IF nextPh(*) THEN |
| length 135 |
| ENDIF |
| FMT(vowel/e_mid2) |
| endphoneme |
| |
| |
| phoneme E2 // as[E] but reduces to @ if unstressed |
| vwl starttype #e endtype #e |
| length 120 |
| ChangeIfDiminished(@) |
| IF nextPh(*) THEN |
| length 135 |
| ENDIF |
| FMT(vowel/e_mid2) |
| endphoneme |
| |
| |
| phoneme I |
| vwl starttype #i endtype #i |
| length 120 |
| IF nextPh(*) THEN |
| length 135 |
| ENDIF |
| IfNextVowelAppend(;) |
| FMT(vowel/ii) |
| endphoneme |
| |
| |
| phoneme I: |
| vwl starttype #i endtype #i |
| length 190 |
| FMT(vowel/ii) |
| endphoneme |
| |
| |
| phoneme O |
| vwl starttype #o endtype #o |
| length 120 |
| IF nextPh(*) THEN |
| length 135 |
| ENDIF |
| FMT(vowel/oo) |
| endphoneme |
| |
| |
| phoneme U |
| vwl starttype #u endtype #u |
| length 120 |
| IF nextPh(*) THEN |
| length 135 |
| ENDIF |
| |
| IF nextPh(r) AND next2Ph(isNotVowel) THEN |
| ChangePhoneme(UR) |
| ENDIF |
| FMT(vowel/uu_2) |
| endphoneme |
| |
| |
| phoneme A: |
| vwl starttype #a endtype #a |
| length 250 |
| FMT(vowel/aa_6) |
| endphoneme |
| |
| |
| phoneme A // reduces to [a] if not stressed |
| vwl starttype #a endtype #a |
| length 250 |
| ChangeIfUnstressed(a) |
| FMT(vowel/aa_6) |
| endphoneme |
| |
| |
| phoneme i: |
| vwl starttype #i endtype #i |
| length 180 |
| IF prevPh(w) THEN |
| VowelStart(w/wi2) |
| ENDIF |
| |
| // IF nextPh(r) AND next2Ph(isNotVowel) THEN |
| // ChangePhoneme(iR) |
| // ENDIF |
| FMT(vowel/i_2) |
| endphoneme |
| |
| |
| phoneme i2 |
| vwl starttype #i endtype #i |
| length 180 |
| ChangeIfNotStressed(I) |
| IF prevPh(w) THEN |
| VowelStart(w/wi2) |
| ENDIF |
| FMT(vowel/i_2) |
| endphoneme |
| |
| |
| phoneme u: |
| vwl starttype #u endtype #u |
| length 190 |
| FMT(vowel/u) |
| endphoneme |
| |
| |
| phoneme aU |
| vwl starttype #a endtype #u |
| length 220 |
| FMT(vdiph/aau_6) |
| endphoneme |
| |
| |
| phoneme aI |
| vwl starttype #a endtype #i |
| length 210 |
| FMT(vdiph/ai_5) |
| endphoneme |
| |
| |
| phoneme EI |
| import_phoneme en-us/eI |
| endphoneme |
| |
| |
| |
| phoneme OY |
| vwl starttype #o endtype #i |
| length 220 |
| FMT(vdiph/oi) |
| endphoneme |
| |
| |
| phoneme E: |
| vwl starttype #e endtype #e |
| length 200 |
| FMT(vowel/e_8) |
| endphoneme |
| |
| |
| phoneme e: |
| vwl starttype #e endtype #e |
| length 200 |
| FMT(vowel/e_2) |
| endphoneme |
| |
| |
| phoneme o: |
| vwl starttype #o endtype #o |
| length 210 |
| FMT(vowel/o) |
| endphoneme |
| |
| |
| phoneme y: |
| vwl starttype #u endtype #u |
| length 200 |
| FMT(vowel/y) |
| endphoneme |
| |
| |
| phoneme y |
| vwl starttype #u endtype #u |
| ipa ʏ |
| length 110 |
| IF nextPh(*) THEN |
| length 115 |
| ENDIF |
| FMT(vowel/yy_4) |
| endphoneme |
| |
| |
| phoneme Y: |
| vwl starttype #@ endtype #@ |
| length 180 |
| FMT(vowel/y#) |
| endphoneme |
| |
| |
| phoneme W |
| vwl starttype #@ endtype #@ |
| length 150 |
| IF nextPh(*) THEN |
| length 160 |
| ENDIF |
| FMT(vowel/oe) |
| endphoneme |
| |
| |
| |
| // CONSONANTS |
| //=========== |
| |
| phoneme t |
| vls alv stp |
| voicingswitch d |
| lengthmod 2 |
| Vowelin f1=0 f2=1700 -300 300 f3=-100 80 |
| Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20 |
| |
| IF nextPh(isPause2) THEN |
| WAV(ustop/t_) |
| ELIF nextPh(r) THEN |
| WAV(ustop/t_) |
| ELIF nextPh(@-) THEN |
| WAV(ustop/t_dnt, 50) |
| ENDIF |
| WAV(ustop/t, 90) |
| endphoneme |
| |
| |
| |
| phoneme ts |
| import_phoneme consonants/ts |
| endphoneme |
| |
| |
| phoneme pF |
| vls bld afr |
| ipa pf |
| Vowelout f1=0 f2=1000 -500 -350 f3=-200 80 |
| lengthmod 2 |
| WAV(ufric/f) // could replace this with a [pf] wav file |
| endphoneme |
| |
| |
| phoneme g# // for "ig" -> [IC] or [Ig] |
| vls pal frc |
| lengthmod 3 |
| |
| IF nextPhW(isVoiced) THEN |
| ChangePhoneme(g) |
| ELSE |
| ChangePhoneme(C) |
| ENDIF |
| endphoneme |
| |
| |
| |
| phoneme l/ // used for [l] when not before a vowel |
| liquid |
| lengthmod 7 |
| |
| IF nextPh(isVowel) THEN |
| ChangePhoneme(l) |
| ENDIF |
| |
| PrevVowelEndings |
| VowelEnding(l/L1_@L, -60) |
| VowelEnding(l/L1_aL, -40) |
| VowelEnding(l/L1_eL, -30) |
| VowelEnding(l/L1_iL, -30) |
| VowelEnding(l/L1_oL, -40) |
| VowelEnding(l/L1_uL, -40) |
| EndSwitch |
| |
| FMT(l/l_3) |
| endphoneme |
| |
| |
| phoneme j |
| liquid pal |
| lengthmod 7 |
| |
| IF nextPh(isVowel) THEN |
| NextVowelStarts |
| VowelStart(j/j@) |
| VowelStart(j/ja) |
| VowelStart(j/je) |
| VowelStart(j/ji) |
| VowelStart(j/jo) |
| VowelStart(j/ju) |
| EndSwitch |
| |
| VowelEnding(j/xj, -30) |
| |
| IF prevPh(isPause) THEN |
| FMT(j/_j_short) // difference from base1/j |
| ENDIF |
| ELSE |
| // no vowel follows |
| Vowelout len=70 |
| FMT(j/j_) |
| ENDIF |
| endphoneme |
| |
| |
| phoneme r // note, following consonant must be 'ustop/t_' not 'ustop/tr' etc. |
| liquid alv rhotic |
| lengthmod 6 |
| |
| IF prevPhW(@-) THEN |
| ELSE |
| IF nextPhW(isVowel) THEN |
| IF prevPhW(isVowel) THEN |
| ChangePhoneme(R) |
| ELSE |
| IF prevPhW(t) THEN |
| PauseBefore 30 |
| ELSEIF prevPhW(d) OR prevPhW(b) OR prevPhW(g) OR prevPhW(k) OR prevPhW(p) THEN |
| PauseBefore 15 |
| ELSE |
| InsertPhoneme(@-) |
| ENDIF |
| ENDIF |
| ENDIF |
| ENDIF |
| |
| IF prevPh(isFlag1) THEN |
| ChangePhoneme(NULL) // 'r' is already included in the previous vowel |
| ENDIF |
| |
| CALL base1/* |
| endphoneme |
| |
| |
| |
| phoneme iR // TEST "vier" = [f'iR] not successful |
| vwl starttype #i endtype #@ |
| ipa iɐ |
| flag1 |
| length 240 |
| FMT(vdiph2/i@_3) |
| endphoneme |
| |
| |
| phoneme UR |
| vwl starttype #u endtype #@ |
| ipa ʊɐ |
| flag1 |
| length 180 |
| FMT(vwl_de/uu_@) |
| endphoneme |
| |
| |
| |
| |
| phoneme oU // for English words |
| import_phoneme en-us/oU |
| endphoneme |
| |
| phoneme A~ |
| vwl starttype #a endtype #a |
| length 260 |
| FMT(vnasal/aa_n4) |
| endphoneme |
| |
| |
| phoneme W~ |
| vwl starttype #@ endtype #@ |
| length 200 |
| FMT(vnasal/W_n) |
| endphoneme |
| |
| |
| phoneme l2 // as [l] but devoice previous phoneme |
| liquid lengthmod 7 |
| ChangePhoneme (l) |
| endphoneme |
| |
| phoneme b |
| vcd blb stp |
| voicingswitch p |
| IF nextPh(l2) THEN |
| ChangePhoneme(p) |
| ENDIF |
| CALL base1/b |
| endphoneme |
| |
| phoneme d |
| vcd alv stp |
| voicingswitch t |
| IF nextPh(l2) THEN |
| ChangePhoneme(t) |
| ENDIF |
| lengthmod 5 |
| Vowelin f1=1 f2=1700 -300 300 f3=-100 80 |
| Vowelout f1=2 f2=1700 -300 300 f3=-100 80 brk |
| |
| IF PreVoicing THEN |
| FMT(d/xd) |
| ENDIF |
| |
| IF nextPh(isPause2) THEN |
| FMT(d/d_) addWav(x/d_) |
| ELIF nextPh(r) THEN |
| FMT(d/dr) addWav(x/d) |
| ENDIF |
| |
| FMT(d/d) addWav(x/d) |
| endphoneme |
| |
| phoneme g |
| vcd vel stp |
| voicingswitch k |
| IF nextPh(l2) THEN |
| ChangePhoneme(k) |
| ENDIF |
| CALL base1/g |
| endphoneme |
| |
| |
| phoneme k |
| vls vel stp |
| voicingswitch g |
| lengthmod 2 |
| Vowelin f1=0 f2=2300 200 300 f3=-200 80 |
| Vowelout f1=0 f2=2300 300 400 f3=-200 80 rms=20 |
| |
| IF KlattSynth THEN |
| Vowelout f1=0 f2=2300 200 300 f3=-200 80 rms=20 |
| ENDIF |
| |
| IF nextPh(isPause2) THEN |
| WAV(ustop/k_) |
| ELIF nextPh(r) THEN |
| WAV(ustop/k, 70) |
| ELIF nextPh(R) OR nextPh(R2) THEN |
| WAV(ustop/k_) |
| ELIF nextPh(i:) OR nextPh(;) THEN |
| WAV(ustop/ki) |
| ELIF nextPh(l) THEN |
| WAV(ustop/kl) |
| ELIF nextPh(@-) THEN |
| WAV(ustop/k_unasp) |
| ENDIF |
| WAV(ustop/k) |
| endphoneme |
| |
| |
| phoneme x |
| vls vel frc |
| voicingswitch Q |
| lengthmod 3 |
| Vowelin f1=0 f2=2300 200 400 f3=-100 80 |
| Vowelout f1=0 f2=2300 300 400 f3=-100 80 rms=20 |
| |
| IF nextPh(isPause) THEN |
| WAV(ufric/x2, 60) |
| ENDIF |
| WAV(ufric/x_hr, 20) |
| endphoneme |