@@ -20,6 +20,7 @@ updated languages: | |||
* zh (Chinese) -- Silas S. Brown | |||
new languages: | |||
* haw (Hawaiian) -- Valdis Vitolins | |||
* uk (Ukrainian) -- Valdis Vitolins | |||
* qu (Quechua) -- Valdis Vitolins | |||
@@ -489,6 +489,7 @@ dictionaries: \ | |||
espeak-ng-data/grc_dict \ | |||
espeak-ng-data/gu_dict \ | |||
espeak-ng-data/hak_dict \ | |||
espeak-ng-data/haw_dict \ | |||
espeak-ng-data/hi_dict \ | |||
espeak-ng-data/hr_dict \ | |||
espeak-ng-data/ht_dict \ | |||
@@ -633,6 +634,9 @@ espeak-ng-data/fr_dict: dictsource/fr_list dictsource/fr_rules dictsource/fr_ext | |||
hak: espeak-ng-data/hak_dict | |||
espeak-ng-data/hak_dict: dictsource/hak_list dictsource/hak_rules dictsource/hak_extra | |||
haw: espeak-ng-data/haw_dict | |||
espeak-ng-data/haw_dict: dictsource/haw_list dictsource/haw_rules dictsource/haw_extra | |||
ht: espeak-ng-data/ht_dict | |||
espeak-ng-data/ht_dict: dictsource/ht_list dictsource/ht_rules dictsource/ht_extra | |||
@@ -0,0 +1,105 @@ | |||
// Names of letters | |||
a a | |||
e e | |||
i i | |||
o o | |||
u u | |||
'a: a:: | |||
ē e:: | |||
ī i:: | |||
ō o:: | |||
'u: u:: | |||
ai ai | |||
ae ae | |||
ao ao | |||
au au | |||
ei ei | |||
eu eu | |||
iu iu | |||
oi oi | |||
ou ou | |||
ui ui | |||
h he: | |||
k ke: | |||
l la: | |||
m mu: | |||
n nu: | |||
p pi: | |||
w ve: | |||
‘ ?okina | |||
// Numbers | |||
_0 ?ole | |||
_1 ?ekahi | |||
_2 ?elua | |||
_3 ?ekolu | |||
_4 ?eh'a: | |||
_5 ?elima | |||
_6 ?eono | |||
_7 ?ehiku | |||
_8 ?ewalu | |||
_9 ?eiwa | |||
_10 ?umi | |||
_11 ?umik'u:m'a:kahi | |||
_12 ?umik'u:m'a:lua | |||
_13 ?umik'u:m'a:kolu | |||
_14 ?umik'u:m'a:h'a: | |||
_15 ?umik'u:m'a:lima | |||
_16 ?umik'u:m'a:ono | |||
_17 ?umik'u:m'a:hiku | |||
_18 ?umik'u:m'a:walu | |||
_19 ?umik'u:m'a:iwa | |||
_20 iwak'a:lua | |||
_21 iwak'a:luak'u:m'a:kahi | |||
_22 iwak'a:luak'u:m'a:lua | |||
_23 iwak'a:luak'u:m'a:kolu | |||
_24 iwak'a:luak'u:m'a:h'a: | |||
_25 iwak'a:luak'u:m'a:lima | |||
_26 iwak'a:luak'u:m'a:ono | |||
_27 iwak'a:luak'u:m'a:hiku | |||
_28 iwak'a:luak'u:m'a:walu | |||
_29 iwak'a:luak'u:m'a:iwa | |||
_30 kanakolu | |||
_40 kanah'a: | |||
_50 kanalima | |||
_60 kanaono | |||
_70 kanahiku | |||
_80 kanawalu | |||
_90 kanaiwa | |||
_0C ho?okahi | |||
_0M1 kaukani | |||
_0M2 miliona | |||
_0M3 piliona | |||
// Unstressed words | |||
a'ela $u | |||
a'e $u | |||
akula $u | |||
aku $u | |||
'ana $u | |||
a'o $u | |||
au $u | |||
ho'i $u | |||
'ia $u | |||
ia $u | |||
iā $u | |||
ihola $u | |||
iho $u | |||
ilelo $u | |||
kākou $u | |||
lākou $u | |||
lā $u | |||
maila $u | |||
mai $u | |||
mau $u | |||
nō $u | |||
'oe $u | |||
'o $u | |||
'oukou $u | |||
paha $u | |||
po'e $u | |||
pono $u | |||
pū $u | |||
ua $u | |||
wale $u | |||
wau $u |
@@ -0,0 +1,115 @@ | |||
.replace | |||
â ā | |||
ê ē | |||
î ī | |||
ô ō | |||
û ū | |||
` ' | |||
‘ ' | |||
’ ' | |||
ʻ ' | |||
.L20 a o u | |||
.L40 i e | |||
.group a | |||
a a | |||
.group e | |||
e e | |||
.group i | |||
i i | |||
.group o | |||
o o | |||
.group u | |||
u u | |||
.group ā | |||
ā 'a: | |||
.group ē | |||
ē 'e: | |||
.group ī | |||
ī 'i: | |||
.group ō | |||
ō 'o: | |||
.group ū | |||
ū 'u: | |||
.group ai | |||
ai ai | |||
.group ae | |||
ae ae | |||
.group ao | |||
ao ao | |||
.group au | |||
au au | |||
.group ei | |||
ei ei | |||
.group eu | |||
eu eu | |||
.group iu | |||
iu iu | |||
.group oi | |||
oi oi | |||
.group ou | |||
ou ou | |||
.group ui | |||
ui ui | |||
.group h | |||
h h | |||
.group k | |||
k k | |||
.group l | |||
l l | |||
.group m | |||
m m | |||
.group n | |||
n n | |||
.group p | |||
p p | |||
.group v | |||
v v | |||
.group w | |||
w (L20 w | |||
w (L40 v | |||
.group ' | |||
' _! // short non-breking pause instead of standard ? glottal stop | |||
// other Latin letters, to not switch to standard English during pronunciation | |||
.group | |||
b b | |||
c ts | |||
d d | |||
f f | |||
g g | |||
q k | |||
r r | |||
s s | |||
t t | |||
z z |
@@ -31,6 +31,7 @@ The 111 supported languages and accents are: | |||
| `roa` | `ca` | Romance | Catalan | | | |||
| `sit` | `yue` | Sino-Tibetan | Chinese | Cantonese | | |||
| `sit` | `hak` | Sino-Tibetan | Chinese | Hakka | | |||
| `map` | `haw` | Austronesian | Hawaiian | | | |||
| `sit` | `cmn` | Sino-Tibetan | Chinese | Mandarin | | |||
| `zls` | `hr` | South Slavic | Croatian | | | |||
| `zlw` | `cs` | West Slavic | Czech | | |
@@ -0,0 +1,3 @@ | |||
name Hawaiian | |||
language haw | |||
status testing |
@@ -0,0 +1,236 @@ | |||
phoneme a | |||
vwl starttype #a endtype #a | |||
length 130 | |||
FMT(vwl_lv/a, 100) | |||
endphoneme | |||
phoneme a: | |||
vwl starttype #a endtype #a | |||
length 310 | |||
lng | |||
FMT(vwl_lv/aa, 90) | |||
endphoneme | |||
phoneme e | |||
vwl starttype #e endtype #e | |||
length 120 | |||
FMT(vwl_lv/e, 100) | |||
endphoneme | |||
phoneme e: | |||
vwl starttype #e endtype #e | |||
length 300 | |||
FMT(vwl_lv/ee, 100) | |||
endphoneme | |||
phoneme i | |||
vwl starttype #i endtype #i | |||
length 120 | |||
FMT(vwl_lv/i, 110) | |||
endphoneme | |||
phoneme i: | |||
vwl starttype #i endtype #i | |||
length 280 | |||
FMT(vwl_lv/ii, 90) | |||
endphoneme | |||
phoneme o | |||
vwl starttype #o endtype #o | |||
length 120 | |||
FMT(vwl_lv/o, 90) | |||
endphoneme | |||
phoneme o: | |||
vwl starttype #o endtype #o | |||
length 300 | |||
FMT(vwl_lv/oo, 75) | |||
endphoneme | |||
phoneme u | |||
vwl starttype #u endtype #u | |||
length 120 | |||
FMT(vwl_lv/u, 100) | |||
endphoneme | |||
phoneme u: | |||
vwl starttype #u endtype #u | |||
length 300 | |||
FMT(vwl_lv/uu, 90) | |||
endphoneme | |||
phoneme ai | |||
vwl starttype #a endtype #i | |||
length 280 | |||
lng | |||
FMT(vdiph/aai, 100) | |||
endphoneme | |||
phoneme au | |||
vwl starttype #a endtype #u | |||
length 300 | |||
lng | |||
FMT(vdiph/aau, 100) | |||
endphoneme | |||
phoneme ei | |||
vwl starttype #e endtype #i | |||
length 280 | |||
lng | |||
FMT(vdiph/eei_2, 100) | |||
endphoneme | |||
phoneme ie | |||
vwl starttype #i endtype #e | |||
length 250 | |||
lng | |||
FMT(vdiph2/ie_2, 100) | |||
endphoneme | |||
phoneme iu | |||
vwl starttype #i endtype #u | |||
length 250 | |||
lng | |||
FMT(vdiph2/iu_2, 100) | |||
endphoneme | |||
phoneme ui | |||
vwl starttype #u endtype #i | |||
length 250 | |||
lng | |||
FMT(vdiph/ui, 100) | |||
endphoneme | |||
phoneme uo | |||
vwl starttype #u endtype #a | |||
length 280 | |||
lng | |||
FMT(vdiph2/ua, 110) | |||
endphoneme | |||
phoneme oi | |||
vwl starttype #o endtype #i | |||
length 250 | |||
lng | |||
FMT(vdiph/ooi, 100) | |||
endphoneme | |||
phoneme k | |||
vls vel stp | |||
lengthmod 2 | |||
voicingswitch g | |||
Vowelin f1=0 f2=2300 200 400 f3=-100 80 | |||
Vowelout f1=0 f2=2300 300 400 f3=-100 80 rms=20 | |||
IF nextPh(isPause2) THEN | |||
WAV(ustop/k_) | |||
ENDIF | |||
IF nextPh(#i) OR nextPh(l^) THEN | |||
WAV(ustop/ki) | |||
ENDIF | |||
IF nextPh(l) THEN | |||
WAV(ustop/kl) | |||
ENDIF | |||
WAV(ustop/k_unasp, 60) | |||
endphoneme | |||
phoneme l | |||
liquid | |||
IF nextPh(isNotVowel) THEN | |||
PrevVowelEndings | |||
VowelEnding(l/L1_@L) | |||
VowelEnding(l/L1_aL) | |||
VowelEnding(l/L1_eL) | |||
VowelEnding(l/L1_iL) | |||
VowelEnding(l/L1_oL) | |||
VowelEnding(l/L1_uL) | |||
EndSwitch | |||
FMT(l/l_) | |||
RETURN | |||
ENDIF | |||
CALL vowelstart_l | |||
IF prevPh(a) OR prevPh(a:) THEN | |||
VowelEnding(l/xl, 20) | |||
ELSEIF prevPh(isVowel) THEN | |||
VowelEnding(l/xl, 10) | |||
ENDIF | |||
IF prevPh(isPause) THEN | |||
FMT(l/_l) | |||
ENDIF | |||
IF prevPh(t) THEN | |||
FMT(l/tl) | |||
ENDIF | |||
IF prevPh(l/) THEN | |||
FMT(l/l_long) | |||
ENDIF | |||
FMT(l/l) | |||
endphoneme | |||
phoneme m | |||
vcd blb nas | |||
Vowelout f1=2 f2=1000 -500 -350 f3=-200 80 brk | |||
lengthmod 4 | |||
IF KlattSynth THEN | |||
Vowelin f1=0 f2=1000 -50 -200 f3=-200 80 | |||
IF nextPh(isPause2) THEN | |||
FMT(klatt/m_) | |||
ENDIF | |||
FMT(klatt/m) | |||
ENDIF | |||
NextVowelStarts | |||
VowelStart(m/m@) | |||
VowelStart(m/ma) | |||
VowelStart(m/me) | |||
VowelStart(m/mi) | |||
VowelStart(m/mo) | |||
VowelStart(m/mu) | |||
EndSwitch | |||
IF prevPh(isNotVowel) AND nextPhW(isLiquid) THEN | |||
FMT(m/mj) | |||
ELIF prevPh(isPause) THEN | |||
FMT(m/_m) | |||
ELIF nextPh(isNotVowel) THEN | |||
FMT(m/m_) | |||
ELIF nextPh(m) THEN | |||
FMT(m/mj) | |||
ENDIF | |||
endphoneme | |||
phoneme p | |||
vls blb stp | |||
lengthmod 2 | |||
voicingswitch b | |||
Vowelin f1=0 f2=1000 -50 -100 f3=-200 80 | |||
Vowelout f1=0 f2=1000 -500 -350 f3=-300 80 rms=30 | |||
IF nextPh(isPause2) THEN | |||
WAV(ustop/p_unasp_, 80) | |||
ENDIF | |||
IF nextPh(l) THEN | |||
WAV(ustop/pl) | |||
ENDIF | |||
WAV(ustop/p_unasp, 120) | |||
endphoneme | |||
phoneme v | |||
vcd lbd frc | |||
ipa ʋ | |||
lengthmod 6 | |||
voicingswitch f | |||
Vowelin f1=0 f2=1000 -300 -200 f3=-300 100 | |||
Vowelout f1=0 f2=1000 -500 -300 f3=-300 60 len=50 | |||
IF nextPh(isPause2) THEN | |||
FMT(voc/v#_) | |||
ENDIF | |||
FMT(voc/v#) | |||
endphoneme | |||
@@ -1722,6 +1722,9 @@ include ph_guarani | |||
phonemetable hak base1 | |||
include ph_hakka | |||
phonemetable haw base1 | |||
include ph_hawaiian | |||
phonemetable hi_base base1 | |||
include ph_hindi_base | |||