From da359384face45854c3b0e1fd46838ae4090a5d1 Mon Sep 17 00:00:00 2001 From: Valdis Vitolins Date: Sun, 12 Apr 2020 23:36:24 +0300 Subject: [PATCH] qu: fix issue #561: add initial support for Quechua language --- CHANGELOG.md | 1 + Makefile.am | 4 ++ dictsource/qu_list | 85 ++++++++++++++++++++++++++++++++++ dictsource/qu_rules | 102 +++++++++++++++++++++++++++++++++++++++++ espeak-ng-data/lang/qu | 5 ++ phsource/ph_quechua | 51 +++++++++++++++++++++ phsource/phonemes | 5 ++ 7 files changed, 253 insertions(+) create mode 100644 dictsource/qu_list create mode 100644 dictsource/qu_rules create mode 100644 espeak-ng-data/lang/qu create mode 100644 phsource/ph_quechua diff --git a/CHANGELOG.md b/CHANGELOG.md index 8bd06820..0691084f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -21,6 +21,7 @@ updated languages: new languages: * uk (Ukrainian) -- Valdis Vitolins +* qu (Quechua) -- Valdis Vitolins ### 1.50 - 2019-11-29 diff --git a/Makefile.am b/Makefile.am index 797bb8ae..5af05e9c 100644 --- a/Makefile.am +++ b/Makefile.am @@ -530,6 +530,7 @@ dictionaries: \ espeak-ng-data/pl_dict \ espeak-ng-data/pt_dict \ espeak-ng-data/py_dict \ + espeak-ng-data/qu_dict \ espeak-ng-data/quc_dict \ espeak-ng-data/ro_dict \ espeak-ng-data/ru_dict \ @@ -770,6 +771,9 @@ espeak-ng-data/pt_dict: dictsource/pt_list dictsource/pt_rules dictsource/pt_ext py: espeak-ng-data/py_dict espeak-ng-data/py_dict: dictsource/py_list dictsource/py_rules dictsource/py_extra +qu: espeak-ng-data/qu_dict +espeak-ng-data/qu_dict: dictsource/qu_list dictsource/qu_rules dictsource/qu_extra + quc: espeak-ng-data/quc_dict espeak-ng-data/quc_dict: dictsource/quc_list dictsource/quc_rules dictsource/quc_extra dictsource/quc_emoji diff --git a/dictsource/qu_list b/dictsource/qu_list new file mode 100644 index 00000000..cb1d2ae9 --- /dev/null +++ b/dictsource/qu_list @@ -0,0 +1,85 @@ +// This file is UTF8 encoded +// Spelling-to-phoneme words for Quechuan + +// names of letters +a a: +b ba: +chh tSha: +ch tSa: +ch' tS?a: +c tsa: +d da: +e e: +f fa: +g ga: +h ha: +i i: +y ja: +j xa: +kh kha: +k ka: +k' k`?a: +l la: +ll l^a: +m ma: +n na: +ñ n^a: +o o: +ph pha: +p pa: +p' p?a: +qh kha: +q ka: +q' k?a: +r RRa: +s sa: +th tha: +t ta: +t' t?a +u u: +v va: +w wa: +x ksa: +z za: + +// numbers +_0 tS?usak +_1 huk +_2 iskaj +_3 kimsa +_4 tawa +_5 pitSka +_6 sukta +_7 kantSis +_8 pusak +_9 iskun +_10 tSunka +_0C patSak +_0M1 waranka +_0M2 hunu +_0M3 l^una + +// unstressed words and/or with pause +// pronouns +hayk'a $u +ima $u +imahina $u +imapas $u +imayna $u +kay $u +kikin $u +llapan $u +machka $u +may $u +nuqa $u +pacha $u +pay $u +paykuna $u +pi $u +qam $u +qamkuna $u +sapay $u +tukuy $u +ñuqa $u +ñuqanchik $u +ñuqayku $u diff --git a/dictsource/qu_rules b/dictsource/qu_rules new file mode 100644 index 00000000..0545a0af --- /dev/null +++ b/dictsource/qu_rules @@ -0,0 +1,102 @@ +// Translation rules for Quechuan +// This file is UTF-8 encoded + + +.replace + ʼ ' // replace modified apostrophe to simple apostrophe + +.group a + a a + +.group b + b b + +.group c + ch tS + chh tSh + ch' tS`? + +.group c + c ts + +.group d + d d + +.group e + e e + +.group f + f f + +.group g + g g + +.group h + h h + +.group i + i i + +.group y + y j + +.group j + j h + +.group k + k k + kh kh + k' k`? + +.group l + l l + ll l^ + +.group m + m m + +.group n + n n + +.group ñ + ñ n^ + +.group o + o o + +.group p + p p + ph ph + p' p`? + +.group q + q q + qh qh + q' q`? + +.group r + r R + +.group s + s s + +.group t + t t + th th + t' t`? + +.group u + u u + +.group v + v v + +.group w + w w + +.group x + x ks + +.group z + z z + diff --git a/espeak-ng-data/lang/qu b/espeak-ng-data/lang/qu new file mode 100644 index 00000000..aa717f29 --- /dev/null +++ b/espeak-ng-data/lang/qu @@ -0,0 +1,5 @@ +name Quechua +language qu +stressRule 2 // stress on penultimate syllable +status testing + diff --git a/phsource/ph_quechua b/phsource/ph_quechua new file mode 100644 index 00000000..0e6bf247 --- /dev/null +++ b/phsource/ph_quechua @@ -0,0 +1,51 @@ +phoneme k` + vls vel stp + lengthmod 2 + Vowelin f1=0 f2=1700 -250 250 f3= -200 80 gpaus f4 + Vowelout f1=0 f2=2300 300 400 f3=-200 80 rms=20 + WAV(ustop/k_ejc, 60) +endphoneme + +phoneme p` + vls blb stp + voicingswitch b + lengthmod 2 + Vowelin f1=0 f2=1000 -50 -100 f3=-200 80 amp=11 + Vowelout f1=0 f2=1000 -500 -350 f3=-300 80 rms=22 + WAV(ustop/p_asp) +endphoneme + +phoneme q` + vls vel stp + lengthmod 2 + Vowelin f1=0 f2=1700 -250 250 f3= -200 80 gpaus f4 + Vowelout f1=0 f2=2300 300 400 f3=-200 80 rms=20 + WAV(vocw/Q2, 100) +endphoneme + + +phoneme t` + vls alv stp + lengthmod 2 + voicingswitch d + Vowelin f1=0 f2=1700 -300 300 f3=-100 80 gpaus + Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20 + IF nextPh(isPause2) THEN + WAV(ustop/t_) + ENDIF + WAV(ustop/t_hi, 70) +endphoneme + +phoneme tS` + vls pla afr sib + voicingswitch dZ + lengthmod 2 + Vowelin f1=0 f2=1800 -200 200 f3=-100 80 gpaus + + IF nextPh(isPause2) THEN + WAV(ustop/tsh_asp, 80) + ENDIF + WAV(ustop/tsh_asp, 80) +endphoneme + + diff --git a/phsource/phonemes b/phsource/phonemes index f429be78..f3350247 100644 --- a/phsource/phonemes +++ b/phsource/phonemes @@ -1779,6 +1779,9 @@ include ph_polish phonemetable prs base1 include ph_dari +phonemetable qu base1 +include ph_quechua + phonemetable quc base1 phonemetable ru base1 @@ -1843,6 +1846,7 @@ include ph_nahuatl phonemetable pt base2 include ph_pt_brazil + phonemetable ro base2 include ph_romanian @@ -2016,3 +2020,4 @@ include ph_vietnam_sgn phonemetable sd ur include ph_sindhi +