qu: fix issue #561: add initial support for Quechua language

This commit is contained in:
Valdis Vitolins
2020-04-12 23:44:48 +03:00
parent d17a5ecc53
commit da359384fa
7 changed files with 253 additions and 0 deletions
+1
View File
@@ -21,6 +21,7 @@ updated languages:
new languages:
* uk (Ukrainian) -- Valdis Vitolins
* qu (Quechua) -- Valdis Vitolins
### 1.50 - 2019-11-29
+4
View File
@@ -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
+85
View File
@@ -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
+102
View File
@@ -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
+5
View File
@@ -0,0 +1,5 @@
name Quechua
language qu
stressRule 2 // stress on penultimate syllable
status testing
+51
View File
@@ -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
+5
View File
@@ -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