diff --git a/dictsource/vi_rules b/dictsource/vi_rules index a90f3347..e6d86698 100644 --- a/dictsource/vi_rules +++ b/dictsource/vi_rules @@ -84,6 +84,7 @@ ỵ ỵ .L03 ch nh .L04 a u ă â o ô á à ả ã ạ ù ú ủ ũ ụ ắ ằ ẳ ẵ ặ ấ ầ ẩ ẫ ậ ó ò ỏ õ ọ ố ồ ổ ỗ ộ ư ứ ừ ử ữ ự ơ ớ ờ ở ỡ ợ .L05 o ó ò ỏ õ ọ ô ố ồ ộ ỗ ổ + .group b b b _) b _b @@ -267,7 +268,13 @@ ỵ ỵ .group q q k q (_ k - qu kw //kw + qu kw //kw + quô ku@ + quồ ku@2 + quố ku@3 + quổ ku@4 + quỗ ku@5 + quộ ku@6 @@ -389,7 +396,7 @@ ỵ ỵ a (L01 _^_EN ai (L02 _^_EN a (@ _^_EN - a (L03 a + a (L03 e- .group à @@ -397,7 +404,7 @@ ỵ ỵ ài a:I2 ày aI2 ?2 ày a:I2 - + à (L03 e-2 @@ -419,7 +426,8 @@ ỵ ỵ áu aU3 ?2 áu a:U3 ?2 áy a:I3 - + á (L03 e-3 + .group ả ả a:4 ải a:I4 @@ -428,6 +436,7 @@ ỵ ỵ ảu aU4 ?2 ảu a:U4 ?2 ảy a:I4 + ả (L03 e-4 .group ã ã a:5 @@ -437,6 +446,7 @@ ỵ ỵ ãu aU5 ?2 ãu a:U5 ?2 ãy a:I5 + ã (L03 e-5 .group ạ ạ a:6 @@ -446,6 +456,7 @@ ỵ ỵ ạu aU6 ?2 ạu a:U6 ?2 ạy a:I6 + ạ (L03 e-6 //================================ @@ -784,14 +795,14 @@ ỵ ỵ oĩ OI5 oị OI6 ong O# - oe o& // Adding oe sound example: lóe sáng,toét mắt - oai Oi // oai sound + oe wE // Adding oe sound example: lóe sáng,toét mắt + oai wa:I // oai sound o (@ _^_EN - oại Oi6 - oài Oi2 - oái Oi3 - oải Oi4 - oãi Oi5 + oại wa:I6 + oài wa:I2 + oái wa:I3 + oải wa:I4 + oãi wa:I5 oă o@1 oằ o@2 oắ o@3 @@ -799,13 +810,19 @@ ỵ ỵ oẵ o@5 oặ o@6 oc O#k + oanh we-n^ + oành we-n^2 + oánh we-n^3 + oảnh we-n^4 + oãnh we-n^5 + oạnh we-n^6 .group ò ò O2 òi OI2 òa o@2 //ò (A w2 òng O#2 - òe o&2 + òe wE2 @@ -818,7 +835,7 @@ ỵ ỵ ói OI3 óa o@3 //ó (A w3 óng O#3 - óe o&3 + óe wE3 óc O#3k @@ -831,7 +848,7 @@ ỵ ỵ ỏi OI4 ỏa o@4 //ỏ (A w4 ỏng O#4 - ỏe o&4 + ỏe wE4 @@ -844,7 +861,7 @@ ỵ ỵ õi OI5 õa o@5 //õ (A w5 õng O#5 - õe o&5 + õe wE5 @@ -857,7 +874,7 @@ ỵ ỵ ọi OI6 ọa o@6 //ọ (A w6 ọng O#6 - ọe o&6 + ọe wE6 ọc O#6k @@ -873,7 +890,7 @@ ỵ ỵ ôi oI ông o# // ông sound ?2 ôi O- //south dialect - + ôc o#k .group ồ @@ -891,7 +908,7 @@ ỵ ỵ ối oI3 ống o#3 ?2 ối O-3 - + ốc o#3k @@ -921,7 +938,7 @@ ỵ ỵ ội oI6 // ộng o#6 ?2 ội O-6 - + ộc o#6k @@ -994,8 +1011,9 @@ ỵ ỵ .group u u u - u (A u + u (A w A) u w + gi) u u ui uI uì uI2 uí uI3 @@ -1025,7 +1043,6 @@ ỵ ỵ u (@ _^_EN // ua (L01 _^_EN ?2 u u- - .group ù diff --git a/espeak-ng-data/lang/aav/vi b/espeak-ng-data/lang/aav/vi index c988a8e7..66988a43 100644 --- a/espeak-ng-data/lang/aav/vi +++ b/espeak-ng-data/lang/aav/vi @@ -2,4 +2,4 @@ name Vietnamese (Northern) language vi words 1 -pitch 100 180 +pitch 90 170 diff --git a/espeak-ng-data/voices/!v/Nguyen b/espeak-ng-data/voices/!v/Nguyen new file mode 100644 index 00000000..50c72fc6 --- /dev/null +++ b/espeak-ng-data/voices/!v/Nguyen @@ -0,0 +1,16 @@ +language variant +name Nguyen + +pitch 95 175 + +formant 0 100 125 100 +formant 1 96 90 80 +formant 2 97 70 90 +formant 3 97 60 90 +formant 4 97 60 90 +formant 5 75 50 90 +formant 6 90 50 100 +formant 7 100 50 100 +formant 8 100 50 100 + +tone 100 200 600 150 800 100 2400 80 3600 95 5400 100 diff --git a/phsource/ph_vietnam b/phsource/ph_vietnam index 0fcfd755..22a7e9fe 100644 --- a/phsource/ph_vietnam +++ b/phsource/ph_vietnam @@ -54,85 +54,189 @@ endphoneme phoneme a vwl starttype #@ endtype #@ - IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN + IF nextPhW(p) THEN + length 142 + ELIF nextPhW(t[) THEN + length 126 + ELIF nextPhW(c) THEN + length 136 + ELIF nextPhW(m) THEN + length 155 + ELIF nextPhW(n) THEN + length 185 + ELIF nextPhW(N) THEN + length 173 + ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN length 240 - ELSE + ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordStart) THEN + length 240 + ELSE length 180 - ENDIF + ENDIF IF nextPh(N) OR nextPh(c) THEN FMT(vnasal/a_n) ELSE - //FMT(vietnam/a) //a_4) - FMT(vietnam/a_x) + FMT(vietnam/a, 60) //a_4) + ENDIF endphoneme phoneme a: vwl starttype #a endtype #a - IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd)THEN + IF nextPhW(p) THEN + length 142 + ELIF nextPhW(t[) THEN + length 126 + ELIF nextPhW(c) THEN + length 136 + ELIF nextPhW(m) THEN + length 155 + ELIF nextPhW(n) THEN + length 185 + ELIF nextPhW(N) THEN + length 173 + ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN + length 280 + ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordStart) THEN length 240 - ELIF nextPh(n^) OR nextPh(c) THEN - length 100 - ELIF nextPh(N) THEN - length 200 + ELIF thisPh(isWordStart) AND thisPh(isWordEnd) THEN + length 333 ELSE - length 180 //200 + length 180 ENDIF - // FMT(vowel/a_8) - FMT(vietnam/a_2) + FMT(vowel/a_8) + //FMT(vietnam/a_2) endphoneme phoneme E vwl starttype #e endtype #e - IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN + + IF nextPhW(p) THEN + length 143 + ELIF nextPhW(t[) THEN + length 107 + ELIF nextPhW(c) THEN + length 141 + ELIF nextPhW(m) THEN + length 128 + ELIF nextPhW(n) THEN + length 160 + ELIF nextPhW(N) THEN + length 187 + ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN + length 300 + ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordStart) THEN length 240 - ELSE + ELIF thisPh(isWordStart) AND thisPh(isWordEnd) THEN + length 352 + ELSE length 180 - ENDIF + ENDIF FMT(vowel/e_e) //ee_3) endphoneme phoneme e vwl starttype #e endtype #e - IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN + IF nextPhW(p) THEN + length 114 + ELIF nextPhW(t[) THEN + length 126 + ELIF nextPhW(c) THEN + length 140 + ELIF nextPhW(n^) THEN + length 120 + ELIF nextPhW(m) THEN + length 148 + ELIF nextPhW(n) THEN + length 163 + ELIF nextPhW(N) THEN + length 115 + ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN + length 270 + ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordStart) THEN length 240 - ELSE + ELIF thisPh(isWordStart) AND thisPh(isWordEnd) THEN + length 324 + ELSE length 180 - ENDIF -// FMT(vowel/e) + ENDIF + IF nextPh(n^) THEN + FMT(vowel/e) + ELSE FMT(vietnam/e) + ENDIF endphoneme +phoneme e- + vwl starttype #e endtype #a + IF nextPhW(c) THEN + length 70 + ELIF nextPhW(n^) THEN + length 100 + ENDIF + FMT(vietnam/e_short_2) +endphoneme + phoneme i vwl starttype #i endtype #i IfNextVowelAppend(;) IF prevPhW(w) THEN VowelStart(w/wi) ENDIF - IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN + IF nextPhW(p) THEN + length 131 + ELIF nextPhW(t[) THEN + length 113 + ELIF nextPhW(c) OR nextPhW(n^) THEN + length 72 + ELIF nextPhW(m) THEN + length 120 + ELIF nextPhW(n) THEN + length 128 + ELIF nextPhW(N) THEN + length 97 + ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN + length 310 + ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordStart) THEN length 240 + ELIF thisPh(isWordStart) AND thisPh(isWordEnd) THEN + length 363 + ELSE + length 180 ENDIF IF nextPh(n^) OR nextPh(c) THEN - length 100 FMT(vnasal/ii_n) ELSE - length 180 -FMT(vowel/i_4) + FMT(vowel/i_4) ENDIF endphoneme phoneme O vwl starttype #o endtype #o - IF nextPh(kh) OR nextPh(N) THEN + IF nextPhW(p) THEN + length 129 + ELIF nextPhW(t[) THEN + length 125 + ELIF nextPhW(c) THEN length 80 - ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN + ELIF nextPhW(m) THEN + length 133 + ELIF nextPhW(n) THEN + length 158 + ELIF nextPhW(N) THEN + length 102 + ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN + length 280 + ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordStart) THEN length 240 - ELSE + ELIF thisPh(isWordStart) AND thisPh(isWordEnd) THEN + length 331 + ELSE length 180 - ENDIF + ENDIF FMT(vdiph2/o_oo) //vowel/oo) endphoneme @@ -150,38 +254,81 @@ endphoneme phoneme o vwl starttype #o endtype #o - IF nextPh(kh) OR nextPh(N) THEN - length 110 - ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN + IF nextPhW(p) THEN + length 140 + ELIF nextPhW(t[) THEN + length 113 + ELIF nextPhW(c) THEN + length 88 + ELIF nextPhW(m) THEN + length 134 + ELIF nextPhW(n) THEN + length 168 + ELIF nextPhW(N) THEN + length 99 + ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN + length 310 + ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordStart) THEN length 240 - ELSE + ELIF thisPh(isWordStart) AND thisPh(isWordEnd) THEN + length 363 + ELSE length 180 - ENDIF + ENDIF FMT(vowel/o) // o_2) endphoneme phoneme u vwl starttype #u endtype #u - IF nextPh(kh) OR nextPh(N) THEN // hear as ung sound - length 120 - ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN + + IF nextPhW(p) THEN + length 110 + ELIF nextPhW(t[) THEN + length 94 + ELIF nextPhW(c) THEN + length 83 + ELIF nextPhW(m) THEN + length 141 + ELIF nextPhW(n) THEN + length 177 + ELIF nextPhW(N) THEN + length 80 + ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN + length 280 + ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordStart) THEN length 240 - ELSE + ELIF thisPh(isWordStart) AND thisPh(isWordEnd) THEN + length 333 + ELSE length 180 - ENDIF - FMT(vnasal/u_n,60) //vowel/u_5) + ENDIF + FMT(vnasal/u_n) //vowel/u_5) endphoneme phoneme y vwl starttype #u endtype #u - IF nextPh(kh) OR nextPh(N) THEN - length 120 - ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN + IF nextPhW(p) THEN + length 102 + ELIF nextPhW(t[) THEN + length 76 + ELIF nextPhW(c) THEN + length 70 + ELIF nextPhW(m) THEN + length 143 + ELIF nextPhW(n) THEN + length 136 + ELIF nextPhW(N) THEN + length 101 + ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN + length 270 + ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordStart) THEN length 240 - ELSE + ELIF thisPh(isWordStart) AND thisPh(isWordEnd) THEN + length 328 + ELSE length 180 - ENDIF + ENDIF FMT(vowel/u#_5) endphoneme @@ -189,13 +336,25 @@ endphoneme phoneme @ vwl starttype #@ endtype #a - IF nextPh(kh) OR nextPh(N) OR nextPh(n^) OR nextPh(c) THEN - length 120 - ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN + IF nextPhW(p) THEN + length 123 + ELIF nextPhW(t[) THEN + length 123 + ELIF nextPhW(c) THEN + length 139 + ELIF nextPhW(m) THEN + length 127 + ELIF nextPhW(n) THEN + length 160 + ELIF nextPhW(N) THEN + length 156 + ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN length 240 - ELSE + ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordStart) THEN + length 240 + ELSE length 180 - ENDIF + ENDIF // FMT(vowel/V) //vowel/@_2) FMT(vietnam/V) endphoneme @@ -203,11 +362,27 @@ endphoneme phoneme @: vwl starttype #@ endtype #@ - IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN + IF nextPhW(p) THEN + length 123 + ELIF nextPhW(t[) THEN + length 123 + ELIF nextPhW(c) THEN + length 139 + ELIF nextPhW(m) THEN + length 127 + ELIF nextPhW(n) THEN + length 160 + ELIF nextPhW(N) THEN + length 156 + ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN + length 280 + ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordStart) THEN length 240 - ELSE + ELIF thisPh(isWordStart) AND thisPh(isWordEnd) THEN + length 333 + ELSE length 180 - ENDIF + ENDIF FMT(vowel/@_2) endphoneme @@ -408,7 +583,9 @@ endphoneme phoneme o# // ông vwl starttype #o endtype #o - IF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN + IF nextPhW(k) THEN + length 120 + ELIF thisPh(isFirstVowel) AND thisPh(isFinalVowel) AND thisPh(isWordEnd) THEN length 240 ELSE length 200 @@ -521,9 +698,7 @@ phoneme N // si**ng** vcd lbv nas Vowelout f1=3 f2=2300 300 400 f3=-200 80 len=40 rms=20 brk lengthmod 12 // longer than 'n' - IF prevPhW(isVowel) AND prev2PhW(isVowel) THEN - length 160 - ENDIF + FMT(n/nm) endphoneme @@ -573,7 +748,7 @@ WAV(vietnam/dd) vls pal stp pzd //voicingswitch J lengthmod 2 - length 2 + length 50 Vowelin f1=0 f2=2700 400 600 f3=300 80 len=15 brk Vowelout f1=1 f2=2700 400 600 f3=200 70 len=15 colr=1 @@ -593,16 +768,61 @@ phoneme p endphoneme phoneme t[ // dental variant of /t/ - vls dnt stp - voicingswitch d[ - lengthmod 2 - length 5 - Vowelin f1=1 f2=1500 -250 250 f3=-100 80 amp=16 len=15 - Vowelout f1=0 f2=1500 -300 250 f3=-100 80 rms=20 len=15 + IF thisPh(isWordEnd) THEN + vls alv stp + voicingswitch d + lengthmod 2 + length 5 + Vowelin f1=1 f2=1500 -250 250 f3=-100 80 amp=16 len=15 + Vowelout f1=0 f2=1500 -300 250 f3=-100 80 rms=20 len=15 + WAV(ustop/t, 50) + ELSE + vls dnt stp + voicingswitch d[ + lengthmod 2 + length 5 + Vowelin f1=1 f2=1500 -250 250 f3=-100 80 amp=16 len=15 + Vowelout f1=0 f2=1500 -300 250 f3=-100 80 rms=20 len=15 - IF nextPh(isPause2) THEN - WAV(ustop/t_unasp2, 5) + IF nextPh(isPause2) THEN + WAV(ustop/t_unasp2, 5) + ENDIF + WAV(ustop/t_hi, 70) ENDIF - WAV(ustop/t_hi, 70) endphoneme +phoneme w + liquid + length 20 + starttype #u + + IF nextPh(isVowel) THEN + NextVowelStarts + VowelStart(w/w@) + VowelStart(w/wa) + VowelStart(w/we) + VowelStart(w/wi) + VowelStart(w/wo) + VowelStart(w/wu) + EndSwitch + + VowelEnding(w/xw, -30) + IF nextPh(isVowel) AND prevPhW(t[) THEN + FMT(vnasal/u_n, 60) + ENDIF + IF prevPhW(isNasal) THEN + FMT(w/w) + ELSEIF prevPhW(h) THEN + // none, [hw] + ELSE + FMT(w/_w) + ENDIF + ELSE + // no vowel follows + Vowelout len=50 + IF prevPh(#i) THEN + FMT(w/iw_) + ENDIF + FMT(w/w_) + ENDIF +endphoneme \ No newline at end of file diff --git a/phsource/vietnam/e_short_2 b/phsource/vietnam/e_short_2 new file mode 100644 index 00000000..b47239aa Binary files /dev/null and b/phsource/vietnam/e_short_2 differ diff --git a/tests/language-pronunciation.test b/tests/language-pronunciation.test index bef75ee4..0ba78c26 100755 --- a/tests/language-pronunciation.test +++ b/tests/language-pronunciation.test @@ -111,7 +111,7 @@ test_phonemes tn "Latn" "B'aTU B'oKl B'a ts'i:tswl B'a g,olUl,os-'igill_:_: ll g test_phonemes tr "Latn" "piZ'amaL@ hast'a j'a:@z SofW*'E tSabudZ'ak Jyv&nd'I\nSISlid'E byj'Yk tS'Wp j@:@nLa*'@" "Pijamalı hasta yağız şoföre çabucak güvendi. Şişli’de büyük çöp yığınları." test_phonemes tt "Cyrl" "b0rL'Vq keSel'&r d'& 0z'0t h'&m 'yz 0brujLAr'V h'&m xoquqLAr'V jAGVnn'An t'iN bup'Vp tuAp'Ar\n0L0rG'A 0q'VL h'&m wWZ;d'An birelQ'&n h'&m b'&rb&rsen'& q0r0t'A tuGAnnArS;'A mWnAs&b&tt'& buLVrG'A tieSl'&r" "Барлык кешеләр дә азат һәм үз абруйлары һәм хокуклары ягыннан тиң бупып туапар. Аларга акыл һәм вөҗдан бирелгән һәм бәр-бәрсенә карата туганнарча мөнасәбәттә булырга тиешләр." test_phonemes ur "Arab" "t.#'Vnd. m'e~\n'e:k q'VH@t z'Vda ga:'o:n se: g'Vz@Rte: v'aqt 'e:k c'Vr.@cr.e:\nb'a:s@R 'o: f'a:RIQ S'axs. k'o: b'a:z J'Vl p'VRi n'Uma: 'aZ@dHe: naz.'aR 'a:e:" "ٹھنڈ میں، ایک قحط زدہ گاؤں سے گذرتے وقت ایک چڑچڑے، باأثر و فارغ شخص کو بعض جل پری نما اژدہے نظر آئے۔" -test_phonemes vi "Latn" "t['@3t[_| k'a:4_| m,OI6_| N'y@2j_| s'i1n^_| z'a:1_| d_'eU2_| d_,y@6c_| t['y6_| z'O1_| v,a:2_| _b'i2n^_| d_'a4N_| v'e2_| n^'@1n_| f'@4m_| v,a:2_| kw'i@2n_| l'@:I6_|\nm,OI6_| k,O1n_| N'y@2j_| d_'eU2_| d_,y@6c_| t['a:U6_| h'o@3_| _b'a:1n_| tS,O1_| l'i3_| tS'i3_| v,a:2_| l'y@1N_| t['@1m_| v,a:2_| k'@2n_| f,a:I4_| d_'oI3_| s'y4_| v,@:I3_| n^'aU1_| tS'O#1_| t['i2n^_| 'a1n^_| 'E7m_|" "Tất cả mọi người sinh ra đều được tự do và bình đẳng về nhân phẩm và quyền lợi. Mọi con người đều được tạo hóa ban cho lý trí và lương tâm và cần phải đối xử với nhau trong tình anh em." +test_phonemes vi "Latn" "t['@3t[_| k'a:4_| m,OI6_| N'y@2j_| s'i1n^_| z'a:1_| d_'eU2_| d_,y@6c_| t['y6_| z'O1_| v,a:2_| _b'i2n^_| d_'a4N_| v'e2_| n^'@1n_| f'@4m_| v,a:2_| kw'i@2n_| l'@:I6_|\nm,OI6_| k,O1n_| N'y@2j_| d_'eU2_| d_,y@6c_| t['a:U6_| h'o@3_| _b'a:1n_| tS,O1_| l'i3_| tS'i3_| v,a:2_| l'y@1N_| t['@1m_| v,a:2_| k'@2n_| f,a:I4_| d_'oI3_| s'y4_| v,@:I3_| n^'aU1_| tS'O#1_| t['i2n^_| 'e-1n^_| 'E7m_|" "Tất cả mọi người sinh ra đều được tự do và bình đẳng về nhân phẩm và quyền lợi. Mọi con người đều được tạo hóa ban cho lý trí và lương tâm và cần phải đối xử với nhau trong tình anh em." ##### Fallback to other languages in different scripts (language switch).