Co-authored-by: Baybars Külebi <[email protected]> Co-authored-by: gullabi <[email protected]> Co-authored-by: mllopartbsc <[email protected]>master
- name: test | - name: test | ||||
run: | | run: | | ||||
${{ matrix.config_env }} ${{ matrix.runenv }} cmake --build build --target tests | ${{ matrix.config_env }} ${{ matrix.runenv }} cmake --build build --target tests | ||||
${{ matrix.config_env }} ${{ matrix.runenv }} ctest --test-dir build -T test -j8 --output-on-failure | |||||
${{ matrix.config_env }} ${{ matrix.runenv }} ctest --test-dir build -T test -j8 --output-on-failure |
- name: make | - name: make | ||||
run: cmake --build build --config ${{ matrix.config }} | run: cmake --build build --config ${{ matrix.config }} | ||||
- name: make check | - name: make check | ||||
run: ctest --test-dir build -T test -C ${{ matrix.config }} -j8 --output-on-failure | |||||
run: ctest --test-dir build -T test -C ${{ matrix.config }} -j8 --output-on-failure |
[2-clause BSD](COPYING.BSD2) license. | [2-clause BSD](COPYING.BSD2) license. | ||||
Android is a trademark of Google LLC. | Android is a trademark of Google LLC. | ||||
## Acknowledgements | |||||
The catalan extension was funded by [Departament de la Vicepresidència i de Polítiques Digitals i Territori de la Generalitat de Catalunya](https://politiquesdigitals.gencat.cat/ca/inici/index.html#googtrans(ca|en) | |||||
within the framework of | |||||
[Projecte AINA](https://politiquesdigitals.gencat.cat/ca/economia/catalonia-ai/aina). |
$textmode | $textmode | ||||
// 0000..007F : C0 Controls and Basic Latin | // 0000..007F : C0 Controls and Basic Latin | ||||
//+ plus // [002B] other (no translation) | //+ plus // [002B] other (no translation) |
name Catalan | name Catalan | ||||
language ca | language ca | ||||
dictrules 1 |
name Catalan (Balearic) | |||||
language ca-ba | |||||
phonemes ca-ba | |||||
dictrules 1 | |||||
dictrules 4 |
name Catalan (North-western) | |||||
language ca-nw | |||||
phonemes ca-nw | |||||
dictrules 2 |
name Catalan (Valencian) | |||||
language ca-va | |||||
phonemes ca-va | |||||
dictrules 2 | |||||
dictrules 3 |
//==================================================== | //==================================================== | ||||
// Catalan - based on Spanish and Base2 | // Catalan - based on Spanish and Base2 | ||||
//==================================================== | //==================================================== | ||||
// in our project we decided not to use elisions, but they could be managed here by using "ipa NULL" | |||||
// vowels | |||||
//============= | |||||
phoneme a | phoneme a | ||||
vwl starttype #a endtype #a | vwl starttype #a endtype #a | ||||
length 180 | length 180 | ||||
ChangeIfUnstressed(a#) | |||||
IF thisPh(isUnstressed) THEN | |||||
ChangePhoneme(@) | |||||
ENDIF | |||||
FMT(vowel/a_6) | FMT(vowel/a_6) | ||||
endphoneme | endphoneme | ||||
phoneme a# | |||||
vwl starttype #@ endtype #@ | |||||
ipa ɐ | |||||
unstressed | |||||
length 170 | |||||
FMT(vowel/a#_3) | |||||
phoneme a2 // don't reduce | |||||
vwl starttype #a endtype #a | |||||
length 180 | |||||
FMT(vowel/a_6) | |||||
endphoneme | endphoneme | ||||
phoneme e | phoneme e | ||||
vwl starttype #e endtype #e | vwl starttype #e endtype #e | ||||
length 170 | length 170 | ||||
ChangeIfUnstressed(@) | |||||
IF thisPh(isUnstressed) THEN | |||||
ChangePhoneme(@) | |||||
ENDIF | |||||
FMT(vowel/e) | |||||
endphoneme | |||||
phoneme e2 // don't reduce | |||||
vwl starttype #e endtype #e | |||||
length 170 | |||||
FMT(vowel/e) | FMT(vowel/e) | ||||
endphoneme | endphoneme | ||||
phoneme E | phoneme E | ||||
vwl starttype #e endtype #e | vwl starttype #e endtype #e | ||||
length 180 | length 180 | ||||
ChangeIfUnstressed(@) | |||||
IF thisPh(isUnstressed) THEN | |||||
ChangePhoneme(@) | |||||
ENDIF | |||||
FMT(vowel/e_mid) | FMT(vowel/e_mid) | ||||
endphoneme | endphoneme | ||||
phoneme E2 // don't reduce | phoneme E2 // don't reduce | ||||
vwl starttype #e endtype #e | vwl starttype #e endtype #e | ||||
length 180 | length 180 | ||||
ChangeIfUnstressed(e2) | |||||
FMT(vowel/e_mid) | FMT(vowel/e_mid) | ||||
endphoneme | endphoneme | ||||
phoneme O | phoneme O | ||||
vwl starttype #o endtype #o | vwl starttype #o endtype #o | ||||
length 170 | length 170 | ||||
ChangeIfUnstressed(U) | |||||
IF thisPh(isUnstressed) THEN | |||||
IF thisPh(isWordEnd) AND nextPh(isVowel) THEN | |||||
IF nextPh(i) THEN | |||||
ChangePhoneme(u) | |||||
ELSE | |||||
ChangePhoneme(w) | |||||
ENDIF | |||||
ELIF thisPh(isWordStart) AND prevPh(isVowel) THEN | |||||
ChangePhoneme(w) | |||||
ELSE | |||||
ChangePhoneme(u) | |||||
ENDIF | |||||
ENDIF | |||||
FMT(vowel/oo) | FMT(vowel/oo) | ||||
endphoneme | endphoneme | ||||
phoneme o | phoneme o | ||||
vwl starttype #o endtype #o | vwl starttype #o endtype #o | ||||
length 170 | length 170 | ||||
ChangeIfUnstressed(U) | |||||
IF thisPh(isUnstressed) THEN | |||||
IF thisPh(isWordEnd) AND nextPh(isVowel) THEN | |||||
IF nextPh(i) THEN | |||||
ChangePhoneme(u) | |||||
ELSE | |||||
ChangePhoneme(w) | |||||
ENDIF | |||||
ELIF thisPh(isWordStart) AND prevPh(isVowel) THEN | |||||
ChangePhoneme(w) | |||||
ELSE | |||||
ChangePhoneme(u) | |||||
ENDIF | |||||
ENDIF | |||||
FMT(vowel/o) | |||||
endphoneme | |||||
phoneme o2 | |||||
vwl starttype #o endtype #o | |||||
length 170 | |||||
FMT(vowel/o) | FMT(vowel/o) | ||||
endphoneme | endphoneme | ||||
phoneme O2 | |||||
vwl starttype #o endtype #o | |||||
length 170 | |||||
FMT(vowel/oo) | |||||
endphoneme | |||||
phoneme U | phoneme U | ||||
vwl starttype #u endtype #u | vwl starttype #u endtype #u | ||||
unstressed | unstressed | ||||
phoneme u | phoneme u | ||||
vwl starttype #u endtype #u | vwl starttype #u endtype #u | ||||
length 160 | length 160 | ||||
ChangeIfUnstressed(U) | |||||
IF thisPh(isUnstressed) THEN | |||||
IF thisPh(isWordEnd) THEN | |||||
IF nextPh(isVowel) THEN | |||||
IF nextPh(i) THEN | |||||
ELSE | |||||
ChangePhoneme(w) | |||||
ENDIF | |||||
ENDIF | |||||
ELIF thisPh(isWordStart) THEN | |||||
IF prevPh(isVowel) THEN | |||||
ChangePhoneme(w) | |||||
ENDIF | |||||
ENDIF | |||||
ENDIF | |||||
FMT(vowel/u_bck) | FMT(vowel/u_bck) | ||||
endphoneme | endphoneme | ||||
phoneme i | |||||
vwl starttype #i endtype #i | |||||
length 170 | |||||
IF thisPh(isUnstressed) THEN | |||||
IF thisPh(isWordEnd) THEN | |||||
IF nextPh(isVowel) THEN | |||||
IF nextPh(u) THEN | |||||
ELSE | |||||
ChangePhoneme(j) | |||||
ENDIF | |||||
ENDIF | |||||
ELIF thisPh(isWordStart) THEN | |||||
IF prevPh(isVowel) THEN | |||||
ChangePhoneme(j) | |||||
ENDIF | |||||
ENDIF | |||||
ENDIF | |||||
FMT(vowel/i) | |||||
endphoneme | |||||
// nasals | |||||
//============== | |||||
phoneme M | |||||
vls lbd nas | |||||
ipa ɱ | |||||
IF nextPh(v) THEN | |||||
ChangePhoneme(m) | |||||
ENDIF | |||||
endphoneme | |||||
phoneme m | |||||
vcd blb nas | |||||
Vowelout f1=2 f2=1000 -500 -350 f3=-200 80 brk | |||||
lengthmod 4 | |||||
IF KlattSynth THEN | |||||
Vowelin f1=0 f2=1000 -50 -200 f3=-200 80 | |||||
IF nextPh(isPause2) THEN | |||||
FMT(klatt/m_) | |||||
ENDIF | |||||
FMT(klatt/m) | |||||
ENDIF | |||||
NextVowelStarts | |||||
VowelStart(m/m@) | |||||
VowelStart(m/ma) | |||||
VowelStart(m/me) | |||||
VowelStart(m/mi) | |||||
VowelStart(m/mo) | |||||
VowelStart(m/mu) | |||||
EndSwitch | |||||
IF nextPh(f) OR nextPh(v) THEN | |||||
ChangePhoneme(M) | |||||
ENDIF | |||||
IF prevPh(isNotVowel) AND nextPhW(isLiquid) THEN | |||||
FMT(m/mj) | |||||
ELIF prevPh(isPause) THEN | |||||
FMT(m/_m) | |||||
ELIF nextPh(isNotVowel) THEN | |||||
FMT(m/m_) | |||||
ENDIF | |||||
endphoneme | |||||
phoneme n | |||||
vcd alv nas | |||||
Vowelout f1=2 f2=1500 -300 250 f3=-100 80 rms=20 brk | |||||
lengthmod 4 | |||||
IF KlattSynth THEN | |||||
Vowelin f1=0 f2=1500 -200 200 f3=0 80 | |||||
FMT(klatt/n) | |||||
ENDIF | |||||
NextVowelStarts | |||||
VowelStart(n/n@) | |||||
VowelStart(n/na) | |||||
VowelStart(n/ne) | |||||
VowelStart(n/ni) | |||||
VowelStart(n/no) | |||||
VowelStart(n/nu) | |||||
EndSwitch | |||||
IF nextPh(f) THEN | |||||
ChangePhoneme(M) | |||||
ELIF nextPh(k) OR nextPh(g) THEN | |||||
ChangePhoneme(N) | |||||
ELIF nextPh(p) OR nextPh(b) OR nextPh(v) OR nextPh(m) THEN | |||||
ChangePhoneme(m) | |||||
ELIF nextPh(l^) OR nextPh(n^) THEN | |||||
ChangePhoneme(n^) | |||||
ENDIF | |||||
IF prevPh(isNotVowel) AND nextPhW(isLiquid) THEN | |||||
FMT(n/nj) | |||||
ELIF prevPh(isPause) OR prevPh(n) THEN | |||||
FMT(n/_n) | |||||
ELIF nextPh(isNotVowel) THEN | |||||
FMT(n/n_) | |||||
ENDIF | |||||
endphoneme | |||||
phoneme l | phoneme l | ||||
import_phoneme en/l // use 'dark' [l] after a vowel | import_phoneme en/l // use 'dark' [l] after a vowel | ||||
endphoneme | endphoneme | ||||
// fricatives | |||||
//================ | |||||
phoneme s | |||||
vls alv frc sib | |||||
voicingswitch z | |||||
lengthmod 3 | |||||
Vowelin f1=0 f2=1700 -300 300 f3=-100 80 | |||||
Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20 | |||||
IF prevPh(isPalatal) OR nextPh(S) OR nextPh(Z) THEN | |||||
IF prevPh(j) THEN | |||||
ELIF nextPh(isVoiced) THEN | |||||
ChangePhoneme(Z) | |||||
ELSE | |||||
ChangePhoneme(S) | |||||
ENDIF | |||||
ENDIF | |||||
IF thisPh(isWordEnd) THEN | |||||
IF nextPh(isVoiced) THEN | |||||
ChangePhoneme(z) | |||||
ENDIF | |||||
ENDIF | |||||
IF nextPh(isPause) THEN | |||||
WAV(ufric/s_) | |||||
ELIF nextPh(p) OR nextPh(t) OR nextPh(k) THEN | |||||
WAV(ufric/s!) | |||||
ENDIF | |||||
WAV(ufric/s) | |||||
endphoneme | |||||
phoneme z | |||||
vcd alv frc sib | |||||
voicingswitch s | |||||
lengthmod 6 | |||||
Vowelout f1=0 f2=1700 -300 300 f3=-100 60 len=50 | |||||
IF prevPh(isPalatal) OR nextPh(Z) THEN | |||||
IF prevPh(j) THEN | |||||
ELSE | |||||
ChangePhoneme(Z) | |||||
ENDIF | |||||
ENDIF | |||||
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 nextPh(isPause2) THEN | |||||
FMT(voc/z_) addWav(ufric/s_, 70) | |||||
ENDIF | |||||
FMT(voc/z) addWav(ufric/s_, 85) | |||||
endphoneme | |||||
phoneme f | |||||
vls lbd frc | |||||
voicingswitch v | |||||
lengthmod 3 | |||||
Vowelout f1=0 f2=1000 -500 -350 f3=-200 80 | |||||
IF thisPh(isWordStart) THEN | |||||
ELSE | |||||
IF nextPh(isVoiced) THEN | |||||
IF thisPh(isWordEnd) THEN | |||||
ipa v | |||||
ELSE | |||||
IF nextPh(isVowel) OR nextPh(l) OR nextPh(**) OR nextPh(R) THEN | |||||
ELSE | |||||
ipa v | |||||
ENDIF | |||||
ENDIF | |||||
ENDIF | |||||
ENDIF | |||||
IF nextPh(isPause) THEN | |||||
WAV(ufric/f_) | |||||
ENDIF | |||||
WAV(ufric/f) | |||||
endphoneme | |||||
phoneme v // = b | |||||
vcd blb stp | |||||
IF thisPh(isWordEnd) THEN | |||||
IF nextPh(isVoiced) AND nextPh(isNotVowel) THEN | |||||
ELIF prevPh(m) THEN | |||||
ELSE | |||||
ChangePhoneme(p) | |||||
ENDIF | |||||
ELIF nextPh(s) AND nextPh(isWordEnd) AND next2Ph(isVoiced) THEN // keep sonority | |||||
ChangePhoneme(b) | |||||
ELIF nextPh(isVoiced) THEN | |||||
IF nextPh(isVowel) OR nextPh(isRhotic) OR nextPh(l) OR nextPh(j) OR nextPh(w) THEN | |||||
IF prevPh(isVowel) OR prevPh(isLiquid) OR prevPh(isVFricative) THEN | |||||
ChangePhoneme(B) | |||||
ELSE | |||||
ChangePhoneme(b) | |||||
ENDIF | |||||
ELSE | |||||
ChangePhoneme(b) | |||||
ENDIF | |||||
ELSE | |||||
ChangePhoneme(p) | |||||
ENDIF | |||||
CALL base1/b | |||||
endphoneme | |||||
// R | |||||
//===================== | |||||
phoneme R | |||||
liquid trl | |||||
lengthmod 6 | |||||
ipa r | |||||
IF thisPh(isWordEnd) AND nextPh(R) THEN | |||||
ipa NULL | |||||
ENDIF | |||||
Vowelin f1=0 f2=1600 -300 300 f3=-200 80 | |||||
Vowelout f1=2 f2=1600 -300 300 f3=-200 80 brk | |||||
FMT(r3/r_trill2) addWav(r3/r_trill2.wav, 65) | |||||
endphoneme | |||||
// plosives (oclusives) | |||||
// ==================== | |||||
phoneme b | |||||
vcd blb stp | |||||
IF thisPh(isWordEnd) THEN | |||||
IF nextPh(isVoiced) AND nextPh(isNotVowel) THEN | |||||
ELIF prevPh(m) THEN | |||||
ELSE | |||||
ChangePhoneme(p) | |||||
ENDIF | |||||
ELIF nextPh(s) AND nextPh(isWordEnd) AND next2Ph(isVoiced) THEN // keep sonority | |||||
ELIF nextPh(isVoiced) THEN | |||||
IF nextPh(isVowel) OR nextPh(isRhotic) OR nextPh(l) OR nextPh(j) OR nextPh(w) THEN | |||||
IF prevPh(isVowel) OR prevPh(isLiquid) OR prevPh(isVFricative) THEN | |||||
ChangePhoneme(B) | |||||
ENDIF | |||||
ENDIF | |||||
ELSE | |||||
ChangePhoneme(p) | |||||
ENDIF | |||||
CALL base1/b | |||||
endphoneme | |||||
phoneme g | |||||
vcd vel stp | |||||
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(isWordEnd) THEN | |||||
IF nextPh(isVoiced) AND nextPh(isNotVowel) THEN | |||||
ELSE | |||||
ChangePhoneme(k) | |||||
ENDIF | |||||
ELIF nextPh(s) AND nextPh(isWordEnd) AND next2Ph(isVoiced) THEN // keep sonority | |||||
ELIF nextPh(isVoiced) THEN | |||||
IF nextPh(isVowel) OR nextPh(isRhotic) OR nextPh(l) OR nextPh(j) OR nextPh(w) THEN | |||||
IF prevPh(isVowel) OR prevPh(isLiquid) OR prevPh(isVFricative) THEN | |||||
ChangePhoneme(Q) | |||||
ENDIF | |||||
ENDIF | |||||
ELSE | |||||
ChangePhoneme(k) | |||||
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) | |||||
endphoneme | |||||
phoneme d | |||||
vcd dnt stp | |||||
IF thisPh(isWordEnd) THEN | |||||
IF nextPh(isVoiced) AND nextPh(isNotVowel) THEN | |||||
ELSE | |||||
ChangePhoneme(t) | |||||
ENDIF | |||||
ELIF nextPh(s) AND nextPh(isWordEnd) AND next2Ph(isVoiced) THEN // keep sonority | |||||
ELIF nextPh(isVoiced) THEN | |||||
IF nextPh(isVowel) OR nextPh(isRhotic) OR nextPh(l) OR nextPh(j) OR nextPh(w) THEN | |||||
IF prevPh(isVowel) OR prevPh(**) OR prevPh(R) OR prevPh(j) OR prevPh(w) OR prevPh(isVFricative) THEN | |||||
ChangePhoneme(D) | |||||
ENDIF | |||||
ENDIF | |||||
ELSE | |||||
ChangePhoneme(t) | |||||
ENDIF | |||||
CALL base2/d | |||||
endphoneme | |||||
phoneme p | |||||
vls blb stp | |||||
lengthmod 2 | |||||
voicingswitch b | |||||
Vowelin f1=0 f2=1000 -50 -100 f3=-200 80 | |||||
Vowelout f1=0 f2=1000 -500 -350 f3=-300 80 rms=30 | |||||
IF nextPh(isPause2) THEN | |||||
WAV(ustop/p_unasp_, 80) | |||||
ELIF nextPh(isRhotic) THEN | |||||
WAV(ustop/pr) | |||||
ELIF nextPh(l) THEN | |||||
WAV(ustop/pl) | |||||
ELIF thisPh(isWordStart) THEN // don't change it if it's word start | |||||
ELIF nextPh(isVoiced) AND nextPh(isNotVowel) THEN | |||||
IF nextPh(w) OR nextPh(j) THEN | |||||
ELSE | |||||
ChangePhoneme(b) | |||||
ENDIF | |||||
ELIF nextPh(s) AND nextPh(isWordEnd) AND next2Ph(isVoiced) THEN // sonority propagation | |||||
ChangePhoneme(b) | |||||
ENDIF | |||||
WAV(ustop/p_unasp) | |||||
endphoneme | |||||
phoneme t // dental variant of /t/ | |||||
vls dnt stp | |||||
lengthmod 2 | |||||
voicingswitch d | |||||
Vowelin f1=0 f2=1600 -300 300 f3=-100 80 | |||||
Vowelout f1=0 f2=1600 -300 250 f3=-100 80 rms=20 | |||||
IF nextPh(isPause2) THEN | |||||
WAV(ustop/t_dnt, 30) | |||||
ELIF thisPh(isWordStart) THEN // don't change it if it's word start | |||||
ELIF nextPh(isVoiced) AND nextPh(isNotVowel) THEN | |||||
IF nextPh(**) OR nextPh(w) OR nextPh(j) THEN | |||||
ELSE | |||||
ChangePhoneme(d) | |||||
ENDIF | |||||
ELIF nextPh(s) AND nextPh(isWordEnd) AND next2Ph(isVoiced) THEN // sonority propagation | |||||
ChangePhoneme(d) | |||||
ENDIF | |||||
WAV(ustop/t_dnt2, 60) | |||||
endphoneme | |||||
phoneme k | |||||
vls vel stp | |||||
lengthmod 2 | |||||
voicingswitch g | |||||
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 thisPh(isWordStart) THEN // don't change it if it's word start | |||||
ELIF nextPh(isVoiced) AND nextPh(isNotVowel) THEN | |||||
IF nextPh(w) OR nextPh(j) THEN | |||||
ELIF nextPh(n) OR nextPh(d) OR nextPh(z) THEN | |||||
ChangePhoneme(g) | |||||
ELIF thisPh(isWordEnd) THEN | |||||
ChangePhoneme(g) | |||||
ENDIF | |||||
ELIF nextPh(s) AND nextPh(isWordEnd) AND next2Ph(isVoiced) THEN // sonority propagation | |||||
ChangePhoneme(g) | |||||
ENDIF | |||||
WAV(ustop/k_unasp, 70) | |||||
endphoneme | |||||
phoneme tS | |||||
vls pla afr sib | |||||
voicingswitch dZ | |||||
lengthmod 2 | |||||
Vowelin f1=0 f2=2300 200 400 f3=-100 80 | |||||
IF thisPh(isWordEnd) AND nextPh(isVoiced) THEN | |||||
ChangePhoneme(dZ) | |||||
ELIF nextPh(s) AND nextPh(isWordEnd) AND next2Ph(isVoiced) THEN // sonority propagation | |||||
ChangePhoneme(dZ) | |||||
ENDIF | |||||
WAV(ustop/tsh) | |||||
endphoneme |
//==================================================== | |||||
// Catalan balearic - based on Catalan (and Spanish and Base2) | |||||
//==================================================== | |||||
// plosives (oclusives) | |||||
// ==================== | |||||
// following https://giec.iec.cat/textgramatica/codi/4.2.1 | |||||
phoneme p | |||||
vls blb stp | |||||
lengthmod 2 | |||||
voicingswitch b | |||||
Vowelin f1=0 f2=1000 -50 -100 f3=-200 80 | |||||
Vowelout f1=0 f2=1000 -500 -350 f3=-300 80 rms=30 | |||||
IF thisPh(isWordEnd) AND nextPh(isNotVowel) AND NOT nextPh(isPause) THEN | |||||
IF prevPh(isNasal) OR prevPh(isLiquid) OR prevPh(R) OR prevPh(**) OR prevPh(j) THEN | |||||
ipa NULL | |||||
ELIF nextPh(t) OR nextPh(s) OR nextPh(ts) THEN | |||||
ChangePhoneme(t) | |||||
ELIF nextPh(g) THEN | |||||
ChangePhoneme(g) | |||||
ELIF nextPh(Z) THEN | |||||
ChangePhoneme(d) | |||||
ELIF nextPh(f) THEN | |||||
ChangePhoneme(f) | |||||
ELIF nextPh(R) OR nextPh(j) THEN | |||||
ipa NULL | |||||
ELIF nextPh(m) THEN | |||||
ChangePhoneme(m) | |||||
ELIF nextPh(isVoiced) THEN | |||||
ChangePhoneme(b) | |||||
ENDIF | |||||
ELIF nextPh(isRhotic) THEN | |||||
WAV(ustop/pr) | |||||
ELIF nextPh(l) THEN | |||||
WAV(ustop/pl) | |||||
ELIF thisPh(isWordStart) THEN // don't change it if it's word start | |||||
ELIF nextPh(isVoiced) AND nextPh(isNotVowel) THEN | |||||
ChangePhoneme(b) | |||||
ELIF nextPh(t) THEN | |||||
ChangePhoneme(t) | |||||
ELIF nextPh(s) THEN | |||||
IF nextPh(isWordEnd) AND next2Ph(isVoiced) THEN // sonority propagation | |||||
ChangePhoneme(d) | |||||
ELSE | |||||
ChangePhoneme(t) | |||||
ENDIF | |||||
ENDIF | |||||
WAV(ustop/p_unasp) | |||||
endphoneme | |||||
phoneme t // dental variant of /t/ | |||||
vls dnt stp | |||||
lengthmod 2 | |||||
voicingswitch d | |||||
Vowelin f1=0 f2=1600 -300 300 f3=-100 80 | |||||
Vowelout f1=0 f2=1600 -300 250 f3=-100 80 rms=20 | |||||
IF nextPh(isPause2) THEN | |||||
WAV(ustop/t_dnt, 30) | |||||
ELIF thisPh(isWordEnd) AND nextPh(isNotVowel) AND NOT nextPh(isPause) THEN | |||||
IF prevPh(isNasal) OR prevPh(isLiquid) OR prevPh(R) OR prevPh(**) OR prevPh(j) THEN | |||||
ipa NULL | |||||
ELIF nextPh(k) THEN | |||||
ChangePhoneme(k) | |||||
ELIF nextPh(b) THEN | |||||
ChangePhoneme(b) | |||||
ELIF nextPh(f) THEN | |||||
ChangePhoneme(f) | |||||
ELIF nextPh(p) THEN | |||||
ChangePhoneme(p) | |||||
ELIF nextPh(isVoiced) THEN | |||||
ChangePhoneme(d) | |||||
ENDIF | |||||
ELIF nextPh(isWordEnd) AND nextPh(s) THEN | |||||
IF next2Ph(k) THEN | |||||
ChangePhoneme(k) | |||||
ELIF next2Ph(b) THEN | |||||
ChangePhoneme(b) | |||||
ELIF next2Ph(isVoiced) THEN | |||||
ChangePhoneme(d) | |||||
ENDIF | |||||
ELIF thisPh(isWordStart) THEN // don't change it if it's word start | |||||
ELIF nextPh(isVoiced) AND nextPh(isNotVowel) THEN | |||||
IF nextPh(**) THEN | |||||
ELSE | |||||
ChangePhoneme(d) | |||||
ENDIF | |||||
ELIF nextPh(s) AND nextPh(isWordEnd) AND next2Ph(isVoiced) THEN // sonority propagation | |||||
ChangePhoneme(d) | |||||
ENDIF | |||||
WAV(ustop/t_dnt2, 60) | |||||
endphoneme | |||||
phoneme k | |||||
vls vel stp | |||||
lengthmod 2 | |||||
voicingswitch g | |||||
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 thisPh(isWordEnd) AND nextPh(isNotVowel) AND NOT nextPh(isPause) THEN | |||||
IF prevPh(isNasal) OR prevPh(isLiquid) OR prevPh(R) OR prevPh(**) OR prevPh(j) THEN | |||||
ipa NULL | |||||
ELIF nextPh(t) OR nextPh(s) OR nextPh(ts) THEN | |||||
ChangePhoneme(t) | |||||
ELIF nextPh(isVoiced) THEN | |||||
ChangePhoneme(g) | |||||
ENDIF | |||||
ELIF thisPh(isWordStart) THEN // don't change it if it's word start | |||||
ELIF nextPh(isVoiced) AND nextPh(isNotVowel) THEN | |||||
IF nextPh(w) THEN | |||||
ELIF nextPh(n) OR nextPh(d) OR nextPh(z) THEN | |||||
ChangePhoneme(g) | |||||
ENDIF | |||||
ELIF nextPh(t) OR nextPh(ts) THEN | |||||
ChangePhoneme(t) | |||||
ELIF nextPh(s) THEN | |||||
IF nextPh(isWordEnd) AND next2Ph(isVoiced) THEN // sonority propagation | |||||
ChangePhoneme(d) | |||||
ELSE | |||||
ChangePhoneme(t) | |||||
ENDIF | |||||
ENDIF | |||||
WAV(ustop/k_unasp, 70) | |||||
endphoneme | |||||
phoneme b | |||||
vcd blb stp | |||||
IF thisPh(isWordEnd) THEN | |||||
IF nextPh(isNotVowel) AND NOT nextPh(isPause) THEN | |||||
IF prevPh(isNasal) OR prevPh(isLiquid) OR prevPh(R) OR prevPh(**) OR prevPh(j) THEN | |||||
ipa NULL | |||||
ELIF NOT nextPh(isVoiced) THEN | |||||
ChangePhoneme(p) | |||||
ENDIF | |||||
ELSE | |||||
ChangePhoneme(p) | |||||
ENDIF | |||||
ELIF nextPh(s) AND nextPh(isWordEnd) AND next2Ph(isVoiced) THEN // keep sonority | |||||
ELIF nextPh(s) OR nextPh(t) THEN | |||||
ChangePhoneme(t) | |||||
ELIF nextPh(isVoiced) THEN | |||||
IF nextPh(isVowel) OR nextPh(isRhotic) OR nextPh(l) OR nextPh(j) OR nextPh(w) THEN | |||||
IF prevPh(isVowel) OR prevPh(isLiquid) OR prevPh(isVFricative) THEN | |||||
ChangePhoneme(B) | |||||
ENDIF | |||||
ENDIF | |||||
ELSE | |||||
ChangePhoneme(p) | |||||
ENDIF | |||||
CALL base1/b | |||||
endphoneme | |||||
phoneme g | |||||
vcd vel stp | |||||
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(isWordEnd) THEN | |||||
IF nextPh(isNotVowel) AND NOT nextPh(isPause) THEN | |||||
IF prevPh(isNasal) OR prevPh(isLiquid) OR prevPh(R) OR prevPh(**) OR prevPh(j) THEN | |||||
ipa NULL | |||||
ELIF nextPh(s) AND nextPh(isWordEnd) AND next2Ph(isVoiced) THEN // keep sonority | |||||
ELIF NOT nextPh(isVoiced) THEN | |||||
ChangePhoneme(k) | |||||
ENDIF | |||||
ELSE | |||||
ChangePhoneme(k) | |||||
ENDIF | |||||
ELIF nextPh(isVoiced) THEN | |||||
IF nextPh(m) THEN | |||||
ChangePhoneme(m) | |||||
ELIF nextPh(d) THEN | |||||
ChangePhoneme(g) | |||||
ELIF nextPh(isVowel) OR nextPh(isRhotic) OR nextPh(l) OR nextPh(j) OR nextPh(w) THEN | |||||
IF prevPh(isVowel) OR prevPh(isLiquid) OR prevPh(isVFricative) THEN | |||||
ChangePhoneme(Q) | |||||
ENDIF | |||||
ENDIF | |||||
ELSE | |||||
ChangePhoneme(k) | |||||
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 stp | |||||
IF thisPh(isWordEnd) AND nextPh(isNotVowel) AND NOT nextPh(isPause) THEN | |||||
IF prevPh(isNasal) OR prevPh(isLiquid) OR prevPh(R) OR prevPh(**) OR prevPh(j) THEN | |||||
ipa NULL | |||||
ELIF nextPh(p) THEN | |||||
ChangePhoneme(p) | |||||
ELIF NOT nextPh(isVoiced) THEN | |||||
ChangePhoneme(t) | |||||
ENDIF ELIF nextPh(s) AND nextPh(isWordEnd) AND next2Ph(isVoiced) THEN // keep sonority | |||||
ELIF nextPh(isVoiced) THEN | |||||
IF nextPh(m) THEN | |||||
ChangePhoneme(m) | |||||
ELIF nextPh(isVowel) OR nextPh(isRhotic) OR nextPh(l) OR nextPh(j) OR nextPh(w) THEN | |||||
IF prevPh(isVowel) OR prevPh(**) OR prevPh(R) OR prevPh(j) OR prevPh(w) OR prevPh(s) OR prevPh(z) THEN | |||||
ChangePhoneme(D) | |||||
ENDIF | |||||
ENDIF | |||||
ELSE | |||||
ChangePhoneme(t) | |||||
ENDIF | |||||
CALL base2/d | |||||
endphoneme | |||||
// vowels | |||||
//===================================================== | |||||
phoneme e | |||||
vwl starttype #e endtype #e | |||||
length 170 | |||||
IF thisPh(isUnstressed) THEN | |||||
ChangePhoneme(@) | |||||
ENDIF | |||||
FMT(vowel/e) | |||||
endphoneme | |||||
phoneme O | |||||
vwl starttype #o endtype #o | |||||
length 170 | |||||
IF thisPh(isWordEnd) THEN | |||||
IF nextPh(o) OR nextPh(O) THEN | |||||
ipa NULL | |||||
ELSE | |||||
ChangeIfUnstressed(o) | |||||
ENDIF | |||||
ELIF thisPh(isUnstressed) THEN | |||||
ChangePhoneme(o) | |||||
ENDIF | |||||
FMT(vowel/oo) | |||||
endphoneme | |||||
phoneme o | |||||
vwl starttype #o endtype #o | |||||
length 170 | |||||
FMT(vowel/o) | |||||
endphoneme | |||||
phoneme @ // Schwa, e.g. alph**a** | |||||
vwl starttype #@ endtype #@ | |||||
length 140 | |||||
FMT(vowel/@) | |||||
endphoneme | |||||
// fricatives | |||||
// ==================================== | |||||
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 thisPh(isWordEnd) AND prevPh(**) AND nextPh(isNotVowel) THEN | |||||
ipa NULL | |||||
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) | |||||
endphoneme | |||||
phoneme f | |||||
vls lbd frc | |||||
voicingswitch v | |||||
lengthmod 3 | |||||
Vowelout f1=0 f2=1000 -500 -350 f3=-200 80 | |||||
IF thisPh(isWordEnd)THEN | |||||
IF prevPh(**) THEN | |||||
ipa NULL | |||||
ELIF nextPh(isVoiced) THEN | |||||
ipa v | |||||
ENDIF | |||||
ELIF nextPh(s) THEN | |||||
IF nextPh(isWordEnd) AND next2Ph(isVoiced) THEN // sonority propagation | |||||
ChangePhoneme(d) | |||||
ELSE | |||||
ChangePhoneme(t) | |||||
ENDIF | |||||
ENDIF | |||||
IF nextPh(isPause) THEN | |||||
WAV(ufric/f_) | |||||
ENDIF | |||||
WAV(ufric/f) | |||||
endphoneme | |||||
// liquid | |||||
// ===================================== | |||||
phoneme ** // "cara" | |||||
liquid alv rhotic | |||||
ipa ɾ | |||||
lengthmod 3 | |||||
Vowelout f1=3 f2=1600 -300 300 f3=-300 80 rms=35 len=15 | |||||
Vowelin f1=2 f2=1600 -300 300 f3=-100 80 len=20 | |||||
IF nextPh(isWordEnd) AND nextPh(isNasal) THEN | |||||
ipa NULL | |||||
ENDIF | |||||
IF prevPh(#i) OR prevPh(#e) THEN | |||||
FMT(r3/@tap2) | |||||
ENDIF | |||||
FMT(r3/@tap) | |||||
endphoneme | |||||
phoneme l^ // "calla" | |||||
liquid | |||||
ipa ʎ | |||||
lengthmod 7 | |||||
Vowelout len=60 lenadd rate | |||||
length 100 | |||||
NextVowelStarts | |||||
VowelStart(l^/j2@) | |||||
VowelStart(l^/j2a) | |||||
VowelStart(l^/j2e) | |||||
VowelStart(l^/j2i) | |||||
VowelStart(l^/j2o) | |||||
VowelStart(l^/j2u) | |||||
EndSwitch | |||||
IF prevPh(isPause) THEN | |||||
FMT(l^/_l^) | |||||
ELIF prevPh(isVowel) THEN | |||||
IF nextPh(isPause) THEN | |||||
ChangePhoneme(j) | |||||
ELIF nextPh(s) AND next2Ph(isPause) THEN | |||||
ChangePhoneme(j) | |||||
ELIF nextPh(isVowel) AND NOT thisPh(isWordEnd) AND NOT thisPh(isWordStart) THEN | |||||
IF nextPh(isStressed) THEN | |||||
IF nextPh(i) OR nextPh(e) THEN | |||||
ipa NULL | |||||
ELSE | |||||
ChangePhoneme(j) | |||||
ENDIF | |||||
ELIF prevPh(isStressed) THEN | |||||
IF prevPh(i) OR prevPh(e) THEN | |||||
ipa NULL | |||||
ELSE | |||||
ChangePhoneme(j) | |||||
ENDIF | |||||
ELSE | |||||
ChangePhoneme(j) | |||||
ENDIF | |||||
ENDIF | |||||
ENDIF | |||||
FMT(l^/l^) | |||||
endphoneme | |||||
// fricatives | |||||
//================================0 | |||||
phoneme s // dissimilation | |||||
vls alv frc sib | |||||
voicingswitch z | |||||
lengthmod 3 | |||||
Vowelin f1=0 f2=1700 -300 300 f3=-100 80 | |||||
Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20 | |||||
IF thisPh(isWordEnd) AND nextPh(isVoiced) THEN | |||||
ChangePhoneme(z) | |||||
ELIF thisPh(isWordStart) THEN | |||||
IF prevPh(t) THEN | |||||
ChangePhoneme(ts) | |||||
ENDIF | |||||
ENDIF | |||||
IF nextPh(isPause) THEN | |||||
WAV(ufric/s_) | |||||
ELIF nextPh(p) OR nextPh(t) OR nextPh(k) THEN | |||||
WAV(ufric/s!) | |||||
ENDIF | |||||
WAV(ufric/s) | |||||
endphoneme | |||||
// nasals | |||||
// =========================== | |||||
phoneme m | |||||
vcd blb nas | |||||
Vowelout f1=2 f2=1000 -500 -350 f3=-200 80 brk | |||||
lengthmod 4 | |||||
IF KlattSynth THEN | |||||
Vowelin f1=0 f2=1000 -50 -200 f3=-200 80 | |||||
IF nextPh(isPause2) THEN | |||||
FMT(klatt/m_) | |||||
ENDIF | |||||
FMT(klatt/m) | |||||
ENDIF | |||||
NextVowelStarts | |||||
VowelStart(m/m@) | |||||
VowelStart(m/ma) | |||||
VowelStart(m/me) | |||||
VowelStart(m/mi) | |||||
VowelStart(m/mo) | |||||
VowelStart(m/mu) | |||||
EndSwitch | |||||
IF nextPh(f) OR nextPh(v) THEN | |||||
ChangePhoneme(M) | |||||
ELIF nextPh(t) OR nextPh(d) OR nextPh(s) OR nextPh(z) OR nextPh(R) OR nextPh(S) OR nextPh(Z) THEN | |||||
ChangePhoneme(n) | |||||
ELIF nextPh(l^) OR nextPh(n^) THEN | |||||
ChangePhoneme(n^) | |||||
ELIF nextPh(k) OR nextPh(g) THEN | |||||
ChangePhoneme(N) | |||||
ELIF thisPh(isWordEnd) THEN | |||||
IF nextPh(j) THEN | |||||
ChangePhoneme(j) | |||||
ELIF nextPh(l) THEN | |||||
ChangePhoneme(l) | |||||
ENDIF | |||||
ENDIF | |||||
IF prevPh(isNotVowel) AND nextPhW(isLiquid) THEN | |||||
FMT(m/mj) | |||||
ELIF prevPh(isPause) THEN | |||||
FMT(m/_m) | |||||
ELIF nextPh(isNotVowel) THEN | |||||
FMT(m/m_) | |||||
ENDIF | |||||
endphoneme | |||||
phoneme n | |||||
vcd alv nas | |||||
Vowelout f1=2 f2=1500 -300 250 f3=-100 80 rms=20 brk | |||||
lengthmod 4 | |||||
IF KlattSynth THEN | |||||
Vowelin f1=0 f2=1500 -200 200 f3=0 80 | |||||
FMT(klatt/n) | |||||
ENDIF | |||||
NextVowelStarts | |||||
VowelStart(n/n@) | |||||
VowelStart(n/na) | |||||
VowelStart(n/ne) | |||||
VowelStart(n/ni) | |||||
VowelStart(n/no) | |||||
VowelStart(n/nu) | |||||
EndSwitch | |||||
IF nextPh(f) OR nextPh(v) THEN | |||||
ChangePhoneme(M) | |||||
ELIF nextPh(k) OR nextPh(g) THEN | |||||
ChangePhoneme(N) | |||||
ELIF nextPh(p) OR nextPh(b) OR nextPh(v) OR nextPh(m) THEN | |||||
ChangePhoneme(m) | |||||
ELIF thisPh(isWordEnd) THEN | |||||
IF nextPh(l^) OR nextPh(n^) THEN | |||||
ChangePhoneme(n^) | |||||
ELIF nextPh(j) THEN | |||||
ChangePhoneme(j) | |||||
ENDIF | |||||
ENDIF | |||||
IF prevPh(isNotVowel) AND nextPhW(isLiquid) THEN | |||||
FMT(n/nj) | |||||
ELIF prevPh(isPause) OR prevPh(n) THEN | |||||
FMT(n/_n) | |||||
ELIF nextPh(isNotVowel) THEN | |||||
FMT(n/n_) | |||||
ENDIF | |||||
endphoneme |
//==================================================== | |||||
// Catalan valencian - based on Catalan (and Spanish and Base2) | |||||
//==================================================== | |||||
// vowels | |||||
//============= | |||||
phoneme a | |||||
vwl starttype #a endtype #a | |||||
length 180 | |||||
IF thisPh(isWordEnd) AND thisPh(isUnstressed) THEN | |||||
ChangePhoneme(E) | |||||
ENDIF | |||||
FMT(vowel/a_6) | |||||
endphoneme | |||||
phoneme a2 // does not change in central accent | |||||
vwl starttype #a endtype #a | |||||
length 180 | |||||
FMT(vowel/a_6) | |||||
endphoneme | |||||
phoneme e | |||||
vwl starttype #e endtype #e | |||||
length 170 | |||||
IF thisPh(isUnstressed) THEN | |||||
IF thisPh(isWordStart) THEN | |||||
IF nextPh(s) OR nextPh(n) OR nextPh(m) OR nextPh(**) OR nextPh(R) THEN | |||||
ChangePhoneme(a) | |||||
ELIF nextPh(j) AND next2Ph(S) THEN | |||||
ChangePhoneme(a) | |||||
ENDIF | |||||
ENDIF | |||||
ENDIF | |||||
FMT(vowel/e) | |||||
endphoneme | |||||
phoneme e2 // don't reduce: "aeri", "aeròdrom". | |||||
vwl starttype #e endtype #e | |||||
length 170 | |||||
FMT(vowel/e) | |||||
endphoneme | |||||
phoneme E | |||||
vwl starttype #e endtype #e | |||||
length 180 | |||||
IF thisPh(isUnstressed) THEN | |||||
IF thisPh(isWordStart) THEN | |||||
IF nextPh(s) OR nextPh(n) OR nextPh(m) OR nextPh(**) OR nextPh(R) THEN | |||||
ChangePhoneme(a) | |||||
ELIF nextPh(j) AND next2Ph(S) THEN | |||||
ChangePhoneme(a) | |||||
ELSE | |||||
ChangePhoneme(e) | |||||
ENDIF | |||||
ELSE | |||||
ChangePhoneme(e) | |||||
ENDIF | |||||
ENDIF | |||||
FMT(vowel/e_mid) | |||||
endphoneme | |||||
phoneme E2 // don't reduce | |||||
vwl starttype #e endtype #e | |||||
length 180 | |||||
ChangeIfUnstressed(e2) | |||||
FMT(vowel/e_mid) | |||||
endphoneme | |||||
phoneme O | |||||
vwl starttype #o endtype #o | |||||
length 170 | |||||
IF thisPh(isUnstressed) THEN | |||||
ChangePhoneme(o) | |||||
ENDIF | |||||
FMT(vowel/oo) | |||||
endphoneme | |||||
phoneme o | |||||
vwl starttype #o endtype #o | |||||
length 170 | |||||
FMT(vowel/o) | |||||
endphoneme | |||||
phoneme o2 | |||||
vwl starttype #o endtype #o | |||||
length 170 | |||||
ChangeIfStressed(o) | |||||
FMT(vowel/o) | |||||
endphoneme | |||||
phoneme i | |||||
vwl starttype #i endtype #i | |||||
length 170 | |||||
IF thisPh(isUnstressed) AND nextPh(isVowel) THEN | |||||
ChangePhoneme(j) | |||||
ENDIF | |||||
FMT(vowel/i) | |||||
endphoneme | |||||
// affricates | |||||
//================ | |||||
phoneme Z | |||||
vcd pla frc sib | |||||
voicingswitch S | |||||
lengthmod 6 | |||||
Vowelin f1=0 f2=2000 0 300 f3=-200 80 | |||||
Vowelout f1=2 f2=2000 0 300 f3=-200 80 brk | |||||
IF thisPh(isWordStart) OR prevPh(isNotVowel) THEN | |||||
IF prevPh(d) THEN | |||||
ELSE | |||||
ChangePhoneme(dZ) | |||||
ENDIF | |||||
ENDIF | |||||
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 thisPh(isWordStart) THEN // initial or post-consonant position | |||||
ChangePhoneme(tS) | |||||
ELIF prevPh(isNotVowel) THEN | |||||
IF prevPh(j) THEN | |||||
IF thisPh(isWordEnd) AND nextPh(isVoiced) THEN | |||||
ChangePhoneme(Z) | |||||
ENDIF | |||||
ELSE | |||||
ChangePhoneme(tS) | |||||
ENDIF | |||||
ENDIF | |||||
WAV(ufric/sh) | |||||
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 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) | |||||
endphoneme |
//==================================================== | |||||
// Catalan valencian - based on Catalan (and Spanish and Base2) | |||||
//==================================================== | |||||
// vowels | |||||
//============= | |||||
phoneme a | |||||
vwl starttype #a endtype #a | |||||
length 180 | |||||
FMT(vowel/a_6) | |||||
endphoneme | |||||
phoneme a2 // does not change in central accent | |||||
vwl starttype #a endtype #a | |||||
length 180 | |||||
FMT(vowel/a_6) | |||||
endphoneme | |||||
phoneme e | |||||
vwl starttype #e endtype #e | |||||
length 170 | |||||
IF thisPh(isUnstressed) THEN | |||||
IF thisPh(isWordStart) THEN | |||||
IF nextPh(s) OR nextPh(n) OR nextPh(m) OR nextPh(**) OR nextPh(R) THEN | |||||
ChangePhoneme(a) | |||||
ELIF nextPh(j) AND next2Ph(S) THEN | |||||
ChangePhoneme(a) | |||||
ENDIF | |||||
ENDIF | |||||
ENDIF | |||||
FMT(vowel/e) | |||||
endphoneme | |||||
phoneme e2 // don't reduce | |||||
vwl starttype #e endtype #e | |||||
length 170 | |||||
FMT(vowel/e) | |||||
endphoneme | |||||
phoneme E | |||||
vwl starttype #e endtype #e | |||||
length 180 | |||||
IF thisPh(isUnstressed) THEN | |||||
IF thisPh(isWordStart) THEN | |||||
IF nextPh(s) OR nextPh(n) OR nextPh(m) OR nextPh(**) OR nextPh(R) THEN | |||||
ChangePhoneme(a) | |||||
ELIF nextPh(j) AND next2Ph(S) THEN | |||||
ChangePhoneme(a) | |||||
ELSE | |||||
ChangePhoneme(e) | |||||
ENDIF | |||||
ELSE | |||||
ChangePhoneme(e) | |||||
ENDIF | |||||
ENDIF | |||||
FMT(vowel/e_mid) | |||||
endphoneme | |||||
phoneme E2 // don't reduce | |||||
vwl starttype #e endtype #e | |||||
length 180 | |||||
ChangeIfUnstressed(e2) | |||||
FMT(vowel/e_mid) | |||||
endphoneme | |||||
phoneme O | |||||
vwl starttype #o endtype #o | |||||
length 170 | |||||
ChangeIfUnstressed(o) | |||||
FMT(vowel/oo) | |||||
endphoneme | |||||
phoneme o2 | |||||
vwl starttype #o endtype #o | |||||
length 170 | |||||
ChangeIfStressed(O) | |||||
FMT(vowel/o) | |||||
endphoneme | |||||
phoneme o | |||||
vwl starttype #o endtype #o | |||||
length 170 | |||||
FMT(vowel/o) | |||||
endphoneme | |||||
phoneme u | |||||
vwl starttype #u endtype #u | |||||
length 160 | |||||
IF thisPh(isUnstressed) THEN | |||||
IF thisPh(isWordEnd) THEN | |||||
IF nextPh(isVowel) THEN | |||||
IF nextPh(u) OR nextPh(w) THEN | |||||
ELSE | |||||
ChangePhoneme(w) | |||||
ENDIF | |||||
ENDIF | |||||
ELIF thisPh(isWordStart) THEN | |||||
IF prevPh(isVowel) THEN | |||||
ChangePhoneme(w) | |||||
ENDIF | |||||
ENDIF | |||||
ENDIF | |||||
FMT(vowel/u_bck) | |||||
endphoneme | |||||
phoneme i | |||||
vwl starttype #i endtype #i | |||||
length 170 | |||||
IF thisPh(isUnstressed) AND nextPh(isVowel) THEN | |||||
ChangePhoneme(j) | |||||
ENDIF | |||||
FMT(vowel/i) | |||||
endphoneme | |||||
// nasals | |||||
//============== | |||||
phoneme n | |||||
vcd alv nas | |||||
Vowelout f1=2 f2=1500 -300 250 f3=-100 80 rms=20 brk | |||||
lengthmod 4 | |||||
IF KlattSynth THEN | |||||
Vowelin f1=0 f2=1500 -200 200 f3=0 80 | |||||
FMT(klatt/n) | |||||
ENDIF | |||||
NextVowelStarts | |||||
VowelStart(n/n@) | |||||
VowelStart(n/na) | |||||
VowelStart(n/ne) | |||||
VowelStart(n/ni) | |||||
VowelStart(n/no) | |||||
VowelStart(n/nu) | |||||
EndSwitch | |||||
IF nextPh(f) OR nextPh(v) THEN | |||||
ChangePhoneme(M) | |||||
ELIF nextPh(k) OR nextPh(g) THEN | |||||
ChangePhoneme(N) | |||||
ELIF nextPh(p) OR nextPh(b) OR nextPh(m) THEN | |||||
ChangePhoneme(m) | |||||
ENDIF | |||||
IF prevPh(isNotVowel) AND nextPhW(isLiquid) THEN | |||||
FMT(n/nj) | |||||
ELIF prevPh(isPause) OR prevPh(n) THEN | |||||
FMT(n/_n) | |||||
ELIF nextPh(isNotVowel) THEN | |||||
FMT(n/n_) | |||||
ENDIF | |||||
endphoneme | |||||
// R | |||||
//===================== | |||||
phoneme R | |||||
liquid trl | |||||
lengthmod 6 | |||||
ipa r | |||||
IF thisPh(isWordEnd) THEN | |||||
ChangePhoneme(**) | |||||
ENDIF | |||||
Vowelin f1=0 f2=1600 -300 300 f3=-200 80 | |||||
Vowelout f1=2 f2=1600 -300 300 f3=-200 80 brk | |||||
FMT(r3/r_trill2) addWav(r3/r_trill2.wav, 65) | |||||
endphoneme | |||||
// affricates | |||||
//================ | |||||
phoneme Z | |||||
vcd pla frc sib | |||||
voicingswitch S | |||||
lengthmod 6 | |||||
Vowelin f1=0 f2=2000 0 300 f3=-200 80 | |||||
Vowelout f1=2 f2=2000 0 300 f3=-200 80 brk | |||||
ChangePhoneme(dZ) | |||||
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 prevPh(i) OR prevPh(j) THEN | |||||
IF thisPh(isWordEnd) AND nextPh(isVoiced) THEN | |||||
ChangePhoneme(Z) | |||||
ENDIF | |||||
ELSE | |||||
ChangePhoneme(tS) | |||||
ENDIF | |||||
WAV(ufric/sh) | |||||
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 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) | |||||
endphoneme | |||||
// Occlusive stops | |||||
//================= | |||||
phoneme b | |||||
vcd blb stp | |||||
IF thisPh(isWordEnd) THEN | |||||
IF nextPh(isVoiced) AND nextPh(isNotVowel) THEN | |||||
ELIF prevPh(m) THEN | |||||
ELSE | |||||
ChangePhoneme(p) | |||||
ENDIF | |||||
ELIF nextPh(s) AND nextPh(isWordEnd) AND next2Ph(isVoiced) THEN // keep sonority | |||||
ELIF nextPh(isVoiced) THEN | |||||
IF nextPh(isVowel) OR nextPh(isRhotic) OR nextPh(l) OR nextPh(j) OR nextPh(w) THEN | |||||
IF prevPh(isVowel) OR prevPh(isLiquid) OR prevPh(isVFricative) THEN | |||||
IF prevPh(**) OR prevPh(R) THEN //***"embarbussa"*** | |||||
ELSE | |||||
ChangePhoneme(B) | |||||
ENDIF | |||||
ENDIF | |||||
ENDIF | |||||
ELSE | |||||
ChangePhoneme(p) | |||||
ENDIF | |||||
CALL base1/b | |||||
endphoneme | |||||
phoneme g | |||||
vcd vel stp | |||||
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(isWordEnd) THEN | |||||
IF nextPh(isVoiced) AND nextPh(isNotVowel) THEN | |||||
ELSE | |||||
ChangePhoneme(k) | |||||
ENDIF | |||||
ELIF nextPh(s) AND nextPh(isWordEnd) AND next2Ph(isVoiced) THEN // keep sonority | |||||
ELIF nextPh(isVoiced) THEN | |||||
IF nextPh(isVowel) OR nextPh(isRhotic) OR nextPh(l) OR nextPh(j) OR nextPh(w) THEN | |||||
IF prevPh(isVowel) OR prevPh(isLiquid) OR prevPh(isVFricative) THEN | |||||
ChangePhoneme(Q) | |||||
ENDIF | |||||
ELIF nextPh(n) THEN | |||||
ChangePhoneme(N) | |||||
ENDIF | |||||
ELSE | |||||
ChangePhoneme(k) | |||||
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) | |||||
endphoneme | |||||
ENDIF | ENDIF | ||||
endphoneme | endphoneme | ||||
phoneme N // si**ng** | phoneme N // si**ng** | ||||
vcd vel nas | vcd vel nas | ||||
Vowelout f1=3 f2=2300 300 400 f3=-200 80 len=40 rms=20 brk | Vowelout f1=3 f2=2300 300 400 f3=-200 80 len=40 rms=20 brk | ||||
phonemetable ca es | phonemetable ca es | ||||
include ph_catalan | include ph_catalan | ||||
phonemetable ca-nw ca | |||||
include ph_catalan_nw | |||||
phonemetable ca-va ca | |||||
include ph_catalan_va | |||||
phonemetable ca-ba ca | |||||
include ph_catalan_ba | |||||
phonemetable an es | phonemetable an es | ||||
include ph_aragon | include ph_aragon | ||||
if (phoneme_tab[final_ph]->type != phVOWEL) { | if (phoneme_tab[final_ph]->type != phVOWEL) { | ||||
mnem = phoneme_tab[final_ph]->mnemonic; | mnem = phoneme_tab[final_ph]->mnemonic; | ||||
if (tr->translator_name == L('a', 'n')) { | |||||
if ((tr->translator_name == L('a', 'n')) || (tr->translator_name == L('c', 'a'))) { | |||||
if (((mnem != 's') && (mnem != 'n')) || phoneme_tab[final_ph2]->type != phVOWEL) | if (((mnem != 's') && (mnem != 'n')) || phoneme_tab[final_ph2]->type != phVOWEL) | ||||
stressed_syllable = vowel_count - 1; // stress on last syllable | stressed_syllable = vowel_count - 1; // stress on last syllable | ||||
} else if (tr->translator_name == L('i', 'a')) { | } else if (tr->translator_name == L('i', 'a')) { |
if (name2 == L('c', 'a')) { | if (name2 == L('c', 'a')) { | ||||
// stress last syllable unless word ends with a vowel | // stress last syllable unless word ends with a vowel | ||||
tr->punct_within_word = ca_punct_within_word; | tr->punct_within_word = ca_punct_within_word; | ||||
tr->langopts.stress_flags = S_FINAL_SPANISH | S_FINAL_DIM_ONLY | S_FINAL_NO_2 | S_NO_AUTO_2; | |||||
tr->langopts.stress_flags = S_FINAL_SPANISH | S_FINAL_DIM_ONLY | S_FINAL_NO_2 | S_NO_AUTO_2 | S_FIRST_PRIMARY; | |||||
} else if (name2 == L('i', 'a')) { | } else if (name2 == L('i', 'a')) { | ||||
tr->langopts.stress_flags = S_FINAL_SPANISH | S_FINAL_DIM_ONLY | S_FINAL_NO_2; | tr->langopts.stress_flags = S_FINAL_SPANISH | S_FINAL_DIM_ONLY | S_FINAL_NO_2; | ||||
tr->langopts.numbers = NUM_DECIMAL_COMMA | NUM_OMIT_1_HUNDRED | NUM_OMIT_1_THOUSAND | NUM_ROMAN | NUM_ROMAN_AFTER; | tr->langopts.numbers = NUM_DECIMAL_COMMA | NUM_OMIT_1_HUNDRED | NUM_OMIT_1_THOUSAND | NUM_ROMAN | NUM_ROMAN_AFTER; |
test_phwav bn 7fc6c8c6b347677885c6e973ff4dc6b2b6fa6d59 "ma na Na pa ta t.a tSa ka p#a t#a t.#a tS#a k#a ba da d.a dZa ga b#a d#a d.#a g#a fa Ba sa za Sa Za ha Ha wa la ja ra *a Ra _:_ ma mE mO me mi mi mu m& mV" | test_phwav bn 7fc6c8c6b347677885c6e973ff4dc6b2b6fa6d59 "ma na Na pa ta t.a tSa ka p#a t#a t.#a tS#a k#a ba da d.a dZa ga b#a d#a d.#a g#a fa Ba sa za Sa Za ha Ha wa la ja ra *a Ra _:_ ma mE mO me mi mi mu m& mV" | ||||
test_phwav bpy 7fc6c8c6b347677885c6e973ff4dc6b2b6fa6d59 "ma na Na pa ta t.a tSa ka p#a t#a t.#a tS#a k#a ba da d.a dZa ga b#a d#a d.#a g#a fa Ba sa za Sa Za ha Ha wa la ja ra *a Ra _:_ ma mE mO me mi mi mu m& mV" | test_phwav bpy 7fc6c8c6b347677885c6e973ff4dc6b2b6fa6d59 "ma na Na pa ta t.a tSa ka p#a t#a t.#a tS#a k#a ba da d.a dZa ga b#a d#a d.#a g#a fa Ba sa za Sa Za ha Ha wa la ja ra *a Ra _:_ ma mE mO me mi mi mu m& mV" | ||||
test_phwav bs f3b9ea69a52d9cabc18007c0bb49c16583acef1b "ma na Na pa ta ka ba da ga tsa tSa tS;a dZa dZ;a fa sa Sa xa va za Za ja la l^a Ra r*a _:_ m@ m@2 ma ma: me me: mo mo: mi mi: mu mu: mA m& mE mU maI" | test_phwav bs f3b9ea69a52d9cabc18007c0bb49c16583acef1b "ma na Na pa ta ka ba da ga tsa tSa tS;a dZa dZ;a fa sa Sa xa va za Za ja la l^a Ra r*a _:_ m@ m@2 ma ma: me me: mo mo: mi mi: mu mu: mA m& mE mU maI" | ||||
test_phwav ca 563b93f7de72fb4832f2908484bad4908680d7da "ma na n^a Na pa ta ka ba da ga tsa tSa dza dZa sa Sa za Za fa Ta xa va Q\"a ja wa la l^a Ra *a _:_ ma ma# me mE mE2 mO mo mi mU mu" | |||||
test_phwav ca 4954e404110f20ce89e77a784996678aa1c7caf7 "ma na n^a Na pa ta ka ba da ga tsa tSa dza dZa sa Sa za Za fa Ta xa va Q\"a ja wa la l^a Ra *a _:_ ma ma# me mE mE2 mO mo mi mU mu" | |||||
test_phwav ca-ba 8446e6833ba24abb13006a081d5ece232322d6ad "ma na n^a Na pa ta ka ba da ga tsa tSa dza dZa sa Sa za Za fa Ta xa va Q\"a ja wa la l^a Ra *a _:_ ma ma# me mE mE2 mO mo mi mU mu" | |||||
test_phwav ca-nw c79f0b9bb228feab4db57e44822cd900793803d9 "ma na n^a Na pa ta ka ba da ga tsa tSa dza dZa sa Sa za Za fa Ta xa va Q\"a ja wa la l^a Ra *a _:_ ma ma# me mE mE2 mO mo mi mU mu" | |||||
test_phwav ca-va e32d68647ebac8cfc16fcf0401cefbfc92681a5b "ma na n^a Na pa ta ka ba da ga tsa tSa dza dZa sa Sa za Za fa Ta xa va Q\"a ja wa la l^a Ra *a _:_ ma ma# me mE mE2 mO mo mi mU mu" | |||||
test_phwav chr 90c90ca6f4c77cb6bbfaff2a6583825088aaa5cb "ma na Na pa ta ka ba da ga fa Ta sa Sa xa ha va Da za Za tSa dZa la ra ja wa t2a t#a d#a z#a r-a z/2a w#a m- n- N- _:_ mI mE ma m0 mV mU mi: mA: mO: mu: m3: mA@ mO@ mo@ mU@ mi@3 mIR mVR mi@ me@ mi m@ m3 me# mI# mI2 meI maI mOI moU maU maa mO2 maI@ maI3 maU@" | test_phwav chr 90c90ca6f4c77cb6bbfaff2a6583825088aaa5cb "ma na Na pa ta ka ba da ga fa Ta sa Sa xa ha va Da za Za tSa dZa la ra ja wa t2a t#a d#a z#a r-a z/2a w#a m- n- N- _:_ mI mE ma m0 mV mU mi: mA: mO: mu: m3: mA@ mO@ mo@ mU@ mi@3 mIR mVR mi@ me@ mi m@ m3 me# mI# mI2 meI maI mOI moU maU maa mO2 maI@ maI3 maU@" | ||||
test_phwav cmn 368d0fd8e646e37e402377328df39b1d6e832401 "na Na la ja pa pha fa ta tha ka kha tS;a tS;ha S;a s.a tsa tsha ts.a ts.ha N-a _:_ ma mA mai mAu m@ m@r mE mei mi mi[ mi. miA miAu miE mio miou mo mo- mou mong mu muA mua muai mu@ mei muo my myu my& myE my@ myi _:_ ma11 ma21 ma214 ma22 ma33 ma35 ma44 ma51 ma53 ma55" | test_phwav cmn 368d0fd8e646e37e402377328df39b1d6e832401 "na Na la ja pa pha fa ta tha ka kha tS;a tS;ha S;a s.a tsa tsha ts.a ts.ha N-a _:_ ma mA mai mAu m@ m@r mE mei mi mi[ mi. miA miAu miE mio miou mo mo- mou mong mu muA mua muai mu@ mei muo my myu my& myE my@ myi _:_ ma11 ma21 ma214 ma22 ma33 ma35 ma44 ma51 ma53 ma55" | ||||
test_phwav cmn-Latn-pinyin 368d0fd8e646e37e402377328df39b1d6e832401 "na Na la ja pa pha fa ta tha ka kha tS;a tS;ha S;a s.a tsa tsha ts.a ts.ha N-a _:_ ma mA mai mAu m@ m@r mE mei mi mi[ mi. miA miAu miE mio miou mo mo- mou mong mu muA mua muai mu@ mei muo my myu my& myE my@ myi _:_ ma11 ma21 ma214 ma22 ma33 ma35 ma44 ma51 ma53 ma55" | test_phwav cmn-Latn-pinyin 368d0fd8e646e37e402377328df39b1d6e832401 "na Na la ja pa pha fa ta tha ka kha tS;a tS;ha S;a s.a tsa tsha ts.a ts.ha N-a _:_ ma mA mai mAu m@ m@r mE mei mi mi[ mi. miA miAu miE mio miou mo mo- mou mong mu muA mua muai mu@ mei muo my myu my& myE my@ myi _:_ ma11 ma21 ma214 ma22 ma33 ma35 ma44 ma51 ma53 ma55" |
t,ader pr'aj 'O*d#ek,Oi b'aNlad,eSi n'agO*,ik" "মালয়েশিয়ায় অবৈধ শ্রমিকদের বিরুদ্ধে চলমান 'মেগা-থ্রি' অভিযানে সে দেশে শত শত অভিবাসীকে আটক করেছে সে দেশের ইমিগ্রেশন পুলিশ। যাদের আটক করা হয়েছে, তাদের প্রায় অর্ধেকই বাংলাদেশী নাগরিক।" "Beng" | t,ader pr'aj 'O*d#ek,Oi b'aNlad,eSi n'agO*,ik" "মালয়েশিয়ায় অবৈধ শ্রমিকদের বিরুদ্ধে চলমান 'মেগা-থ্রি' অভিযানে সে দেশে শত শত অভিবাসীকে আটক করেছে সে দেশের ইমিগ্রেশন পুলিশ। যাদের আটক করা হয়েছে, তাদের প্রায় অর্ধেকই বাংলাদেশী নাগরিক।" "Beng" | ||||
test_phon bs "l^'ub&znI f'En^eRdZ,Ij& tS'adZ;&vog l'its& x'otS;E d'a m'i p'ok&ZE St'os" "Љубазни фењерџија чађавог лица хоће да ми покаже штос." "Cyrl" | test_phon bs "l^'ub&znI f'En^eRdZ,Ij& tS'adZ;&vog l'its& x'otS;E d'a m'i p'ok&ZE St'os" "Љубазни фењерџија чађавог лица хоће да ми покаже штос." "Cyrl" | ||||
test_phon bs "l^'ub&znI f'En^eRdZ,Ij& tS'adZ;&vog l'its& x'otS;E d'a m'i p'ok&ZE St'os" "Ljubazni fenjerdžija čađavog lica hoće da mi pokaže štos." "Latn" | test_phon bs "l^'ub&znI f'En^eRdZ,Ij& tS'adZ;&vog l'its& x'otS;E d'a m'i p'ok&ZE St'os" "Ljubazni fenjerdžija čađavog lica hoće da mi pokaže štos." "Latn" | ||||
test_phon ca "d'ona# a#m'o* k'E s@**,as f'Elis | |||||
a#jS;'O | |||||
ill'us k'ompa#n^ Q@nj'ut | |||||
Z;'a es Un l^w'it *R'EtUl Bla#B'is D'onz@_:_: k'e v#,e D,oBl@'ak" "Dóna amor que seràs feliç. Això, il·lús company geniüt, ja és un lluït rètol blavís d’onze kWh." "Latn" | |||||
test_phon ca "d'on@ @m'oR k@ s@**'as f@l'is | |||||
si n'o @nz @nt@n'Em p@** l^@Ngw'adZ@ | |||||
@nt@Ng'Emnus p@** @m'oR" "Dóna amor que seràs feliç. Si no ens entenem per llenguatge, entenguem-nos per amor." "Latn" | |||||
test_phon cs "n'exc j'iS hR^'i:Sne: s'aksof,oni J'a:blu: R'ozezv,utSi: s'i:n^ 'u:Jesn,i:mi t'o:ni v'aldzu | test_phon cs "n'exc j'iS hR^'i:Sne: s'aksof,oni J'a:blu: R'ozezv,utSi: s'i:n^ 'u:Jesn,i:mi t'o:ni v'aldzu | ||||
t'aNga_! a kv'itskstepu | t'aNga_! a kv'itskstepu | ||||
pR^'i:liZ Zl'ucoUtSki: k'u:n^ 'u:pjel J'a:belske: 'o:di" "Nechť již hříšné saxofony ďáblů rozezvučí síň úděsnými tóny waltzu, tanga a quickstepu. Příliš žluťoučký kůň úpěl ďábelské ódy." "Latn" | pR^'i:liZ Zl'ucoUtSki: k'u:n^ 'u:pjel J'a:belske: 'o:di" "Nechť již hříšné saxofony ďáblů rozezvučí síň úděsnými tóny waltzu, tanga a quickstepu. Příliš žluťoučký kůň úpěl ďábelské ódy." "Latn" |