| @@ -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 | |||