mirror of
https://github.com/rhasspy/espeak-ng.git
synced 2026-10-31 05:35:35 +00:00
[1.29.18] Add data for Serbian voice ("sr").
Moved Croatian/Bosnian/Serbian dictionary source data to hbs_rules, hbs_list.
Added data for Ancient Greek voice ("grc").
In voice files, the attribute: word n adds a short pause between words. n = 1 to 4 for increasing pause length.
git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@103 d46cf337-b52f-0410-862d-fd96e6ae7743
This commit is contained in:
+13
-20
@@ -134,28 +134,8 @@ r s S s. t T t. t.h
|
||||
th v w x z
|
||||
|
||||
|
||||
Dictionary hr_dict
|
||||
|
||||
& @ @- @2 a A a: aI
|
||||
aU E e e: E~ i I i:
|
||||
l- O o o: oU r- u U
|
||||
u: y
|
||||
|
||||
* b d dZ dZ; f g h
|
||||
j k l l^ m n N n^
|
||||
p r R s S t tS ts
|
||||
tS; v x z Z
|
||||
|
||||
|
||||
Dictionary hu_dict
|
||||
|
||||
A a: E e: i i: o o:
|
||||
u u: Y Y:
|
||||
|
||||
: b c d dZ f g h
|
||||
j J k l m n n^ p
|
||||
R R2 s S s2 t tS ts
|
||||
v z Z
|
||||
|
||||
|
||||
Dictionary it_dict
|
||||
@@ -354,3 +334,16 @@ f j k kh l m n N
|
||||
p ph R R2 R3 s s. S;
|
||||
t th ts ts. ts. tS; tS; tsh
|
||||
v w x z z.
|
||||
|
||||
|
||||
Dictionary hbs_dict
|
||||
|
||||
& @ @2 a A a: aI aU
|
||||
E e e: E~ i I i: l-
|
||||
O o o: oU r* r- u U
|
||||
u: y
|
||||
|
||||
* b d dZ dZ; f g h
|
||||
j k l L l^ m n N
|
||||
n^ p r R s S t tS
|
||||
ts tS; v x z Z
|
||||
|
||||
@@ -1229,6 +1229,7 @@ myrrh m3:
|
||||
|
||||
naif naI'i:f
|
||||
naïve naI'i:v
|
||||
nasa nasa2
|
||||
nascent neIs@nt
|
||||
nativity $2
|
||||
natural natS@r@L
|
||||
|
||||
+1
-1
@@ -944,7 +944,7 @@
|
||||
as (tern a2s
|
||||
as (thm as
|
||||
as (tral as
|
||||
as (tro aas
|
||||
as (tro as
|
||||
as (trolog a2s
|
||||
as (trono a2s
|
||||
ass (ym as
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
|
||||
?1 _0lang _^_EN // speak numbers in English
|
||||
|
||||
// articles
|
||||
hο $u // ὁ
|
||||
τὼ $u // τώ
|
||||
οhι $u // οἱ
|
||||
hη $u // ἡ
|
||||
τὰ $u // τά
|
||||
αhι $u // αἱ
|
||||
τὸ $u // τό
|
||||
|
||||
τοὺ $u // τοῦ
|
||||
τοὶν $u // τοῖν
|
||||
τὴς $u // τῆς
|
||||
ταὶν $u // ταῖν
|
||||
τὼν $u // τῶν
|
||||
|
||||
τῲ $u // τῷ
|
||||
τοὶς $u // τοῖς
|
||||
τῂ $u // τῇ
|
||||
ταὶν $u // ταῖν
|
||||
ταὶς $u // ταῖς
|
||||
|
||||
τὸν $u // τόν
|
||||
τοὺς $u // τούς
|
||||
τὴν $u // τήν
|
||||
τὰς $u // τάς
|
||||
|
||||
@@ -0,0 +1,344 @@
|
||||
// Spelling to Phoneme rules for: Ancient Greek
|
||||
|
||||
// Preliminary character substitution:
|
||||
// Convert tonos, oxia and perispomeni to varia
|
||||
// Remove psili (soft breathing)
|
||||
// Convert dasia accent to a separate prefix character ("h")
|
||||
// Remove iota subscripts
|
||||
// Replace Latin characters by same-shape Greek characters
|
||||
|
||||
.replace
|
||||
a α // Latin->Greek
|
||||
o ο
|
||||
v ν
|
||||
A Α
|
||||
B Β
|
||||
E Ε
|
||||
Z Ζ
|
||||
H Η
|
||||
I Ι
|
||||
K Κ
|
||||
M Μ
|
||||
N Ν
|
||||
O Ο
|
||||
P Ρ
|
||||
T Τ
|
||||
Y Υ
|
||||
X Χ
|
||||
|
||||
// alpha
|
||||
ά ὰ // tonos
|
||||
ά ὰ // oxia
|
||||
ᾴ ᾲ
|
||||
ᾶ ὰ
|
||||
ᾷ ᾲ
|
||||
|
||||
ἀ α
|
||||
ἁ hα
|
||||
ἂ ὰ
|
||||
ἃ hὰ
|
||||
ἄ ὰ
|
||||
ἅ hὰ
|
||||
ἆ ὰ
|
||||
ἇ hὰ
|
||||
|
||||
ᾀ ᾳ
|
||||
ᾁ hᾳ
|
||||
ᾂ ᾲ
|
||||
ᾃ hᾲ
|
||||
ᾄ ᾲ
|
||||
ᾅ hᾲ
|
||||
ᾆ ᾲ
|
||||
ᾇ hᾲ
|
||||
|
||||
// epsilon
|
||||
έ ὲ
|
||||
έ ὲ
|
||||
ἐ ε
|
||||
ἑ hε
|
||||
ἒ ὲ
|
||||
ἓ hὲ
|
||||
ἔ ὲ
|
||||
ἕ hὲ
|
||||
|
||||
// eta
|
||||
ή ὴ
|
||||
ή ὴ
|
||||
ῄ ῂ
|
||||
ῆ ὴ
|
||||
ῇ ῂ
|
||||
|
||||
ἠ η
|
||||
ἡ hη
|
||||
ἢ ὴ
|
||||
ἣ hὴ
|
||||
ἤ ὴ
|
||||
ἥ hὴ
|
||||
ἦ ὴ
|
||||
ἧ hὴ
|
||||
|
||||
ᾐ ῃ
|
||||
ᾑ hῃ
|
||||
ᾒ ῂ
|
||||
ᾓ hῂ
|
||||
ᾔ ῂ
|
||||
ᾕ hῂ
|
||||
ᾖ ῂ
|
||||
ᾗ hῂ
|
||||
|
||||
//iota
|
||||
ί ὶ
|
||||
ί ὶ
|
||||
ῖ ὶ
|
||||
|
||||
ἰ ι
|
||||
ἱ hι
|
||||
ἲ ὶ
|
||||
ἳ hὶ
|
||||
ἴ ὶ
|
||||
ἵ hὶ
|
||||
ἶ ὶ
|
||||
ἷ hὶ
|
||||
|
||||
ΐ ῒ
|
||||
ῗ ῒ
|
||||
|
||||
// omicron
|
||||
ό ὸ
|
||||
ό ὸ
|
||||
ὀ ο
|
||||
ὁ hο
|
||||
ὂ ὸ
|
||||
ὃ hὸ
|
||||
ὄ ὸ
|
||||
ὅ hὸ
|
||||
|
||||
// upsilon
|
||||
ύ ὺ
|
||||
ύ ὺ
|
||||
ῦ ὺ
|
||||
|
||||
ὐ υ
|
||||
ὑ hυ
|
||||
ὒ ὺ
|
||||
ὓ hὺ
|
||||
ὔ ὺ
|
||||
ὕ hὺ
|
||||
ὖ ὺ
|
||||
ὗ hὺ
|
||||
|
||||
ΰ ῢ
|
||||
ῧ ῢ
|
||||
|
||||
// omega
|
||||
ώ ὼ
|
||||
ώ ὼ
|
||||
ῴ ῲ
|
||||
ῶ ὼ
|
||||
ῷ ῲ
|
||||
|
||||
ὠ ω
|
||||
ὡ hω
|
||||
ὢ ὼ
|
||||
ὣ hὼ
|
||||
ὤ ὼ
|
||||
ὥ hὼ
|
||||
ὦ ὼ
|
||||
ὧ hὼ
|
||||
|
||||
ᾠ ῳ
|
||||
ᾡ hῳ
|
||||
ᾢ ῲ
|
||||
ᾣ hῲ
|
||||
ᾤ ῲ
|
||||
ᾥ hῲ
|
||||
ᾦ ῲ
|
||||
ᾧ hῲ
|
||||
|
||||
// rho
|
||||
ῤ ρ
|
||||
ῥ hρ
|
||||
|
||||
|
||||
.group α
|
||||
α a
|
||||
αι aI
|
||||
αὶ 'aI
|
||||
αυ aU
|
||||
αὺ 'aU
|
||||
αhι haI
|
||||
αhὶ 'haI
|
||||
αhυ haU
|
||||
αhὺ 'haU
|
||||
|
||||
.group β
|
||||
β b
|
||||
|
||||
|
||||
.group γ
|
||||
γ g
|
||||
γγ Ng
|
||||
|
||||
.group δ
|
||||
δ d
|
||||
|
||||
|
||||
.group ε
|
||||
ε e
|
||||
ει e:
|
||||
εὶ 'e:
|
||||
ευ eU
|
||||
εὺ 'eU
|
||||
εhι he:
|
||||
εhὶ 'he:
|
||||
εhυ heU
|
||||
εhὺ 'heU
|
||||
|
||||
.group ζ
|
||||
ζ z
|
||||
|
||||
|
||||
.group η
|
||||
η E:
|
||||
ηι EI:
|
||||
ηὶ 'EI:
|
||||
ηυ EU:
|
||||
ηὺ 'EU:
|
||||
ηhι hEI:
|
||||
ηhὶ 'hEI:
|
||||
ηhυ hEU:
|
||||
ηhὺ 'hEU:
|
||||
|
||||
.group θ
|
||||
θ T
|
||||
|
||||
|
||||
.group ι
|
||||
ι i
|
||||
|
||||
|
||||
.group ϊ
|
||||
ϊ i
|
||||
|
||||
|
||||
.group κ
|
||||
κ k
|
||||
|
||||
|
||||
.group λ
|
||||
λ l
|
||||
|
||||
|
||||
.group μ
|
||||
μ m
|
||||
|
||||
|
||||
.group ν
|
||||
ν n
|
||||
|
||||
|
||||
.group ξ
|
||||
ξ ks
|
||||
|
||||
|
||||
.group ο
|
||||
ο o
|
||||
οι oI
|
||||
οὶ 'oI
|
||||
ου u:
|
||||
οὺ 'u:
|
||||
οhι hoI
|
||||
οhὶ 'hoI
|
||||
οhυ hu:
|
||||
οhὺ 'hu:
|
||||
|
||||
.group π
|
||||
π p
|
||||
|
||||
|
||||
.group ρ
|
||||
ρ R
|
||||
|
||||
|
||||
.group ς
|
||||
ς s
|
||||
|
||||
|
||||
.group σ
|
||||
σ s
|
||||
|
||||
|
||||
.group τ
|
||||
τ t
|
||||
|
||||
|
||||
.group υ
|
||||
υ y
|
||||
υι yI
|
||||
υὶ 'yI
|
||||
υhι hyI
|
||||
υhὶ 'hyI
|
||||
|
||||
.group ϋ
|
||||
ϋ y
|
||||
ϋι yI
|
||||
ϋὶ 'yI
|
||||
ϋhι hyI
|
||||
ϋhὶ 'hyI
|
||||
|
||||
.group φ
|
||||
φ f
|
||||
|
||||
|
||||
.group χ
|
||||
χ x
|
||||
|
||||
|
||||
.group ψ
|
||||
ψ ps
|
||||
|
||||
|
||||
.group ω
|
||||
ω O:
|
||||
ωι OI:
|
||||
ωὶ 'OI:
|
||||
ωυ OU:
|
||||
ωὺ 'OU:
|
||||
ωhι hOI:
|
||||
ωhὶ 'hOI:
|
||||
ωhυ hOU:
|
||||
ωhὺ 'hOU:
|
||||
|
||||
|
||||
|
||||
.group h // dasia (rough breathing)
|
||||
h h
|
||||
|
||||
|
||||
.group
|
||||
ὰ 'a
|
||||
ᾳ aI:
|
||||
ᾲ 'aI:
|
||||
ὲ 'e
|
||||
ὴ 'E:
|
||||
ῃ EI:
|
||||
ῂ 'EI:
|
||||
ὶ 'i
|
||||
ῒ 'i
|
||||
ὸ 'o
|
||||
ὺ 'y
|
||||
ῢ 'y
|
||||
ὼ 'O:
|
||||
ῳ OI:
|
||||
ῲ 'OI:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,603 @@
|
||||
|
||||
// "hbs" is the ISO 639-3 code for Serbian/Croatian/Bosnian macrolanguage
|
||||
// This file is UTF-8 encoded
|
||||
|
||||
// Conditional rules:
|
||||
// ?1 Croatian
|
||||
// ?2 Serbian
|
||||
// ?3 Bosnian (Bosna and Hercegovina)
|
||||
// ?4 Serbian & Bosnian
|
||||
|
||||
|
||||
// Letters
|
||||
b b@
|
||||
c ts@
|
||||
č tS@
|
||||
ć tS;@2
|
||||
d d@
|
||||
dž dZ@
|
||||
đ dZ;@2
|
||||
f f@
|
||||
g g@
|
||||
h x@
|
||||
j j@2
|
||||
k k@
|
||||
l l@
|
||||
lj l^@
|
||||
m m@
|
||||
n n@
|
||||
nj n^@
|
||||
p p@
|
||||
q kv@
|
||||
r R@
|
||||
_s s@
|
||||
š S@
|
||||
t t@
|
||||
v v@
|
||||
w dvostr*uko||v@
|
||||
?2 w duplo||v@
|
||||
x iks
|
||||
y ipsilon
|
||||
z z@
|
||||
ž Z@
|
||||
|
||||
// symbols
|
||||
_?? znak // unknown symbol
|
||||
_?A slovo // unknown letter
|
||||
© 'aUtoRsk&||pr*av&
|
||||
% p'osto
|
||||
+ plus
|
||||
€ 'euRo
|
||||
?4 € 'evr*o
|
||||
@ _'at
|
||||
?2 @ tRgovatSkoi
|
||||
& _'end
|
||||
! 'usklItSnIk
|
||||
?2 ! 'uzvItSnIk
|
||||
: dv'ototSk&
|
||||
?4 : dv'ot&tSk&
|
||||
# br*'oj_
|
||||
/ kr*'oz_
|
||||
\\ b'EkslES
|
||||
^ ts'iRkumfleks
|
||||
~ t'ild&
|
||||
¤ v'alut&
|
||||
§ 'odlom&k
|
||||
µ m'ikr*o
|
||||
¶ tSl'an&k
|
||||
° st'up&n^
|
||||
?4 ° st'epen
|
||||
_" n'avodnIk
|
||||
?2 _" n'avod
|
||||
_‚ 'otvoReni||n'avodnIk
|
||||
_„ sp'uSteni||n'avodnIk
|
||||
?2 _„ z&tvoReni||n'avodnIk
|
||||
… tr*'i||t'otSke
|
||||
?4 … tr*'i||t'atSke
|
||||
† kr*'iZ
|
||||
?2 † kr-'st
|
||||
‡ dv'ostr*Uki||kr*'iZ
|
||||
?2 ‡ dv'ostRUki||kR'st
|
||||
‰ pr*'omil
|
||||
_‹ 'otvoReni||n'avodnIk
|
||||
_‘ 'otvoReni||n'avodnIk
|
||||
_’ j'ednostr*'uki||n'avodnIk
|
||||
_“ 'otvoReni||n'avodnIk
|
||||
_” z'atvoReni||n'avodnIk
|
||||
• kr*'upna||t'otSk&
|
||||
?4 • kr*'upna||t'atSk&
|
||||
_– En||ts'r-t&
|
||||
_— Em||ts'r-t&
|
||||
™ pr*'o'izvodZ&tS
|
||||
˘ br*'evis
|
||||
¨ pr*'ijegl&s
|
||||
?2 ¨ pr*'egl&s
|
||||
_« 'otvoReni||n'avodnIk
|
||||
_ pr*'ivr*emen&||ts'r-t'its&
|
||||
· p'ut&
|
||||
¸ sed'il&
|
||||
_» z'atvoReni||n'avodnIk
|
||||
® R'egistr*atsIj&
|
||||
ł l@||s&||ts'r-t'itsom
|
||||
× p'ut&
|
||||
÷ p'odijel^,eno
|
||||
?2 ÷ p'odel^,eno
|
||||
|
||||
_$ d'ol&R
|
||||
_- m'inus
|
||||
_* zvj'ezdits&
|
||||
?2 _* zv'ezdits&
|
||||
_= j'edn&ko
|
||||
_@ t'r-g'ov&tSko||'a
|
||||
?2 _@ et
|
||||
|
||||
_( 'otvoRen&||z'agr*ad&
|
||||
_) z'atvoRen&||z'agr*ad&
|
||||
_' 'apostr*of
|
||||
_, z'aRez
|
||||
?2 _, z'apeta
|
||||
_- ts'r-t'its&
|
||||
_. t'otSk&
|
||||
?4 _. t'atSk&
|
||||
_; t'otSk&z,a*Ez
|
||||
?2 _; t'atSk&z,apeta
|
||||
?3 _; t'atSk&z,a*Ez
|
||||
_< m'an^i||'od
|
||||
_= j'edn&ko
|
||||
_> v'etSi||'od
|
||||
_? 'upitnIk
|
||||
_& t'r-g'ov&tSko||'i
|
||||
_[ 'otvoRen&||'ugl&t&
|
||||
?2 _[ 'otvoRen&||'ugl&st&
|
||||
_] z'atvoRen&||'ugl&t&
|
||||
?2 _] z'atvoRen&||'ugl&st&
|
||||
__ ts'r-t&
|
||||
_` gr*'avis
|
||||
_{ 'otvoRen&||v'ititS&st&
|
||||
_| 'okomits&
|
||||
?2 _| 'uspR&vn&
|
||||
_} z'atvoRen&||v'ititS&st&
|
||||
|
||||
|
||||
// Numbers
|
||||
_0 n'ul&
|
||||
_1 j'ed&n
|
||||
_2 dv'a
|
||||
_2f dv'ije
|
||||
?2 _2f dv'E
|
||||
_3 tr*'i
|
||||
_4 tS'EtIRI
|
||||
_5 p'Et
|
||||
_6 S'Est
|
||||
_7 s'Ed&m
|
||||
_8 'os&m
|
||||
_9 d'EvEt
|
||||
_10 d'EsEt
|
||||
_11 j'ed&naIst
|
||||
_12 dv'anaIst
|
||||
_13 tr*'inaIst
|
||||
_14 tS'Etr-naIst
|
||||
_15 p'EtnaIst
|
||||
_16 S'EsnaIst
|
||||
_17 s'Ed&mnaIst
|
||||
_18 'os&mnaIst
|
||||
_19 d'EvEtnaIst
|
||||
?2 _11 j'ed&naEst
|
||||
?2 _12 dv'anaEst
|
||||
?2 _13 tr*'inaEst
|
||||
?2 _14 tS'Etr-naEst
|
||||
?2 _15 p'EtnaEst
|
||||
?2 _16 S'EsnaEst
|
||||
?2 _17 s'Ed&mnaEst
|
||||
?2 _18 'os&mnaEst
|
||||
?2 _19 d'EvEtnaEst
|
||||
_2X dv'adEsEt
|
||||
_3X tr*'idEsEt
|
||||
_4X tS'Etr-dEsEt
|
||||
_5X p'EdEsEt
|
||||
_6X S'EzdEsEt
|
||||
_7X s'Ed&mdEsEt
|
||||
_8X 'os&mdEsEt
|
||||
_9X d'EvEdEsEt
|
||||
_0C st'o_
|
||||
?2 _0C st'O_
|
||||
_2C dvj'est'o
|
||||
?2 _2C dv'est'a_
|
||||
?2 _3C tR'ist'a_
|
||||
?2 _4C tSetR'ist'o_
|
||||
_6C S'Est'o
|
||||
_0M1 t'isUtS;&
|
||||
_0MA1 t'isUtS;e
|
||||
_1M1 t'isUtS;U
|
||||
?2 _0M1 h'il^,&d&
|
||||
?2 _0MA1 h'il^,&de
|
||||
?2 _1M1 h'il^,&dU
|
||||
?2 _1MA1 jedn&||hiL&d&
|
||||
?3 _0M1 h'il^ad&
|
||||
?3 _0MA1 h'il^ade
|
||||
?3 _1M1 h'il^adU
|
||||
_0M2 m'ilijUna
|
||||
_0MA2 m'ilijUna
|
||||
_1M2 m'ilijUn
|
||||
?4 _0M2 m'ilijOna
|
||||
?4 _0MA2 m'ilijOna
|
||||
?4 _1M2 m'ilijOn
|
||||
_0M3 m'iliaRdI
|
||||
_0MA3 m'iliaRde
|
||||
_1M3 m'iliaRdU
|
||||
?2 _0M3 milijArdI
|
||||
?2 _0MA3 milijArde
|
||||
?2 _1M3 milijArdU
|
||||
_0M4 b'ilijUna
|
||||
_1M4 b'ilijUn
|
||||
?4 _0M4 b'ilijOna
|
||||
?4 _1M4 b'ilijOn
|
||||
_dpt _:z'a*Ez_
|
||||
_roman r*'imsko
|
||||
|
||||
// not Roman numerals
|
||||
// vi vi // not needed if only all-capitals are spoken as Roman numbers
|
||||
|
||||
|
||||
// Abbreviations
|
||||
aaa $abbrev
|
||||
aac $abbrev
|
||||
ab $only $abbrev $capital
|
||||
abc $abbrev
|
||||
abk $only $abbrev
|
||||
abs $abbrev
|
||||
acc $only $abbrev
|
||||
acf $only $abbrev
|
||||
acfm $abbrev
|
||||
acg $only $abbrev
|
||||
acgm $abbrev
|
||||
acl $only $abbrev
|
||||
acm $only $abbrev
|
||||
acw $only $abbrev
|
||||
add $only $abbrev
|
||||
adn $only $abbrev
|
||||
adp $only $abbrev
|
||||
adsl $abbrev
|
||||
agm $abbrev
|
||||
ahk $only $abbrev
|
||||
aif $only $abbrev
|
||||
aip $only $abbrev
|
||||
alg $only $abbrev
|
||||
alm $only $abbrev
|
||||
amd $only $abbrev
|
||||
amf $only $abbrev
|
||||
amg $only $abbrev
|
||||
aph $only $abbrev
|
||||
apj $only $abbrev
|
||||
apl $only $abbrev
|
||||
apm $only $abbrev
|
||||
app $only $abbrev
|
||||
arg $only $abbrev
|
||||
arj $only $abbrev
|
||||
asc $only $abbrev
|
||||
asf $only $abbrev
|
||||
asm $only $abbrev
|
||||
asn $only $abbrev
|
||||
asp $only $abbrev
|
||||
asx $only $abbrev
|
||||
atf $only $abbrev
|
||||
atp $abbrev
|
||||
av $only $abbrev
|
||||
avg $abbrev
|
||||
avr $only $abbrev
|
||||
awb $only $abbrev
|
||||
awt $only $abbrev
|
||||
brf $abbrev
|
||||
brl $abbrev
|
||||
brx $abbrev
|
||||
cca $abbrev
|
||||
cda $only $abbrev
|
||||
cdr $abbrev
|
||||
cdrw $abbrev
|
||||
cgi $abbrev
|
||||
clr $abbrev
|
||||
cpe $only $abbrev
|
||||
cpu $only $abbrev
|
||||
cr $only $abbrev
|
||||
crt $only $abbrev
|
||||
ctrl $abbrev
|
||||
daa $only $abbrev
|
||||
doo $abbrev
|
||||
dox $only $abbrev
|
||||
dqy $abbrev
|
||||
dsr $only $abbrev
|
||||
ear $only $abbrev
|
||||
ecdl $only $abbrev
|
||||
ecp $only $abbrev
|
||||
ecs $only $abbrev
|
||||
elm $only $abbrev
|
||||
emf $only $abbrev
|
||||
emh $only $abbrev
|
||||
eml $only $abbrev
|
||||
ems $only $abbrev
|
||||
epf $only $abbrev
|
||||
eq $only $abbrev
|
||||
esc $only $abbrev
|
||||
etd $only $abbrev
|
||||
eu $only $abbrev
|
||||
eur $only $abbrev
|
||||
exc $only $abbrev
|
||||
faq $abbrev
|
||||
fbi $abbrev
|
||||
ffa $only $abbrev
|
||||
fr $only $abbrev
|
||||
frm $abbrev
|
||||
frt $only $abbrev
|
||||
frx $abbrev
|
||||
gho $only $abbrev
|
||||
gr $only $abbrev
|
||||
grr $abbrev
|
||||
grrr $abbrev
|
||||
grp $abbrev
|
||||
grps $abbrev
|
||||
grs $only $abbrev
|
||||
grx $only $abbrev
|
||||
gui $only $abbrev
|
||||
hho $abbrev
|
||||
hr $only $abbrev
|
||||
hrk $only $abbrev
|
||||
hrt $only $abbrev $capital
|
||||
hrv $only $abbrev
|
||||
hta $only $abbrev
|
||||
hzzo $abbrev
|
||||
ibm $abbrev
|
||||
icc $only $abbrev
|
||||
icm $only $abbrev
|
||||
ics $only $abbrev
|
||||
idb $only $abbrev
|
||||
idc $only $abbrev
|
||||
idm $only $abbrev
|
||||
iff $only $abbrev
|
||||
ifu $only $abbrev
|
||||
ilk $only $abbrev
|
||||
img $only $abbrev
|
||||
iml $only $abbrev
|
||||
isdn $abbrev
|
||||
isl $only $abbrev
|
||||
isp $only $abbrev
|
||||
iss $only $abbrev
|
||||
iq $only $abbrev
|
||||
iqy $only $abbrev
|
||||
itw $only $abbrev
|
||||
itz $only $abbrev
|
||||
ivf $only $abbrev
|
||||
jpi $only $abbrev
|
||||
jrr $abbrev
|
||||
jse $only $abbrev
|
||||
lha $abbrev
|
||||
liq $only $abbrev
|
||||
maq $only $abbrev
|
||||
maw $only $abbrev
|
||||
mda $only $abbrev
|
||||
mde $only $abbrev
|
||||
mdi $only $abbrev
|
||||
mga $only $abbrev
|
||||
mge $only $abbrev
|
||||
mgi $only $abbrev
|
||||
mpa $only $abbrev
|
||||
mpe $only $abbrev
|
||||
mpr $only $abbrev
|
||||
msi $only $abbrev
|
||||
mup $abbrev $capital
|
||||
nco $only $abbrev
|
||||
nfo $only $abbrev
|
||||
nji $only $abbrev
|
||||
nr $only $abbrev
|
||||
nra $only $abbrev
|
||||
nrb $only $abbrev
|
||||
nrc $only $abbrev
|
||||
nre $only $abbrev
|
||||
nrf $only $abbrev
|
||||
nrg $abbrev
|
||||
nrh $only $abbrev
|
||||
nri $only $abbrev
|
||||
nrm $only $abbrev
|
||||
nrq $only $abbrev
|
||||
nrs $only $abbrev
|
||||
nru $only $abbrev
|
||||
nrw $only $abbrev
|
||||
nsa $only $abbrev
|
||||
nsi $only $abbrev
|
||||
nvda $abbrev
|
||||
obd $only $abbrev
|
||||
obj $only $abbrev
|
||||
obt $only $abbrev
|
||||
obz $only $abbrev
|
||||
ocr $only $abbrev
|
||||
ocx $only $abbrev
|
||||
oem $abbrev
|
||||
off $only $abbrev
|
||||
oft $only $abbrev
|
||||
ofx $only $abbrev
|
||||
ogc $only $abbrev
|
||||
ogg $only $abbrev
|
||||
ogl $only $abbrev
|
||||
omw $abbrev
|
||||
oqy $only $abbrev
|
||||
os $only $abbrev $capital
|
||||
oss $only $abbrev
|
||||
otf $only $abbrev
|
||||
otm $only $abbrev
|
||||
pda $abbrev
|
||||
pdi $only $abbrev
|
||||
pgi $only $abbrev
|
||||
pho $only $abbrev
|
||||
pko $only $abbrev
|
||||
pma $only $abbrev
|
||||
ppa $only $abbrev
|
||||
pr $only $abbrev
|
||||
prf $only $abbrev
|
||||
prg $only $abbrev
|
||||
prn $abbrev
|
||||
prt $only $abbrev
|
||||
qbr $abbrev
|
||||
qpr $abbrev
|
||||
raw $only $abbrev
|
||||
rb $abbrev
|
||||
rba $abbrev
|
||||
rc $only $abbrev
|
||||
rcc $abbrev
|
||||
rcd $abbrev
|
||||
rcs $abbrev
|
||||
rd $only $abbrev
|
||||
rds $abbrev
|
||||
rgb $abbrev
|
||||
rh $only $abbrev
|
||||
rk $only $abbrev
|
||||
rm $only $abbrev
|
||||
rma $only $abbrev
|
||||
rme $only $abbrev
|
||||
rmf $only $abbrev
|
||||
rmi $only $abbrev
|
||||
rmt $only $abbrev
|
||||
rmx $abbrev
|
||||
rn $only $abbrev
|
||||
rnk $only $abbrev
|
||||
rp $only $abbrev
|
||||
rqy $only $abbrev
|
||||
rs $abbrev
|
||||
rss $abbrev
|
||||
rta $abbrev
|
||||
rtf $abbrev
|
||||
rtl $abbrev
|
||||
rttl $abbrev
|
||||
rtv $abbrev
|
||||
rw $abbrev
|
||||
rwo $only $abbrev
|
||||
rx $abbrev
|
||||
sbr $only $abbrev
|
||||
scr $only $abbrev
|
||||
sr $only $abbrev
|
||||
srd $only $abbrev
|
||||
ssa $only $abbrev
|
||||
sys $only $abbrev
|
||||
tpu $only $abbrev
|
||||
udf $only $abbrev
|
||||
udl $only $abbrev
|
||||
udt $abbrev
|
||||
uhh $abbrev
|
||||
uif $only $abbrev
|
||||
uip $only $abbrev
|
||||
url $only $abbrev
|
||||
usd $only $abbrev
|
||||
usr $only $abbrev
|
||||
uss $only $abbrev
|
||||
uu $only $abbrev
|
||||
uue $only $abbrev
|
||||
uup $only $abbrev
|
||||
uxd $only $abbrev
|
||||
vba $only $abbrev
|
||||
vbe $only $abbrev
|
||||
vbr $abbrev
|
||||
vga $abbrev
|
||||
wax $only $abbrev
|
||||
wbr $abbrev
|
||||
wiz $only $abbrev
|
||||
wma $only $abbrev
|
||||
wri $only $abbrev
|
||||
wta $abbrev
|
||||
xam $only $abbrev
|
||||
xba $only $abbrev
|
||||
xiw $only $abbrev
|
||||
xla $only $abbrev
|
||||
xpa $only $abbrev
|
||||
xpi $only $abbrev
|
||||
xsi $only $abbrev
|
||||
xxa $only $abbrev
|
||||
xxe $only $abbrev
|
||||
xy $abbrev
|
||||
xyz $abbrev
|
||||
yu $only $abbrev
|
||||
zaa $only $abbrev
|
||||
zoo $only $abbrev
|
||||
|
||||
br $dot $abbrev
|
||||
dr $dot $abbrev
|
||||
mr $dot $abbrev
|
||||
mrs $dot $abbrev
|
||||
itd $dot $abbrev
|
||||
npr $dot $abbrev
|
||||
str $only $dot $abbrev
|
||||
|
||||
inc $dot
|
||||
prof $dot
|
||||
sl $dot
|
||||
tj $dot
|
||||
tzv $dot
|
||||
|
||||
// Demonstratives
|
||||
tko $u+
|
||||
?4 šta $u+
|
||||
što $u+
|
||||
koga $pause
|
||||
čega $pause
|
||||
|
||||
|
||||
// Pronouns
|
||||
|
||||
|
||||
// Prepositions
|
||||
o $u $brk
|
||||
u $u $brk
|
||||
s s_ $brk
|
||||
|
||||
|
||||
// Conjunctions
|
||||
a $u $pause // and
|
||||
i $u $pause // and
|
||||
ali $pause // but
|
||||
nego $pause // but
|
||||
ili $u $pause // or
|
||||
|
||||
|
||||
|
||||
|
||||
// Auxillary verbs
|
||||
li $u // question
|
||||
|
||||
sam $u // to be, short form
|
||||
si $u
|
||||
je $u
|
||||
smo $u
|
||||
ste $u
|
||||
su $u
|
||||
|
||||
bio $u // to be, past tense
|
||||
bila $u
|
||||
bilo $u
|
||||
bili $u
|
||||
|
||||
nisam $u+ // to be, negative
|
||||
nisi $u+
|
||||
nije $u+
|
||||
nismo $u+
|
||||
niste $u+
|
||||
nisu $u+
|
||||
|
||||
imam $u+ // to have
|
||||
imaš $u+
|
||||
ima $u+
|
||||
imamo $u+
|
||||
imate $u+
|
||||
imaju $u+
|
||||
|
||||
nemam $u+ // to have, negative
|
||||
nemaš $u+
|
||||
nema $u+
|
||||
nemamo $u+
|
||||
nemate $u+
|
||||
nemaju $u+
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// treat as letters if at the end of the clause
|
||||
a a $atend // letter-a
|
||||
i i $atend // letter-i
|
||||
o o $atend // letter-o
|
||||
s s@ $atend
|
||||
u u $atend
|
||||
|
||||
|
||||
// Exceptions
|
||||
|
||||
ctrl tsontRo:l
|
||||
control tsontRo:l
|
||||
docx d'ots||'iks
|
||||
jpeg j@2||p'eg
|
||||
macx m'ats||'iks
|
||||
potx p'ot||'iks
|
||||
sisx s'is||'iks
|
||||
start st'aRt
|
||||
utf u||te||ef
|
||||
|
||||
?2 ra R&
|
||||
?2 re Re
|
||||
?2 ar &R
|
||||
?2 er eR
|
||||
Regular → Executable
+15
-7
@@ -1,9 +1,15 @@
|
||||
// translation rules for Croatian
|
||||
|
||||
// "hbs" is the ISO 639-3 code for Serbian/Croatian/Bosnian macrolanguage
|
||||
// This file is UTF-8 encoded
|
||||
|
||||
//The next line gives a voice which is used to find a phoneme table to use to compile this dictionary
|
||||
//voice=hr
|
||||
|
||||
// Conditional rules:
|
||||
// ?1 Croatian
|
||||
// ?2 Bosnian (Bosna and Hercegovina)
|
||||
// ?2 Serbian
|
||||
// ?3 Bosnian (Bosna and Hercegovina)
|
||||
// ?4 Serbian & Bosnian
|
||||
|
||||
.group a
|
||||
a a
|
||||
@@ -34,7 +40,8 @@
|
||||
e E
|
||||
j) e e
|
||||
e (j e
|
||||
._) exe %ekse // filetype
|
||||
_) exe %ekse // filetype
|
||||
?2 _) exe %eikse // filetype
|
||||
|
||||
.group f
|
||||
f f
|
||||
@@ -82,11 +89,12 @@
|
||||
.group q
|
||||
q k
|
||||
qu kv
|
||||
?2 qu ku
|
||||
|
||||
.group r
|
||||
r R
|
||||
A) r (A R
|
||||
K) r (A @-*
|
||||
K) r (A r* // this phoneme expands to [@-*]
|
||||
rr R
|
||||
r (_ R
|
||||
|
||||
@@ -140,7 +148,7 @@
|
||||
$ d'ol&R
|
||||
|
||||
. totSk&
|
||||
?2 . tatSk&
|
||||
?4 . tatSk&
|
||||
. (. _:
|
||||
\.) .
|
||||
|
||||
@@ -179,7 +187,7 @@
|
||||
μ m'i
|
||||
ν n'i
|
||||
ξ ks'i
|
||||
ο 'omIk@-*on_
|
||||
ο 'omIkr*on_
|
||||
|
||||
.group 0xcf // Greek letters
|
||||
|
||||
@@ -195,6 +203,6 @@
|
||||
ψ ps'i
|
||||
ω 'omeg&
|
||||
ώ 'omeg&||t'onos
|
||||
ό 'omIk@-*on||t'onos
|
||||
ό 'omIkr*on||t'onos
|
||||
|
||||
|
||||
@@ -1,336 +0,0 @@
|
||||
// Translations for Hungarian words
|
||||
// This file is UTF-8 encoded.
|
||||
|
||||
// Conditional rules:
|
||||
// ?1 speak "i" as Roman number
|
||||
|
||||
|
||||
// Numbers
|
||||
|
||||
_0 nullA
|
||||
_1 EJ
|
||||
_2 kEttY:
|
||||
_3 ha:R2om
|
||||
_4 ne:J
|
||||
_5 Yt
|
||||
_6 hAt
|
||||
_7 he:t
|
||||
_8 n^olts
|
||||
_9 kilEnts
|
||||
_10 ti:z
|
||||
_1X tizEn
|
||||
_20 hu:s
|
||||
_2X huson
|
||||
_3X hAR2mints
|
||||
_4X nEJvEn
|
||||
_5X YtvEn
|
||||
_6X hAtvAn
|
||||
_7X hEtvEn
|
||||
_8X n^oltsvAn
|
||||
_9X kilEntsvEn
|
||||
_0C sa:z
|
||||
_1C sa:z
|
||||
|
||||
_0M1 EzER2
|
||||
_1M1 EzER2
|
||||
_2M1 ke:tEzER2
|
||||
_0M2 millio:
|
||||
_1M2 millio:
|
||||
_2M2 ke:tmillio:
|
||||
_0M3 millia:R2d
|
||||
_1M3 millia:R2d
|
||||
_1M3 ke:tmillia:R2d
|
||||
_0M4 billio:
|
||||
_1M4 billio:
|
||||
_2M4 ke:tbillio:
|
||||
_dpt ||_vEss2Y:_
|
||||
|
||||
|
||||
// Abbreviations
|
||||
km kilo:me:tER2
|
||||
mm milime:tER2
|
||||
|
||||
a.m An^n^i||m'int $dot
|
||||
dr doktoR2 $dot
|
||||
gpu $abbrev
|
||||
id idY:SEb: $dot
|
||||
ill illEdvE $dot
|
||||
ifj ifjAb: $dot
|
||||
mta $abbrev
|
||||
pl pe:lda:ul $dot
|
||||
stb SAtYb:i $dot
|
||||
u.n u:JnEvEzEt: $dot
|
||||
ú.n u:JnEvEzEt: $dot
|
||||
vö v'EZd||_'Yss2E
|
||||
|
||||
?1 i EJ $abbrev // option for Roman number
|
||||
|
||||
|
||||
// Articles
|
||||
a $u // the
|
||||
az $u
|
||||
aki $u+ // that
|
||||
|
||||
ez $u+ // this
|
||||
|
||||
|
||||
// Pronouns
|
||||
|
||||
// If these are only used for emphasis then then don't need $u
|
||||
// én $u
|
||||
// te $u
|
||||
// ő $u
|
||||
// mi $u
|
||||
// ti $u
|
||||
// ők $u
|
||||
// maga $u
|
||||
// maguk $u
|
||||
|
||||
|
||||
// Conjunctions
|
||||
és $u $strend2 // and
|
||||
de $u+ $pause // but
|
||||
vagy $u+ $pause // or
|
||||
|
||||
mert $u $pause // because
|
||||
miatt $u // because
|
||||
bár $u $pause // although
|
||||
habár $u $pause // although
|
||||
|
||||
ha $u $pause // if
|
||||
noha $u $pause // even thought
|
||||
|
||||
|
||||
// Prepositions etc.
|
||||
|
||||
|
||||
// Negative
|
||||
nem $alt2 $strend
|
||||
ne $u+
|
||||
|
||||
e $u // "-e" question
|
||||
e $atend // stressed at end of sentence
|
||||
|
||||
// Unstressed adverbs prepositions etc.
|
||||
néhány $u+
|
||||
is $u // also
|
||||
|
||||
elöl $u // in front of
|
||||
elől $u
|
||||
elé $u
|
||||
előtt $u
|
||||
|
||||
mögül $u // behind
|
||||
mögött $u
|
||||
mögé $u
|
||||
|
||||
kívül $u
|
||||
után $u // after
|
||||
|
||||
alól $u
|
||||
alá $u
|
||||
alatt $u // below
|
||||
|
||||
felől $u // above
|
||||
felé $u
|
||||
fölé $u
|
||||
felett $u // above
|
||||
fölött $u
|
||||
|
||||
mellől $u // besides
|
||||
mellé $u
|
||||
mellett $u
|
||||
|
||||
közül $u
|
||||
közé $u
|
||||
között $u
|
||||
|
||||
an $u // so many persons
|
||||
as $u
|
||||
ba $u // into
|
||||
ban $u // in
|
||||
be $u
|
||||
ben $u
|
||||
ból $u // from inside
|
||||
ből $u
|
||||
e $u // in query, his/her
|
||||
ei $u // his her multiole
|
||||
en $u
|
||||
es $u
|
||||
hez $u
|
||||
hoz $u // to
|
||||
höz $u
|
||||
ig $u // up to
|
||||
ik $u // -th
|
||||
nak $u // of, him/her
|
||||
nek $u
|
||||
nál $u // by
|
||||
nél $u
|
||||
on $u // on
|
||||
en $u // on
|
||||
os $u
|
||||
ra $u // onto
|
||||
re $u
|
||||
ról $u // from top of, about
|
||||
röl $u
|
||||
ről $u
|
||||
szer $u
|
||||
szor $u // times
|
||||
szór $u
|
||||
ször $u
|
||||
tól $u // from
|
||||
töl $u
|
||||
től $u
|
||||
val $u // with
|
||||
vel $u
|
||||
án $u // on that day
|
||||
é $u // his, her
|
||||
éi $u // his, her multiple
|
||||
én $u
|
||||
ón $u
|
||||
ós $u
|
||||
ön $u
|
||||
ös $u
|
||||
|
||||
ellen $u // against
|
||||
elé $u // before
|
||||
óta $u // since
|
||||
|
||||
sok $u // many
|
||||
kevés $u // few
|
||||
se $u // neither
|
||||
sem $u // nor
|
||||
|
||||
|
||||
be $u //into
|
||||
ki $u // out of
|
||||
le $u // down
|
||||
fel $u // up
|
||||
föl $u // up
|
||||
meg $u // finish an action
|
||||
el $u // away
|
||||
át $u //through
|
||||
rá $u //onto
|
||||
ide $u // here
|
||||
oda $u // there
|
||||
szét $u //apart
|
||||
össze $u //connect with
|
||||
vissza $u //back
|
||||
ellen $u //against
|
||||
|
||||
volna $u // would
|
||||
részén $u //on ... part of
|
||||
|
||||
nélkül $u // without
|
||||
folytán $u // because of
|
||||
úgy $u // like that
|
||||
így $u // like this
|
||||
egyaránt $u // alike
|
||||
minden $u // all
|
||||
részben $u // partly
|
||||
|
||||
egyik $u // one of
|
||||
másik $u // the other
|
||||
|
||||
|
||||
// word pairs
|
||||
|
||||
(hogy a) h,oJ,A
|
||||
(hogy az) h,oJ,Az
|
||||
(hogy aki) h,oJ,Aki
|
||||
|
||||
|
||||
// Verbs
|
||||
|
||||
vagyok $u // to be, present
|
||||
vagy $u
|
||||
van $u
|
||||
vagyunk $u
|
||||
vagytok $u
|
||||
vannak $u
|
||||
|
||||
voltam $u // to be, past
|
||||
voltál $u
|
||||
volt $u
|
||||
voltunk $u
|
||||
voltatok $u
|
||||
voltak $u
|
||||
|
||||
leszek $u // to be, future
|
||||
leszel $u
|
||||
lesz $u
|
||||
leszünk $u
|
||||
lesztek $u
|
||||
lesznek $u
|
||||
|
||||
|
||||
kell $u+ // should
|
||||
|
||||
szabad $u+ // can (allowed)
|
||||
|
||||
fog $u+ // going to
|
||||
fogok $u+
|
||||
fogsz $u+
|
||||
fogunk $u+
|
||||
fogtok $u+
|
||||
fognak $u+
|
||||
|
||||
tud $u+ // can
|
||||
tudok $u+
|
||||
tudsz $u+
|
||||
tudunk $u+
|
||||
tudtok $u+
|
||||
tudnak $u+
|
||||
|
||||
// Letters
|
||||
_a A:
|
||||
a A: $atend // letter "a"
|
||||
b be:
|
||||
c tse:
|
||||
d de:
|
||||
_e E
|
||||
f Eff
|
||||
g ge:
|
||||
h ha:
|
||||
j je:
|
||||
k ka:
|
||||
l Ell
|
||||
m Emm
|
||||
n Enn
|
||||
p pe:
|
||||
q ku
|
||||
r ERR
|
||||
s S_
|
||||
s ES $atend
|
||||
_s ES
|
||||
v ve:
|
||||
w duplAve:
|
||||
x iks
|
||||
y ipsilon
|
||||
z ze:
|
||||
|
||||
_é e:
|
||||
é $atend
|
||||
|
||||
cs tSe:
|
||||
dz dze:
|
||||
dzs dZe:
|
||||
sz Es
|
||||
zs Ze:
|
||||
gy Je:
|
||||
ty ce:
|
||||
ly Ellipsilon
|
||||
ny En^
|
||||
|
||||
_. pont
|
||||
Ft foR2int
|
||||
|
||||
|
||||
|
||||
// Main Exceptions List
|
||||
//=====================
|
||||
|
||||
nato na:to:
|
||||
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
name bosnian
|
||||
language bs
|
||||
phonemes hr
|
||||
dictionary hr
|
||||
dictionary hbs
|
||||
gender male
|
||||
|
||||
pitch 81 120
|
||||
|
||||
Executable
+8
@@ -0,0 +1,8 @@
|
||||
name greek-ancient
|
||||
language grc
|
||||
gender male
|
||||
|
||||
stressLength 170 170 190 190 0 0 230 240
|
||||
dictrules 1
|
||||
words 1
|
||||
|
||||
@@ -1,7 +1,10 @@
|
||||
name croatian
|
||||
language hr
|
||||
language hbs
|
||||
gender male
|
||||
|
||||
dictionary hbs
|
||||
|
||||
// attributes towards !variant3
|
||||
pitch 81 120
|
||||
formant 0 100 100 100
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
name serbian
|
||||
language sr
|
||||
gender male
|
||||
dictionary hbs
|
||||
|
||||
// attributes towards !variant3 pitch 80 120
|
||||
formant 0 100 100 100
|
||||
formant 1 97 97 100
|
||||
formant 2 97 97 100
|
||||
formant 3 97 102 100
|
||||
formant 4 97 102 100
|
||||
formant 5 97 102 100
|
||||
|
||||
stressAdd 10 10 0 0 0 0 -30 -30
|
||||
@@ -0,0 +1,29 @@
|
||||
name Mandarin test
|
||||
language zh
|
||||
gender male
|
||||
words 1
|
||||
|
||||
//for some dialects
|
||||
|
||||
//[en]: replace ng with n
|
||||
//[zh]: 无后鼻音,ng读成n
|
||||
//replace 0 N n
|
||||
|
||||
//[en]: replace rfx consonants
|
||||
//[zh]: 无卷舌音,r读成l或z,er读成e
|
||||
//replace 0 ts.h tsh
|
||||
//replace 0 ts. ts
|
||||
//replace 0 s. s
|
||||
//replace 0 i. i[
|
||||
//replace 0 z. l
|
||||
//replace 0 z. z
|
||||
//replace 0 @r @
|
||||
|
||||
//[en]: replace beginning n or l
|
||||
//[zh]: 不分nl,n读成l或l读成n
|
||||
//replace 2 n l
|
||||
//replace 2 l n
|
||||
|
||||
//[en]: replace beginning w with v
|
||||
//[zh]: w读成v
|
||||
//replace 0 w v
|
||||
+79
-39
@@ -21,9 +21,9 @@
|
||||
pl 15 107
|
||||
sk 29 125
|
||||
cs 6 125
|
||||
hr 19 129
|
||||
mk 3 130
|
||||
sr 2 129
|
||||
hr 20 130
|
||||
mk 3 131
|
||||
sr 18 130
|
||||
ru 38 126
|
||||
it 17 118
|
||||
la 21 114
|
||||
@@ -95,6 +95,7 @@ d/d_ [d] base
|
||||
[d;] ro
|
||||
[d] el
|
||||
[d] sw
|
||||
d/d_dnt [d] sr
|
||||
d/dr [*] base
|
||||
[d] base
|
||||
[d[] base
|
||||
@@ -137,6 +138,8 @@ dzh/dzh [dZ] base
|
||||
[dz;] base
|
||||
[J] hi
|
||||
[dZ;] mk
|
||||
[dZ] sr
|
||||
[dZ;] sr
|
||||
[dZ;] ru
|
||||
dzh/dzh_ [dZ] base
|
||||
[dZ;] base
|
||||
@@ -197,6 +200,42 @@ g/g_ [g] base
|
||||
g/xg [g] base
|
||||
[g] cy
|
||||
[g] es
|
||||
h/h_ [h] base
|
||||
[h] fi
|
||||
[H] hi
|
||||
[h] hi
|
||||
[<h>] la
|
||||
h/h@ [h] base
|
||||
[h] fi
|
||||
[H] hi
|
||||
[h] hi
|
||||
[th] hi
|
||||
[h] sr
|
||||
[<h>] la
|
||||
h/ha [h] base
|
||||
[h] fi
|
||||
[H] hi
|
||||
[h] hi
|
||||
[<h>] la
|
||||
h/he [h] base
|
||||
[h] fi
|
||||
[H] hi
|
||||
[h] hi
|
||||
[<h>] la
|
||||
h/hi [h] base
|
||||
[h] fi
|
||||
[H] hi
|
||||
[h] hi
|
||||
[<h>] la
|
||||
h/ho [h] base
|
||||
[H] hi
|
||||
[h] hi
|
||||
[<h>] la
|
||||
h/hu [h] base
|
||||
[H] hi
|
||||
[h] hi
|
||||
[<h>] la
|
||||
h/hu_fi [h] fi
|
||||
j2/_j2 [;] base
|
||||
j2/j2@ [(@)] base
|
||||
j2/j2a [(a)] base
|
||||
@@ -302,10 +341,12 @@ l/xl [(@)] base
|
||||
[(o)] base
|
||||
[(u)] base
|
||||
m/_m [m] base
|
||||
[m] sr
|
||||
[m;] ru
|
||||
[m;] ro
|
||||
[m] zh
|
||||
m/m_ [m] base
|
||||
[m] sr
|
||||
[m;] ru
|
||||
[m;] ro
|
||||
m/m@ [(@)] base
|
||||
@@ -314,18 +355,24 @@ m/ma [(a)] base
|
||||
m/me [(e)] base
|
||||
m/mi [(i)] base
|
||||
m/mj [m] base
|
||||
[m] sr
|
||||
[m;] ru
|
||||
[m;] ro
|
||||
m/mo [(o)] base
|
||||
m/m_sr.wav [m] sr
|
||||
m/mu [(u)] base
|
||||
n^/_n^ [n^] base
|
||||
[n^] sr
|
||||
n^/n^_ [n^] base
|
||||
[n^] sr
|
||||
n^/n^@ [(@)] base
|
||||
n^/n^#_ [n^#] is
|
||||
n/_n [n] base
|
||||
[n] sr
|
||||
[n;] ro
|
||||
[n] zh
|
||||
n/n_ [n] base
|
||||
[n] sr
|
||||
[n;] ro
|
||||
[n] zh
|
||||
n/n@ [(@)] base
|
||||
@@ -342,12 +389,18 @@ nn/inn [(i)] base
|
||||
n/nj [n] base
|
||||
[n.] base
|
||||
[n^] base
|
||||
[n] sr
|
||||
[n^] sr
|
||||
[n;] ro
|
||||
n^/nj_sr.wav [N] sr
|
||||
[n^] sr
|
||||
nn/_nn [N] base
|
||||
[N] en
|
||||
[N] sr
|
||||
[N] zh
|
||||
nn/nn_ [N] base
|
||||
[N] en
|
||||
[N] sr
|
||||
[N] zh
|
||||
nn/nn@ [(@)] base
|
||||
nn/nn#_ [N#] is
|
||||
@@ -355,12 +408,15 @@ nn/nna [(a)] base
|
||||
nn/nne [(e)] base
|
||||
nn/nni [(i)] base
|
||||
nn/nnj [N] base
|
||||
[N] sr
|
||||
nn/nno [(o)] base
|
||||
nn/nnu [(u)] base
|
||||
n^/n^o [(o)] base
|
||||
n/no [(o)] base
|
||||
n/_nr [n.] base
|
||||
n/nr_ [n.] base
|
||||
n/n_sr.wav [N] sr
|
||||
[n] sr
|
||||
n^/n^u [(u)] base
|
||||
n/nu [(u)] base
|
||||
r2/_r2 [r-] base
|
||||
@@ -382,12 +438,18 @@ r3/r_i [(i)] base
|
||||
r3/r_n [r/] base
|
||||
[r/] ru
|
||||
r3/r_o [(o)] base
|
||||
r3/r_sr.wav [R] sr
|
||||
[r*] sr
|
||||
[r-] sr
|
||||
r3/r_trill [R2] base
|
||||
[R3] base
|
||||
[r] af
|
||||
[r] cy
|
||||
[r] nl
|
||||
[R] sk
|
||||
[R] sr
|
||||
[r*] sr
|
||||
[r-] sr
|
||||
[x] pt
|
||||
r3/r_trill2 [R] base
|
||||
[R] hr
|
||||
@@ -467,6 +529,8 @@ r/xr [(@)] base
|
||||
[(u)] base
|
||||
ufric/ch [C] base
|
||||
[C2] de
|
||||
ufric/ch_sr [h] sr
|
||||
[x] sr
|
||||
ufric/f [f] base
|
||||
[pF] de
|
||||
[f;] ro
|
||||
@@ -474,41 +538,6 @@ ufric/f [f] base
|
||||
[f] zh
|
||||
ufric/f_ [f] base
|
||||
[f;] ro
|
||||
ufric/h_ [h] base
|
||||
[h] fi
|
||||
[H] hi
|
||||
[h] hi
|
||||
[<h>] la
|
||||
ufric/h@ [h] base
|
||||
[h] fi
|
||||
[H] hi
|
||||
[h] hi
|
||||
[th] hi
|
||||
[<h>] la
|
||||
ufric/ha [h] base
|
||||
[h] fi
|
||||
[H] hi
|
||||
[h] hi
|
||||
[<h>] la
|
||||
ufric/he [h] base
|
||||
[h] fi
|
||||
[H] hi
|
||||
[h] hi
|
||||
[<h>] la
|
||||
ufric/hi [h] base
|
||||
[h] fi
|
||||
[H] hi
|
||||
[h] hi
|
||||
[<h>] la
|
||||
ufric/ho [h] base
|
||||
[H] hi
|
||||
[h] hi
|
||||
[<h>] la
|
||||
ufric/hu [h] base
|
||||
[H] hi
|
||||
[h] hi
|
||||
[<h>] la
|
||||
ufric/hu_fi [h] fi
|
||||
ufric/ll [L] base
|
||||
[l#] is
|
||||
ufric/s [s] base
|
||||
@@ -539,6 +568,9 @@ ufric/sh_pzd [S;] base
|
||||
ufric/sh_pzd_ [S;] base
|
||||
[Z;] base
|
||||
ufric/sh_rfx [s.] base
|
||||
ufric/sh_sr.wav [S] sr
|
||||
[Z] sr
|
||||
[dZ] sr
|
||||
ufric/s_pzd [s;] base
|
||||
[z;] base
|
||||
[s;] ro
|
||||
@@ -554,6 +586,8 @@ ufric/x2 [x2] af
|
||||
[x2] nl
|
||||
[x2] pt
|
||||
ufric/x_hr [x] hr
|
||||
ufric/x_sr [h] sr
|
||||
[x] sr
|
||||
ustop/c [c] base
|
||||
ustop/k [k] base
|
||||
[k] en
|
||||
@@ -720,6 +754,7 @@ ustop/t_short [t.] hi
|
||||
[t] el
|
||||
ustop/tsh_pzd [tS;] zh
|
||||
ustop/tsh_pzd_unasp [tS;] zh
|
||||
ustop/tsh_sr.wav [tS] sr
|
||||
ustop/ts_pzd [tS;] base
|
||||
[ts;] base
|
||||
[ch] hi
|
||||
@@ -728,8 +763,12 @@ ustop/ts_pzd_ [c] hi
|
||||
[c] hu
|
||||
ustop/ts_pzd2 [c] hi
|
||||
[c] hu
|
||||
ustop/t_sr [d] sr
|
||||
[t] sr
|
||||
ustop/ts_rfx [ts.] zh
|
||||
ustop/ts_rfx_unasp [ts.] zh
|
||||
ustop/ts_sr.wav [tS;] sr
|
||||
[dZ;] sr
|
||||
ustop/ts_unasp [ts] zh
|
||||
ustop/t_unasp [t] zh
|
||||
vdiph/0i [OI] pt
|
||||
@@ -1016,6 +1055,7 @@ voc/z_ [z] base
|
||||
voc/zh [Z] base
|
||||
[z.] base
|
||||
[R^] sk
|
||||
[Z] sr
|
||||
[Z;] ro
|
||||
voc/zh_ [Z] base
|
||||
[z.] base
|
||||
@@ -1036,6 +1076,7 @@ vowel/@ [@] base
|
||||
[@4] hi
|
||||
[@] hr
|
||||
vowel/@- [@-] base
|
||||
[r*] hr
|
||||
vowel/& [a] en_rp
|
||||
[&] fi
|
||||
[&:] hi
|
||||
@@ -1083,7 +1124,6 @@ vowel/a [a] en_n
|
||||
[a:] sk
|
||||
[A] hr
|
||||
[a] hr
|
||||
[a] sr
|
||||
[a] it
|
||||
[a:] la
|
||||
[a] zh
|
||||
|
||||
@@ -146,4 +146,12 @@ phoneme R
|
||||
lengthmod 6
|
||||
endphoneme
|
||||
|
||||
phoneme r*
|
||||
vowel nonsyllabic
|
||||
starttype (@) endtype (@)
|
||||
formants vowel/@-
|
||||
unstressed
|
||||
appendph *
|
||||
length 50
|
||||
endphoneme
|
||||
|
||||
|
||||
+7
-7
@@ -337,12 +337,12 @@ phoneme h
|
||||
vls glt apr
|
||||
length 100
|
||||
lengthmod 3
|
||||
wave ufric/h_%70 // no vowel following
|
||||
before (@) ufric/h@
|
||||
before (a) ufric/ha
|
||||
before (e) ufric/he
|
||||
before (i) ufric/hi
|
||||
before (o) ufric/hu_fi%70
|
||||
before (u) ufric/hu_fi%80
|
||||
wave h/h_%70 // no vowel following
|
||||
before (@) h/h@
|
||||
before (a) h/ha
|
||||
before (e) h/he
|
||||
before (i) h/hi
|
||||
before (o) h/hu_fi%70
|
||||
before (u) h/hu_fi%80
|
||||
endphoneme
|
||||
|
||||
|
||||
+15
-15
@@ -233,26 +233,26 @@ phoneme h // use with voiced aspirated conants [bh] [dh] etc
|
||||
vls glt apr
|
||||
length 100
|
||||
lengthmod 3
|
||||
wave ufric/h_%70 // no vowel following
|
||||
before (@) ufric/h@+35
|
||||
before (a) ufric/ha+35
|
||||
before (e) ufric/he+35
|
||||
before (i) ufric/hi+35
|
||||
before (o) ufric/ho+35
|
||||
before (u) ufric/hu+35
|
||||
wave h/h_%70 // no vowel following
|
||||
before (@) h/h@+35
|
||||
before (a) h/ha+35
|
||||
before (e) h/he+35
|
||||
before (i) h/hi+35
|
||||
before (o) h/ho+35
|
||||
before (u) h/hu+35
|
||||
endphoneme
|
||||
|
||||
phoneme H // use for full "h"
|
||||
vls glt apr
|
||||
length 100
|
||||
lengthmod 3
|
||||
wave ufric/h_%70 // no vowel following
|
||||
before (@) ufric/h@
|
||||
before (a) ufric/ha
|
||||
before (e) ufric/he
|
||||
before (i) ufric/hi
|
||||
before (o) ufric/ho
|
||||
before (u) ufric/hu
|
||||
wave h/h_%70 // no vowel following
|
||||
before (@) h/h@
|
||||
before (a) h/ha
|
||||
before (e) h/he
|
||||
before (i) h/hi
|
||||
before (o) h/ho
|
||||
before (u) h/hu
|
||||
endphoneme
|
||||
|
||||
|
||||
@@ -345,7 +345,7 @@ phoneme th // dental variant of /t/ Same as [t] for now
|
||||
vowelin f1=0 f2=1500 -300 300 f3=-100 80
|
||||
vowelout f1=0 f2=1500 -300 250 f3=-100 80 rms=20
|
||||
lengthmod 2
|
||||
wave ustop/t_hi%50+ufric/h@
|
||||
wave ustop/t_hi%50+h/h@
|
||||
switchvoicing d
|
||||
endphoneme
|
||||
|
||||
|
||||
+7
-7
@@ -149,13 +149,13 @@ phoneme <h>
|
||||
vls glt apr
|
||||
length 50
|
||||
lengthmod 3
|
||||
wave ufric/h_%70 // no vowel following
|
||||
before (@) ufric/h@
|
||||
before (a) ufric/ha
|
||||
before (e) ufric/he
|
||||
before (i) ufric/hi
|
||||
before (o) ufric/ho
|
||||
before (u) ufric/hu
|
||||
wave h/h_%70 // no vowel following
|
||||
before (@) h/h@
|
||||
before (a) h/ha
|
||||
before (e) h/he
|
||||
before (i) h/hi
|
||||
before (o) h/ho
|
||||
before (u) h/hu
|
||||
endphoneme
|
||||
|
||||
|
||||
|
||||
+220
-7
@@ -1,9 +1,222 @@
|
||||
// include any phonemes which are different from those
|
||||
// which are inherited from the base language(s)
|
||||
// ufric/x_sr
|
||||
// ufric/ch_sr
|
||||
// ufric/sh_sr
|
||||
// ustop/t_sr
|
||||
// ustop/ts_sr
|
||||
// ustop/tsh_sr
|
||||
// r3/r_sr
|
||||
// m/m_sr
|
||||
// n/n_sr
|
||||
// n^/nj_sr
|
||||
|
||||
phoneme a
|
||||
vowel starttype (a) endtype (a)
|
||||
length 160
|
||||
formants vowel/a
|
||||
reduceto & 4
|
||||
// This file inherits phonemes from ph_croatian
|
||||
// Only phonemes which differ from the inherited phonemes need
|
||||
// to be included here.
|
||||
|
||||
|
||||
phoneme t // dental variant of /t/
|
||||
vls dnt stop
|
||||
vowelin f1=0 f2=1600 -300 300 f3=-100 80
|
||||
vowelout f1=0 f2=1600 -300 250 f3=-100 80 rms=20
|
||||
lengthmod 2
|
||||
wave ustop/t_sr%50
|
||||
before _ ustop/t_sr%35
|
||||
switchvoicing d
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme d
|
||||
vcd alv stop
|
||||
vowelin f1=2 f2=1700 -300 300 f3=-100 80 amp=16
|
||||
vowelout f1=2 f2=1700 -300 300 f3=-100 80
|
||||
formants d/d_dnt+ustop/t_sr%50
|
||||
before _ d/d_dnt+ustop/t_sr
|
||||
before r d/d_dnt+ustop/t_sr%50
|
||||
after _ d/d_dnt+ustop/t_sr
|
||||
after @ d/d_dnt+ustop/t_sr
|
||||
lengthmod 5
|
||||
switchvoicing t
|
||||
endphoneme
|
||||
|
||||
|
||||
// This is for letter "h" at the beginning of a word
|
||||
phoneme x
|
||||
vls vel frc
|
||||
lengthmod 3
|
||||
wave ufric/x_sr%70 // no vowel following
|
||||
before (a) ufric/x_sr
|
||||
before (e) ufric/ch_sr
|
||||
before (i) ufric/ch_sr
|
||||
before (o) ufric/x_sr
|
||||
before (u) ufric/x_sr
|
||||
endphoneme
|
||||
|
||||
|
||||
// This is for letter "h" not at the beginning of word
|
||||
phoneme h
|
||||
vls vel frc
|
||||
lengthmod 3
|
||||
wave ufric/x_sr%70 // no vowel following
|
||||
before (@) h/h@
|
||||
before (a) ufric/x_sr
|
||||
before (e) ufric/ch_sr
|
||||
before (i) ufric/ch_sr
|
||||
before (o) ufric/x_sr
|
||||
before (u) ufric/x_sr
|
||||
endphoneme
|
||||
|
||||
|
||||
|
||||
phoneme R
|
||||
liquid
|
||||
vowelin f1=0 f2=1600 -300 300 f3=-200 80
|
||||
vowelout f1=2 f2=1600 -300 300 f3=-200 80 brk
|
||||
formants r3/r_trill+r3/r_sr.wav%65
|
||||
after & r3/r_trill+r3/r_sr.wav
|
||||
after e r3/r_trill+r3/r_sr.wav
|
||||
after i r3/r_trill+r3/r_sr.wav
|
||||
after o r3/r_trill+r3/r_sr.wav
|
||||
after u r3/r_trill+r3/r_sr.wav
|
||||
after y r3/r_trill+r3/r_sr.wav
|
||||
trill
|
||||
lengthmod 6
|
||||
endphoneme
|
||||
|
||||
// This is "r" which doesn't follow a vowel
|
||||
phoneme r*
|
||||
liquid
|
||||
vowelin f1=0 f2=1600 -300 300 f3=-200 80
|
||||
vowelout f1=2 f2=1600 -300 300 f3=-200 80 brk
|
||||
formants r3/r_trill+r3/r_sr.wav%65
|
||||
trill
|
||||
lengthmod 6
|
||||
endphoneme
|
||||
|
||||
// This is "r" which doesn't have a vowel before or after it
|
||||
phoneme r-
|
||||
liquid
|
||||
vowelin f1=0 f2=1600 -300 300 f3=-200 80
|
||||
vowelout f1=2 f2=1600 -300 300 f3=-200 80 brk
|
||||
formants r3/r_trill+r3/r_sr.wav%65
|
||||
trill
|
||||
lengthmod 6
|
||||
endphoneme
|
||||
|
||||
|
||||
|
||||
phoneme dZ
|
||||
vcd pla afr sibilant
|
||||
vowelin f1=2 f2=2300 200 400 f3=100 80
|
||||
vowelout f1=2 f2=2300 250 300 f3=100 80 brk
|
||||
formants dzh/dzh+ufric/sh_sr.wav
|
||||
before _ dzh/dzh+ufric/sh_sr.wav
|
||||
after _ NULL
|
||||
after @ dzh/dzh+ufric/sh_sr.wav
|
||||
lengthmod 5
|
||||
switchvoicing tS
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme dZ;
|
||||
vcd pla afr sibilant palatal
|
||||
vowelin f1=2 f2=2700 400 600 f3=300 80 rate len=70
|
||||
formants dzh/dzh+ustop/ts_sr.wav
|
||||
before _ dzh/dzh+ustop/ts_sr.wav
|
||||
after _ NULL
|
||||
after @ dzh/dzh+ustop/ts_sr.wav
|
||||
lengthmod 5
|
||||
switchvoicing tS;
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme tS
|
||||
vls pla afr sibilant
|
||||
vowelin f1=0 f2=2300 200 400 f3=-100 80
|
||||
lengthmod 2
|
||||
wave ustop/tsh_sr.wav
|
||||
before _ ustop/tsh_sr.wav
|
||||
switchvoicing dZ
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme tS;
|
||||
vls pal afr sibilant palatal
|
||||
vowelin f1=0 f2=2700 400 600 f3=300 80 rate len=70
|
||||
lengthmod 2
|
||||
wave ustop/ts_sr.wav
|
||||
before _ ustop/ts_sr.wav
|
||||
switchvoicing dZ;
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme Z
|
||||
vcd pla frc sibilant
|
||||
vowelin f1=0 f2=2000 0 300 f3=-200 80
|
||||
vowelout f1=2 f2=2000 0 300 f3=-200 80 brk
|
||||
formants voc/zh+ufric/sh_sr.wav
|
||||
before _ voc/zh+ufric/sh_sr.wav
|
||||
lengthmod 6
|
||||
switchvoicing S
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme S
|
||||
vls pla frc sibilant
|
||||
vowelin f1=0 f2=2100 100 300 f3=-100 80
|
||||
vowelout f1=0 f2=2100 100 300 f3=-100 80
|
||||
length 100
|
||||
lengthmod 3
|
||||
wave ufric/sh_sr.wav
|
||||
before _ ufric/sh_sr.wav
|
||||
switchvoicing Z
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme m
|
||||
vcd blb nasal
|
||||
vowelout f1=2 f2=1000 -500 -350 f3=-200 80 brk
|
||||
length 100
|
||||
lengthmod 4
|
||||
formants NULL
|
||||
after _ m/_m+m/m_sr.wav
|
||||
before _ m/m_+m/m_sr.wav
|
||||
before (r) m/mj+m/m_sr.wav
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme n
|
||||
vcd alv nasal
|
||||
vowelout f1=2 f2=1700 -300 250 f3=-100 80 rms=20 brk
|
||||
length 100
|
||||
lengthmod 4
|
||||
formants NULL
|
||||
after _ n/_n+n/n_sr.wav
|
||||
after n n/_n+n/n_sr.wav // lengthen [nn]
|
||||
before _ n/n_+n/n_sr.wav
|
||||
before (r) n/nj+n/n_sr.wav
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme n^
|
||||
vcd pal nasal palatal
|
||||
vowelout f1=3 f2=2500 300 500 f3=100 80 len=45 brk rate
|
||||
length 100
|
||||
lengthmod 4
|
||||
formants NULL
|
||||
after _ n^/_n^+n^/nj_sr.wav
|
||||
before _ n^/n^_+n^/nj_sr.wav
|
||||
before (r) n/nj+n^/nj_sr.wav
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme N
|
||||
vcd vel nasal
|
||||
// vowelout brk
|
||||
vowelout f1=3 f2=2300 300 400 f3=-200 80 len=40 rms=20 brk
|
||||
length 100
|
||||
formants NULL
|
||||
after _ nn/_nn+n/n_sr.wav
|
||||
before _ nn/nn_+n/n_sr.wav
|
||||
before (r) nn/nnj+n^/nj_sr.wav
|
||||
lengthmod 8 // longer than 'n'
|
||||
endphoneme
|
||||
|
||||
+10
-8
@@ -27,7 +27,8 @@ phonemenumber 20 - // syllabic consonant
|
||||
phonemenumber 21 _^_ // Change language
|
||||
phonemenumber 22 _X1 // a language specific action
|
||||
phonemenumber 23 _| // very short pause
|
||||
phonemenumber 24 t# // reduced version of [t]
|
||||
phonemenumber 24 _:: // long pause
|
||||
phonemenumber 25 t# // reduced version of [t]
|
||||
|
||||
// The base phoneme table contains the utility phonemes, the consonants,
|
||||
// and a schwa. The vowels are defined in the language specific phoneme
|
||||
@@ -148,6 +149,7 @@ phoneme ? // glottal stop
|
||||
starttype _ endtype _
|
||||
length 45
|
||||
lengthmod 5 // ??
|
||||
beforenotvowel _ // change to pause_short
|
||||
nolink
|
||||
endphoneme
|
||||
|
||||
@@ -1109,13 +1111,13 @@ phoneme h
|
||||
vls glt apr
|
||||
length 100
|
||||
lengthmod 3
|
||||
wave ufric/h_%70 // no vowel following
|
||||
before (@) ufric/h@
|
||||
before (a) ufric/ha
|
||||
before (e) ufric/he
|
||||
before (i) ufric/hi
|
||||
before (o) ufric/ho
|
||||
before (u) ufric/hu
|
||||
wave h/h_%70 // no vowel following
|
||||
before (@) h/h@
|
||||
before (a) h/ha
|
||||
before (e) h/he
|
||||
before (i) h/hi
|
||||
before (o) h/ho
|
||||
before (u) h/hu
|
||||
endphoneme
|
||||
|
||||
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
Before Width: | Height: | Size: 39 KiB After Width: | Height: | Size: 40 KiB |
Binary file not shown.
Binary file not shown.
+35
-1
@@ -2072,11 +2072,15 @@ wxString CompileAllDictionaries()
|
||||
int err;
|
||||
int errors = 0;
|
||||
int dict_count = 0;
|
||||
FILE *f_in;
|
||||
FILE *log;
|
||||
FILE *f_phused;
|
||||
char dictname[80];
|
||||
char fname_log[sizeof(path_dsource)+20];
|
||||
char save_voice_name[80];
|
||||
char path[sizeof(path_home)+40]; // path_dsource+20
|
||||
char buf[200];
|
||||
char voicename[80];
|
||||
|
||||
if(!wxDirExists(path_dictsource))
|
||||
{
|
||||
@@ -2121,8 +2125,38 @@ wxString CompileAllDictionaries()
|
||||
dictstr = fname.GetName().BeforeLast('_');
|
||||
strcpy(dictname,dictstr.mb_str(wxConvLocal));
|
||||
dict_count++;
|
||||
strcpy(voicename,dictname);
|
||||
|
||||
LoadVoice(dictname,0);
|
||||
// read the *_rules file to see if a phoneme table is specified though a voice name
|
||||
sprintf(path,"%s%s_rules",path_dsource,dictname);
|
||||
if((f_in = fopen(path,"r")) != NULL)
|
||||
{
|
||||
unsigned int ix;
|
||||
unsigned int c;
|
||||
|
||||
for(ix=0; ix<20; ix++)
|
||||
{
|
||||
if(fgets(buf,sizeof(buf),f_in) == NULL)
|
||||
break;
|
||||
|
||||
if(memcmp(buf,"//voice=",8)==0)
|
||||
{
|
||||
for(ix=0; ix<sizeof(voicename); ix++)
|
||||
{
|
||||
if(isspace(c = buf[ix+8]))
|
||||
{
|
||||
break;
|
||||
}
|
||||
voicename[ix] = c;
|
||||
}
|
||||
voicename[ix] = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
fclose(f_in);
|
||||
}
|
||||
|
||||
LoadVoice(voicename,0);
|
||||
|
||||
if((err = CompileDictionary(path_dsource, dictname,log,NULL)) > 0)
|
||||
{
|
||||
|
||||
+3
-2
@@ -34,6 +34,7 @@
|
||||
//#define OPT_FORMAT // format the text and write formatted copy to Log file
|
||||
//#define OUTPUT_FORMAT
|
||||
|
||||
extern void Write4Bytes(FILE *f, int value);
|
||||
int HashDictionary(const char *string);
|
||||
|
||||
static FILE *f_log = NULL;
|
||||
@@ -1378,8 +1379,8 @@ static int compile_dictrules(FILE *f_in, FILE *f_out, char *fname_temp)
|
||||
}
|
||||
if(replace1 != 0)
|
||||
{
|
||||
fwrite(&replace1,1,4,f_out);
|
||||
fwrite(&replace2,1,4,f_out);
|
||||
Write4Bytes(f_out,replace1); // write as little-endian
|
||||
Write4Bytes(f_out,replace2); // if big-endian, reverse the bytes in LoadDictionary()
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
+29
-9
@@ -86,6 +86,21 @@ void strncpy0(char *to,const char *from, int size)
|
||||
to[size-1] = 0;
|
||||
}
|
||||
|
||||
#ifdef ARCH_BIG
|
||||
int reverse_word_bytes(int word)
|
||||
{//=============================
|
||||
// reverse the order of bytes from little-endian to big-endian
|
||||
int ix;
|
||||
int word2 = 0;
|
||||
|
||||
for(ix=24; ix>=0; ix -= 8)
|
||||
{
|
||||
word2 |= (word >> ix) & 0xff;
|
||||
word2 = word2 << 8;
|
||||
}
|
||||
return(word2);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
int LookupMnem(MNEM_TAB *table, char *string)
|
||||
@@ -237,6 +252,15 @@ void Translator::InitGroups(void)
|
||||
pw += 2; // find the end of the replacement list, each entry is 2 words.
|
||||
}
|
||||
p = (char *)(pw+1);
|
||||
|
||||
#ifdef ARCH_BIG
|
||||
pw = (unsigned int *)langopts.replace_chars;
|
||||
while(*pw != 0)
|
||||
{
|
||||
*pw = reverse_word_bytes(*pw);
|
||||
pw++;
|
||||
}
|
||||
#endif
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -1280,23 +1304,19 @@ void Translator::SetWordStress(char *output, unsigned int dictionary_flags, int
|
||||
|
||||
if((ph = phoneme_tab[*p]) != NULL)
|
||||
{
|
||||
int gap = langopts.word_gap & 0xf00;
|
||||
|
||||
if(ph->type == phSTRESS)
|
||||
ph = phoneme_tab[p[1]];
|
||||
|
||||
if(((gap) && (vowel_stress[1] >= 4) && (prev_stress >= 4)) || (langopts.word_gap & 0x8))
|
||||
#ifdef deleted
|
||||
int gap = langopts.word_gap & 0x700;
|
||||
if((gap) && (vowel_stress[1] >= 4) && (prev_stress >= 4))
|
||||
{
|
||||
/* two primary stresses together, insert a short pause */
|
||||
if(gap == 0x0300)
|
||||
*output++ = phonPAUSE;
|
||||
else
|
||||
if((gap == 0x0200) && (ph->type == phVOWEL))
|
||||
*output++ = phonGLOTTALSTOP;
|
||||
else
|
||||
*output++ = phonPAUSE_SHORT;
|
||||
*output++ = pause_phonemes[gap >> 8];
|
||||
}
|
||||
else
|
||||
#endif
|
||||
if((langopts.vowel_pause & 0x30) && (ph->type == phVOWEL))
|
||||
{
|
||||
// word starts with a vowel
|
||||
|
||||
+3
-2
@@ -81,8 +81,9 @@
|
||||
#define phonSWITCH 21
|
||||
#define phonX1 22 // a language specific action
|
||||
#define phonPAUSE_VSHORT 23
|
||||
#define phonT_REDUCED 24
|
||||
|
||||
#define phonPAUSE_LONG 24
|
||||
#define phonT_REDUCED 25
|
||||
extern const unsigned char pause_phonemes[8]; // 0, vshort, short, pause, long, glottalstop
|
||||
|
||||
// place of articulation
|
||||
#define phPLACE 0xf0000
|
||||
|
||||
+7
-5
@@ -30,6 +30,7 @@
|
||||
#include "translate.h"
|
||||
|
||||
|
||||
const unsigned char pause_phonemes[8] = {0, phonPAUSE_VSHORT, phonPAUSE_SHORT, phonPAUSE, phonPAUSE_LONG, phonGLOTTALSTOP, phonPAUSE_LONG, phonPAUSE_LONG};
|
||||
|
||||
|
||||
int Translator::ChangePhonemes(PHONEME_LIST2 *phlist, int n_ph, int index, PHONEME_TAB *ph, CHANGEPH *ch)
|
||||
@@ -497,10 +498,6 @@ void Translator::MakePhonemeList(int post_pause, int start_sentence)
|
||||
{
|
||||
int x;
|
||||
|
||||
if(langopts.word_gap & 1)
|
||||
{
|
||||
insert_ph = phonPAUSE_VSHORT;
|
||||
}
|
||||
if(langopts.vowel_pause && (ph->type != phPAUSE) && (next->type == phVOWEL))
|
||||
{
|
||||
if(langopts.vowel_pause & 0x04)
|
||||
@@ -524,6 +521,11 @@ void Translator::MakePhonemeList(int post_pause, int start_sentence)
|
||||
insert_ph = phonPAUSE_SHORT;
|
||||
}
|
||||
}
|
||||
|
||||
if((x = (langopts.word_gap & 0x7)) != 0)
|
||||
{
|
||||
insert_ph = pause_phonemes[x];
|
||||
}
|
||||
}
|
||||
|
||||
next2 = phoneme_tab[(plist2+2)->phcode];
|
||||
@@ -540,7 +542,7 @@ void Translator::MakePhonemeList(int post_pause, int start_sentence)
|
||||
}
|
||||
}
|
||||
else
|
||||
if(((langopts.word_gap & 2)==0) || ((plist2+1)->sourceix == 0))
|
||||
if(((langopts.word_gap & 8)==0) || ((plist2+1)->sourceix == 0))
|
||||
{
|
||||
// This phoneme can be linked to a following vowel by inserting a linking phoneme
|
||||
if(next->type == phVOWEL)
|
||||
|
||||
+1
-1
@@ -455,7 +455,7 @@ void Translator::CalcLengths()
|
||||
{
|
||||
len = langopts.length_mods0[next2->ph->length_mod *10+ next->ph->length_mod];
|
||||
|
||||
if((next->newword) && (langopts.word_gap & 0x4))
|
||||
if((next->newword) && (langopts.word_gap & 0x20))
|
||||
{
|
||||
// consider as a pause + first phoneme of the next word
|
||||
length_mod = (len + langopts.length_mods0[next->ph->length_mod *10+ 1])/2;
|
||||
|
||||
+14
-4
@@ -221,12 +221,13 @@ void MarkerEvent(int type, unsigned int char_position, int value, unsigned char
|
||||
|
||||
|
||||
|
||||
static void init_path(void)
|
||||
{//========================
|
||||
static void init_path(char *argv0)
|
||||
{//===============================
|
||||
#ifdef PLATFORM_WINDOWS
|
||||
HKEY RegKey;
|
||||
unsigned long size;
|
||||
unsigned long var_type;
|
||||
char *p;
|
||||
char *env;
|
||||
unsigned char buf[sizeof(path_home)-12];
|
||||
|
||||
@@ -234,9 +235,18 @@ static void init_path(void)
|
||||
{
|
||||
sprintf(path_home,"%s\\espeak-data",env);
|
||||
if(GetFileLength(path_home) == -2)
|
||||
return; // an espeak-data directory exists
|
||||
return; // an espeak-data directory exists in the directory specified by environment variable
|
||||
}
|
||||
|
||||
strcpy(path_home,argv0);
|
||||
if((p = strrchr(path_home,'\\')) != NULL)
|
||||
{
|
||||
strcpy(&p[1],"espeak-data");
|
||||
if(GetFileLength(path_home) == -2)
|
||||
return; // an espeak-data directory exists in the same directory as the espeak program
|
||||
}
|
||||
|
||||
// otherwise, look in the Windows Registry
|
||||
buf[0] = 0;
|
||||
RegOpenKeyEx(HKEY_LOCAL_MACHINE, "Software\\Microsoft\\Speech\\Voices\\Tokens\\eSpeak", 0, KEY_READ, &RegKey);
|
||||
size = sizeof(buf);
|
||||
@@ -383,7 +393,7 @@ int main (int argc, char **argv)
|
||||
option_multibyte = espeakCHARS_AUTO; // auto
|
||||
f_trans = stdout;
|
||||
|
||||
init_path();
|
||||
init_path(argv[0]);
|
||||
|
||||
#ifdef NEED_GETOPT
|
||||
optind = 1;
|
||||
|
||||
+5
-1
@@ -63,8 +63,12 @@ typedef struct {
|
||||
int LookupMnem(MNEM_TAB *table, char *string);
|
||||
|
||||
|
||||
#ifdef PLATFORM_WINDOWS
|
||||
#define N_PATH_HOME 220
|
||||
#else
|
||||
#define N_PATH_HOME 150
|
||||
#endif
|
||||
|
||||
#define N_PATH_HOME 120
|
||||
extern char path_home[N_PATH_HOME]; // this is the espeak-data directory
|
||||
|
||||
extern void strncpy0(char *to,const char *from, int size);
|
||||
|
||||
+1
-1
@@ -35,7 +35,7 @@
|
||||
#include "translate.h"
|
||||
#include "wave.h"
|
||||
|
||||
const char *version_string = "1.29.17 08.Nov.07";
|
||||
const char *version_string = "1.29.18 10.Nov.07";
|
||||
const int version_phdata = 0x012901;
|
||||
|
||||
int option_device_number = -1;
|
||||
|
||||
@@ -1142,16 +1142,6 @@ int Generate(PHONEME_LIST *phoneme_list, int *n_ph, int resume)
|
||||
DoMarker(espeakEVENT_WORD, (p->sourceix & 0x7ff) + clause_start_char, p->sourceix >> 11, clause_start_word + word_count++);
|
||||
}
|
||||
|
||||
if((translator->langopts.word_gap & 1) || (translator->langopts.vowel_pause && (next->type == phVOWEL)))
|
||||
{
|
||||
// prevent word merging into next, make it look as though next is a pause
|
||||
if((next->newword) && (next->type != phPAUSE))
|
||||
{
|
||||
// next_pause.ph = phoneme_tab[phonPAUSE];
|
||||
// next = &next_pause;
|
||||
}
|
||||
}
|
||||
|
||||
EndAmplitude();
|
||||
|
||||
if(p->prepause > 0)
|
||||
|
||||
@@ -40,9 +40,7 @@ Translator_English::Translator_English() : Translator()
|
||||
static const short stress_lengths2[8] = {182,140, 220,220, 0,0, 248,275};
|
||||
|
||||
memcpy(stress_lengths,stress_lengths2,sizeof(stress_lengths));
|
||||
langopts.vowel_pause = 0;
|
||||
langopts.stress_rule = 0;
|
||||
langopts.word_gap = 0;
|
||||
|
||||
langopts.numbers = 0x41 + NUM_ROMAN;
|
||||
}
|
||||
|
||||
+4
-13
@@ -123,8 +123,6 @@ Translator *SelectTranslator(const char *name)
|
||||
|
||||
// 'diminished' is an unstressed final syllable
|
||||
tr->langopts.stress_flags = 0x6 | 0x10;
|
||||
tr->langopts.word_gap = 0;
|
||||
tr->langopts.vowel_pause = 0;
|
||||
tr->langopts.unstressed_wd1 = 0;
|
||||
tr->langopts.unstressed_wd2 = 2;
|
||||
tr->langopts.param[LOPT_SONORANT_MIN] = 120; // limit the shortening of sonorants before short vowels
|
||||
@@ -141,7 +139,7 @@ Translator *SelectTranslator(const char *name)
|
||||
static const short stress_lengths_de[8] = {150,130, 190,190, 0, 0, 260,275};
|
||||
tr = new Translator();
|
||||
tr->langopts.stress_rule = 0;
|
||||
tr->langopts.word_gap = 0x2; // don't use linking phonemes
|
||||
tr->langopts.word_gap = 0x8; // don't use linking phonemes
|
||||
tr->langopts.vowel_pause = 0x30;
|
||||
tr->langopts.param[LOPT_PREFIXES] = 1;
|
||||
memcpy(tr->stress_lengths,stress_lengths_de,sizeof(tr->stress_lengths));
|
||||
@@ -184,8 +182,6 @@ Translator *SelectTranslator(const char *name)
|
||||
tr->langopts.length_mods0 = tr->langopts.length_mods; // don't lengthen vowels in the last syllable
|
||||
tr->langopts.stress_rule = 2;
|
||||
tr->langopts.stress_flags = 0x6; // mark unstressed final syllables as diminished
|
||||
tr->langopts.word_gap = 0;
|
||||
tr->langopts.vowel_pause = 0;
|
||||
tr->langopts.unstressed_wd1 = 0;
|
||||
tr->langopts.unstressed_wd2 = 2;
|
||||
tr->langopts.param[LOPT_SONORANT_MIN] = 130; // limit the shortening of sonorants before short vowels
|
||||
@@ -238,8 +234,6 @@ Translator *SelectTranslator(const char *name)
|
||||
// stress last syllable if it doesn't end in vowel or "s" or "n"
|
||||
// 'diminished' is an unstressed final syllable
|
||||
tr->langopts.stress_flags = 0x200 | 0x6 | 0x10;
|
||||
tr->langopts.word_gap = 0;
|
||||
tr->langopts.vowel_pause = 0;
|
||||
tr->langopts.unstressed_wd1 = 0;
|
||||
tr->langopts.unstressed_wd2 = 2;
|
||||
tr->langopts.param[LOPT_SONORANT_MIN] = 120; // limit the shortening of sonorants before short vowels
|
||||
@@ -398,7 +392,6 @@ SetLengthMods(tr,3); // all equal
|
||||
|
||||
tr->langopts.length_mods0 = tr->langopts.length_mods; // don't lengthen vowels in the last syllable
|
||||
tr->langopts.stress_rule = 2;
|
||||
tr->langopts.word_gap = 0;
|
||||
tr->langopts.vowel_pause = 1;
|
||||
tr->langopts.unstressed_wd1 = 2;
|
||||
tr->langopts.unstressed_wd2 = 2;
|
||||
@@ -449,7 +442,6 @@ SetLengthMods(tr,3); // all equal
|
||||
tr = new Translator();
|
||||
|
||||
tr->langopts.stress_rule = 0;
|
||||
tr->langopts.word_gap = 0;
|
||||
tr->langopts.vowel_pause = 1;
|
||||
tr->langopts.param[LOPT_DIERESES] = 1;
|
||||
tr->langopts.param[LOPT_PREFIXES] = 1;
|
||||
@@ -637,7 +629,7 @@ SetLengthMods(tr,3); // all equal
|
||||
tr->langopts.length_mods0 = tr->langopts.length_mods; // don't lengthen vowels in the last syllable
|
||||
|
||||
tr->langopts.stress_rule = 0;
|
||||
tr->langopts.word_gap = 0x4; // length of a final vowel is less dependent on the next consonant
|
||||
tr->langopts.word_gap = 0x20; // length of a final vowel is less dependent on the next consonant
|
||||
tr->langopts.vowel_pause = 4;
|
||||
tr->letter_groups[0] = vowels_vi;
|
||||
// tr->langopts.param[LOPT_UNPRONOUNCABLE] = 1; // disable check for unpronouncable words
|
||||
@@ -650,7 +642,7 @@ SetLengthMods(tr,3); // all equal
|
||||
case L('z','h'):
|
||||
case L_zhy:
|
||||
{
|
||||
static const short stress_lengths_zh[8] = {220,150, 230,230, 230,0, 230,250};
|
||||
static const short stress_lengths_zh[8] = {230,150, 230,230, 230,0, 230,250};
|
||||
static const unsigned char stress_amps_zh[] = {22,16, 22,22, 22,22, 22,22 };
|
||||
|
||||
tr = new Translator;
|
||||
@@ -663,7 +655,7 @@ SetLengthMods(tr,3); // all equal
|
||||
tr->langopts.length_mods0 = tr->langopts.length_mods; // don't lengthen vowels in the last syllable
|
||||
tr->langopts.tone_numbers = 1; // a number after letters indicates a tone number (eg. pinyin or jyutping)
|
||||
tr->langopts.ideographs = 1;
|
||||
tr->langopts.word_gap = 0x5; // length of a final vowel is less dependent on the next consonant, don't merge consonant with next word
|
||||
tr->langopts.word_gap = 0x21; // length of a final vowel is less dependent on the next consonant, don't merge consonant with next word
|
||||
if(name2 == L('z','h'))
|
||||
{
|
||||
tr->langopts.textmode = 1;
|
||||
@@ -955,7 +947,6 @@ Translator_Afrikaans::Translator_Afrikaans() : Translator()
|
||||
|
||||
static const short stress_lengths2[8] = {170,140, 220,220, 0, 0, 250,270};
|
||||
langopts.stress_rule = 0;
|
||||
langopts.word_gap = 0;
|
||||
langopts.vowel_pause = 0x30;
|
||||
langopts.param[LOPT_DIERESES] = 1;
|
||||
langopts.param[LOPT_PREFIXES] = 1;
|
||||
|
||||
+3
-4
@@ -254,11 +254,10 @@ extern const int param_defaults[N_SPEECH_PARAM];
|
||||
|
||||
|
||||
typedef struct {
|
||||
// bit0=don't link consonants with the next word
|
||||
// bit1=don't add linking phonemes
|
||||
// bit2=length of a final vowel doesn't depend on the next phoneme
|
||||
// bits0-2 separate words with (1=pause_vshort, 2=pause_short, 3=pause, 4=pause_long 5=[?] phonemme)
|
||||
// bit 3=don't use linking phoneme
|
||||
// bit4=longer pause before STOP, VSTOP,FRIC
|
||||
// bit8-11=separate words with adjacent stressed syllables with (1=pause, 2=long pausem 3=[?] phoneme)
|
||||
// bit5=length of a final vowel doesn't depend on the next phoneme
|
||||
int word_gap;
|
||||
int vowel_pause;
|
||||
int stress_rule; // 1=first syllable, 2=penultimate, 3=last
|
||||
|
||||
Reference in New Issue
Block a user