From 8e7343fdc3ab73f7ed58806f9f2e5f90087ae0aa Mon Sep 17 00:00:00 2001 From: "Reece H. Dunn" Date: Sun, 8 Jan 2017 15:02:40 +0000 Subject: [PATCH] ar: use the ph_arabic file from https://github.com/linuxscout/espeak-ng --- phsource/ph_arabic | 598 +++++++-------------------------------- phsource/vwl_ar/dhad.wav | Bin 0 -> 8416 bytes phsource/vwl_ar/hah.wav | Bin 0 -> 8240 bytes phsource/vwl_ar/shin.wav | Bin 0 -> 8090 bytes phsource/vwl_ar/zah.wav | Bin 0 -> 6192 bytes 5 files changed, 97 insertions(+), 501 deletions(-) create mode 100644 phsource/vwl_ar/dhad.wav create mode 100644 phsource/vwl_ar/hah.wav create mode 100644 phsource/vwl_ar/shin.wav create mode 100644 phsource/vwl_ar/zah.wav diff --git a/phsource/ph_arabic b/phsource/ph_arabic index 5510a042..cd3d25c3 100644 --- a/phsource/ph_arabic +++ b/phsource/ph_arabic @@ -1,518 +1,114 @@ -// short vowels +phoneme #r virtual +// Used for "r" sounds +endphoneme + + +phoneme H // arabic Hah + vls phr frc + ipa ħ + lengthmod 5 + WAV(vwl_ar/hah) +endphoneme + +phoneme Z // arabic ZAH .Todo + vls phr frc + ipa ðˤ + lengthmod 5 + voicingswitch z + Vowelin f1=1 f2=2700 400 600 f3=200 70 rate len=70 + Vowelout f1=1 f2=2700 400 600 f3=200 70 rate + WAV(vwl_ar/zah) +endphoneme + +//phoneme A // arabic Ain +// vls phr frc +// ipa ʕ +// voicingswitch a +// length 160 +// Vowelin f1=2 f2=2300 -400 500 f3=300 80 +// Vowelout f1=2 f2=2300 -300 450 f3=-100 10 +// WAV(vwl_ar/ain) +//endphoneme + +phoneme gH // arabic ghain, +// the phoneme is derived from Q + vcd vel frc + voicingswitch R2 + ipa ɣ + lengthmod 6 + Vowelin f1=2 f2=2300 200 400 f3=-100 80 + Vowelout f1=2 f2=2300 250 300 f3=-300 80 brk + FMT(voc/Q) //addWav(vocw/Q) +endphoneme + + +phoneme dH //arabic Dhad + alv vls stop + ipa dˤ + voicingswitch d[ + lengthmod 7 + Vowelin f1=2 f2=1500 -300 300 f3=-150 80 + Vowelout f1=2 f2=1500 -300 300 f3=-150 80 + WAV(vwl_ar/dhad) +//FMT(vwl_ar/d_dnt) +endphoneme + +phoneme s[ + vls dnt stop + voicingswitch s + length 160 + lengthmod 7 + WAV(vwl_ar/shin) +endphoneme + +phoneme X + vls uvl frc + voicingswitch Q + lengthmod 7 + Vowelin f1=0 f2=2300 200 400 f3=-100 80 + Vowelout f1=0 f2=2300 300 400 f3=-100 80 rms=20 + WAV(ufric/xx, 70) + +endphoneme + +// vowels phoneme a vowel starttype #a endtype #a - unstressed - length 180 - CALL ShortVowelLength - IF prevPh(s[) OR prevPh(d[) OR prevPh(t[) OR prevPh(Z) THEN - FMT(vowel/0_3) - ELSE - FMT(vowel/a#) + IF nextPhW(isPause) THEN + length 80 + ELSE + length 140 ENDIF - + IF nextPhW(a) THEN + length 200 + ENDIF + FMT(vowel/a) endphoneme phoneme i vowel starttype #i endtype #i - length 140 - unstressed - CALL ShortVowelLength + IF nextPhW(isPause) THEN + length 80 + ELSE + length 140 + ENDIF + IF nextPhW(i) THEN + length 200 + ENDIF FMT(vowel/i) endphoneme + phoneme u vowel starttype #u endtype #u - unstressed - length 140 - CALL ShortVowelLength - FMT(vowel/u) -endphoneme - - - -phoneme : // lengthen previous vowel by "length" - virtual + IF nextPhW(isPause) THEN + length 80 + ELSE + length 140 + ENDIF + IF nextPhW(u) THEN length 200 -endphoneme - - - - -// long vowels -phoneme a: - vowel starttype #a endtype #a - length 300 - //CALL LongVowelLength - IF prevPh(s[) OR prevPh(d[) OR prevPh(t[) OR prevPh(Z) THEN - FMT(vowel/0_3) - ELSE - FMT(vowel/a#) ENDIF - -endphoneme - - -phoneme i: - vowel starttype #i endtype #i - length 300 - //CALL LongVowelLength - FMT(vowel/i) -endphoneme - -phoneme u: - vowel starttype #u endtype #u - length 300 - //CALL LongVowelLength FMT(vowel/u) endphoneme - - -// Redifine consnant for arabic - - - - -phoneme l - liquid - lengthmod 7 - - IF nextPh(isNotVowel) THEN - ChangePhoneme(l/) - ENDIF - - IF nextPh(isNotVowel) THEN - // in case the next phoneme is no longer a vowel, in pass=2 - 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_) - RETURN - ENDIF - - CALL vowelstart_l - - 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) // double l, make it longer - ENDIF - - FMT(l/l) -endphoneme - - - - - -phoneme w - liquid - lengthmod 7 - FMT(w/w_) -endphoneme - - - -phoneme j - liquid palatal - lengthmod 7 - FMT(j/j_) -endphoneme - - - -//******************************************************************* -// NASAL CONSONANTS -//******************************************************************* - - -phoneme m - vcd blb nasal - Vowelout f1=2 f2=1000 -500 -350 f3=-200 80 brk - lengthmod 4 - FMT(m/m_) -endphoneme - - -phoneme n - vcd alv nasal - Vowelout f1=2 f2=1700 -300 250 f3=-100 80 rms=20 brk - lengthmod 4 - FMT(n/n_) -endphoneme - - -//******************************************************************* -// VOICED STOPS -//******************************************************************* - - -phoneme b - vcd blb stop - voicingswitch p - Vowelout f1=2 f2=1000 -500 -300 f3=-300 80 brk - lengthmod 7 - FMT(b/b) addWav(x/b) -endphoneme - - -phoneme d - vcd alv stop - voicingswitch t - lengthmod 5 - Vowelin f1=1 f2=1700 -300 300 f3=-100 80 - Vowelout f1=2 f2=1700 -300 300 f3=-100 80 brk - - FMT(d/d) addWav(x/d) -endphoneme - - -phoneme d[ - vcd dnt stop - voicingswitch t[ - lengthmod 5 - Vowelin f1=2 f2=1500 -300 300 f3=-150 80 - Vowelout f1=2 f2=1500 -300 300 f3=-150 80 - FMT(d/d) addWav(x/d_dnt, 100) -endphoneme - - -phoneme dZ - vcd pla afr sibilant - voicingswitch tS - //lengthmod 8 - Vowelin f1=2 f2=2300 200 400 f3=100 80 - Vowelout f1=2 f2=2300 250 300 f3=100 80 brk - - FMT(dzh/dzh) addWav(x/dzh) -endphoneme - - - -phoneme J - vcd pal afr sibilant palatal - voicingswitch c - lengthmod 5 - Vowelin f1=2 f2=2700 400 600 f3=300 80 rate len=70 - Vowelout f1=2 f2=2700 400 600 f3=300 80 colr=1 - - IF KlattSynth THEN - IF nextPh(isPause2) THEN - FMT(klatt/dz_pzd_) addWav(x/dzh, 35) - ENDIF - FMT(klatt/dz_pzd) addWav(x/dzh, 45) - ENDIF - - FMT(dzh/dz_pzd) addWav(x/dzh, 45) -endphoneme - - -phoneme g - vcd vel stop - voicingswitch k - lengthmod 5 - Vowelin f1=2 f2=2300 200 300 f3=-300 80 - Vowelout f1=2 f2=2300 250 300 f3=-300 80 brk - - FMT(g/g) addWav(x/g2, 150) -endphoneme - -//******************************************************************* -// VOICED fricatives -//******************************************************************* - -phoneme D - vcd dnt frc - voicingswitch T - lengthmod 6 - Vowelout f1=0 f2=1700 -300 300 f3=-100 60 len=50 - - IF KlattSynth THEN - Vowelin f1=0 f2=1290 -300 300 f3=0 0 - ENDIF - FMT(voc/dh) addWav(vocw/dh) -endphoneme - - -phoneme z - vcd alv frc sibilant - //voicingswitch s - lengthmod 1 - 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 - - FMT(voc/z) addWav(ufric/s_, 85) -endphoneme - - -phoneme Z - vcd pla frc sibilant - 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 KlattSynth THEN - IF nextPh(isPause2) THEN - FMT(klatt/zh_) addWav(vocw/zh) - ENDIF - FMT(klatt/zh) addWav(vocw/zh, 130) - ENDIF - - FMT(voc/zh) addWav(vocw/zh, 130) -endphoneme - - - - - -//******************************************************************* -// UNVOICED STOPS -//******************************************************************* - -phoneme t - vls alv stop - 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 - WAV(ustop/t, 90) -endphoneme - - -phoneme t[ // dental variant of /t/ - vls dnt stop - voicingswitch d[ - lengthmod 2 - Vowelin f1=1 f2=1500 -250 250 f3=-100 80 amp=16 - Vowelout f1=0 f2=1500 -300 250 f3=-100 80 rms=20 - - WAV(ustop/t_dnt, 35) -endphoneme - - - - -phoneme k - vls vel stop - 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 - - WAV(ustop/k) -endphoneme - - -phoneme q - vls uvl stop - lengthmod 2 - Vowelin f1=1 f2=1700 0 200 f3=-300 80 gpaus f4 rms=30 - Vowelout f1=1 f2=1700 -100 200 f3=-300 80 f4 rms=35 - WAV(ustop/q, 48) -endphoneme - - - -//******************************************************************* -// UNVOICED fricatives -//******************************************************************* - -phoneme f - vls lbd frc - voicingswitch v - lengthmod 3 - Vowelout f1=0 f2=1000 -500 -350 f3=-200 80 - WAV(ufric/f) -endphoneme - - -phoneme T - vls dnt frc - voicingswitch D - lengthmod 3 - Vowelin f1=0 f2=1700 -300 300 f3=-100 80 - Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20 - WAV(ufric/th) -endphoneme - - -phoneme s - vls alv frc sibilant - 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 - WAV(ufric/s) -endphoneme - - -phoneme S - vls pla frc sibilant - voicingswitch Z - lengthmod 3 - Vowelin f1=0 f2=2100 100 300 f3=-100 80 - Vowelout f1=0 f2=2100 100 300 f3=-100 80 - - WAV(ufric/sh) -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 - //WAV(ufric/x) - WAV(vwl_ar/kha) -endphoneme - - - -phoneme h - vls glt apr - lengthmod 3 - ipa h - WAV(h/h_, 70) // no vowel following -endphoneme - - - - - - - - -// Added specific consnant to arabic -phoneme H // arabic Hah - vls phr frc - ipa U+0127 - lengthmod 5 - WAV(vwl_ar/H2) -endphoneme - -phoneme Z // arabic ZAH .Todo - vls phr frc - lengthmod 5 - voicingswitch z - WAV(vwl_ar/ZH4) -endphoneme - -phoneme E // arabic Ain - vls phr frc - //ipa U+0127 - //voicingswitch a - lengthmod 5 - //WAV(vwl_ar/AN2,50) - WAV(vwl_ar/ain2) - -endphoneme - -phoneme G //arabic Ghain - //vcd uvl frc - vls uvl frc - lengthmod 3 - Vowelin f1=0 f2=2300 200 400 f3=-100 80 - Vowelout f1=0 f2=2300 300 400 f3=-100 80 rms=20 - voicingswitch R - //lengthmod 5 - //ipa U+0280 - WAV(vwl_ar/ghain6) - //FMT(voc/Q_ulv) addWav(vwl_ar/gh, 100) - //FMT(voc/Q_ulv) addWav(vwl_ar/ghain3, 100) - -endphoneme - -phoneme d[ //arabic Dhad - vls dnt stop - voicingswitch d - length 120 - WAV(vwl_ar/da7) -endphoneme - -phoneme s[ - vls dnt stop - //voicingswitch s - lengthmod 7 - WAV(vwl_ar/SA1) -endphoneme - - - -phoneme r - liquid rhotic - ipa ? - lengthmod 7 - IF nextPh(a) OR nextPh(a:) THEN - FMT(r/ra) - ENDIF - FMT(r/r_) -endphoneme - -procedure ShortVowelLength - - //IF prevPhW(isVoiced) AND nextPhW(isVoiced) THEN // voiced - IF prevPhW(isNotVowel) AND nextPhW(isNotVowel) THEN // consonants - length 140 - RETURN - //ENDIF - ELSE - IF prevPh(isStressed) THEN - length 160 - ELSE - length 175 - ENDIF - - ENDIF -endprocedure -procedure LongVowelLength - - //IF prevPhW(isVoiced) AND nextPhW(isVoiced) THEN // voiced - IF nextPhW(:) THEN - length 300 - RETURN - //ENDIF - ELIF prevPhW(isNotVowel) AND nextPhW(isNotVowel) THEN // consonants - length 340 - RETURN - //ENDIF - ELSE - IF prevPh(isStressed) THEN - length 360 - ELSE - length 375 - ENDIF - - ENDIF -endprocedure \ No newline at end of file diff --git a/phsource/vwl_ar/dhad.wav b/phsource/vwl_ar/dhad.wav new file mode 100644 index 0000000000000000000000000000000000000000..02bf529d60654b22d2d0803fa3a32751936f2479 GIT binary patch literal 8416 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 R=xInxn`8eZGZfng^?$stZVdnc literal 0 HcmV?d00001 diff --git a/phsource/vwl_ar/hah.wav b/phsource/vwl_ar/hah.wav new file mode 100644 index 0000000000000000000000000000000000000000..242632233dda8fd3f36833604ed87ce071fb45c3 GIT binary patch literal 8240 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 PP0jVedt=HmsmcEXtV-`N literal 0 HcmV?d00001