From df1a6045a00b3aab9fd2f1195bd0e8f1de90d979 Mon Sep 17 00:00:00 2001 From: Valdis Vitolins Date: Thu, 21 Jun 2018 16:14:19 +0300 Subject: [PATCH] ar: improve sound of A (Ain) and H (Hah) --- phsource/ph_arabic | 78 +++++++++++++++-------------------- phsource/vwl_ar/hah.wav | Bin 8240 -> 7910 bytes tests/language-phonemes.test | 2 +- 3 files changed, 35 insertions(+), 45 deletions(-) diff --git a/phsource/ph_arabic b/phsource/ph_arabic index e68cc851..76fc7c72 100644 --- a/phsource/ph_arabic +++ b/phsource/ph_arabic @@ -2,34 +2,32 @@ phoneme #r virtual // Used for "r" sounds endphoneme - -phoneme H // arabic Hah +phoneme H // arabic Hah vls phr frc ipa ħ - lengthmod 5 - WAV(vwl_ar/hah) + lengthmod 5 + WAV(vwl_ar/hah,80) endphoneme -phoneme Z // arabic ZAH .Todo +phoneme Z // arabic ZAH vls phr frc ipa ðˤ - lengthmod 5 - voicingswitch z + lengthmod 5 + voicingswitch z ChangePhoneme (D) // FIXME: vwl_ar/zah wav file is wrong, therefore English D is used endphoneme -phoneme A // arabic Ain +phoneme A // arabic Ain vcd 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 - FMT(r/rr) addWav(ufric/x_) // TODO actual voiced part should be adjusted + voicingswitch a + length 160 + Vowelin f1=2 f2=2300 -400 500 f3=300 80 + Vowelout f1=2 f2=2300 -300 450 f3=-100 10 + FMT(r/xr,25) addWav(h/h_,30) endphoneme -phoneme gH // arabic ghain, -// the phoneme is derived from Q +phoneme gH // arabic Ghain, the phoneme is derived from Q vcd vel frc voicingswitch R2 ipa ɣ @@ -38,22 +36,17 @@ phoneme gH // arabic ghain, FMT(g/g) addWav(vwl_ar/dhad) endphoneme - -phoneme dH //arabic Dhad TODO this probably should be simple d from standard phonemes +phoneme dH //arabic Dhad TODO this probably should be simple d from standard phonemes vcd alv stp ipa dˤ - 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_) ENDIF - FMT(d/d) addWav(x/d) endphoneme @@ -69,50 +62,47 @@ phoneme X vls uvl frc voicingswitch Q lengthmod 7 - Vowelin f1=0 f2=2300 200 400 f3=-100 80 + 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) - + WAV(ufric/xx, 70) endphoneme // vowels phoneme a vwl starttype #a endtype #a - IF nextPhW(isPause) THEN - length 80 - ELSE - length 140 + IF nextPhW(isPause) THEN + length 80 + ELSE + length 140 ENDIF IF nextPhW(a) THEN - length 200 + length 200 ENDIF - FMT(vowel/a) + FMT(vowel/a_2) endphoneme - phoneme i vwl starttype #i endtype #i - IF nextPhW(isPause) THEN - length 80 - ELSE - length 140 + IF nextPhW(isPause) THEN + length 80 + ELSE + length 140 ENDIF - IF nextPhW(i) THEN - length 200 + IF nextPhW(i) THEN + length 200 ENDIF FMT(vowel/i) endphoneme - phoneme u vwl starttype #u endtype #u - IF nextPhW(isPause) THEN - length 80 - ELSE - length 140 + IF nextPhW(isPause) THEN + length 80 + ELSE + length 140 ENDIF - IF nextPhW(u) THEN - length 200 + IF nextPhW(u) THEN + length 200 ENDIF FMT(vowel/u) endphoneme diff --git a/phsource/vwl_ar/hah.wav b/phsource/vwl_ar/hah.wav index 242632233dda8fd3f36833604ed87ce071fb45c3..fc9e30c545c8a0df63e623147d7ebd89d6ef7ee2 100644 GIT binary patch literal 7910 zcmW+*1#}hH)1SF_cau`w3Z+PZ;suIBfkM#Y?pj=n6)DACiZnohVks0U?vNk>N{}MO zi@Uoe@9o|@^UeP|@4S=q^4{*=y*u->Y4TmonzwQQw5-~qM)!V0a-{_TlvnN+0M$1D zC`b!kI}hm`C%^gMH=h9UOMb@@py3(6Wy}BZc6nXqTl|3wL0u>YndGQDe3O|!gYxh_ z%!PsQ89d;4{*hbqWIoPkd9%EkPw`xNe*#x|1K;P$&;q`N{m>Iz;w!iX_n;Dt;orC{ zl!7!c7B)fzWZoFE}?u;ph02H*qoO1sUKaUxbc01@7~H_!M_BaynQG3)$oA z9LK*?QQFD%@ir`gW4HoG@c=3+*D4PG!0+m#ih*uafZo{bc9f0gT2P12&{{sv!}&Ik zhd9~Ic)kT%t-wdvQtiN@P>NsEV%fVHun0$Dh*#5U+sdY;U${7KRG;ZLmDD!U+ zYl`qL%&l5ue~6)W_A(umHLOwpsaZHk?z9z5!MivVcVZtXN=NNQ+sD4OOXwx-paVA9 zX5!IY9+qPgCcqi)1`A{b_w;k8pFRr*C?EBuLDZL%;5Pih!?+wDu?0+o*<%ZF71)GZ z)u;Nb9GMjd!g?A`*W~Vw@L?_vYq<<-9?z>dEB#`x(>Pwl5tvDr(q+`|xCJ_LRZ2^z zxDrmqA5>wzM~%TV+>mE7Q+oav4&hneE9?7$UYfpkq?~7@&2MVkRun}id7#>Z$nmsZ zDs>ASR)?KwPD!1hE~%kv8D7DoYJ@6-b)W#W<^1+taL0IdUx4O@*>5%lD}oiao>XdK ze6KRr^#?Ckzj!|v;jqgD*Y=K>|GAxq4txgG4mSOPvhr5GN-H+TVz!Y7y?V;~zo zgfifBE69ger4yr|9!JtJx=lCemh@tEo(B_PDm;|l%LX~2t5kPZ!GM#{3ad$1?dC&t z$o^>SQ%&y2E4T^dfZFf}SpE(2tNp6HZmyL|gaP~&m7^)thThRbUcLt8C_|5+-cx;P8ylU)@bSvsu+|Au>XVcI=;JcV#xl;4(pf=B; zlr-6vG7Ew)%?7iHdg5fA%Pr=v(4g8uXTiZ?&=>RRXF5u!!9w((pEf)_yfVm1t@vlY zLsjWJI!F!qICN3{^%JMR`?(XX^Gp5K!XI!t%;s^nok?k@SXnQYhk5jajWv(W&-N@e zQqP?z_pI};LUzrnppWg(ucQu7Vh_~NntIxz_Jl1BtCf$#r4wp!U8t<8>)N`b>I><( z5KXW^8KI9_t(B0qLRFY z_S^M#7+t3%x<&=5giUSpaV?e2Y2j3HZa7Drv^pABNo5x1E`sUtT$<9^Cw8N)YpR=J z_D_n0>$q7~GXvgGOF_54=qcA%QMv;T=js$`OPh_R7L|qX1vBfZ?N||3b9t<-4?AVO z`(BJYOeOGP`>Sbdn{$5{#aoOGHw)hhUkD0Qb2@C!2TRRXio$#9h5pu=sn_ae&TidP zU63mOT`gBXs5=bMPeQ<$v;2`tgHvR`@8|}T^vhOP4i$)FrT(UC)h++ zOq-yo9}(Q3R62w68e8%K>8)5kp_aJ6c$3^C+EV~i=nuit6_5@mLUH;z$m?(Qt=T{h zG{)Z`PIzUuSz$}SAL@jgI-;EuhSgNv&alNe77IEvopibfHsZ{7t0}{Os`L7L<-#3% z)PzkT%E8lVwYe0GHUn)rD$V_%0#3r)SXHG`9nn+ybr#)7jllGn5tl(axWvFT|seZ!^sA+4g!f_K}w1s|t$oB_VZ3fK!saP15ohEMeZr;O7^ z?Sp{V3ddLC1fD89yopQkpLRg-yZ`K}#YN@ZV?M&OBtKf}BSM{4Ez~JNjLK?)zMv22R{F83 zsG7r0>zUN%lx6M(<=_Fm3%dHoe;#bKSz(Ks;hfgPF}qaAAaLaQexnDqVYits4IQW~?V-)0VD|AvVdW%x zZqdy2_xV2tJIqN6!F~P4dmE9%JBowttKe_D1J}9hBeHoL(X&^>TS8^ReS_ZgD)PJHt*wDo)wyvi;3Yw69DZb3u41CHKTnofOikrPOD_mmi^$ zx~LMd5*(+6^oDov8e7CDQ^|JXeb65)h3!1)%$eZf6{vXpvn98v?geQ+(j+@EMla#uWr z5wOTMGTH56nk|gbQ5VzM)Mj}m6F4Vy5o9cf>qP_JG6_DO78+mS@oKxOqHw`*=j!lA0PNe&t(@RIHO?<&- zw)^Z0I?P=mBR32_3t^~L5CMOwUsMwA!>w3c?NiZuo0Hy4?OoL~Ax@b4J5$-Z;vSw@ z3aSRn{W1P!pMy{MnflHPNA&R$)B;G4U+P+JdiP7cM)XQL;o=kaviUto>-P^I2{#Vz z+MI$Q<=p~qf0aj2?Ie`)x~I66Vx4!FYx_SWX9z7ZnX#!V0Cmi?aJ$f~P|v{UCc2%| zO7~WKRYPI(m2Mlaw|h!2#ne33CYwEGy16BsR?z+vO!ha3I=x3b;haMEj$7F6qqksj zOs8_|1YJqrhT1g5^bWob3I~_{$Y6qLKy~;S{{{E4ql#C7=)e^^z3^sJRag}eMOni> z42}e`L37iRk^~RqxINE;qAH&r=p1n?czMxRh-%lBSm7F)6 z#}tL@&K~cYvr6!BfWGaH_IA3*+`Dd5XF49E(ZSBpl4LJ@${eSaW>2_&I4X7)EO-{6z*E{aCz|yu!V1tky3|~Vr`*S#N@`&V{eiFBI+Ii7V2N+AssR?XQ z;5^i?Fj?4QHSgq3T!UuY5w?ePK|d&~wrgKihL^UNt;l8c6t8*2Ql}%Q4Niu;1%J>{ zxC5i5+Yg#Y=8A329b{k1ic@NbWpDy&TmcK=Q}OP#Au~+kcebB+vc96{UP`(UPw}E@ z2Ji#Xc7@#b?kl|x#o@~L(Rf6B-Al-3r}*Fb`%JX-@*5sV(`+4@%9Zhzu*h3QSVEju zBL9j#bQ9eZ3(^sPLbyzDm{#E_jD)MAL%Q*NoT^XhdzdJB!3A8ed+4q>gf*QrHO+&d zgZZA)3Yz4E6Sji+V9s!YF6X)KJ5iPyL`UD%4c%XyomiA!1lfYV!Esv#UP*#do^A(| z0y3}pk;?0Qt=r-z?khO-3*^w>I9k_-N;XrlFsMgw@rACclIdWu#D8ZdqxR-Ukegf0 zpsDr(xp-2o5&d7(W(`7qQZUq>p!}Rn@9i$r+&<<>x_}q!J#kv8S}>fiLmS=4DWLy` zoP5(x4^oA%C$9><4T?Y|eOFgUPqgexd!9ju+?ElM5pCUrY8|!pCx#cB_E^ptp$Qh) z8vfMqpFvd`0k80!8m$khCz1z!{7v~3pkeV zn`|c8Cc_C;Ni~Ajl0AKjm()?GryK3u$Im4p8bjaMbaWPK>7^1`I6 zt3rYoAH?gV63lK7R&VgGcr~21ut&7{8siG8Wl#w)gE|`Dpu zK2w;t=o?;Q#B-PM0L7VD!;}>_Vs`wIehfy1XM{5QIqW;$jt#LtU$jSUU#_4MoXzeE zH=aiY#1e3whwI=+tFJkER!s#%9KLN#X7E{F@Rn}_x(^%kdUY)u%Ma&l@h|KQ=`fVH&5V+%}C}Y>Jt6W-Q%> zPP(z%+Fh)dijuC*Q}DI^+)e8=lijXmUCJgtaRj|HvB96BwW>=OPEcuKkbM)(x2aSm zFDmkZmtIe&hkoa9r(nN0wpnU09;8k|c47NGeLTNv(D`%>+~3JD*N%l7ra;HbJk-^ zs$;$lcA3@?EBc@mx|Bs2V<|UM!<{zHY1~UOW|pZ=8L_oq?qqfjLrt5`KA>JO8N=8I zXF)#BMV)B3WJvodH}sYqrU7@AdMP6LP!~~%vvD}a!BalNr=gB2rQ7PcY8B++G`tq( zsg%wGJszLi7XJHCc7Kscq{)1R_Dc3L#e8MsC%P_B!cW1_~ z_c^mE7S0h$^y~5;>Y?fl)hGG|W{`Yr8hj}z^re2Jr|Y4(g>IOxR8~1|LAR>mSj@9Vy;J38wVm{@Ql~x3JR$^NFk49UQhB z_^IG*13qN`66~5}XGp#nq89vw8{tR&!M)%{>cw1~&Qe1dtXq5W?gF*St_YtF_4K>i z0CuaLFxP%#PMFGcmp5P~)fB5qwpSAusMqS4Xjw_8P3^##dmL8D&PBZpqU=O}fFCK2 zBUxAV*15IRE?WIRhZZ!270z)tR)5PKf-?T`;3g&FI~65t@EOFihAh|tmp~htAXMgO zlv}0@b+8a_rZQ$yu)&57&*n0uiH~lRQ>%=ySVD9QE(Iyn0Jl zd>x+XU$zh63c9$E3rO035fbF=-9(whV62|x?9jDvHx;m_OeVU@Kj3P~aB|Z9V6R_0 zNI_R6^8(c${^f-bhrg%;Y6vdnrIN%gQP*`29S2Knp&)Ot#cqVp)LC&DFYO1D%NC}R zlAE3pk5@$W&1;zg%*Bb~r!&Ge8b@2GspQa41ZhUmJjs;0NDeUwDhu~TtD?9K7DIa& zD+)DQ#ffu$2Ys=F>qcKX(vsyFvk#2S3_p{@L)3U=4THN1PUVg(Pqz?NO?$rn&3Ac;_ONu``1d zb}OuOlH4EFM3X*LH3T-3?&(FlmGOD-ZRl>OxxJvgh}99UvzbDE7k`0`#WDJ>@^Bf~ zlL<~1-fYjAKK2)Wj9=-#Diu_toHU!;;~vR)e^d8mPVnA7qo%@dJ@jOFZa(-?=6~)e z56+VP>nuv7H2evt#f9$YMRbo+iC+IzoKqs!gL_ngQu9ezEqI(-@4-5}(5AADXgACj ze69?4ZA?(m9HhliT4q)|AjDm{v%Hr`mR(8C+8LWj=1~N1$($q_Kfwaxz6!{UskIuT zR>CbxP5tZv>F-Ebh0kydzU2D$vHvk#+;oSjIFH7S(c0S8{Ucw?HoRAR;7?QGwsPE1CPkZ6UCF`g@P6vb8|26f{7B|tU3ea?lI(T>Jr_?M z#~pYvj}T{kfqF?|*B;LbuGPguq6G%a461}4rAy##skZ0ljg8@sK=PZgJfUc|w1}GU z&#*?)^d49m)8b#E2-@>Oc#3;*sw9W;lITF#_u;}NOV3PB!QQoVQH zYQQ*~!d4OY{t!}O8p#yPJNxlE&9Wzn;jGG~zruFZ(9EJrYOQFUHj+#oriI{1s(2Be z36iI=L~q66FINqmx~i6~7DSu+_C1dB`n%(yc~H|&2=>!swavLH{%n#|-CS`6J$M?P zbk6CpsD_C)$&Td{n87)&pGlRchY5&~f+Jz5pjj-e#dMa+sdjqtqsVUqRbu%3w@>!WoC77C`Wxj&1@P(v2ZRrfRg+tBO0&+9U&efaV_T-*3C*EZ7!Ko#_=BUYv1x7na^yI&zHEO zIIPh!$GOLUNDt(L_k4#p${IVt5%?R=LyXi*0eCLybtbhCTgr8(avsS=yUK)j4UCiN z>k$5u%kyb&2u3hEr_|(r@l07E1tjvq|DOqJxx!Q!CzLRk$t!vdaWIyX@f$nNElQe@>0?e??tfE&u=k literal 8240 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