Browse Source

Adding Konkani ( inc/kok )

master
Vardhan 8 years ago
parent
commit
639bd9f558
6 changed files with 1381 additions and 0 deletions
  1. 6
    0
      Makefile.am
  2. 206
    0
      dictsource/kok_list
  3. 571
    0
      dictsource/kok_rules
  4. 2
    0
      espeak-ng-data/voices/inc/kok
  5. 593
    0
      phsource/ph_konkani
  6. 3
    0
      phsource/phonemes

+ 6
- 0
Makefile.am View File

@@ -670,6 +670,12 @@ dictsource/ko_extra:
espeak-ng-data/ko_dict: src/espeak-ng phsource/phonemes.stamp dictsource/ko_list dictsource/ko_rules dictsource/ko_extra
cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak-ng --compile=ko && cd ..

kok: espeak-ng-data/kok_dict
dictsource/kok_extra:
touch dictsource/kok_extra
espeak-ng-data/kok_dict: src/espeak-ng phsource/phonemes.stamp dictsource/kok_list dictsource/kok_rules dictsource/kok_extra
cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak-ng --compile=kok && cd ..

ku: espeak-ng-data/ku_dict
dictsource/ku_extra:
touch dictsource/ku_extra

+ 206
- 0
dictsource/kok_list View File

@@ -0,0 +1,206 @@
// This file is UTF8 encoded
// This kok_list file is prepared by Him Prasad Gautam < [email protected] >.
// Numbers
// devanagari numbers are changed to latin characters before translation

_0 S'u:nj@-
_1 'e:k:1
_2 d'o:n
_3 t'i:n
_4 c'a:d
_5 pa:n^,c:0
_6 s'@
_7 s'a:t
_8 'a:,t.#
_9 n'O::1
_10 d#'a:
_11 'Ikr,a:
_12 b'a:*a:
_13 t'e:*a:
_14 c'Vwd,a:
_15 p'Vnd@*,a:
_16 s'o:l.a:
_17 s'Vtr,a:
_18 'V,t.#,r@
_19 ,e:kUn.'i:s
_20 w'i:s
_21 ,e:kw'i:s
_22 ba:w'i:s
_23 te:w'i:s
_24 co:w'i:s
_25 p,@n^c@w'i:s
_26 s@ww'i:s
_27 s,@t:a:w'i:s
_28 V,t.#:0t.#a:w'i::1
_29 ,e:kUn.t'i:s
_30 t'i:s
_31 ,e:kt'i:s
_32 b@t:'i:s
_33 t'e:t:is
_34 c,@wt'i:s
_35 p@st'i:s
_36 c#@3t:'i:s
_37 s'a:t:is
_38 Vt.#t'i:s
_39 ,e:kUn.ca:l.'i:s
_40 ca:l.'i:s
_41 ,e:ke:ca:l.'i:s
_42 b,e:ca:l.'i:s
_43 tr,e:ca:l.'i:s
_44 c,@we:ca:l.'i:s
_45 p,@n^ce:ca:l.'i:s
_46 S,e:ca:l.'i:s
_47 s,@t:e:ca:l.'i:s
_48 V,t.#t.#e:ca:l.'i:s:0
_49 e:,kU:n.,pann'a:
_50 p@nn'a:
_51 e:k'a:w@n
_52 b'a:w@n
_53 tr'e:p:1@n
_54 c'Vw@p,@n
_55 p@n^c'a:w@n
_56 c#V:0pp@:0n
_57 s@t:'a:w@n
_58 V,t.#t.#a:w@:0n
_59 ,e:kUn.s'a:t.#
_60 s'a:t.#
_61 'e:k@s,@t.#
_62 ba:s@t.#
_63 tr'e:s@t.#
_64 c'Vw@s,@t.#
_65 pa:s@t.#
_66 c#a:s@t.#
_67 s'a:t@s,@t.#
_68 V,t.#s@t.#
_69 ,e:kUn.@s'Vt:@r
_70 s'Vt:@r
_71 e:k:j'a:t:@r
_72 bj'a:t:@r
_73 trj'a:t:@r
_74 c,@wdj'a:t:@r
_75 p@n^c:j'a:t:@r
_76 S'a:t:@r
_77 s@t:j'a:t:@r
_78 V,t.#ja:t@r
_79 e:kUn.a:S'i:
_80 V,sS'i:
_81 e:kja:nSi:
_82 b'ja,j@,Si:
_83 trjeja:Si:
_84 cO,dja:Si:
_85 p@n,ca:si:
_86 S'a:j@3Si:
_87 s@t,tja:Si:
_88 V,t.#t.#ja:Si:
_89 ,e:kUn.@n.'Vww:0@d
_90 nOwV:0J
_91 e:,kja:n.:0nO
_92 bja:j@n.:0nO
_93 trjeja:n.:0nO
_94 caUdja:n.:0nO:
_95 p@nca:n.:0nO
_96 Sa:d.:0nO
_97 sVtja:n.:0nO
_98 V,t.#t.#ja:n.:0nO
_99 nVbja:n.:0nO
_1C0 S'Vm:1b@,r
_1C e:k,SVj@
_2C d'o:n,SVj@
_3C t'i:n,SVj@
_4C c'a:r,SVj@
_5C p'a~n^c,SVj@
_6C s'@,SVj@
_7C s'a:t,SVj@
_8C 'a:,t.#,SVj@
_9C n.'Vw@-,SVj@

_0M1 H@J'a:r
_0M2 l'a:k#
_0M3 k'o:t.i;
_0M4 'VbJ@

_dpt _d@s@ml'o:_

// Single consonants
क k@
क़ q@
ख k#@
ख़ x@
ग g@
ग़ Q@
घ g#@
ङ N@
च c@
छ c#@
ज J@
ज़ z@
झ J#@
ञ n^@
ट t.@
ठ t.#@
ड d.@
ड़ r.@
ढ d.#@
ण n.@ // retroflex n.@
त t@
थ t#@
द d@
ध d#@
न n@
प p@
फ p#@
फ़ f@
ब b@
भ b#@
म m@
य j@
र r@
ऱ r@
ल l@
ळ l.@
व w@
श S@
ष s.@ // retroflex [S]
स s@
ह H@
ज्ञ nj@
क़ q@
ख़ x@
ग़ Q@
ज़ z@
ड़ r-@
ढ़ hr@
फ़ f@
य़ j@

U+901 cVndrVbIndu
U+902 VnUswa:r
U+903 wIsVrg@
U+93c nUkta
U+94d hVlVnt

_?? Vks.@r

// Alphabet names
_ar 'Vrbi
_cyr sIrIk'Ik
_zh c'i@ni

// Punctuation

$ dOlVr
% pVt'ISVt
+ plVs
= bVr'a:bVr
* ta:r'a:NkVn
/ sle:S
_, 'Vlp@||wir,a:m
। p'u:rn.@||wIr,a:m
_; 'Vrd#@-||wIr,a:m
_: brIHVd'a:ntr@-
_? prVSVnv'a:cVk
! wIsmVja:dIv'a:cVk
_— nIrd'e:SVk
_- j'o:JVk
_" 'Udd#VrVn.


+ 571
- 0
dictsource/kok_rules View File

@@ -0,0 +1,571 @@
// Kankani Language.
// This kok_rules file is prepared by Him Prasad Gautam < [email protected] >.
// This file is UTF-8 encoded.

// letter groups:
// A - Independent and Dependent Vowels:
// 0x904 to 0x914, 0x93E to 0x94D, 0x950, 0x960 to 0x963, 0x972
// B - Dependent Vowels and Halanta:
// 0x93E to 0x94C, 0x94d, 0x962, 0x963
// C - Consonants:
// 0x915 to 0x939, 0x958 to 0x95F, 0x97B, 0x97c, 0x97E, 0x97F
// Independent Vowels:
// 0x904 to 0x914, 0x950,0x960, 0x961, 0x977
// Nepali Alphabets: 0x901 to 0x980
// Numbers: 0x966 to 096F
// symbols:
// 0x901 to 0x903, 0x93C, 0x93D, 0x951 to 0x954, 0x964, 0x965, 0x970, 0x971, 0x97D

// conditional rules
// ?2 use diphthong for "ai"
// ?3 use diphthong for "au"

.replace
० 0
१ 1
२ 2
३ 3
४ 4
५ 5
६ 6
७ 7
८ 8
९ 9

ॱ० .0
ॱ१ .1
ॱ२ .2
ॱ३ .3
ॱ४ .4
ॱ५ .5
ॱ६ .6
ॱ७ .7
ॱ८ .8
ॱ९ .9

.group ॱ //Devanagari decimal
ॱ d'VS'V,mal'Vw#@

// Vowels

.group अ
अ V
अ (_ V:0
अं V~
अं (_ V~:

.group आ
आ a:
आ (_ a::0
आं a~
आं (_ a~::0

.group इ
इ I
इ (_ I:0
इं i~
इं (_ i~::

.group ई
ई i:
ई (_ i::0
ईं i~
ईं (_ i~::

.group उ
उ U
उ (_ U:0
उं U~
उं (_ U~:

.group ऊ
ऊ u:
ऊं u~
ऊं (_ u~:

.group ऋ
ऋ rI

.group ॠ
ॠ ri:

.group ऌ
ऌ lr-'i

.group ऍ
ऍ E // candra e

.group ऎ
ऎ e
ऎं e~
ऎं (_ e~:

.group ए
ए e:
एँ e~:
एं e~:

.group ऐ
ऐ E: // ?? [aI] [E:] [&:]
ऐं E~
ऐँ (_ E~:
?2 ऐ aI // ?? [aI] [E:] [&:]

.group ऑ
ऑ O // candra O

.group ऒ
ऒ o
ऒं o~
ऒं (_ o~:

.group ओ
ओ o:
ओं o~
ओं (_ o~: // +candrabindu

.group औ
औ O: // ?? [aU] [O:]
औं O~ // +anusvara
औं (_ O~:
?3 औ aU // ?? [aU] [O:]


// Vowel Signs

.group ा
ा a:k'a:r
C) ा a:
C) ा (ँ a~
C) ाँ (_ a~:1
C) ा (ं a~

.group ि
ि I,k'a:r
C) ि I
C) ि (_ I:0
C) ि (ं i~
C) ि (ं_ i~:1

.group ी
ी i:,k'a:r
C) ी i:
C) ी (_ i::0
C) ी (ँ i~
C) ीँ (_ i~:1
C) ी (ं i~

.group ु
ु U,k'a:r
C) ु U
C) ु (_ U:0
C) ु (ँ u~
C) ुं u~
C) ुँ (_ u~:1

.group ू
ू u:k'a:r
C) ू u:
C) ू (_ u::0
C) ू (C u:1
C) ू (ँ u~
C) ूं u~
C) ूँ (_ u~:1

.group ृ
ृ rI,k'a:r
C) ृ rI
C) ृ (_ rI:0
.group ॄ
ॄ rI:,k'a:r
C) ॄ rI:

.group ॅ
ॅ E,k'a:r
C) ॅ E

.group ॆ
ॆ e,k'a:r
C) ॆ e
C) ॆ (_ e':0
C) ॆ (ँ e~
C) ॆ (ं e~
C) ॆँ (_ e~:1

.group े
े e:,k'a:r
C) े e:
C) े (_ e:':0
C) े (ँ e~
C) े (ं e~:1
C) ेँ (_ e~:1

.group ै
ै E:,k'a:r
C) ै E:
C) ै (_ E::0
C) ै (ं E~
C) ै (ँ E~
C) ैँ (_ E~:1
?2 C) ै aI

.group ॉ
ॉ O,k'a:r
C) ॉ O
C) ॉ (_ O':0
.group ॊ
ॊ o,k'a:r
C) ॊ o
C) ॊ (_ o':0
C) ॊ (ँ o~
C) ॊं o~
C) ॊँ (_ o~:1

.group ो
ो o:,k'a:r
C) ो o:
C) ो (_ o::0
C) ो (ँ o~
C) ों o~
C) ोँ (_ o~:1

.group ौ
ौ O:,k'a:r
C) ौ O: // [O:] or [aU] ??
C) ौ (_ O::0
C) ौ (ँ O~ // [O:] or [aU] ??
C) ौं O~
C) ौँ (_ O~:1
?3 C) ौ aU

.group ॢ // vowel sign l
ॢ l-,rik'a:r

.group ॣ // vowel sign ll
ॣ l-:rik'a:r

.group ॐ
ॐ o~m

// Consonants

.group क
क kV
क (B k
क (्य k:
क़ qV
क़ (B q
क्क k:V // kk -> k:
क्क (B k:
क्ष kSV
क्ष (B kS

.group ख
ख k#V
ख (B k#
ख़ xV
ख़ (B x

.group ग
ग gV
ग (B g
ग़ QV
ग़ (B Q

.group घ
घ g#V
घ (B g#

.group ङ
ङ NV
ङ (B N
्) ङ (_ N@

.group च
च cV
च (B c
च (्य c:

.group छ
छ c#V
छ (B c#

.group ज
ज JV
ज (B J
ज़ zV
ज़ (B z
ज्ञ n'jV
ज्ञ (B nj

.group झ
झ J#V
झ (B J#

.group ञ
ञ n^V
ञ (B n^
्) ञ (_ n^@

.group ट
ट t.V
ट (B t.
ट (्य t.:
ट्ट t.:V // t.t. -> t.:
ट्ट (B t.:
ट्ठ t.#:V // t.t.# -> t.#:
ट्ठ (B t.#:

.group ठ
ठ t.#V
ठ (B t.#
ठ्ठ t.#:V // t.#t.# -> t.#:
ठ्ठ (B t.#:
.group ड
ड d.V
ड (B d.

ड़ r.V
ड़ (B r.

.group ढ
ढ d.#V
ढ (B d.#
ढ़ r.hV
ढ़ (B r.h // nukta

.group ण
ण n.V
ण (B n.
्) ण (_ n.@

.group त
त tV
त (B t
त (्य t:
त्र_ t@
त्त t:V // tt -> t:
त्त (B t:

.group थ
थ t#V
थ (B t#
थ (_ t#@

.group द
द dV
द (B d

.group ध
ध d#V
ध (B d#

.group न
न nV
न (B n
्) न (_ n@
र्) न (_ n // r +virama


.group ऩ
ऩ n: // should this be a long [n] ?

.group प
प pV
प (B p
प (्य p:1
प्प p:1V
प्प (B p:1

.group फ
फ p#V
फ (B p#
फ़ fV
फ़ (B f

.group ब
ब bV
ब (B b

.group भ
भ b#V
भ (B b#

.group म
म mV
म (B m
्) म (_ m@
र्) म (_ m:0
न्) म (_ m:0

.group य
य jV
य (B j
C) य (_ Ej
य (_ j@
्) य (C j@

.group र
र rV
र (B r
र (_ r
्) र (_ r@

.group ऱ
ऱ rV
ऱ (B r
्) ऱ (_ r@

.group ल
ल lV
ल (B l
्) ल (_ l@

.group ळ
ळ l.V
ळ (B l.
्) ळ (_ l.@

.group ऴ
ऴ l.V // (temporary) same as [l.]
ऴ (B l.
्) ऴ (_ l.@

.group व
व wV
व (B w
_) व wV
_) व (B w
_) व (् w
व (_ w@
्) व w:0V
्) व (_ w@
व (्य b

.group श
श SV
श (B S

.group ष
ष s.V
ष (B s.

.group स
स sV:0
स (B s

.group ह
ह HV
ह (B H
ह (व H'V:0
// Additional consonants

.group क़ // qa
क़ qV
क़ (B q

.group ख़ // khha
ख़ xV
ख़ (B x

.group ग़ // ghha
ग़ QV
ग़ (B Q

.group ज़ // za
ज़ zV
ज़ (B z

.group ड़
ड़ r.V
ड़ (B r.

.group ढ़
ढ़ r.hV
ढ़ (B r.h

.group फ़ // fa
फ़ fV
फ़ (B f

.group य़
य़ jV
य़ (B j

// Alphabetic symbols
// nukta, modifies a consonant

.group ऽ // avagraha, lengthens a vowel ??
ऽ V'k'a:r@
A) ऽ :=
C) ऽ :=

.group ँ
ँ cVndr@2wi'n'du
A) ँ n
C) ँ n
्) ँ cVndr@2wi'n'du

.group ं
ं shI'rV,w'in'd'u
A) ं n
C) ं n
ं (प m
ं (फ m
ं (ब m
ं (भ m
ं (म m
ं (ट n.
ं (ठ n.
ं (ड n.
ं (ढ n.
ं (ण n.
ं (च n^
ं (छ n^
ं (ज n^
ं (ज्ञ N
ं (झ n^
ं (ञ n^
ं (य n^
ं (क N
ं (ख N
ं (ग N
ं (घ N
ं (ङ N
ं (ह N

.group ः
ः wi:s'Vr,g@
_) ः : //wi:s'Vr,g@
C) ः (_ H
A) ः (_ H,
C) ः (A H,
A) ः (C H,
A) ः (A H,
C) ः (C H,

.group ्
् h'Vl@3n't@2 // Alphabet Name
C) ् // Silent If followed to a Consonant.
C) ् (C_ =

.group ॰
॰ saNks.e:p@s'u:c@k@
A) ॰ ,:0
C) ॰ ,:0

// Special Symbols with special meanings
.group
। pur',n.@:w'ir'a:m // Fullstop in Devanagari
॥ d'i:rg#@,w'ir'a:m // Double Fullstop - means Read sentence twice.
$ dOlV
% prVtish'vt
// Rarely used Vedic symbols. Written after Indepedent Vowel or between a Consonants and Symbolic Vowels!
़ n'u'k't'a:
॑ Ud'Vtt,@
॓ Ud:d#@r,@n.@a:r'Vmb#@
॔ ,Ud:d#@r,@n.@'Vnt@
॒ a'n'ud'Vtt,@
ॽ k,@n.t.#@w'Ira:m

+ 2
- 0
espeak-ng-data/voices/inc/kok View File

@@ -0,0 +1,2 @@
name konkani
language kok

+ 593
- 0
phsource/ph_konkani View File

@@ -0,0 +1,593 @@

//====================================================
// kankani
//====================================================

phoneme :0
virtual
length 25
endphoneme

phoneme :1
virtual
length 50
endphoneme

phoneme : // Lengthen the previous vowel by "length"
virtual
length 100
endphoneme

phoneme @
vwl flag1 starttype #@ endtype #@
length 130

ChangeIfDiminished(@-)
IF nextPh(H) OR prevPh(H) THEN
FMT(vowel/@_low)
ENDIF
IF nextPh(j) THEN
FMT(vowel/V_3)
ENDIF
FMT(vowel/@_bck)
endphoneme


phoneme V
vwl flag1 starttype #@ endtype #@
length 140

IF thisPh(isWordStart) THEN
FMT(vowel/V_3)
RETURN
ENDIF

IF thisPh(isNotStressed) THEN
length 130

IF thisPh(isWordEnd) AND NOT thisPh(isFirstVowel) THEN
ChangePhoneme(NULL)
ENDIF

IF prevPh(H) THEN
ChangePhoneme(@)
ENDIF

IF prev2PhW(isVowel) AND NOT nextVowel(isFlag1) THEN
IF thisPh(isFinalVowel) AND nextPhW(isNotVowel) THEN
// don't delete schwa before a word-final consonant
ELSE
ChangePhoneme(NULL)
ENDIF
ENDIF

IF prevPh(isPalatal) AND NOT nextPh(H) THEN
ChangePhoneme(@3)
ELSEIF prevPh(r) THEN
ChangePhoneme(@2)
ELSE
ChangePhoneme(@)
ENDIF
ENDIF
IF nextPh(H) OR prevPh(H) THEN
FMT(vowel/@_low)
ENDIF

IF prevPh(w) THEN
FMT(vowel/V_4)
ENDIF

FMT(vowel/V_3)
endphoneme


phoneme @2
vwl flag1 starttype #@ endtype #@
length 130
FMT(vowel/@_low)
endphoneme

phoneme @3
vwl flag1 starttype #@ endtype #@
length 130
ChangeIfDiminished(@-)
FMT(vowel/@_3)
endphoneme




phoneme i:
vwl lng starttype #i endtype #i
length 250
IF thisPh(isUnstressed) THEN
ChangePhoneme(i)
ENDIF
IfNextVowelAppend(;)
FMT(vowel/i_fnt)
endphoneme

phoneme i // as [i:] but not marked as 'long'
vwl starttype #i endtype #i
length 230
IfNextVowelAppend(;)
FMT(vowel/ii_6)
endphoneme

phoneme I
vwl starttype #i endtype #i
length 150
IfNextVowelAppend(;)
FMT(vowel/ii_3)
endphoneme

phoneme e:
vwl lng starttype #e endtype #e
length 240
FMT(vowel/e_2)
endphoneme

phoneme e
vwl starttype #e endtype #e
length 165
FMT(vowel/e_2)
endphoneme

phoneme E:
vwl lng starttype #e endtype #e
length 230
FMT(vdiph/ee-e)
endphoneme

phoneme E
vwl starttype #e endtype #e
length 175
FMT(vowel/e_mid)
endphoneme

phoneme &:
vwl lng starttype #a endtype #a
length 230
FMT(vowel/&)
endphoneme


phoneme a:
vwl lng starttype #a endtype #a
length 220
IF nextPhW(j) THEN
FMT(vowel/a_5)
ENDIF
FMT(vowel/aa_9)
endphoneme

phoneme a
vwl lng starttype #a endtype #a
length 165
FMT(vowel/a#_3)
endphoneme


phoneme o:
vwl lng starttype #o endtype #o
length 240
FMT(vowel/o_2)
endphoneme

phoneme o
vwl starttype #o endtype #o
length 165
FMT(vowel/o)
endphoneme

phoneme O:
vwl lng starttype #o endtype #o
length 225
FMT(vowel/oo_4)
endphoneme


phoneme O
vwl starttype #o endtype #o
length 165
FMT(vowel/0)
endphoneme


phoneme U
vwl starttype #u endtype #u
length 165
FMT(vowel/uu_bck)
endphoneme


phoneme u:
vwl lng starttype #u endtype #u
length 250
FMT(vowel/u_bck)
endphoneme


// Nasal vowels
//=============

phoneme i~
vwl lng starttype #i endtype #i
length 220
FMT(vnasal/i_n2)
endphoneme

phoneme I~
vwl lng starttype #i endtype #i
length 170
FMT(vnasal/ii_n)
endphoneme

phoneme e~
vwl lng starttype #e endtype #e
length 220
FMT(vnasal/e_n)
endphoneme

phoneme E~
vwl lng starttype #e endtype #e
length 220
FMT(vnasal/ee_n2)
endphoneme

phoneme a~
vwl lng starttype #a endtype #a
length 240
FMT(vnasal/a_n)
endphoneme

phoneme V~
vwl lng starttype #@ endtype #@
length 220
FMT(vnasal/V_n)
endphoneme

phoneme O~
vwl lng starttype #o endtype #o
length 220
FMT(vnasal/oo_n2)
endphoneme

phoneme o~
vwl lng starttype #o endtype #o
length 220
FMT(vnasal/o_n)
endphoneme

phoneme U~
vwl starttype #u endtype #u
length 170
FMT(vnasal/u_n)
endphoneme

phoneme u~
vwl lng starttype #u endtype #u
length 220
FMT(vnasal/u_n)
endphoneme


// Diphthongs
//===========


phoneme aI
vwl lng starttype #@ endtype #i
length 240
lng
FMT(vdiph/&i)
endphoneme

phoneme aU
vwl lng starttype #a endtype #u
length 240
lng
FMT(vdiph/aau_3)
endphoneme



// CONSONANTS
//===========

phoneme v // approximant, not fricative
import_phoneme base1/v#
voicingswitch f
endphoneme


phoneme w#
liquid
lengthmod 7
FMT(w/w2)
endphoneme


phoneme H // use for full "h"
import_phoneme base1/h
endphoneme



// bilabial plosives
//==================

phoneme p
import_phoneme consonants/p-
endphoneme


phoneme p#
import_phoneme consonants/ph
endphoneme


phoneme b // this is [b]
import_phoneme base1/b
endphoneme


phoneme b#
vcd blb stp
lengthmod 5
voicingswitch p#
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
FMT(b/xb)
ENDIF

FMT( b/b@2) addWav(ustop/p_asp, 70)
endphoneme




// dental plosives
//==================

phoneme t // dental variant of /t/
import_phoneme base1/t[
voicingswitch d
endphoneme


phoneme t# // dental variant of /t/
vls dnt stp
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 nextPh(isPause2) THEN
WAV(ustop/t_dnt, 35)
ENDIF
WAV(ustop/t_dnt, 50)
endphoneme


phoneme d // dental variant of /d/
import_phoneme base1/d[
voicingswitch t
endphoneme


phoneme d#
vcd dnt stp
lengthmod 5
voicingswitch t#
Vowelin f1=0 f2=1500 -300 300 f3=-100 80
Vowelout f1=0 f2=1500 -300 250 f3=-100 80 rms=20

IF PreVoicing THEN
FMT(d/xd)
ENDIF

FMT(d/xd3) addWav(ustop/t_dnt, 40)
endphoneme




// retroflex plosives
//===================

phoneme t.
vls rfx stp
lengthmod 2
ipa ʈ
voicingswitch d.
Vowelin f1=0 f2=1800 -300 300 f3=-400 80
Vowelout f1=0 f2=1800 -300 250 f3=-400 80 rms=20 colr=2
WAV(ustop/t_short)
endphoneme

phoneme t.#
vls rfx stp
lengthmod 2
ipa ʈU+02B0
voicingswitch d.#
Vowelin f1=0 f2=1800 -300 300 f3=-200 80
Vowelout f1=0 f2=1800 -300 250 f3=-400 80 rms=20 colr=2
IF nextPhW(t.#) THEN
ChangePhoneme(t.)
ENDIF
WAV(ustop/th_rfx2, 80)
endphoneme

phoneme d.
vcd rfx stp
lengthmod 5
voicingswitch t.
ipa ɖ
Vowelin f1=1 f2=1800 -300 300 f3=-400 80
Vowelout f1=1 f2=1800 -300 300 f3=-400 80 colr=2

IF PreVoicing THEN
FMT(d/xdr)
ENDIF

IF nextPh(isPause2) THEN
FMT(d/d_) addWav(x/d_)
ENDIF

FMT(d/dr) addWav(x/d)
endphoneme


phoneme d.#
vcd rfx stp
lengthmod 5
ipa ɖU+02B0
voicingswitch t.#
Vowelin f1=1 f2=1800 -300 300 f3=-400 80
Vowelout f1=1 f2=1800 -300 300 f3=-400 80 colr=2

IF PreVoicing THEN
FMT(d/xdr)
ENDIF

FMT(d/dr) addWav(ustop/t)
// FMT(d/dr) addWav(ustop/th_rfx)
endphoneme




// palatal plosives
//=================

// also try [tS] and [dZ]

phoneme c
vls pla afr sib
voicingswitch dZ
lengthmod 2
Vowelin f1=0 f2=2300 200 400 f3=-100 80

IF nextPh(isPause2) THEN
WAV(ustop/tsh_)
ENDIF
WAV(ustop/tsh_unasp)
endphoneme



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


phoneme J
import_phoneme base1/J
endphoneme


phoneme J#
vcd pal afr sib
lengthmod 5
voicingswitch c#
Vowelin f1=0 f2=2700 400 600 f3=300 80 rate len=70
Vowelout f1=0 f2=2700 400 600 f3=300 80 colr=1

IF PreVoicing THEN
FMT(dzh/xdz_pzd)
ENDIF

FMT(dzh/xdz_pzd) addWav(ustop/ts_pzd)
endphoneme





// velar plosives
//==================


phoneme k
import_phoneme consonants/k-
voicingswitch g
endphoneme

phoneme k#
import_phoneme consonants/k#
voicingswitch g#
endphoneme


phoneme g
import_phoneme base1/g
voicingswitch k
endphoneme


phoneme g#
vcd dnt stp
lengthmod 5
voicingswitch k#
Vowelin f1=1 f2=2300 200 300 f3=-150 80 rms=20
Vowelout f1=0 f2=2300 300 400 f3=-150 80 rms=20

IF PreVoicing THEN
FMT(g2/xg)
ENDIF

IF nextPh(isPause2) THEN
FMT(g2/xg) addWav(ustop/k_asp, 35)
ENDIF
FMT(g2/xg) addWav(ustop/k_asp, 50)
endphoneme

//================

phoneme #X2 // click, use for indicating combining long vowels
vls alv frc sib
lengthmod 3
WAV(ustop/percus02, 60)
endphoneme


phoneme r
liquid rhotic
lengthmod 3
IF thisPh(isWordEnd) THEN
CALL base1/r/
ELSE
IF prevPhW(isVowel) THEN
IF nextPhW(isNotVowel) THEN
IF nextPhW(v) THEN
ChangePhoneme(**) // test for lang=ta
ENDIF
IF nextPhW(isUStop) OR nextPhW(isVStop) THEN
ChangePhoneme(*)
ENDIF
ENDIF

IF nextPhW(V) THEN // [V] may be removed by ChangePhoneme(NULL)
IF next2PhW(isUStop) OR next2PhW(isVStop) THEN
ChangePhoneme(*)
ENDIF
ELSE
IF nextPhW(isVowel) THEN
ChangePhoneme(*)
ENDIF
ENDIF
ENDIF
CALL base1/r
ENDIF
ipa ɾ
endphoneme


+ 3
- 0
phsource/phonemes View File

@@ -881,6 +881,8 @@ include ph_gujarati
phonemetable mr hi_base
include ph_marathi

phonemetable kok hi_base
include ph_konkani


phonemetable hu base1
@@ -1089,3 +1091,4 @@ include ph_guarani

phonemetable ky base1
include ph_kyrgyz


Loading…
Cancel
Save