From 55fa5ea5d316ccd32caf9bea08c0899e5f89c202 Mon Sep 17 00:00:00 2001 From: Ineiev Date: Fri, 14 Jan 2022 23:12:23 +0000 Subject: [PATCH] ru: use s. and z. instead of S and Z --- dictsource/ru_list | 30 +++++------ dictsource/ru_rules | 82 +++++++++++++++--------------- phsource/ph_russian | 33 ++++++++++++ phsource/phonemes | 4 +- phsource/ru/sh.wav | Bin 0 -> 4124 bytes phsource/ru/zh.wav | Bin 0 -> 5454 bytes tests/language-phonemes.test | 4 +- tests/language-pronunciation.test | 2 +- tests/translate.test | 6 +-- 9 files changed, 97 insertions(+), 64 deletions(-) create mode 100644 phsource/ru/sh.wav create mode 100644 phsource/ru/zh.wav diff --git a/dictsource/ru_list b/dictsource/ru_list index 6072ad56..ebfb2050 100644 --- a/dictsource/ru_list +++ b/dictsource/ru_list @@ -9,7 +9,7 @@ _2f dv;'e _3 tR;'i _4 tS;It'yR;I _5 p;'jat; -_6 S'Es;t; +_6 s.'Es;t; _7 s;'ejm _8 v'os;E2m _9 d;'evI3t; @@ -19,7 +19,7 @@ _12 dv;In'AttsVt; _13 tR;In'AttsVt; _14 tS;It'y@-*nVttsVt; _15 p;Itn'AttsVt; -_16 SE#stn'AttsVt; +_16 s.E#stn'AttsVt; _17 s;Imn'AttsVt; _18 vOs;Imn'AttsVt; _19 d;E2v;Itn'AttsVt; @@ -27,7 +27,7 @@ _2X dv'AttsVt; _3X tr;'ittsVt; _4X s'o@-*Ok _5X p;Vd;d;Is;'jat -_6X SE2z;d;d;Is;'jat +_6X s.E2z;d;d;Is;'jat _7X s;'emd;E2s;Vt _8X v'os;E2md;E2s;Vt _9X d;E2v;In'ostO @@ -36,7 +36,7 @@ _2C dv;'es;t;I _3C tr;'ista _4C tS;It'yr;E2sta _5C p;,It;s'ot -_6C S,E#s;t;s'ot +_6C s.,E#s;t;s'ot _7C s;,Ims'ot _8C vOs;Ims'ot _9C dev;Vts'ot @@ -56,14 +56,14 @@ _dpt2 _d;Is;'atYx // end of decimal fraction _` akts'Ent & ampers'and _' ap'ostrVf -\ bEksl'ES $max3 -_> b'ol;SE +\ bEksl'Es. $max3 +_> b'ol;s.E _ def'is $ d'ollar _: dvVet'otS;ie -^ kr'ySka +^ kr'ys.ka _" kVv'ytS;ka -_< m'en;SE +_< m'en;s.E № n'omer _{ 'otkrfigur _( 'otkrkrug @@ -73,8 +73,8 @@ _« 'otkr uglof _ podtS;'8rk $max3 % prVts'Ent $max3 = ravn'o $max3 -# reS'Etka $max3 -/ sl'ES $max3 +# res.'Etka $max3 +/ sl'Es. $max3 @ sob'aka ~ t'ilda _. t'otS;ka @@ -91,7 +91,7 @@ _, zVpit'aja // particle б by $u // shortened form of 'бы' -ж ZE $u // same as the particle form +ж z.E $u // same as the particle form // prepositions в v $u // to,in,at @@ -120,7 +120,7 @@ _, zVpit'aja я $u // I // questions -что Sto $u $pause // what, that +что s.to $u $pause // what, that // misc. не $u // negative @@ -186,8 +186,8 @@ _в vE д dE е je ё j8 -_ж ZE -ж ZE $atend +_ж z.E +ж z.E $atend з zE и i й ,i'k@-*'AtkOjI @@ -206,7 +206,7 @@ _с Es х xA ц tsE ч tS;e -ш SA +ш s.A щ S;ja ъ tv;'8@-*dyjzn'Ak ы y diff --git a/dictsource/ru_rules b/dictsource/ru_rules index bd3c5b66..b0f0b6b6 100644 --- a/dictsource/ru_rules +++ b/dictsource/ru_rules @@ -1,7 +1,7 @@ // *************************************************************************** // * Copyright (C) 2007 to 2013 by Jonathan Duddington * // * email: jonsd@users.sourceforge.net * -// * Copyright (C) 2018 Reece H. Dunn * +// * Copyright (C) 2018, 2022 Reece H. Dunn * // * * // * This program is free software; you can redistribute it and/or modify * // * it under the terms of the GNU General Public License as published by * @@ -143,16 +143,16 @@ ь) е (_ jI3 //second position .group ж - ж Z - ж (_ S - ж (кY S - ж (пY S - ж (сY S - ж (тY S - ж (фY S - ж (ффY S - ж (хY S - ж (хкY S + ж z. + ж (_ s. + ж (кY s. + ж (пY s. + ж (сY s. + ж (тY s. + ж (фY s. + ж (ффY s. + ж (хY s. + ж (хкY s. жч S; ?2 жч SS @@ -163,7 +163,7 @@ з (Y z; з (_ s з (дY z; - з (ж Z + з (ж z. з (зY_ s; з (зY z; з (здY_ s; @@ -183,7 +183,7 @@ з (хY s з (хкY s зч S; - з (ш S + з (ш s. зщ S; з (щ s @@ -267,14 +267,14 @@ .group с с s -?2 сч S +?2 сч s. с (Y s; с (б z с (г z с (дB z; с (дY z; с (д z - с (ж Z + с (ж z. с (ж z с (зY z; с (з z @@ -284,7 +284,7 @@ с (тY s; с (ть s сч S; - с (ш S + с (ш s. с (щ s;s; .group т @@ -377,33 +377,33 @@ ч (ж dZ; ч (з dZ; ч (зY dZ; - деви) ч (н S - коне) ч (но S - пустя) ч (н S - скворе)ч (н S - ску) ч (н S - ч (на_ S - ч (не_ S - ч (ной_ S - ч (ну_ S - ч (ны_ S - _) ч (то S - яи) ч (ни S + деви) ч (н s. + коне) ч (но s. + пустя) ч (н s. + скворе)ч (н s. + ску) ч (н s. + ч (на_ s. + ч (не_ s. + ч (ной_ s. + ч (ну_ s. + ч (ны_ s. + _) ч (то s. + яи) ч (ни s. .group ш - ш S - ш (бY Z - ш (б Z - ш (бвY Z - ш (бмY Z - ш (гY Z - ш (г Z - ш (дB Z - ш (дY Z - ш (д Z - ш (ж Z - ш (зY Z - ш (з Z + ш s. + ш (бY z. + ш (б z. + ш (бвY z. + ш (бмY z. + ш (гY z. + ш (г z. + ш (дB z. + ш (дY z. + ш (д z. + ш (ж z. + ш (зY z. + ш (з z. .group щ diff --git a/phsource/ph_russian b/phsource/ph_russian index f789c9b7..15581615 100644 --- a/phsource/ph_russian +++ b/phsource/ph_russian @@ -41,6 +41,39 @@ phoneme p endphoneme +phoneme s. + vls rfx frc sib + ipa ʂ + voicingswitch z. + lengthmod 3 + Vowelin f1=0 f2=1800 -100 300 f3=-300 80 + Vowelout f1=0 f2=1800 -100 300 f3=-300 80 + + IF nextPh(isPause) THEN + WAV(ru/sh, 60) + ENDIF + IF nextPh(k) OR nextPh(k;) THEN + WAV(ru/sh, 250) + ELSE + WAV(ru/sh, 90) + ENDIF +endphoneme + + +phoneme z. + vcd rfx frc sib + ipa ʐ + voicingswitch s. + lengthmod 6 + Vowelin f1=0 f2=1800 -100 300 f3=-300 80 + Vowelout f1=2 f2=1800 -100 300 f3=-300 80 brk + + IF nextPh(isPause2) THEN + FMT(voc/zh_) addWav(ru/zh) + ENDIF + FMT(voc/zh) addWav(ru/zh) +endphoneme + phoneme x vls vel frc ipa x diff --git a/phsource/phonemes b/phsource/phonemes index 4cb5ff52..946785e7 100644 --- a/phsource/phonemes +++ b/phsource/phonemes @@ -1220,7 +1220,7 @@ endphoneme phoneme z. - vcd pla frc sib + vcd rfx frc sib ipa ʐ voicingswitch s. lengthmod 6 @@ -1535,7 +1535,7 @@ endphoneme phoneme s. - vls pla frc sib + vls rfx frc sib ipa ʂ voicingswitch z. lengthmod 3 diff --git a/phsource/ru/sh.wav b/phsource/ru/sh.wav new file mode 100644 index 0000000000000000000000000000000000000000..7885b152d68c2e327b90bed99a8a43635af54a28 GIT binary patch literal 4124 zcmWkx33N~A693KI`wv|ZwU=j$)GlI+rD&xMK`2EOMU>c=5=*q6Xyh$9hud>w0|) zr!bbvaBHq_Phnn55p)LCFkcsH0D};P4p@q0Ohi1wFiwN@p?o9rq>UECSR4brxN$05>%FM;IzF9#U6d2JunTMu^w;Zm~Pa*dQ5gntSt4b z`qlkh?}FFKPxb?Tkhe0wfBw|`STD-|+g~s1vZs~0GWt=RQBATw(P?>!$ z@351~iLCTFr6O0G>tH0Odd#69k|cdNQ9-Ii_(XA8%10q(-7 zJeUvBZaPUd=n~dYJfEckRGO;MRpj7xO2S|It8UkdnkZGIs+5zaaza*VZHVsDS1|y- zF4aSNSy$-*Evg%2g#Lnd6h}{}6L;W!oW@Of49|CNJ8@21=OgDO|H<*rWM{9l);;K| z)7EVi=o%;**ypx$M$&!^#1zewhdSRnR>mrDC>;xIvXgYVob#jneO|2hroTxV>P@L+ zee^UEzkq2g_Tw^+;5k+s@}|>SEJIU@;C4=s8|yZ4!`*+nfk3Z7-$1p%O=k}+!WW3Z zdR3_})BSP&4!@>skx+dqp5N3D_b>TFrK`;HXL#Y>cU~obqrHD5Pi^Kcq|ZKo|X6GdFSgY8K zit1#4nSb6t?3MM7d$+tn`Bm~$y>s50{AON)ALO6%?)fSHd;Ue4gdT>z7SxO;Ba~Wm zf2x9iP!T87Y2$_m{tSc!l?+M@M7X=1T&I+~&Pn8@w2+Ito1Mu#i#PBjI*-{@iw^5u zO~if4@eAtrTGnvYM;qx%y=ni&NTdV{OD}08gQW%r@P)n^zl|;T`oR%I}(D z-HX)w*7xmxq)gRMPytJgSHrZbsYG3RXz!zOM*HbUS`Sl5DVwTrKJ}oB#~bNNv%TIy={RB0aYX`b)h2WPE%n*~aAM#{Lq9mqWb73Fe)M z#0rhIi9E1VzSK$RXexJs{&JeS=bbF)GiL@z(;wQ->JbS+m@#`Ba;OK-p_%j(WofLu zrPpMs6rq3dyL23pl#2}*gWt8h@o+4@m1u2g+SAxnud3bj2qu_5CRjgjnm*UYY$>i` zxS|7fhB3XYG3`16oM5MZh5D3@c{#q@9k&J5<$FcL5scuQJA-tJ<8Z zQ+HI?ccif?TMA~HcC@l7OxMTwlwOz?U&UU`(kIeMGv%ICqzAN7&q{s7B3>uxNp#_H z&N&XDIP3TgyI}`iBsJ|u5hzY+G>d+qAzXnc@i1o_E!S;$lg=opJMTv#CUCYX#|d8V z94D6sV54-`l@v{)2Xwfu(OEQyThVZA)e162+9OdvmPm}GuXVB1#b*d;EiHg3;vk^F=$T!x3(^iN~7 zX32J$B(Z+9cVBWTL-+X`QH<;j#tH!()XY8Z8v5J<6Xcl<9$J1?$mNx(iL1W_C3RNdXI`=B%0G&OrWu*FuRdRuW>p$;}CY@qSf?) zp{5+&p=UIl?@~?N)4O<}D~$1bbgorA)D&CsKCPzT=o&3INA97+rI0R=fA|p+jN4K~ zl99lNX%HtlbEvy{%uA_hT3AF@%O=#}TXx5fcn5c(HuMhFv9F8b54|9TsjhP$|CLhs z0L{(upCdvWNHs%#8SRE@yq*|xb8V7T4K{k=GrKR+tim*sIObx z&Bo8@%&*fS4W_l`s%Iz$6>*U^bFv}6CH2HJd2H^rSTe0=9%a}mCyjF-Bh@@62M;Zy z4bno|%rZzMg82Z?q_ZivkIh2H(xH|>&S9D^M?t#b_s;_B)N3m{sT-G|rxfW7n(=?N{mvVBMdor(hvcEy%VoR!pUE+Je?Jm8WoP3d7%)Xr@@NMBCy`9MwGi8Vjiyzo2)y z8W*I7_)YsrNr}R@6iaz_*AU~wX=$R5P?g?7LvxLZnuk?PJR2FhTkiPlq$z6CSgJzF zmQAeNE!{*-waP4MN%X9*72EoQIoWnrJ6>FmOteb zb+NnlFh}o>xw=#KONOq-B&@a5IvUrS8FK6L=TrkDEIBmQ*6QnR`QEQA*JYU{#;4|1 z`6y38Xl*H=y|%z;EHRC0pp7j9{3cy=6NYd{ew(-RHmXeBX~zG5+q`J1rLP7wn0Il8 z6C9}S-l0{7uP94`M8`}4exxy6jB}`;bv4a$`B}@TgY~?)mPSvaCV$|Rd1Z5n!x zvhcf|vmP&z!UK&jp@#QN+Bd@Gz@JlPWKaAT}VHw8;>;8R2$X94?t> zT+=m%qhhAxb!-oCX_V~*d(8FokgTn&`rCS0?%OW)v)nZ#ZM2&2U@oQ`rlZgY!{}37 zkQdTVE9)prJO}O9A`OcNsDo8{8d0|C46v^BHkYY}YC20RScV!;r|h0F$gxa1NY80Q zTsI_Mlob*#V`Y)HGEH#MTR+pQ=IBFhM%nU-)RgAtv=Q3Q(#3xBsyxKe8hVTve2dmK WIVZ|`o@;5MfktRst!w`N1O5kBl+h3X literal 0 HcmV?d00001 diff --git a/phsource/ru/zh.wav b/phsource/ru/zh.wav new file mode 100644 index 0000000000000000000000000000000000000000..0a592c492d69af2c10995b1900e3acc9b95a2c4f GIT binary patch literal 5454 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 V_:,ess_! ,a:_:,ess_!v'e:_:_:_: s'i:a:_ 'u>_:t,e:_:t,e:_:" "ibm mit ibms mits IBM MIT APH CES ITX IBMs MIT's APHs CES's ITXs AS ASV SIA utt" -test_phon ru "'Ibm (en),aIb,i:;'Em m'It 'Ib@mz m'Its ,aIb,i:;'Em ,Em,aIt'i:; ,eIp,i:;'eItS s,i:;,i:;'Es ,aIt,i:;'Eks 'Ib@mz m'Its 'afz s'EI2zI2z 'ItEksz(ru) SS'A" "ИБМ ibm mit ibms mits IBM MIT APH CES ITX IBMs MIT's APHs CES's ITXs США" +test_phon ru "'Ibm (en),aIb,i:;'Em m'It 'Ib@mz m'Its ,aIb,i:;'Em ,Em,aIt'i:; ,eIp,i:;'eItS s,i:;,i:;'Es ,aIt,i:;'Eks 'Ib@mz m'Its 'afz s'EI2zI2z 'ItEksz(ru) s.s.'A" "ИБМ ibm mit ibms mits IBM MIT APH CES ITX IBMs MIT's APHs CES's ITXs США" # bug: https://github.com/nvaccess/nvda/issues/7740 test_phon ta "'il." "ள்" @@ -34,8 +34,8 @@ test_phon hi "dUk'a:n" "दुकान" test_phon hi "ka:n'u:n" "कानून" # bug: https://github.com/espeak-ng/espeak-ng/issues/824 -test_phon ru "(en)s'i:(ru) n'ojl t'otS;ka v'os;E2md;E2s;ats;'ejm m;,IlI;'onof_! p;,It;s'ot SE2z;d;d;Is;'jatd;'evI3t; t'ys;VtS;_! dv;'es;t;I p;Vd;d;Is;'jattR;'i p@-rats'Ent dv;'es;t;I p@-rats'Ent dv;'es;t;I p@-rats'Ent dv;'es;t;I ojd;'in p@-rats'Ent dv;'es;t;I t'otS;ka t@-r;'ittsat;S'Es;t; t'ys;VtS;_! vOs;Ims'ot s;Imn'AttsVt; p@-rats'Ent dv'A (en)s'i:(ru) n'ojl t'otS;ka dv;'e t'ys;VdZ; d;E2v;Itn'AttsVt; p@-rats'Ent dv;'es;t;I ojd;'in t'otS;ka n'ojl tR;'iv'os;E#m_!s;'ejm d;'evI3t;S'Es;t;_!tR;'i p@-rats'Ent dv'A (en)s'i:(ru) ojd;'in t'otS;ka n'ojl tR;'iv'os;E#m_!s;'ejm d;'evI3t;S'Es;t;_!tR;'i p@-rats'Ent dv;'es;t;I p@-rats'Ent dv;'es;t;I p@-rats'Ent dv;'es;t;I ojd;'in p@-rats'Ent dv;'es;t;I t'otS;ka tS;It'yr;E2sta d;E2v;Itn'AttsVt; t'ys;VtS;_! S,E#s;t;s'ot t@-r;'ittsat;s;'ejm p@-rats'Ent dv'A (en)s'i:(ru) n'ojl t'otS;ka n'ojldv'A_! tR;'is;'ejm_!p;'jat; p@-rats'Ent dv'AttsVt; (en)s'i:(ru) p@-rats'Ent dv;'es;t;I t'otS;ka t@-r;'ittsVt; t'ys;VtS;_! v'os;E2md;E2s;ats;'ejm p@-rats'Ent dv'A (en)s'i:(ru) n'ojl t'otS;ka n'ojltS;It'yR;I_! p;'jat;Vjd;'in_!tS;It'yR;I p@-rats'Ent dv;'es;t;I t'otS;ka p;,It;s'ot v'os;E2md;E2s;atdv;'e t'ys;VtS;_! s;,Ims'ot t@-r;'ittsat;d;'evI3t; p@-rats'Ent dv'A (en)s'i:(ru) n'ojl t'otS;ka dv;'es;t;I SE#stn'AttsVt; t'ys;VtS;_! dev;ats'ot s'o@-*Okdv'A p@-rats'Ent dv;'es;t;I t'otS;ka s;,Ims'ot p;Vd;d;Is;'jat t'ys;VtS;_! p;,It;s'ot d;E2v;In'ostOtR;'i p@-rats'Ent dv'A (en)s'i:(ru) n'ojl t'otS;ka tS;It'yr;E2sta s;'emd;E2s;Vt t'ys;VtS;_! t@-r;'ista v'os;E2m p@-rats'Ent dv;'es;t;I t'otS;ka n'ojld;'evI3t;_! p;'jat;n'ojl_!dv'A p@-rats'Ent dv'A (en)s'i:(ru) n'ojl t'otS;ka st'o s'o@-*Okdv;'e t'ys;VtS;_! p;,It;s'ot s;Imn'AttsVt; p@-rats'Ent -dv'A (en)s'i:(ru) v'os;E2m t'otS;ka vOs;Ims'ot dv'Attsat;d;'evI3t; t'ys;VtS;_! s;,Ims'ot SE2z;d;d;Is;'jatv'os;E2m p@-rats'Ent dv'AttsVt; (en)s'i:(ru) p@-rats'Ent dv;'es;t;I p@-rats'Ent dv'A (en)s'i:(ru) p;'jat; t'otS;ka S,E#s;t;s'ot SE2z;d;d;Is;'jatd;'evI3t; t'ys;VtS;_! s'o@-*Okojd;'in p@-rats'Ent dv'AttsVt; tS;It'yR;I t'otS;ka p;Vd;d;Is;'jatd;'evI3t; t'ys;VtS;_! S,E#s;t;s'ot d;E2v;In'ostOd;'evI3t; p@-rats'Ent dv'A (en)s'i:(ru) d;'es;It; t'otS;ka dv'A m;,IlI;'onof_! S,E#s;t;s'ot p;Vd;d;Is;'jatdv;'e t'ys;VtS;_! t@-r;'ista d;E2v;In'ostOojd;'in p@-rats'Ent dv'AttsVt; d;'es;It; t'otS;ka dv;'es;t;I SE2z;d;d;Is;'jatp;'jat; t'ys;VtS;_! dv;'es;t;I t@-r;'ittsat;v'os;E2m p@-rats'Ent dv'A (en)s'i:(ru) d;'es;It; t'otS;ka dv'A m;,IlI;'onof_! S,E#s;t;s'ot p;Vd;d;Is;'jatdv;'e t'ys;VtS;_! t@-r;'ista d;E2v;In'ostOojd;'in p@-rats'Ent dv'AttsVt; (en)z'Ed(ru) p@-rats'Ent dv'AttsVt; (en)'Em(ru) p@-rats'Ent dv;'e t'ys;VdZ; d;'es;It; t'otS;ka n'ojltR;'i_!s;'ejm v'os;E#mS'Es;t;_!p;'jat; p@-rats'Ent dv'A (en)s'i:(ru) d;E2v;Itn'AttsVt; t'otS;ka s;,Ims'ot d;E2v;In'ostOv'os;E2m t'ys;VtS;_! p;,It;s'ot t@-r;'ittsat;s;'ejm p@-rats'Ent dv'AttsVt; (en)v'i:(ru) p@-rats'Ent dv;'es;t;I ojd;'in t'otS;ka st'o s;'emd;E2s;VttS;It'yR;I t'ys;VtS;_! st'o v'os;E2md;E2s;atv'os;E2m p@-rats'Ent dv'AttsVt; (en)'eI(ru) p@-rats'Ent dv;'es;t;I ojd;'in t'otS;ka tS;It'yr;E2sta v'os;E2md;E2s;atv'os;E2m t'ys;VtS;_! p;,It;s'ot d;E2v;Itn'AttsVt; p@-rats'Ent dv'A (en)s'i:(ru) ojd;'in t'otS;ka tS;It'yr;E2sta v'os;E2md;E2s;atv'os;E2m t'ys;VtS;_! p;,It;s'ot d;E2v;Itn'AttsVt; p@-rats'Ent dv;'es;t;I p@-rats'Ent dv;'es;t;I p@-rats'Ent dv;'es;t;I ojd;'in p@-rats'Ent dv;'es;t;I t'otS;ka vOs;Ims'ot p;Vd;d;Is;'jats;'ejm t'ys;VtS;" "C0.87569253%200%200%201%200.36817%2C-0.2019%201.0387963%2C1.0387963%200%200%201%200.419637%2C-0.02375%20c%200.30087%2C0.04514%200.582739%2C0.216942%200.750593%2C0.470308%200.09502%2C0.142517%200.153603%2C0.308788%200.18844%2C0.478226%200.03484%2C0.168646%200.0475%2C0.340459%200.05701%2C0.513064%200.03167%2C0.601741%200.03167%2C1.205067%200.01426%2C1.808392%20-0.01426%2C0.526524%20-0.04355%2C1.0673%20-0.253366%2C1.549486%20-0.271575%2C0.619159%20-0.817101%2C1.08155%20-1.405383%2C1.414092%20a%205.5835296%2C5.5835296%200%200%201%20-1.257323%2C0.512272%20c%200.38163%2C1.219319%200.580363%2C2.56532%200.580363%2C3.93349%20a%2013.935071%2C13.935071%200%200%201%20-0.106901%2C1.682498%2010.264446%2C10.264446%200%200%200%205.054631%2C-8.829768%20c%200%2C-5.669041%20-4.59699%2C-10.2652391%20-10.265238%2C-10.2652391%20z%20M%2010.037865%2C19.798537%20v%201.174188%20a%201.488519%2C1.488519%200%200%201%200.857482%2C0.286619%201.3760882%2C1.3760882%200%200%201%200.440222%2C0.538402%20c%200.0966%2C0.213775%200.131432%2C0.456056%200.09184%2C0.687252%20a%201.1821057%2C1.1821057%200%200%201%20-0.262867%2C0.560568%201.3040376%2C1.3040376%200%200%201%20-0.502772%2C0.36263%201.3760882%2C1.3760882%200%200%201%20-0.623119%2C0.0966%20v%202.953287%20l%206.145683%2C-3.33175%20-6.145683%2C-3," "ru sum strings" +test_phon ru "(en)s'i:(ru) n'ojl t'otS;ka v'os;E2md;E2s;ats;'ejm m;,IlI;'onof_! p;,It;s'ot s.E2z;d;d;Is;'jatd;'evI3t; t'ys;VtS;_! dv;'es;t;I p;Vd;d;Is;'jattR;'i p@-rats'Ent dv;'es;t;I p@-rats'Ent dv;'es;t;I p@-rats'Ent dv;'es;t;I ojd;'in p@-rats'Ent dv;'es;t;I t'otS;ka t@-r;'ittsat;s.'Es;t; t'ys;VtS;_! vOs;Ims'ot s;Imn'AttsVt; p@-rats'Ent dv'A (en)s'i:(ru) n'ojl t'otS;ka dv;'e t'ys;VdZ; d;E2v;Itn'AttsVt; p@-rats'Ent dv;'es;t;I ojd;'in t'otS;ka n'ojl tR;'iv'os;E#m_!s;'ejm d;'evI3t;s.'Es;t;_!tR;'i p@-rats'Ent dv'A (en)s'i:(ru) ojd;'in t'otS;ka n'ojl tR;'iv'os;E#m_!s;'ejm d;'evI3t;s.'Es;t;_!tR;'i p@-rats'Ent dv;'es;t;I p@-rats'Ent dv;'es;t;I p@-rats'Ent dv;'es;t;I ojd;'in p@-rats'Ent dv;'es;t;I t'otS;ka tS;It'yr;E2sta d;E2v;Itn'AttsVt; t'ys;VtS;_! s.,E#s;t;s'ot t@-r;'ittsat;s;'ejm p@-rats'Ent dv'A (en)s'i:(ru) n'ojl t'otS;ka n'ojldv'A_! tR;'is;'ejm_!p;'jat; p@-rats'Ent dv'AttsVt; (en)s'i:(ru) p@-rats'Ent dv;'es;t;I t'otS;ka t@-r;'ittsVt; t'ys;VtS;_! v'os;E2md;E2s;ats;'ejm p@-rats'Ent dv'A (en)s'i:(ru) n'ojl t'otS;ka n'ojltS;It'yR;I_! p;'jat;Vjd;'in_!tS;It'yR;I p@-rats'Ent dv;'es;t;I t'otS;ka p;,It;s'ot v'os;E2md;E2s;atdv;'e t'ys;VtS;_! s;,Ims'ot t@-r;'ittsat;d;'evI3t; p@-rats'Ent dv'A (en)s'i:(ru) n'ojl t'otS;ka dv;'es;t;I s.E#stn'AttsVt; t'ys;VtS;_! dev;ats'ot s'o@-*Okdv'A p@-rats'Ent dv;'es;t;I t'otS;ka s;,Ims'ot p;Vd;d;Is;'jat t'ys;VtS;_! p;,It;s'ot d;E2v;In'ostOtR;'i p@-rats'Ent dv'A (en)s'i:(ru) n'ojl t'otS;ka tS;It'yr;E2sta s;'emd;E2s;Vt t'ys;VtS;_! t@-r;'ista v'os;E2m p@-rats'Ent dv;'es;t;I t'otS;ka n'ojld;'evI3t;_! p;'jat;n'ojl_!dv'A p@-rats'Ent dv'A (en)s'i:(ru) n'ojl t'otS;ka st'o s'o@-*Okdv;'e t'ys;VtS;_! p;,It;s'ot s;Imn'AttsVt; p@-rats'Ent +dv'A (en)s'i:(ru) v'os;E2m t'otS;ka vOs;Ims'ot dv'Attsat;d;'evI3t; t'ys;VtS;_! s;,Ims'ot s.E2z;d;d;Is;'jatv'os;E2m p@-rats'Ent dv'AttsVt; (en)s'i:(ru) p@-rats'Ent dv;'es;t;I p@-rats'Ent dv'A (en)s'i:(ru) p;'jat; t'otS;ka s.,E#s;t;s'ot s.E2z;d;d;Is;'jatd;'evI3t; t'ys;VtS;_! s'o@-*Okojd;'in p@-rats'Ent dv'AttsVt; tS;It'yR;I t'otS;ka p;Vd;d;Is;'jatd;'evI3t; t'ys;VtS;_! s.,E#s;t;s'ot d;E2v;In'ostOd;'evI3t; p@-rats'Ent dv'A (en)s'i:(ru) d;'es;It; t'otS;ka dv'A m;,IlI;'onof_! s.,E#s;t;s'ot p;Vd;d;Is;'jatdv;'e t'ys;VtS;_! t@-r;'ista d;E2v;In'ostOojd;'in p@-rats'Ent dv'AttsVt; d;'es;It; t'otS;ka dv;'es;t;I s.E2z;d;d;Is;'jatp;'jat; t'ys;VtS;_! dv;'es;t;I t@-r;'ittsat;v'os;E2m p@-rats'Ent dv'A (en)s'i:(ru) d;'es;It; t'otS;ka dv'A m;,IlI;'onof_! s.,E#s;t;s'ot p;Vd;d;Is;'jatdv;'e t'ys;VtS;_! t@-r;'ista d;E2v;In'ostOojd;'in p@-rats'Ent dv'AttsVt; (en)z'Ed(ru) p@-rats'Ent dv'AttsVt; (en)'Em(ru) p@-rats'Ent dv;'e t'ys;VdZ; d;'es;It; t'otS;ka n'ojltR;'i_!s;'ejm v'os;E#ms.'Es;t;_!p;'jat; p@-rats'Ent dv'A (en)s'i:(ru) d;E2v;Itn'AttsVt; t'otS;ka s;,Ims'ot d;E2v;In'ostOv'os;E2m t'ys;VtS;_! p;,It;s'ot t@-r;'ittsat;s;'ejm p@-rats'Ent dv'AttsVt; (en)v'i:(ru) p@-rats'Ent dv;'es;t;I ojd;'in t'otS;ka st'o s;'emd;E2s;VttS;It'yR;I t'ys;VtS;_! st'o v'os;E2md;E2s;atv'os;E2m p@-rats'Ent dv'AttsVt; (en)'eI(ru) p@-rats'Ent dv;'es;t;I ojd;'in t'otS;ka tS;It'yr;E2sta v'os;E2md;E2s;atv'os;E2m t'ys;VtS;_! p;,It;s'ot d;E2v;Itn'AttsVt; p@-rats'Ent dv'A (en)s'i:(ru) ojd;'in t'otS;ka tS;It'yr;E2sta v'os;E2md;E2s;atv'os;E2m t'ys;VtS;_! p;,It;s'ot d;E2v;Itn'AttsVt; p@-rats'Ent dv;'es;t;I p@-rats'Ent dv;'es;t;I p@-rats'Ent dv;'es;t;I ojd;'in p@-rats'Ent dv;'es;t;I t'otS;ka vOs;Ims'ot p;Vd;d;Is;'jats;'ejm t'ys;VtS;" "C0.87569253%200%200%201%200.36817%2C-0.2019%201.0387963%2C1.0387963%200%200%201%200.419637%2C-0.02375%20c%200.30087%2C0.04514%200.582739%2C0.216942%200.750593%2C0.470308%200.09502%2C0.142517%200.153603%2C0.308788%200.18844%2C0.478226%200.03484%2C0.168646%200.0475%2C0.340459%200.05701%2C0.513064%200.03167%2C0.601741%200.03167%2C1.205067%200.01426%2C1.808392%20-0.01426%2C0.526524%20-0.04355%2C1.0673%20-0.253366%2C1.549486%20-0.271575%2C0.619159%20-0.817101%2C1.08155%20-1.405383%2C1.414092%20a%205.5835296%2C5.5835296%200%200%201%20-1.257323%2C0.512272%20c%200.38163%2C1.219319%200.580363%2C2.56532%200.580363%2C3.93349%20a%2013.935071%2C13.935071%200%200%201%20-0.106901%2C1.682498%2010.264446%2C10.264446%200%200%200%205.054631%2C-8.829768%20c%200%2C-5.669041%20-4.59699%2C-10.2652391%20-10.265238%2C-10.2652391%20z%20M%2010.037865%2C19.798537%20v%201.174188%20a%201.488519%2C1.488519%200%200%201%200.857482%2C0.286619%201.3760882%2C1.3760882%200%200%201%200.440222%2C0.538402%20c%200.0966%2C0.213775%200.131432%2C0.456056%200.09184%2C0.687252%20a%201.1821057%2C1.1821057%200%200%201%20-0.262867%2C0.560568%201.3040376%2C1.3040376%200%200%201%20-0.502772%2C0.36263%201.3760882%2C1.3760882%200%200%201%20-0.623119%2C0.0966%20v%202.953287%20l%206.145683%2C-3.33175%20-6.145683%2C-3," "ru sum strings" # A deleted phoneme at the start of a word should preserve the sourceix property. test_phon en-GB-x-gbcwmd "aI 'av" "I have"