From d8c60d97baf04416b72e97d6f065054e19297475 Mon Sep 17 00:00:00 2001 From: Richard Calvi Date: Sat, 12 Mar 2022 22:05:42 +0900 Subject: [PATCH 1/4] Added new language variant: en-us-nyc, a vintage New York City accent --- espeak-ng-data/lang/gmw/en-US-nyc | 14 + phsource/ph_english_us_nyc | 512 ++++++++++++++++++++++++++++++ phsource/phonemes | 3 + phsource/vwl_en_us_nyc/0_3 | Bin 0 -> 1611 bytes phsource/vwl_en_us_nyc/@i | Bin 0 -> 9802 bytes phsource/vwl_en_us_nyc/a | Bin 0 -> 7189 bytes phsource/vwl_en_us_nyc/a_raised | Bin 0 -> 7200 bytes phsource/vwl_en_us_nyc/aa_8 | Bin 0 -> 2758 bytes 8 files changed, 529 insertions(+) create mode 100644 espeak-ng-data/lang/gmw/en-US-nyc create mode 100644 phsource/ph_english_us_nyc create mode 100644 phsource/vwl_en_us_nyc/0_3 create mode 100644 phsource/vwl_en_us_nyc/@i create mode 100644 phsource/vwl_en_us_nyc/a create mode 100644 phsource/vwl_en_us_nyc/a_raised create mode 100644 phsource/vwl_en_us_nyc/aa_8 diff --git a/espeak-ng-data/lang/gmw/en-US-nyc b/espeak-ng-data/lang/gmw/en-US-nyc new file mode 100644 index 00000000..2d76f88a --- /dev/null +++ b/espeak-ng-data/lang/gmw/en-US-nyc @@ -0,0 +1,14 @@ +name English (America, New York City) +language en-us-nyc + +maintainer Richard Calvi +status testing + +phonemes en-us-nyc +dictrules 3 6 + +stressLength 140 120 190 170 0 0 255 300 +stressAmp 17 16 19 19 19 19 21 19 + +replace 03 I i +replace 03 I2 i diff --git a/phsource/ph_english_us_nyc b/phsource/ph_english_us_nyc new file mode 100644 index 00000000..44d7b5e7 --- /dev/null +++ b/phsource/ph_english_us_nyc @@ -0,0 +1,512 @@ + +//******************************************************************* +// VOWELS +//******************************************************************* + + +phoneme 3 + CALL @ + ipa ə +endphoneme + +phoneme @ // Schwa + vwl starttype #@ endtype #@ + unstressed + length 130 + IfNextVowelAppend(r-) + IF thisPh(isWordEnd) THEN + FMT(vowel/@_6) + ENDIF + FMT(vowel/@_4) +endphoneme + + +phoneme @2 // Schwa, changes to I before a vowel + vwl starttype #@ endtype #@ + unstressed + length 120 + IF nextPh(isVowel) THEN + ChangePhoneme(I2) + ENDIF + FMT(vowel/@_low2) +endphoneme + + +phoneme a + vwl starttype #e endtype #@ + ipa æ + length 210 + + ChangeIfDiminished(a#) + + IF nextPh(m) OR nextPh(n) OR nextPh(g) OR nextPh(b) OR nextPh(d) OR nextPh(S) OR nextPh(f) OR nextPh(T) OR nextPh(s) THEN + IF NOT next2Ph(isVowel) THEN + ipa ɛə + FMT(vwl_en_us_nyc/a_raised) + ENDIF + ELSEIF nextPh(r) AND thisPh(isStressed) THEN + length 190 + FMT(vwl_en_us/ar) + ENDIF + FMT(vwl_en_us_nyc/a) +endphoneme + + +phoneme aa // 'bath' etc. + import_phoneme en-us-nyc/a +endphoneme + + +phoneme a# + vwl starttype #@ endtype #@ + ipa ɐ + unstressed + length 150 + + IF thisPh(isStressed) THEN + ChangePhoneme(a) + ENDIF + + IF nextPhW(r) THEN + ChangePhoneme(3) + ENDIF + + FMT(vowel/a#_3) +endphoneme + + +phoneme E + vwl starttype #e endtype #e + length 190 + IF nextPhW(n) THEN + ChangeIfDiminished(@) + ELSE + ChangeIfDiminished(I2) + ENDIF + FMT(vwl_en_us/ee) +endphoneme + + +phoneme I + vwl starttype #i endtype #i + length 160 + IfNextVowelAppend(;) + ChangeIfDiminished(I2) + + IF nextPhW(r) THEN + length 200 + ENDIF + + FMT(vowel/ii_4) +endphoneme + + +phoneme I2 + vwl starttype #i endtype #i + unstressed + length 160 + IfNextVowelAppend(;) + FMT(vowel/ii#_3) +endphoneme + + +phoneme I# + vwl starttype #i endtype #i + unstressed + length 160 + ipa ᵻ +// FMT(vowel/@_fnt) + FMT(vowel/ii#) +endphoneme + + +phoneme I2# + vwl starttype #i endtype #i + unstressed + ChangePhoneme(I#) +endphoneme + + +phoneme 0 + vwl starttype #a endtype #a + length 140 + ChangeIfDiminished(@) + IF nextPhW(r) AND next2PhW(isVowel) THEN + ChangePhoneme(A:) + ELIF nextPh(r) THEN + ChangePhoneme(O:) + ENDIF + FMT(vowel/0) +endphoneme + + +phoneme 02 // becomes V in en-us + vwl starttype #o endtype #o + length 140 + ChangePhoneme(V) +endphoneme + + +phoneme O2 + vwl starttype #o endtype #o + length 220 + IF nextPhW(r) AND next2PhW(isVowel) THEN + ChangePhoneme(A:) + ENDIF + FMT(vwl_en_us_nyc/0_3) +endphoneme + + +phoneme V + vwl starttype #a endtype #@ + length 170 + ChangeIfDiminished(@) + FMT(vowel/V_6) +endphoneme + + +phoneme U + vwl starttype #o endtype #o + length 145 + FMT(vowel/8_2) +endphoneme + + +phoneme A: + vwl starttype #a endtype #a + length 220 + IF nextPhW(r) THEN + FMT(vwl_en_us/aar) + ENDIF + FMT(vwl_en_us_nyc/aa_8) +endphoneme + + +phoneme A@ + vwl starttype #a endtype #a + ipa ɑː + length 230 + IfNextVowelAppend(r-) + FMT(vowel/aa_2) +endphoneme + + +phoneme A# // [a] in British [A:] in American + vwl starttype #a endtype #a + ChangePhoneme(A:) +endphoneme + + +phoneme 3: + vwl starttype #@ endtype #i + ipa əɪ + length 210 + IfNextVowelAppend(r-) + ChangeIfDiminished(3) + FMT(vwl_en_us_nyc/@i) +endphoneme + + +phoneme i: + vwl starttype #i endtype #i + length 180 + IfNextVowelAppend(;) + FMT(vowel/i_en) +endphoneme + + +phoneme O: + vwl starttype #o endtype #@ + length 220 + ChangeIfDiminished(@) + IF nextPhW(r) AND next2PhW(isVowel) THEN + ChangePhoneme(A:) + ENDIF + IF nextPhW(r) THEN + FMT(vwl_en_us/oor) + ENDIF + FMT(vwl_en_us_nyc/0_3) +endphoneme + + +phoneme O@ + vwl starttype #o endtype #@ + length 240 + ipa ɔː + IfNextVowelAppend(r) + FMT(vowel/oo_en) +endphoneme + + +phoneme o@ + vwl starttype #o endtype #o + length 250 + ipa ɔː + IfNextVowelAppend(r) + FMT(vowel/oo_en) +endphoneme + + +phoneme O + vwl starttype #o endtype #o + length 200 + ChangeIfDiminished(@) + IF nextPhW(r) AND next2PhW(isVowel) THEN + ChangePhoneme(A:) + ENDIF + FMT(vwl_en_us_nyc/0_3) +endphoneme + + +phoneme u: + vwl starttype #u endtype #u + length 190 + + IF prevPhW(j) AND NOT thisPh(isWordEnd) THEN + length 160 + ENDIF + + FMT(vdiph2/uw_6) +endphoneme + + +phoneme aU + vwl starttype #a endtype #o + length 235 + FMT(vdiph/aoo) +endphoneme + + +phoneme oU + vwl starttype #@ endtype #u + length 230 + FMT(vdiph/8u) +endphoneme + + +phoneme aI + vwl starttype #a endtype #i + length 240 + IF nextPh(#a) OR nextPh(#o) THEN + AppendPhoneme(;) + ENDIF + FMT(vwl_en_us/ai) +endphoneme + + +phoneme eI + vwl starttype #e endtype #i + length 220 + FMT(vdiph2/ei_4) +endphoneme + + +phoneme OI + vwl starttype #o endtype #i + length 270 + FMT(vdiph/oi) +endphoneme + +phoneme e@ + vwl starttype #e endtype #@ + length 230 + IfNextVowelAppend(r-) + FMT(vowel/ee_1) +endphoneme + +phoneme i + vwl starttype #i endtype #i + unstressed + ipa i + length 170 + IfNextVowelAppend(;) + + IF NOT thisPh(isFinalVowel) THEN + length 130 + FMT(vowel/ii_4) + ENDIF + + FMT(vowel/ii_final) +endphoneme + + +phoneme i@ + vwl starttype #i endtype #@ + length 250 + FMT(vdiph2/ii@) // don't append [r] before a vowel +endphoneme + +phoneme i@3 + vwl starttype #i endtype #@ + length 250 + + IF MbrolaSynth THEN + ChangePhoneme(i@) + ENDIF + + IfNextVowelAppend(r-) + FMT(vdiph2/ii@) +endphoneme + + +phoneme U@ + vwl starttype #u endtype #@ + length 200 + IfNextVowelAppend(r-) + IF thisPh(isUnstressed) THEN + FMT(vdiph2/8@) + ENDIF + FMT(vdiph2/uu@) +endphoneme + +phoneme aI@ + vwl starttype #a endtype #@ + length 300 + ipa aɪə + IfNextVowelAppend(r-) + FMT(vwl_en_us/ai@) +endphoneme + + +phoneme aI3 + vwl starttype #a endtype #@ + length 280 + ChangePhoneme(aI@) +endphoneme + +phoneme aU@ // h**our** + vwl starttype #a endtype #@ + length 280 + IfNextVowelAppend(r-) + FMT(vwl_en/aU@) +endphoneme + + +//============== +// Consonants +//============== + +phoneme h + vls glt apr + lengthmod 3 + ipa h + + IF nextPh(j) THEN + ChangePhoneme(NULL) // drop "h" for "human", "huge", etc. + ELIF nextPh(#@) THEN + WAV(h/h@) + ELIF nextPh(#a) THEN + WAV(h/ha) + ELIF nextPh(#e) THEN + WAV(h/he) + ELIF nextPh(#i) THEN + WAV(h/hi) + ELIF nextPh(#o) THEN + WAV(h/ho) + ELIF nextPh(#u) THEN + WAV(h/hu) + ENDIF + WAV(h/h_, 70) // no vowel following +endphoneme + + +phoneme r/ // used for [r] when not preceding a vowel + liquid + lengthmod 2 // +// formants NULL +endphoneme + + +phoneme t# // reduced [t] as in "city" + vcd alv stp + ipa ɾ + lengthmod 5 + Vowelin f1=1 f2=1700 -300 300 f3=-100 80 + Vowelout f1=2 f2=1700 -300 300 f3=-100 80 + + IF nextPh(isNotVowel) THEN + ChangePhoneme(t) + ENDIF + + IF KlattSynth THEN + IF PreVoicing THEN + FMT(klatt/x_tap) + ENDIF + FMT(klatt/tap2) addWav(x/d, 70) + ENDIF + + IF PreVoicing THEN + FMT(d/x_tap) + ENDIF + FMT(d/tap2) addWav(x/d, 50) +endphoneme + + +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 nextPhW(isVowel) AND nextPh(isUnstressed) THEN + IF NOT next2PhW(n) OR nextPhW(3:) THEN + IF prevPhW(isVowel) THEN + ChangePhoneme(t#) + ELIF prevPhW(n) THEN + WAV(ustop/t_hi, 60) + ENDIF + ENDIF + ENDIF + + IF nextPh(isPause2) THEN + WAV(ustop/t_dnt) + ELIF nextPh(r) OR nextPh(R) OR nextPh(R2) THEN + WAV(ustop/tr) + ELIF nextPh(@-) THEN + WAV(ustop/t_hi, 50) + ENDIF + WAV(ustop/t_dnt, 90) +endphoneme + +phoneme d + CALL d[ +endphoneme + + +phoneme t2 // [t] which doesn't reduce + import_phoneme base1/t +endphoneme + +phoneme ? // glottal stp + vls glt stp + lengthmod 1 // 5? longer preceding vowel + nolink + Vowelin glstop + Vowelout glstop + WAV(ustop/null) +endphoneme + + +phoneme l/2 // 'dark' [l] after a vowel + liquid + lengthmod 7 + + CALL vowelstart_l + + IF prevPhW(j) THEN + FMT(l/L2_eL) + ENDIF + IF prevPhW(w) THEN + FMT(l/L2_uL) + ENDIF + + PrevVowelEndings + VowelEnding(l/L2_@L, -60) + VowelEnding(l/L2_aL, -50) + VowelEnding(l/L2_eL, -40) + VowelEnding(l/L2_iL, -30) + VowelEnding(l/L2_oL, -50) + VowelEnding(l/L2_uL, -40) + EndSwitch +endphoneme diff --git a/phsource/phonemes b/phsource/phonemes index fe5fafe5..66b17c26 100644 --- a/phsource/phonemes +++ b/phsource/phonemes @@ -1887,6 +1887,9 @@ include ph_english_sc phonemetable en-us en include ph_english_us +phonemetable en-us-nyc en +include ph_english_us_nyc + phonemetable en-wi en include ph_english_wi diff --git a/phsource/vwl_en_us_nyc/0_3 b/phsource/vwl_en_us_nyc/0_3 new file mode 100644 index 0000000000000000000000000000000000000000..925c4c2cf96c6bf42f09a5347a13d561a6d68ee0 GIT binary patch literal 1611 zcmd^9O=}ZT6g`>DP~mg<-WOd-hJWaoO^GjJXxBn%#L{h zj9l2K;xYsGV`*RP=C`H3Xl*#yG?DWy6xaZQHSfBzNJKdB#)D{0sVQd}3ulhEnq2d& zc^)zr4%EU33Pkk)!hugQs{vExf{8ejUSJ>_H#0FtHsu?8Ycg;vyE zl#Jsr5J!X-goXgu5d3tp`VeMz8X0C7j3UsbMYvo1{(i|P?`CPMR`ZgUW;X*k*bEfj zx%qtkwSjtIMOksN|I&ku;K*VBo)>)raoGPELPQ`A`>Tf4h1k)0pfjgo)>VQ08}@TJ zNFJwf15fB5@D9hx|1jClk)K{N8t0m)0wb8gEORHhmZ--lv&Jz*{!QwXMgmE$;;WZy zk|z!FtdrfS+)GJ}e_3)KC7Px6(|d>{saw;MQn%udNAuq#y$P@-q>F6de@KjW9@a;vAurAcAT`ao6w!Snx{!qCnZe?X#;_lJ_Hmh zKn0ex2ntB>M`$Y{6{`dg4?#f!LMX^UK|&w_;w4HX{6~;L6a**;(MFixcgN%1od{$? z3KDyD=iWJUXXJd}dEIj}d-Klihh`5>M$ByDu68@hSpM^(f6w{%UiIA4gOY3;l2$lEL15nPjsTx!+(gSsp$96)&?-*yrrK_N48%b{nR* zT87qTJ+{_{kX*;V;XZqXy~g(0MxORthmG+h&)CO()|zPzmb4Tt=~~Jf8RKrAaMv^| zS}ncQlZ^Gq8?5lx#b-VD7kSakbIX6)(xfEYjwHa`?84IX66QV{KHfg&PgVPiN|>Lk zH>hun z?lTiZwu&CJ!rzMbA93)M5MF|mp(LwBJ%z>zzY^*_7|=r1Xql$}49T4pntmbXzg5!o zOIPsFdj;wXo&H-TjM4O~Mtz^%WwZ8xeZ_uf=RiM?R%gLk`X~)v11J4x^)9UQ4XnEZ z$r!rdY14MSjqo&Mqu53}JT!r3BTeWwFg77;qzmIlOVC@bg%(HF>}E~wohDG9|6^_m z^%p!hF|Ya=e*)@(Y`aC4J<_hR-`ITZvyo>j{EKyj{mc9sF;miY{7a%z*YPhEk~i)e zPR`d>uDO(%ua=|&^)hdwKXv8)Wv9K`UW(s%#{OVmw_9zUO@V99+8mOd;NM4EhgUgc zueG<^>)>U(tw%O(FF`s2=A$5=2Gx2-;VhpKbJsYs)mDQ(Yt{r;{j6-~d7Ar1x2len zh3B8F+U+p*qJNurld?-mwgc(E<6&0W)p(eR+PRRfPt;yp53>WmanMfN*X&Pr-VWe3 zrqJ-L)AckcO4kR`?mhVY6ZVkZk1cG&3-yEfe%p+X8MgtrX$QL~{z#b1m&ZU>Ee_)K zc$ql*o&@zi`0VEEU2xEXyn*Md>4oRN`R$7iX)pShxiZK@vYp)jKj6OC?g7t7(e{gY z_i22|H2Rza@iwqo!+aRs-efcO9y@L)@iF`0W*jE^?MATgXGNBt0r3j5AdgvG zyc&%+n+s|DwT`K~@G-~iar->Df6ZzCW^f$=??LcfOD59=LY*MJmptaE-HtEnCY}x> zU&mD#s%5~=_v!T@Sr692Td2orb!fHpT7JDBE72Q@A+1)V%0( zx4TK%r6k*hG{F8XUw*Ojnei*U&9%mUE1G=RK4@p{P4*>wCmv)N?=j%=!#mi4?7ya#m54;yW?N5lXflTq>#FEso*ZJC?R7BXmh}XWOB7=XpdOrJH zMT9+ETNzK4!COUyHET~6U(^UYjyKt1kJ!8I_4W<>w0Y>IJc#niETiyBgH?|eK)ztR z$tQ1OMGmVFii50^77KCZGV(kvPM4EzF3<04wx7vpMFa0<_(C^53tO%3J!PKN;Qz7r zc@9@E`s-zUgGouY7g3=7*D9Nzs10ZHEAc#wi{ZR-adG9@{Ce`6J@yV5c#v%VM^?nE zZ^i=Ff=v$yNt^4q4x;&oiL*Db-@1))3x1~uo0xE1^e*|QZZuh(r9oZ#ue?!~kcN{M za27L?`@5(#D;1-g@KlZT8X|Nxz3{@9U-5}04lWb}?1RyZ2C^AM*O~*ftKq=yVy`;4 z@5Y~Ow^!O1$nj6vhwN$YHsgVWo3y{f*+MU@?64!~{030pLtZq9@9BnxEIi~{*#W*C z4qss`J(o4etHhl5*M3V`k0OF^C(1V4c}LM**JkdNA=S{evhc!pfAJFsychj>K)~`? zk{$T3F!AEYg6q)nW7G=H+q>9BdG;-Q(n0o5lVCjn{{5is`<+>Kwt4X1NZxZC?(%Rj zip>nMwwpC=tdw?ZuOMI6gu}FyCCYHyVO2Jx2(E0k#<6kX zms3k@{AihlVB$ps*}?w`8!Pcm|CwEkqUDE(xo5~p?<6i4?IZR>vVG;C!>$d1x%Omt zvf~{9zxAMBz(3vQ_!x(WA?KkoE@9S5d<|vX4KW4D923a{&{<=tTqBY#Ae?>%zIx0|Vhab+Qo7Q}ZL?+RxBL z*i&UQbD=yn)fV2FH6+5(qM>o+(P9`|*x(|;d&xjw4(e~U50ka_)7n5xQMDgNJa)q; z*gwb)#%NP`s~NaaMmxa$M);9^tO4ULkQ67%fMQ&QymrfCrEZBA`K=n7ve%enMR7b0 zt4S=SiT8bmR68Pvx_o*n$Y7tjJzygky=Wl2wTzYiD_A+PE6mE+SeTWW$uKJeV_{Z$ z+QO`K)rVPWY`%h(w!Ju#!5 zx^k{IS_;chkDy#J%roB4Usr{~?oyj4&6lQP*+{^lUIXY%LFi#-v^M}oTDiA~?H zvgQv~eSf)bm+g5jYV{{0Peg(W((XfVsV$}!$asUg-Po`t=40iO;m-37l@;o)v)3Eahqby-3JLQcqaEskd)^#&%Okxq&!N4&xu)Qv}%Qh5e zMzNzAy8KuVc;v9GG|^=>3^j07jZ{2{gBq@?jjF1unvyE2@@mRzRX^2UQ1w35Xj@>Y znbEKJsoE!7(hBWY>fz|IH|8B9Ui3@3C2E$3lI%FLfTL@b1OG4buRijvDXOav6YEuj zn;?!%6GyIxt8Fgd-Q#%K06!;*LO1Yi6i(LQyJSTh;PxOqj$%E-aJ&JIny@<6K@`2? zFrwYJ{FywM&yMUt>?rH?tKPbb1w|g^ezF|xfAke`toIYFujVUJcP(6g@{=3@@bjXd zb0f3rr-RwD><%O)rhdqI&pnY#WmWL=RrATSRYxL0oy2St#rPwUGt1UwRt#AapG?e$ z&U-!{vL?=WGV`kzu30^H2nKGXCi?(hYYR*%{`YdtGpb@TXgdX_(lw6<>E3SdXC19q6@s4jbzM>nuDd zXP$zsS=WxT10BYOw5#uQ`KsGZxiwRBuq-QxVJGL#YC%otE}m>dHD=n8{bF`jF$h?QVtM z(K`8DEajbdKCpOxzahNtW)oII8D(0K>YhYS*!Im zHOUH>7f!8TV(jsvo0MI=Xdt^6X~1GzJZy=rlVMBD_Ju8RJQKFW`j)UIW=7^h`{mwE zVM`p@6t=|nj+I-Y>}L?KxC5I~rA{aH(tOn+y1_%}sN&=Ak(8GYU~f9rk$)X!O`Bse z&ZwPk7WT(^KEaASeT4f7q@7@|=qIl!FY3=~h+I*6;5)1NmOQJPys74^+|w%F@vDQ? zJdr1r#mXD|d1f8!lcW{=f+(ShJD;M%sl;CpMSRR+l@S+vOt|!`ueUj zv=sAZcx{LGb?_H=dj#cz@@cYy7ObTS&O5Qi9QLiTm9GC+&_maGToYebEYluN>bMJGW^T)ke&&-~DYt5Qjd-DC}d*3vySG97ZhV@?( z1wm+Q5!&G6`JW8_XyW_N2XLH07nkpuA6tjB+W+0V3rAPURni=v&4nwZns^8Ox5e9H z3q)E7Z}1#pk0c0w;wNJe86&i_)fS`d1rdg^OuXmZNp2~E(2O)A1(7}S5OEeF8_C9} z5u7UA_7y~K=U*W&(m(#+Bf+HSBjxf2<^Kf#b@2D6pW5Z0-OXcC;yx-exM=Z|(Sac$ zY6xa8v$^@Lu`fI^R4u3kqWtfsluzlHax!JKzkVPlxG&f`v@P^Fq=s$b`=M*0N1;%- zU-)#mnQ_o4Z4Nh=nJdguW;t`0QP!9iei-T;x*c2^{3>`l*d~+^_85M%OeB>0L#j9J zNGeU8W9|q~3fA-|Bv&hXG+}Fzv++^!?T*iIjwN%Znol`feQ`A9fA9a8_UfrxdQEO}SG*NGgYVvfr}6GT74GQru#*oRc<7Go-;%XQ`1?MJgwiL@O(0 zNSRVSshQMTYJ=7aebuE`q=-~la!HT)AN(Xg$T#z)dybN)6T!l(01{1g|ZB&m|rQtFBO{#2SIO_SzG3#4Vz8fl}nNm?b% zm4@No6Qq+on>WB+on))nBsP$BVU5@;ERjjm`MHa(MR-V;lO<6nEoxRUSvB_)!R<@1p$J&lyJHWQH^=vVl z&c@eIgormkZMJrL29w*aDJ5rhy zBMr$|vY$vaowlI;>3I4z-A+%@`&3~?Sus|cm0>TjB1~k*(NppM;1LP=`Io^TPo7e6 z#8y7d$QKFI;AvD4>WCT6Ni6OuVXl!h@rgJ{d7XSm3JBATPZYAHL3#!~@suz%Y;j@@ zdxmmaJS`URWUo`8m6a`yXOUbv5ro-deHO{PAP7VAA}8%;BNnz9(i-4rg~<% zkL$1Lr?nYcf9)+0;0x_LElD4tKh*oVAG(Ko3Po*->gr92J{z4CQ#N*UY=W`2I9p?TnfB!v3{K${c(N5y{FyD)@ z-|(;a7knu1!CUgzcrjiGT)EB8vhR_V->^CCGvsLpR-2`>!pQg=$i97a6S92{okT~` zfyndrv?29QpqC22xhkPbNhoGe6q4|;cyl_ZPw zC*80%S|JYnkdY~l0^gsEnGB!pfd%rDM|BuRaqFe_!>{~%0B>%S95RZ+t{#}h$N z#s8i#*R5p~Yt-!6VTCUwoJsn?zdHCy_`I>pG$K)v@#ZGun{ZZWOfV-P2Uhy0`*Z!4 zK&QZgK(XMEU~cf&;Qb&8si8=yQ|KR|46tK}5i)bl^vKZ2mys_b%_FzXZsvX?(dZXG zi8>}Bq=#M&Ee|yUoo*P*&9ad$k%UN1^L+SWFvp*kyghM6k+}FLamC^W724|)eetou zm~eEOw{p}wp4IL`?rC~y{i?Q6n~R!Zhel9??9uDFFT1lnO`?i=?|64akB%uByCt@$ zua&R2udA<)FV?p=_Vw65 zwS@WvRLNCVDI1ji%07m?}-<7Yr+PV%qt2wtgDmnJpTiS2g#@SMB z`>kEAcIyI5rsay1CDoC1=^{S>GJK1yKLi>arq_tMLT>0Po%$Hj;H@Rq>{^ zuq*U1&Bc3h8vTrppu_0L*pH!~(+Swd;QihkSycx)pF|bpx4_N^*X6VULrdAL);@S6X%Ib#ckqG&=V?≺!ujU}Mk8Laye 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 Q^XOu%X*Jfg5p6yFCrje!c>n+a literal 0 HcmV?d00001 diff --git a/phsource/vwl_en_us_nyc/a_raised b/phsource/vwl_en_us_nyc/a_raised new file mode 100644 index 0000000000000000000000000000000000000000..8bc89d7754d8fbea8dd164fa5b7a3f3615638269 GIT binary patch literal 7200 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 literal 0 HcmV?d00001 diff --git a/phsource/vwl_en_us_nyc/aa_8 b/phsource/vwl_en_us_nyc/aa_8 new file mode 100644 index 0000000000000000000000000000000000000000..ec440b0d55c2d1a1084d33af3bb6b9b3ab7e4044 GIT binary patch literal 2758 zcmcJRO=w(I6vzMbGB26Qd}Q)9NoFRkX_97Yg3_cPsj1Fule9^iuaanOEl9F&7Zw5pm&gH&)-kEb> zCjZ|(=e(8W>B-fVv!h{2mo7a%-lQk7sz09lTlKBAE52Fo%R7qN=I&W1=bUFXQ%W^R zp7T}c0=AjbkFK;8+6rCAHdFd2>U+W=$xP{3BIqelAYkO)v`TlCp zgbA{reA&3W-YZW>HK)^hRc~oVxAeB=b)Wi_W%OyU_Gv)<8fDDtEZeC9X#WtPIAc4+#=K&``pl2RR0RkdShQ|L9x2uX8%7!)V!#LRpmB%Q&Dh2rR&0 zoT!IjHqD;n8b-$sB4fm6h|5DQhrUhd-Ojb$DjtVLN-fwfIw$$Q%M#Aui4z$oGQl(A zT$@z*>$TUvw%U5`FYCU@o?9|tQ1+dXQ##!?rjEgFM*#*6y5OpY!JkppFu0irG8l^# zT7nG5BImN&MFv^jkG>;h!WF%!r}UjZ(6Ua!We}y(mOw8&hG0;D&UsG%3?ybCaGLc& z%OH)yO|ZzI|9)o1W=0Aw?K~xgwv8xkawBHdZsW;WqW0KtV>VloL^TuFWGQ_A#5-14 z&;8l6hP?0}z5#`@ZywKb$;(nhp;&Bh2vR5(kJeEr)=^kZ1}R8i{Lh&%#AzNQ8_wu5 z6rR^-x~a#gG{-s9y^I{EJHu$@ev}+ofzU~qO|oMadjf`Ot8JV$Mdj*dX6#uvnUrRB z!lH#37mZysj`OtkQZD4+W$ulq&1OrCs74j;ywUfZ)z@=>TJwee% z?S@5;d>AHjifmX$|0yccf|lTNN=Hz##nzb)bnHdXK9tYkY2kGHeZidcsO<@+Lo{MH z6WeMjrHL_gVt8Yv7{g(s>l>>tnpbo#Srwn*Q0~oAcSyGHR(f+Qy*cMxt?JFqyawc) z534#ucg){a=?t6kTF-&H-n^dmV*;JQ{`HFIzx3vVI!3iWLKa+Oe6Dw)u*BIPve{rx za~qY%RGSfM(2^eE{1vE250eoms7!~5OQNf(IVnzg5_$>t_`Sg7ff;4>4S@uN423qH zora>JWNKD(X++>sxbs7Du*BiESCaqk;<;tt0=^1|fjSOp%VD{SLlMs*XS<5SNF9e; z|AND(yUHO?E{u~6qgvH7dO;u4p)aEH7~R3tr5=Xqy!~()rV7pLQTp>D4Ca{g3=cwn zmrg>fgKRL>ti!4uMq|^HO{Iy*bnOUQn{#h^v3WacBY#ZAGVf6)s*$%SV@32gj8#k~ literal 0 HcmV?d00001 From b5f81a40b4f3f047297710bbb4ce202a38a19502 Mon Sep 17 00:00:00 2001 From: Richard Calvi Date: Sun, 13 Mar 2022 19:32:19 +0900 Subject: [PATCH 2/4] Removed trailing whitespace --- phsource/ph_english_us_nyc | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/phsource/ph_english_us_nyc b/phsource/ph_english_us_nyc index 44d7b5e7..b9379c27 100644 --- a/phsource/ph_english_us_nyc +++ b/phsource/ph_english_us_nyc @@ -70,7 +70,7 @@ phoneme a# IF nextPhW(r) THEN ChangePhoneme(3) ENDIF - + FMT(vowel/a#_3) endphoneme @@ -92,7 +92,7 @@ phoneme I length 160 IfNextVowelAppend(;) ChangeIfDiminished(I2) - + IF nextPhW(r) THEN length 200 ENDIF @@ -191,7 +191,7 @@ phoneme A@ endphoneme -phoneme A# // [a] in British [A:] in American +phoneme A# // [a] in British [A:] in American vwl starttype #a endtype #a ChangePhoneme(A:) endphoneme @@ -261,11 +261,11 @@ endphoneme phoneme u: vwl starttype #u endtype #u length 190 - + IF prevPhW(j) AND NOT thisPh(isWordEnd) THEN length 160 ENDIF - + FMT(vdiph2/uw_6) endphoneme @@ -339,7 +339,7 @@ endphoneme phoneme i@3 vwl starttype #i endtype #@ length 250 - + IF MbrolaSynth THEN ChangePhoneme(i@) ENDIF From c14636b3bdc49f2e4831194c2dcef6383d816a30 Mon Sep 17 00:00:00 2001 From: Valdis Vitolins Date: Wed, 16 Mar 2022 22:03:06 +0200 Subject: [PATCH 3/4] Add phoneme test --- tests/language-phonemes.test | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/language-phonemes.test b/tests/language-phonemes.test index 8c87cff0..af8b6972 100755 --- a/tests/language-phonemes.test +++ b/tests/language-phonemes.test @@ -44,6 +44,7 @@ test_phwav en-GB-x-gbclan 8f3d17600cfbfe77c5e92a7f8a89544a78452a7a "ma na Na pa test_phwav en-GB-x-gbcwmd 7c4102e1193bf1c64f8987d6fc9f830410023e3c "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 en-GB-x-rp f55d1a2c9ba5d69a10ccdd24f66e861bed0d0cff "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 en-US 1695d22c71aa55be6d0c1e123d332a17cdd4a4ca "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 en-US-nyc 17c3df5b3d713b9d93c97a778cbdee66c6a43abc "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 eo cc2f7f352c6d299c81f6f95e730883f052dbc597 "ma na pa ta ka ba da ga fa sa Sa xa ha va za Za tsa tSa dza dZa la ja wa ra _:_ ma me mo mi mu maU meU maI meI moU muI" test_phwav es 4758bff06486f6a37666f050ada0f04f0b762fad "ma na n^a pa ta ka ba da ga fa Ta sa Sa J^a xa Da tSa la l^a *a Ra ra v#a _:_ ma ma/ me me/ mE mi mo mo/ mu moI" test_phwav es-419 7025e7baeb4b68cd856777a1173a07e06bfd900a "ma na n^a pa ta ka ba da ga fa Ta sa Sa J^a xa Da tSa la l^a *a Ra ra v#a _:_ ma ma/ me me/ mE mi mo mo/ mu moI" From c86065bc37e39060de1e0b4f0598ffa494b690af Mon Sep 17 00:00:00 2001 From: Valdis Vitolins Date: Wed, 16 Mar 2022 22:05:11 +0200 Subject: [PATCH 4/4] Update changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 28fa7746..1645b858 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -70,6 +70,7 @@ new languages: * be (Belarusian) -- Sergei B * chr (Cherokee) -- Michael Conrad * cv (Chuvash) -- boracasli98, Valdis Vitolins +* en-us-nyc (English, New York City) -- Richard Calvi * haw (Hawaiian) -- Valdis Vitolins * he (Hebrew) -- boracasli98, Valdis Vitolins * io (Ido) -- José Miguel López, Valdis Vitolins