mirror of
https://github.com/rhasspy/espeak-ng.git
synced 2026-10-31 05:35:35 +00:00
haw: fix issue #578: add initial support for Hawaiian language
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user