Browse Source

Merge branch 'upstream' into development

Conflicts:
	dictsource/dict_phonemes
	dictsource/te_list
	dictsource/te_rules
	phsource/compile_report
master
Reece H. Dunn 12 years ago
parent
commit
29320ae2ea

+ 89
- 46
dictsource/bn_list View File

@@ -2,7 +2,7 @@
// This file is UTF8 encoded

// Numbers
devanagari numbers are changed to latin characters before translation
// Bengali numbers are changed to latin characters before translation
_0 S'unjO
_1 '&k
_2 duj
@@ -14,11 +14,16 @@ _7 S'at
_8 'at.#
_9 n'Oj

_2a d'u // with hundreds etc.
_6a tS#'a
_9a n'O


_10 d'OS
_11 '&garo
_12 b'arO
_13 t'erO
_14 tS'owddO
_14 tS'oddO
_15 p'OnerO
_16 S'olO
_17 S'OterO
@@ -26,57 +31,94 @@ _18 'at.#arO
_19 'uniS

_20 k'uri // or b'iS ??
_21 'ekuS
_21 ek'uS
_22 b'ajS
_23 t'ejS
_24 tS'ObbiS
_25 p'O~tSiS
_26 tSh'ObbiS
_27 S'ataS
_26 tSh'abbiS
_27 Sat'aS
_28 'at.#aS
_29 'untriS

_30 t'iriS
_31 'ektriS
_32 b'OtriS
_33 t'etriS
_34 tSowtriS
_35 pO~jtriS
_36 tS#'OtriS
_37 S'a~itriS
_38 'at.riS
_39 'unOtSOlliS

_40 tS'OlliS
_41 'ektSOlliS
_42 b'ialliS
_43 t'etalliS
_44 tS'oalliS
_45 p'O~jtalliS
_46 tS'etSOlliS
_47 S'atSOllis
_48 'atSOlliS
_49 'unOpO~tSaS

// numbers above 50 need to be corrected
_50 p'O~tSaS
_5X p'O~tSaS
_59 'unOsat.

_60 s'at.
_6X s'at.
_69 'unOS'OttOr

_70 S'OttOr
_7X S'OttOr
_79 'unOaSi
_29 unOtr'iS

_30 tr'iS
_31 ekOtr'iS
_32 bOtr'iS
_33 tetr'iS
_34 tSowtr'iS
_35 pO~jtr'iS
_36 tS#'Otr'iS
_37 Sa~itr'iS
_38 at.tr'iS
_39 'unOtSOll'iS

_40 tSOll'iS
_41 ektSOll'iS
_42 biall'iS
_43 tetall'iS
_44 tSoall'iS
_45 pO~jtall'iS
_46 tSetSOll'iS
_47 SatSOll'is
_48 atSOll'iS
_49 unOpO~tSaS

_50 pO~tS'aS
_51 &kann'o
_52 bajann'o
_53 tepann'o
_54 tSujann'o
_55 pontSann'o
_56 tS#apann'o
_57 Satann'o
_58 at.ann'o
_59 unOS'at.

_80 'aSi
_8X 'aSi
_89 'unOnObbOj

_90 n'ObbOj
_9X n'ObbOj
_60 s'at.
_61 ekSOt.t.'i
_62 baSOt.t.'i
_63 teSOt.t.'i
_64 tSowSOt.t.'i
_65 pojSOt.t.'i
_66 SeSOt.t.'i
_67 SatSOt.t.'i
_68 at.SOt.t.'i
_6X sat.t.'i
_69 unOSOtt'ur

_70 SOtt'Or
_71 ekatt'Or
_72 bahatt'Or
_73 tehatt'Or
_74 tSuhatt'Or
_75 pOtSatt'Or
_76 tS#ijatt'Or
_77 Satatt'Or
_78 at.att'Or
_79 unOaS'i

_80 aS'i
_81 &kaS'i
_82 beraS'i
_83 teraS'i
_84 tSuraS'i
_85 po~tSaS'i
_86 tS#ijaS'i
_87 SataS'i
_88 at.aS'i
_89 ,unOnObb'oj

_90 nObb'oj
_91 &kanObb'oj
_92 beranObb'oj
_93 teranObb'oj
_94 tSuranObb'oj
_95 pOtSanObb'oj
_96 tS#ijanObb'oj
_97 SatanObb'oj
_98 at.anObb'oj
_99 niranObb'oj

_0C S'o
_0M1 h'ajar
@@ -264,3 +306,4 @@ _dpt dOsomik


// Exceptions
এত &to

+ 7
- 1
dictsource/bn_rules View File

@@ -28,6 +28,7 @@
.group অ
অ V
অঁ O~
অ্যা & // V,ja in [æmiba]

.group আ
@@ -74,6 +75,8 @@
.group এ
এ e
এঁ e~
এ্যা & // e,ja [ækademi]


.group ও
@@ -288,7 +291,10 @@
য় jV // nukta
য় (B j

্) য (C & // ব্যস্ত [bæsto]
্) যা & // ব্যাকরণ [bækɔron]


.group র
র rV
র (B r

+ 482
- 311
dictsource/da_rules
File diff suppressed because it is too large
View File


+ 1
- 0
dictsource/en_list View File

@@ -3283,6 +3283,7 @@ Noumea nu:m'eI@
Oahu oU'A:hu:
Oklahoma oUkla#h'oUm@
Ohio oUh'aIoU
Ohioan oUh'aIoU@n
Omagh oUmA:
Omaha oUma#hA:
Oman oUm'an

+ 76
- 66
dictsource/en_rules View File

@@ -1927,23 +1927,6 @@
h) e (sion_ 'i:
@) e (tio i:
discr) e (tion E
eu ju:
?3 n) eu u:
?3 n) eu (r U@
r) eu (d OI
eu (m_ 'i:@
s) eu (m_ 'i@
l) eur 3:
?5 eur VR
eur (_ '3:
?3 eur (_ 'U@
?5 eur (_ 'VR
_) euro jU@roU
_) euro (pe jU@r-@
&) eus (_ =I2@s
@) euse (_ '3:z
?3 @) euse (_ 'u:z
d) eu (ts OI
ew ju:
_s) ew u:
?3 d) ew u:
@@ -2599,6 +2582,27 @@
m) etry (_ =@tr%I
&) ett (_ I2t


.group eu
eu ju:
?3 n) eu u:
?3 n) eu (r U@
r) eu (d OI
eu (m_ 'i:@
s) eu (m_ 'i@
l) eur 3:
?5 eur VR
eur (_ '3:
?3 eur (_ 'U@
?5 eur (_ 'VR
_) euro jU@roU
_) euro (pe jU@r-@
&) eus (_ =I2@s
@) euse (_ '3:z
?3 @) euse (_ 'u:z
d) eu (ts OI


.group ev
_) ev I2v
_) eva (ne Ev@
@@ -2915,40 +2919,10 @@
n) ihi aI|@
_) i (h aI
ii (_ IaI
ij (C eI // Dutch
f) i (j i:
h) i (j aI
@b) il (_ @L
@Cc) il (_ @L
@p) il (_ @L
@r) il (_ @L
@s) il (_ @L
nt) il (_ @L
@v) il (_ @L
@) ila (_ 'Il@
?3 &) ile (_$w_alt2 @L
_C) i (lage aI
_d) i (lat %aI
l) il (ah_ aIl
_m) i (ld aI
_w) i (ld aI
ch) i (ld aI
w) i (lderC I
ch) i (ldr I
sacr) ile IlI
i (leA I
&) ile (ge @lI
il (ise @l
il (ize @l
s) i (len aI
C) i (ler aI
_) il (l@ %Il
@) illa (_ 'Il@
&) illard (_ i:A:
_) il (ln Il
@) i (less I
_) il (lust Il
_C) i (lo aI
&) ily (_S2i l%I
@) i (ness I
i (o I2
_) i (o aI
@@ -3135,6 +3109,40 @@
igu (e 'i:g
igu (_ 'i:g

.group il
@b) il (_ @L
@Cc) il (_ @L
@p) il (_ @L
@r) il (_ @L
@s) il (_ @L
nt) il (_ @L
@v) il (_ @L
@) ila (_ 'Il@
?3 &) ile (_$w_alt2 @L
_C) il (age aIl
_d) il (at %aIl
l) il (ah_ aIl
_m) il (d aIl
_w) il (d aIl
ch) il (d aIl
w) il (derC Il
ch) il (dr Il
sacr) ile IlI
il (eA Il
&) ile (ge @lI
il (ise @l
il (ize @l
s) il (en aIl
C) il (er aIl
_) il (l@ %Il
@) illa (_ 'Il@
&) illard (_ i:A:
_) il (ln Il
_) il (lust Il
_C) il (o aIl
&) ily (_S2i l%I


.group im
&) im (_ I#m
cl) im aIm
@@ -5274,23 +5282,6 @@
_) tsu tsu:
_) two tu:
ttu (r t@
@) tu (al tSu:
@) tu (at tSu:
_sta) tu tSu:
?3 _sta) tu (to tS@
c) tu (al_ =tSu:
r) tue (_ tSu:
?3 tu (la_ tS@
@) tu (lat =tSU
?3 tu (Ant tSu:
?3 tu (Ancy tSu:

tu (ous tSu:
@) tur (A tS@r
@) tur (al_ tS=@r
&) tur (y tS@r
&) tur (_ tS3
&) ture (_ tS3
tz ts
tze (_ tsi

@@ -5367,7 +5358,26 @@
&) tious S=@s
AC) tive (_ =tIv


.group tu
@) tu (al tSu:
@) tu (at tSu:
_sta) tu tSu:
?3 _sta) tu (to tS@
c) tu (al_ =tSu:
r) tue (_ tSu:
?3 tu (la_ tS@
@) tu (lat =tSU
?3 tu (Ant tSu:
?3 tu (Ancy tSu:
tu (ous tSu:
@) tur (A tS@r
@) tur (al_ tS=@r
&) tur (y tS@r
&) tur (_ tS3
&) ture (_ tS3

.group u
u V
man) u ju:

+ 3
- 3
dictsource/ko_list View File

@@ -24,8 +24,8 @@ _9X g'u_!||s'ip_!
_0C p'Eq_!

// Larger numbers
_0M0 tS'h-@n // 10^3
_1M0 tS'h-@n
_0M0 tS'h@n // 10^3
_1M0 tS'h@n
_0M1 m'an // 10^4
_1M1 m'an
_0M2 '@q // 10^8
@@ -50,7 +50,7 @@ _1M4 gj'@N
ᄋ i;'u-N
ᄌ tS;i;'u-t
ᄍ 's-aNdZ;,i;u-t
ᄎ tSh-'i;u-t
ᄎ tSh'i;u-t
ᄏ khi;'u-k
ᄐ thi;'u-t-
ᄑ phi;'u-p

+ 3
- 3
dictsource/ko_rules View File

@@ -83,7 +83,7 @@
ᄍ 'tS;- // TODO: phoneme

.group ᄎ // ㅊ
ᄎ tSh- // TODO: phoneme
ᄎ tSh // TODO: phoneme

.group ᄂ // ㄴ
ᄂ ;n
@@ -198,7 +198,7 @@
ᇀᄂ nn
ᇀᄆ mm
ᇀ (A th
ᇀ (L02 tSh;
ᇀ (L02 tS;h

.group ᆸ // ㅂ
ᆸ p
@@ -236,7 +236,7 @@
ᆾ t
ᆾᄂ nn
ᆾᄆ mm
ᆾ (A tSh;
ᆾ (A tS;h

.group ᆫ // ㄴ
ᆫ n

+ 2
- 0
dictsource/pt_list View File

@@ -879,6 +879,7 @@ lambreta $alt2
lebre $alt
lembrete $alt2
leste $alt2 $verb
lingueta $alt2
lopes $alt
macete $alt2
maior $alt
@@ -987,6 +988,7 @@ refresco $alt $verb
reitora $alt2
relevo $alt2 $noun
remorso $alt
renovo $alt $verb
retorno $alt $verb
rixa x'iS&
rocha $alt

+ 11
- 1
dictsource/pt_rules View File

@@ -573,9 +573,13 @@ _entorp) e (çL03_ e
g (Y Z // ge gi
gu (Y g
a) gu (ent gw
_ar) gu (i gw
enxa) gu (e gw
lin) gu (e gw
lin) gu (i gw
_pin) gu (im_ gw
_pin) gu (ins_ gw
_sa) gu )i gw
san) gu (ín gw
san) gu (in gw
?1 n) gu (A gw // eg: língua, etc.
@@ -851,6 +855,8 @@ _entorp) e (çL03_ e
_ens) o (pL04_ O
_s) o (prL04_ O
_) o (ptL04_ O
p) o (rL02_ o
_dev) o (rL02_ O
_defl) o (rL02_ O
_impl) o (rL02_ O
_inod) o (rL03_ O
@@ -926,14 +932,18 @@ _remem) o (rL04_ O
?1 _) qua kwa // quatro, etc.
?1 _) que ke // quente, etc.
?1 _) quei (C k'eI // queira, queima, etc
A) quên (C kw'eIN // frequência, etc.
A) quên (C kw'eN // frequência, etc.
C) quên (C kw'eN // delinquência, etc.
C) quên (A kw'eN // quinquênio, etc.
ade) qu (e kw
e) qu (estr kw
ese) qu (ív kw
_e) qu (in kw
fre) qu (ent kw
li) qu (id kw
lí) qu (id kw
n) qu (en kw
_) qu (inqu kw
se) qu (en kw
tran) qu (il kw
?1 quec kes // esquece, etc.

+ 171
- 0
dictsource/te_list View File

@@ -0,0 +1,171 @@
// This file is UTF8 encoded
// Spelling to phoneme rules for Telugu



// speak Latin letters as English
a e:j
b bi:
c si:
d di:
e i:
f Ef
g dZi:
h e:tS
i a:j
j dZe:j
k ke:j
l El
m Em
n En
o o:
p pi:
q kju:
r a:r
s Es
t t#i:
u ju:
v vi:
w dabalju:
x Eks
y wa:j
z zEd



// numbers
_0 sunna
_1 okat.i
_1a oka
_2 rend.u
_3 mu:d.u
_4 na:lgu
_5 aIdu
_6 a:ru
_7 ;e:d.u
_8 ;enimidi
_9 tommidi
_1X padi
_11 padakond.u
_12 pannemd.u
_13 padamu:d.u:
_14 pad#na:lugu
_15 padihe:nu
_16 padaha:ru
_17 padihe:d.u
_18 padd#enimidi
_19 pamdommadi
_2X irav#aI
_3X muppaI
_4X nalub#aI
_5X ja:b#aI
_6X arav#aI
_7X d.eb#baI
_8X jenab#aI
_9X tomb#aI
_0C v#andala
_0C0 v#andalu
_1C okav#anda
_0M1 v#ela
_0M1x v#elu
_1M1 okav#ejji
_0M2 laks.ala
_0M2x laks.alu
_1M2 laks.a
_0M3 kotla
_0M3x kotlu
_1M3 koti
_dpt _d,aS;a:mkam


// symbols
_?? aks.aram // 'unknown character'
% S;a:tam
+ ku:d.ika
* naks.atra
\ bja:kasla:s.
/ sla:s.
© ka:pi:raIt.
¶ v#e:ra:

_, ka:ma:
_; semi:ko:lan
_: ko:lan
_! a:S;carja:rt#aka
_? praS;na:rt#aka
_- haIfan
__ amd.ar||sko:r


// unstressed function words
// articles
ద $u
అ $u+
ఆ $u+
ఒక $u


// letter names
U+c01 am
U+c02 an
U+c03 ah
U+c4d v#ottu

// consonants with virama
క్ ik
ఖ్ ik#
గ్ ig
ఘ్ ig#
ఙ్ iN
చ్ ic
ఛ్ ic#
జ్ iJ
ఝ్ iJ#
ఞ్ in^
ట్ it.
ఠ్ it.#
డ్ id.
ఢ్ id.#
ణ్ in.
త్ it
థ్ it#
ద్ id
ధ్ id#
న్ in
ప్ ip
ఫ్ ip#
బ్ ib
భ్ ib#
మ్ im
య్ ij
ర్ ir
ఱ్ ir
ల్ il
ళ్ il.
వ్ iv#
శ్ iS;
ష్ is.
స్ is
హ్ ih
ౘ్ its
ౙ్ idz


// combining vowels, precede by a click so they
// can be distinguished from stand-alone vowels
ా #X2a::
ి #X1i
ీ #X2i::
ు #X1u
ూ #X2u::
ృ #X1ru
ౄ #X2ru:
ె #X1e
ే #X2e::
ై #X2aI
ొ #X1o
ో #X2o::
ౌ #X2aU



+ 271
- 0
dictsource/te_rules View File

@@ -0,0 +1,271 @@

// This file is UTF8 encoded
// Spelling to phoneme rules for Telugu

// A means vowel letters (not vowel signs)
// B means a combining vowel sign or a virama


.replace
౦ 0 // Convert Telugu numbers
౧ 1
౨ 2
౩ 3
౪ 4
౫ 5
౬ 6
౭ 7
౮ 8
౯ 9


.group క
క ka
క (B k

.group ఖ
ఖ k#a
ఖ (B k#

.group గ
గ ga
గ (B g

.group ఘ
ఘ g#a
ఘ (B g#

.group ఙ
ఙ Na
ఙ (B N

.group చ
చ ca
చ (B c

.group ఛ
ఛ c#a
ఛ (B c#

.group జ
జ Ja
జ (B J

.group ఝ
ఝ J#a
ఝ (B J#

.group ఞ
ఞ n^a
ఞ (B n^

.group ట
ట t.a
ట (B t.

.group ఠ
ఠ t.#a
ఠ (B t.#

.group డ
డ d.a
డ (B d.

.group ఢ
ఢ d.#a
ఢ (B d.#

.group ణ
ణ n.a
ణ (B n.

.group త
త ta
త (B t

.group థ
థ t#a
థ (B t#

.group ద
ద da
ద (B d

.group ధ
ధ d#a
ధ (B d#

.group న
న na
న (B n

.group ప
ప pa
ప (B p

.group ఫ
ఫ p#a
ఫ (B p#

.group బ
బ ba
బ (B b

.group భ
భ b#a
భ (B b#

.group మ
మ ma
మ (B m

.group య
య ja
య (B j

.group ర
ర ra
ర (B r

.group ఱ
ఱ ra
ఱ (B r

.group ల
ల la
ల (B l

.group ళ
ళ l.a
ళ (B l.

.group వ
వ v#a
వ (B v#

.group శ
శ S;a
శ (B S;

.group ష
ష s.a
ష (B s.

.group స
స sa
స (B s

.group హ
హ ha
హ (B h

.group ౘ
ౘ tsa
ౘ (B ts

.group ౙ
ౙ dza
ౙ (B dz

.group ౠ
ౠ ru

.group ౡ
ౡ l-


// Stand-alone vowels
.group అ
అ a

.group ఆ
ఆ a:

.group ఇ
ఇ i

.group ఈ
ఈ i:

.group ఉ
ఉ u

.group ఊ
ఊ u:

.group ఋ
ఋ ru

.group ఌ
ఌ l-

.group ఎ
ఎ e
_) ఎ ;e

.group ఏ
ఏ e:

.group ఐ
ఐ aI

.group ఒ
ఒ o

.group ఓ
ఓ o:

.group ఔ
ఔ aU



.group 0xe0b0 // characters which start with UTF-8 bytes: [e0 b0]

. ఁ n // candrabindu

ం m // anusvara (this should nasalize the vowel)

ః h // visarga

// combining vowel signs

ా a:

ి i


.group 0xe0b1 // characters which start with UTF-8 bytes: [e0 b1]

ీ i:

ు u

ూ u:

ృ ru

ౄ r-:

ె e

ే e:

ై aI

ొ o

ో o:

ౌ aU

్ // virama

ౕ : // length mark ??
ౖ : // ai length mark ??


.group
$ d.a:lar



BIN
phsource/d/xd View File


+ 1
- 1
phsource/ph_bengali View File

@@ -29,7 +29,7 @@ endphoneme
phoneme a
vowel starttype #a endtype #a
length 225
FMT(vowel/aa_9)
FMT(vowel/a_3)
endphoneme



+ 193
- 150
phsource/ph_danish View File

@@ -23,6 +23,17 @@ phoneme @- // very short schwa
ipa NULL // @-* is used to make 'r'
ENDIF
length 40
// "femten", "manden" - only a short "n" sound
IF nextPhW(n) THEN
length 20
ENDIF
IF prevPhW(isNotVowel) AND thisPh(isWordEnd) THEN
length 15
ENDIF
// "lige" [li@-]
IF prevPhW(i) AND thisPh(isWordEnd) THEN
length 15
ENDIF
FMT(vowel/@-)
endphoneme

@@ -45,22 +56,22 @@ endphoneme

phoneme i
vowel starttype #i endtype #i
length 95 //150
length 140 //225
// PB long vowel followed by consonant and certain vowels "gide"
IF nextPhW(isNotVowel) AND next2PhW(#@) OR next2PhW(V) THEN
length 150
length 225
ENDIF
// "gider", vrider"
IF nextPhW(D) AND next2PhW(V) OR next2PhW(?V) THEN
length 95
length 140
ENDIF
// PB long vowel followed by certain vowels - "pigen" [p'i@-n]
IF nextPhW(#@) OR nextPhW(#e) THEN
length 150
// PB long vowel followed by [@-] - "pigen" [p'i@-n]
IF nextPhW(@-) OR nextPhW(V) THEN
length 225
ENDIF
// Only this vowel (in this case [i])
IF thisPh(isFinalVowel) AND thisPh(isWordEnd) AND thisPh(isWordStart) OR prevPhW(_) THEN
length 150
length 225
ENDIF
// This vowel is word end - longer because it sounds too short
// "sig", "si"
@@ -69,14 +80,23 @@ IF thisPh(isWordEnd) THEN
ENDIF
// "vilje" - short followed by 2 consonants
IF nextPhW(isNotVowel) AND next2PhW(isNotVowel) THEN
length 95
length 140
ENDIF
// PB "tie", "stige", "krige" vowel + vowel: extra length
// What is causing this very short [i] in words with final [@-]?
// NOT "galleriet" [g,?&lVR'i@-D] NOT "krigen" [kR'i@-n]
IF nextPhW(3) OR nextPhW(V) OR nextPhW(@) OR nextPhW(@-) AND NOT next2PhW(D) AND NOT next2PhW(n) THEN
// NOT "galleriet" [g,?&lVR'i@-D]
IF nextPhW(V) OR nextPhW(@) OR nextPhW(@-) AND NOT next2PhW(D) THEN
length 240
ENDIF
//"skider" short
IF nextPhW(D) AND next2PhW(V) THEN
length 140
ENDIF
//"skideren" long
IF nextPhW(D) AND next2PhW(V) AND next3PhW(V) THEN
length 225
ENDIF

FMT(vowel/i_4)
endphoneme

@@ -84,7 +104,7 @@ endphoneme
// sviret vs. svirret
phoneme ?i
vowel starttype #i endtype #i
length 90
length 100
IfNextVowelAppend(;)
FMT(vowel/i_4)
endphoneme
@@ -99,26 +119,30 @@ endphoneme

phoneme e
vowel starttype #e endtype #e
length 95 //150
length 140 //225
// "delte", "mente"
IF nextPhW(@-) OR nextPhW(V) OR next2PhW(@-) OR next2PhW(V) THEN
length 150
length 225
ENDIF
// PB "ring", "ringe"
IF nextPhW(N) THEN
length 95
length 140
ENDIF
// PB "enig", "enige", "evig"
IF nextPhW(isNotVowel) AND next2PhW(i) THEN
length 150
length 225
ENDIF
// Only "e"
IF thisPh(isWordEnd) AND thisPh(isWordStart) THEN
length 150
length 225
ENDIF
// "nedladende" [n'eDl&D@-n@-] - before 2 consonants: short
IF nextPhW(isNotVowel) AND next2PhW(isNotVowel) THEN
length 95
length 140
ENDIF
// "et"
IF thisPh(isWordStart) AND nextPhW(isWordEnd) THEN
length 120
ENDIF
FMT(vowel/e)
endphoneme
@@ -127,18 +151,18 @@ endphoneme
// "skille" vs. "skele", "pille" vs. "pile"
phoneme ?e
vowel starttype #e endtype #e
length 90
length 140
FMT(vowel/e)
endphoneme

phoneme E
vowel starttype #e endtype #e
length 100 //150
// "værelse", "breve"
IF nextVowel(3) OR nextVowel(V) OR nextVowel(@) OR nextVowel(@-) THEN
// length 150
length 140 //225
// no link with next vowel
IF thisPh(isWordEnd) THEN
IfNextVowelAppend(_!)
ENDIF
// "ræve"
// "ræve"
IF nextVowel(#@) OR nextVowel(#e) THEN
length 160
ENDIF
@@ -156,15 +180,15 @@ IF nextPhW(isNotVowel) AND next2PhW(i) THEN
ENDIF
// "længe" - short - 2 consonants => 1 consonant
IF nextPhW(N) THEN
length 120
length 100
ENDIF
// "værelse" [v'E3-Vls@_!]
IF nextPhW(3-) AND next2PhW(V) THEN
length 120
length 100
ENDIF
// "mælkebøtte" - short followed by 2 consonants
IF nextPhW(isNotVowel) AND next2PhW(isNotVowel) THEN
length 120
length 140
ENDIF
FMT(vowel/e_mid2)
endphoneme
@@ -174,22 +198,23 @@ endphoneme
phoneme ?E
vowel starttype #e endtype #e
ipa ε
length 100
length 140
FMT(vowel/e_mid2)
endphoneme

phoneme &
vowel starttype #e endtype #e
ipa a
length 90 //150
// "same", "sale", "bade" - consonant + gooup #e or group #@: long
IF next2PhW(#@) OR next2PhW(#e) THEN
length 150
length 140 //225
// "same", "sale", "bade" - consonant + @-: long
// but NOT "hinanden"
IF next2PhW(@-) OR next2PhW(@) AND NOT next3PhW(n) THEN
length 225
ENDIF
// ThisPh + gooup #e or group #@
// ThisPh + V or group #@
// "ae", "aer" vowel + vowel: extra length
IF nextPhW(#@) OR nextPhW(#e) THEN
length 220
IF nextPhW(@-) OR nextPhW(V) THEN
length 260
ENDIF
// This vowel is word end - longer because it sounds too short
// "ja", "Omaha"
@@ -198,7 +223,7 @@ IF thisPh(isWordEnd) THEN
ENDIF
// Only this vowel (in this case [&])
IF thisPh(isFinalVowel) AND thisPh(isWordEnd) AND thisPh(isWordStart) OR prevPhW(_) THEN
length 150
length 225
ENDIF
// "stadig" [st&Di], "stadigt" [st&Dit]
IF nextPhW(isNotVowel) AND next2PhW(i) THEN
@@ -206,7 +231,7 @@ IF nextPhW(isNotVowel) AND next2PhW(i) THEN
ENDIF
// "Alfie", "alfer" - short before 2 consonants
IF nextPhW(isNotVowel) AND next2PhW(isNotVowel) THEN
length 90
length 140
ENDIF
FMT(vowel/ee_2)
endphoneme
@@ -217,20 +242,20 @@ endphoneme
phoneme ?&
ipa a
vowel starttype #e endtype #e
length 90
length 140
FMT(vowel/ee_2)
endphoneme

// PB added for the æ in "dræbt"
phoneme &#
vowel starttype #e endtype #e
length 120
IF NOT next2Ph(3) AND NOT next2Ph(V) AND NOT next2PhW(@-) AND nextPhW(isNotVowel) THEN
glstop
length 90
length 140 //120
IF nextPhW(3) OR nextPhW(V) OR nextPhW(@-) THEN
length 120
ENDIF
IF nextPhW(3) OR nextPhW(V) OR nextPhW(@) THEN
length 150
// "drenge"
IF nextPhW(N) THEN
length 140
ENDIF
FMT(vowel/&)
endphoneme
@@ -239,33 +264,16 @@ endphoneme
// "revl" vs. "tremme"
phoneme ?&#
vowel starttype #e endtype #e
length 90
length 140
FMT(vowel/&)
endphoneme

//phoneme a
// vowel starttype #a endtype #a
// length 90 //150
//IF nextPhW(#@) OR nextPhW(#e) THEN
// length 150
//ENDIF
// FMT(vowel/a_2)
//endphoneme

// PB short (glottal) a
// "bragt"
//phoneme ?a
// vowel starttype #a endtype #a
// length 90
// FMT(vowel/a_2)
//endphoneme

phoneme A // PB changed to a_8
vowel starttype #a endtype #a
length 90 //150
length 140 //225
// PB long vowel followed by consonant and certain vowels - "drabelig"
IF nextPhW(isNotVowel) AND next2PhW(#@) OR next2PhW(#e) THEN
length 150
IF nextPhW(isNotVowel) AND next2PhW(#@) OR next2PhW(V) THEN
length 225
ENDIF
// "far", "bastard" - a bit longer followed by [r]
IF nextPhW(r) AND nextPhW(isWordEnd) THEN
@@ -273,11 +281,19 @@ IF nextPhW(r) AND nextPhW(isWordEnd) THEN
ENDIF
// "bange" [bAN@-] - [N] = 2 consonants (ng) => short
IF nextPhW(N) THEN
length 90
length 140
ENDIF
// "fare" [f'A:A]
IF nextPhW(A) THEN
length 150
length 225
ENDIF
// "av" [Au] - a bit longer
IF nextPhW(isWordEnd) THEN
length 120
ENDIF
// "magnat" [mAun&d] - sounds too short
IF nextPhW(u) OR nextPhW(w) THEN
length 130
ENDIF
FMT(vowel/a_8)
endphoneme
@@ -286,7 +302,7 @@ endphoneme
// "drab" vs. "drabelig"
phoneme ?A
vowel starttype #a endtype #a
length 90
length 140
// "straffeattest", "straffe", "rapid" - a bit longer after R
IF prevPhW(R) AND nextPhW(isNotVowel) AND next2PhW(isVowel) THEN
length 110
@@ -296,10 +312,14 @@ endphoneme

phoneme u
vowel starttype #u endtype #u
length 90 //150
length 140 //225
// "fugl" [ful] - a bit longer
IF nextPhW(isWordEnd) THEN
length 120
ENDIF
// "suge", "uge", "bluse", "julegave"
IF nextPhW(#e) OR nextPhW(#@) OR next2PhW(#e) OR next2PhW(#@)THEN
length 150
IF nextPhW(@-) OR nextPhW(V) OR next2PhW(@-) OR next2PhW(V)THEN
length 225
ENDIF
// "umulig" [u:m'uli]
IF nextVowel(i) AND nextVowel(isFinalVowel) AND nextVowel(isWordEnd) THEN
@@ -307,11 +327,7 @@ IF nextVowel(i) AND nextVowel(isFinalVowel) AND nextVowel(isWordEnd) THEN
ENDIF
// Only "u"
IF thisPh(isWordEnd) AND thisPh(isWordStart) THEN
length 150
ENDIF
// "fugl" [ful] - a bit longer
IF nextPhW(isWordEnd) THEN
length 120
length 225
ENDIF
FMT(vowel/u_bck)
endphoneme
@@ -320,20 +336,33 @@ endphoneme
// "tude" vs. "tuden" - [tuD3] [t?uD@n]
phoneme ?u
vowel starttype #u endtype #u
length 90
length 140
FMT(vowel/u_bck)
endphoneme

phoneme o
vowel starttype #o endtype #o
length 90 //150
length 140 //225
// "bore", "borer"
IF nextPhW(3) OR nextPhW(V) OR nextPhW(@-) THEN
length 150
IF nextPhW(V) OR nextPhW(#@) THEN
length 225
ENDIF
// "kone", "koner"
IF next2PhW(V) OR next2PhW(#@) THEN
length 225
ENDIF
// "modig" - long vowel after consonant + [i]
IF nextPhW(D) AND next2PhW(i) THEN
length 150
length 225
ENDIF
// Only "o"
IF thisPh(isWordEnd) AND thisPh(isWordStart) THEN
length 120
ENDIF
// This vowel is word end - longer because it sounds too short
// "ko"
IF thisPh(isWordEnd) THEN
length 120
ENDIF
FMT(vowel/o_2)
endphoneme
@@ -342,24 +371,33 @@ endphoneme
// "patron" vs. "kone"
phoneme ?o
vowel starttype #o endtype #o
length 95
length 140
FMT(vowel/o_2)
endphoneme

phoneme O
vowel starttype #o endtype #o
length 90 // 150
length 140 // 150
// "sove", "sover" - consonant + #e or #@: long
IF next2PhW(#@) OR next2PhW(#e) THEN
length 150
IF next2PhW(@-) OR next2PhW(V) THEN
length 225
ENDIF
// PB "gået" - ThisPh + #e or #@
IF nextPhW(#e) OR nextPhW(#@) THEN
length 150
// PB "gået" - ThisPh + V or @-
IF nextPhW(V) OR nextPhW(@-) THEN
length 225
ENDIF
// "rådig"
IF nextVowel(i) AND nextVowel(isFinalVowel) THEN
length 180
ENDIF
// This vowel is word end - longer because it sounds too short
// "på", "gå"
IF thisPh(isWordEnd) THEN
length 120
ENDIF
// "såre", "sårede" [s'O:?OD@-]
IF nextPhW(O) OR nextPhW(?O) THEN
length 225
ENDIF
FMT(vowel/o_5)
endphoneme
@@ -368,36 +406,33 @@ endphoneme
// "toget" vs. "tåget"
phoneme ?O
vowel starttype #o endtype #o
length 90
length 140
// "hoven"
IF nextPhW(w) OR nextPhW(?u) AND next2PhW(@-) THEN
length 120
ENDIF
FMT(vowel/o_5)
endphoneme

phoneme V
vowel starttype #@ endtype #@
length 150
// "sport" [spV:t]
IF NOT next2PhW(3) AND NOT next2PhW(V) AND NOT next2PhW(@) AND NOT next2PhW(@-) AND nextPhW(isNotVowel) THEN
glstop
length 90
ENDIF
IF nextPh(3) OR nextPh(V) OR nextPh(@) THEN
length 150
ENDIF
// PB short V in "holder", "solder"
IF nextPhW(isNotVowel) AND next2Ph(V) THEN
length 90
ENDIF
// "snorke", "snorker", årlig
IF next2PhW(3) OR next2PhW(V) OR next2PhW(@) OR next2PhW(i) THEN
length 140 //225
// "forlig"
IF nextPhW(isNotVowel) AND next2PhW(i) THEN
length 180
ENDIF
// "sove" [sVw3] - longer followed by w + 3
IF nextPhW(w) AND next2PhW(3) THEN
length 220
ENDIF
// PB "konge"
// PB "konge" - ng=>n
IF nextPhW(N) THEN
length 95
length 100
ENDIF
// Only [V] - "og"
IF thisPh(isWordEnd) AND thisPh(isWordStart) THEN
length 120
ENDIF
// This vowel is word end - longer because it sounds too short
// "for" [fV]
IF thisPh(isWordEnd) THEN
length 120
ENDIF
FMT(vowel/V_4)
endphoneme
@@ -406,19 +441,15 @@ endphoneme
// "forstår" vs. "kåre"
phoneme ?V
vowel starttype #@ endtype #@
length 90
length 140
FMT(vowel/V_4)
endphoneme

phoneme 0
vowel starttype #o endtype #o
length 150
IF NOT next2PhW(3) AND NOT next2PhW(V) AND NOT next2PhW(@-) AND nextPhW(isNotVowel) THEN
glstop
length 90
ENDIF
IF nextPhW(3) OR nextPhW(V) OR nextPhW(@) THEN
length 150
length 140 //225
IF nextPhW(3) OR nextPhW(V) OR nextPhW(@-) THEN
length 225
ENDIF
FMT(vowel/oo_2)
endphoneme
@@ -426,7 +457,7 @@ endphoneme
// Short 0 "sukker"
phoneme ?0
vowel starttype #o endtype #o
length 90
length 140
FMT(vowel/oo_2)
endphoneme

@@ -434,28 +465,28 @@ phoneme y
vowel starttype #i endtype #i
// Length changed to short since most vowels are short.
// It's probably easier only to make rules for long vowels.
length 90 //150
length 140 //225

// PB long vowel followed by consonant and certain vowels
// "lyde", "lyder"
IF nextPhW(isNotVowel) AND next2PhW(#@) OR next2PhW(#e) THEN
length 150
// "gyde", "gyder"
IF nextPhW(isNotVowel) AND next2PhW(@-) OR next2PhW(V) THEN
length 225
ENDIF
// Only this vowel (in this case [y])
IF thisPh(isFinalVowel) AND thisPh(isWordEnd) AND thisPh(isWordStart) THEN
length 150
length 225
ENDIF
// "dydig" [dyDi]
IF nextPhW(isNotVowel) AND next2PhW(i) THEN
length 150
length 225
ENDIF
// "syge" [sy3] vowel + vowel: extra length, but NOT "fyret" [fyVD]
IF nextPhW(#e) OR nextPhW(#@) AND NOT next2PhW(D) THEN
// "syge" [sy@-] vowel + vowel: extra length, but NOT "fyret" [fyVD]
IF nextPhW(@-) OR nextPhW(3) AND NOT next2PhW(D) THEN
length 200
ENDIF
// "tyve"
IF nextPhW(?u) AND next2PhW(@-) THEN
length 150
length 225
ENDIF
FMT(vowel/y)
endphoneme
@@ -464,26 +495,26 @@ endphoneme
// "kylling" vs. "kyle", "krybbe" vs. "krybe"
phoneme ?y
vowel starttype #i endtype #i
length 90
length 140
FMT(vowel/y)
endphoneme

phoneme Y
vowel starttype #i endtype #i
length 150
length 225
IF NOT next2Ph(3) AND NOT next2Ph(V) AND NOT next2PhW(@-) AND nextPhW(isNotVowel) THEN
glstop
length 90
length 140
ENDIF
IF nextPhW(3) OR nextPhW(V) OR nextPhW(@) THEN
length 150
length 225
ENDIF
FMT(vowel/yy)
endphoneme

phoneme W
vowel starttype #@ endtype #@
length 90 //160
length 140 //160
// "kløe" vowel + vowel: extra length
IF nextPhW(#@) OR nextPhW(#e) THEN
length 220
@@ -494,7 +525,7 @@ IF next2PhW(#@) OR next2PhW(#e) THEN
ENDIF
// "røveri" but NOT "surfer" [sWf?V] TEST
IF next2PhW(V) OR next2PhW(?V) AND NOT next2PhW(isFinalVowel) THEN
length 90
length 140
ENDIF
// PB "nødig", "nødigt", "kølige"
IF nextVowel(i) THEN
@@ -506,7 +537,16 @@ IF nextPhW(w) AND nextVowel(@-) THEN
ENDIF
// "børnebog"
IF nextPhW(r) AND next2PhW(n) AND nextVowel(@-) THEN
length 150
length 225
ENDIF
// This vowel is word end - longer because it sounds too short
// "dø" [dW]
IF thisPh(isWordEnd) THEN
length 120
ENDIF
// PB "synge"
IF nextPhW(N) THEN
length 140
ENDIF
FMT(vowel/oe)
endphoneme
@@ -515,21 +555,17 @@ endphoneme
// "prøv" vs. "prøve"
phoneme ?W
vowel starttype #@ endtype #@
length 95
length 140
FMT(vowel/oe)
endphoneme

// Added for the ø in "røv", "røg", "øje" instead of [V3]
phoneme W#
vowel starttype #@ endtype #@
length 90 //150
IF NOT next2Ph(3) AND NOT next2Ph(V) AND NOT next2PhW(@-) AND nextPhW(isNotVowel) THEN
glstop
// length 90
ENDIF
length 140 //225
// PB long vowel followed by consonant and certain vowels
IF nextPhW(isNotVowel) AND next2PhW(@-) OR next2PhW(@) OR next2PhW(3) OR next2PhW(V) OR next2PhW(?V) THEN
length 150
length 225
ENDIF
FMT(vowel/V)
endphoneme
@@ -538,7 +574,7 @@ endphoneme
// "rømme"
phoneme ?W#
vowel starttype #@ endtype #@
length 90
length 140
FMT(vowel/V)
endphoneme

@@ -547,7 +583,7 @@ phoneme aI
length 300
IF NOT next2Ph(3) AND NOT next2Ph(V) AND NOT next2Ph(@-) AND nextPhW(isNotVowel) THEN
glstop
length 150
length 225
ENDIF
// "dreje" [dR'aI@-_!]
IF nextPhW(3) OR nextPhW(V) OR nextPhW(@) OR nextPhW(@-) THEN
@@ -571,6 +607,10 @@ endphoneme
phoneme l
liquid
lengthmod 7
// [ll] => [-l] - avoid double l
IF nextPhW(l) THEN
// ChangePhoneme(-)
ENDIF
ChangePhoneme(l/3)
// CALL base/l
endphoneme
@@ -579,16 +619,16 @@ phoneme l/3 // Replacement for [l/]
liquid
lengthmod 7

IF nextPh(isVowel) THEN
IF nextPhW(isVowel) THEN
// ChangePhoneme(l)
ENDIF

PrevVowelEndings
VowelEnding(l/l_@)
VowelEnding(l/l_a,-70) // kvalt, kapital
VowelEnding(l/l_e, -40)
VowelEnding(l/l_i, -70)
VowelEnding(l/l_o,-70) // stole, skole, pistol
VowelEnding(l/l_a)
VowelEnding(l/l_e, -50) // hjælpe
VowelEnding(l/l_i, -70) // flygte?
VowelEnding(l/l_o,-35) // stole, skole, pistol
VowelEnding(l/l_u, -70)
EndSwitch

@@ -678,7 +718,10 @@ endphoneme
phoneme j
liquid palatal
lengthmod 7

// no link with next vowel
IF thisPh(isWordEnd) THEN
IfNextVowelAppend(_!)
ENDIF
IF nextPhW(isVowel) THEN
NextVowelStarts
VowelStart(j/j@)
@@ -699,4 +742,4 @@ Vowelout len=70
Vowelout len=70
FMT(j/j_)
ENDIF
endphoneme
endphoneme

+ 1
- 1
phsource/ph_hindi View File

@@ -439,7 +439,7 @@ endphoneme

phoneme c#
CALL base/tS;
ipa ch
ipa cU+02B0
endphoneme



+ 20
- 0
phsource/ph_korean View File

@@ -95,6 +95,26 @@ phoneme dZ; // voiced /ㅈ/
FMT(dzh/dzh) addWav(x/dz_pzd)
endphoneme

phoneme s-
import_phoneme base/s // temporary
endphoneme

phoneme q-
import_phoneme base/q // temporary
endphoneme

phoneme tS;-
import_phoneme base/tS; // temporary
endphoneme

phoneme d-
import_phoneme base/d
endphoneme

// phoneme tSh; ?? changed to [tS;h] in ko_rules
// phoneme h- in ko_list (for 10^3) ?? changed to [h]
// phoneme tSh- changed to tSh

phoneme * // r(ㄹ) at initial, medial
vcd alv flp rhotic
ipa ɾ

+ 119
- 1
phsource/ph_malayalam View File

@@ -25,7 +25,7 @@ phoneme a
length 130

IF thisPh(isStressed) OR thisPh(isFirstVowel) OR thisPh(isWordEnd) THEN
FMT(vowel/a#_2)
FMT(vowel/a#_4)
ELSE
ChangeIfUnstressed(@)

@@ -144,3 +144,121 @@ phoneme d2 // 'rr' sounds like English 'd'
endphoneme


// Aspirated voice stops, sound like aspirated unvoiced stops ?

phoneme b#
vls blb stop prevoice
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 PreVoicing THEN
IF prevPhW(isVowel) THEN
FMT(b/xb)
ELSE
FMT(voc/murmur1)
ENDIF
ENDIF

IF nextPh(isPause2) THEN
WAV(ustop/p_)
ENDIF
IF nextPh(l) THEN
WAV(ustop/pl)
ENDIF
WAV(ustop/p_asp)
endphoneme


phoneme d#
vls dnt stop prevoice
lengthmod 2
voicingswitch d
Vowelin f1=0 f2=1500 -300 300 f3=-100 80 amp=16
Vowelout f1=0 f2=1500 -300 250 f3=-100 80 rms=20

IF PreVoicing THEN
IF prevPhW(isVowel) THEN
FMT(d/xd)
ELSE
FMT(voc/murmur1)
ENDIF
ENDIF

IF nextPh(isPause2) THEN
WAV(ustop/t_dnt, 35)
ENDIF
WAV(ustop/t_dnt, 50)
endphoneme


phoneme d.#
vls rfx stop prevoice
lengthmod 2
ipa ʈU+02B0
Vowelin f1=0 f2=1800 -300 300 f3=-400 80
Vowelout f1=0 f2=1800 -300 250 f3=-400 80 rms=20 colr=2

IF PreVoicing THEN
IF prevPhW(isVowel) THEN
FMT(d/xdr)
ELSE
FMT(voc/murmur1)
ENDIF
ENDIF

voicingswitch d.#
WAV(ustop/t)
endphoneme


phoneme J#
vls pal afr sibilant palatal prevoice
voicingswitch c#
lengthmod 2
Vowelin f1=0 f2=2700 400 600 f3=300 80 rate len=70

IF PreVoicing THEN
IF prevPhW(isVowel) THEN
FMT(dzh/xdz_pzd)
ELSE
FMT(voc/murmur1)
ENDIF
ENDIF

IF nextPh(isPause2) THEN
WAV(ustop/ts_pzd)
ENDIF
WAV(ustop/ts_pzd)
endphoneme


phoneme g#
vls vel stop prevoice
lengthmod 2
Vowelin f1=1 f2=1400 -100 100 f3=-150 80
Vowelout f1=0 f2=2300 300 400 f3=-150 80 rms=20

IF PreVoicing THEN
IF prevPhW(isVowel) THEN
FMT(g/xg)
ELSE
FMT(voc/murmur1)
ENDIF
ENDIF

IF nextPh(isPause2) THEN
WAV(ustop/k_asp, 40)
ENDIF
IF nextPhW(#e) OR nextPhW(#i) THEN
WAV(ustop/k_asp_e, 40)
ELIF nextPhW(#o) OR nextPhW(#u) THEN
WAV(ustop/k_asp_a, 25)
ELSE
WAV(ustop/k_asp_a, 30)
ENDIF
endphoneme



+ 3
- 3
phsource/phonemes View File

@@ -1745,6 +1745,9 @@ include ph_kannada
phonemetable ml hi
include ph_malayalam

phonemetable te hi
include ph_telugu



phonemetable hu base
@@ -1923,9 +1926,6 @@ include ph_slovenian
//phonemetable dv hi
//include ph_divehi

//phonemetable te hi
//include ph_telugu

//phonemetable tn base
//include ph_setswana


BIN
phsource/voc/murmur1 View File


+ 1
- 1
src/phonemelist.cpp View File

@@ -619,7 +619,7 @@ void MakePhonemeList(Translator *tr, int post_pause, int start_sentence)
phlist[ix].length = option_wordgap*14; // 10mS per unit at the default speed
}

if(ph->type==phVOWEL || ph->type==phLIQUID || ph->type==phNASAL || ph->type==phVSTOP || ph->type==phVFRICATIVE)
if(ph->type==phVOWEL || ph->type==phLIQUID || ph->type==phNASAL || ph->type==phVSTOP || ph->type==phVFRICATIVE || (ph->phflags & phPREVOICE))
{
phlist[ix].length = 128; // length_mod
phlist[ix].env = PITCHfall;

+ 1
- 1
src/synthdata.cpp View File

@@ -35,7 +35,7 @@
#include "translate.h"
#include "wave.h"

const char *version_string = "1.47.03c 23.Mar.13";
const char *version_string = "1.47.03d 26.Mar.13";
const int version_phdata = 0x014701;

int option_device_number = -1;

+ 19
- 1
src/synthesize.cpp View File

@@ -1426,7 +1426,7 @@ int Generate(PHONEME_LIST *phoneme_list, int *n_ph, int resume)

EndAmplitude();

if(p->prepause > 0)
if((p->prepause > 0) && !(p->ph->phflags & phPREVOICE))
DoPause(p->prepause,1);

done_phoneme_marker = 0;
@@ -1455,6 +1455,7 @@ int Generate(PHONEME_LIST *phoneme_list, int *n_ph, int resume)

case phSTOP:
released = 0;
ph = p->ph;
if(next->type==phVOWEL)
{
released = 1;
@@ -1468,6 +1469,23 @@ int Generate(PHONEME_LIST *phoneme_list, int *n_ph, int resume)
if(released == 0)
p->synthflags |= SFLAG_NEXT_PAUSE;

if(ph->phflags & phPREVOICE)
{
// a period of voicing before the release
memset(&fmtp, 0, sizeof(fmtp));
InterpretPhoneme(NULL, 0x01, p, &phdata, &worddata);
fmtp.fmt_addr = phdata.sound_addr[pd_FMT];
fmtp.fmt_amp = phdata.sound_param[pd_FMT];

if(last_pitch_cmd < 0)
{
DoAmplitude(next->amp,NULL);
DoPitch(envelope_data[p->env],next->pitch1,next->pitch2);
}

DoSpect2(ph, 0, &fmtp, p, 0);
}

InterpretPhoneme(NULL, 0, p, &phdata, &worddata);
phdata.pd_control |= pd_DONTLENGTHEN;
DoSample3(&phdata, 0, 0);

+ 1
- 1
src/tr_languages.cpp View File

@@ -79,7 +79,7 @@ ALPHABET alphabets [] = {
{"_ar", OFFSET_ARABIC, 0x600, 0x6ff, 0, 0},
{"_dv", OFFSET_THAANA, 0x780, 0x7bf, 0, 0},
{"_hi", OFFSET_DEVANAGARI, 0x900, 0x97f,L('h','i'), AL_WORDS},
{"_bn", OFFSET_BENGALI, 0x0980, 0x9ff, 0, 0},
{"_bn", OFFSET_BENGALI, 0x0980, 0x9ff, L('b','n'), 0},
{"_gur", OFFSET_GURMUKHI, 0xa00, 0xa7f, L('p','a'), AL_WORDS},
{"_gu", OFFSET_GUJARATI, 0xa80, 0xaff, 0, 0},
{"_or", OFFSET_ORIYA, 0xb00, 0xb7f, 0, 0},

+ 1
- 1
src/voices.cpp View File

@@ -601,7 +601,7 @@ voice_t *LoadVoice(const char *vname, int control)

// which directory to look for a named voice. List of voice names, must end in a space.
static const char *voices_asia =
"fa fa-pin hi hy hy-west id ka kn ku ml ms ne pa ta tr vi vi-hue zh zh-yue ";
"bn fa fa-pin hi hy hy-west id ka kn ku ml ms ne pa ta te tr vi vi-hue zh zh-yue ";
static const char *voices_europe =
"an bg bs ca cs cy da de el en en-us es et fi fr fr-be ga hr hu is it lt lv mk nl no pl pt-pt ro ru sk sq sr sv ";


Loading…
Cancel
Save