mirror of
https://github.com/rhasspy/espeak-ng.git
synced 2026-10-31 05:35:35 +00:00
Don't speak punctuation names faster at high speeds. lang=ml, recognise "virama + U+200d" (zero-width joiner) to indicte 'chillu' characters. Fix problem of punctuation character announcement repeated at the start of the next sentence after speaking is stopped. Fixed crash due to large numbers of box-drawing characters in text input. Fixed phoneme translation of 't' sounds for US-English voices. git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@261 d46cf337-b52f-0410-862d-fd96e6ae7743
492 lines
7.2 KiB
Plaintext
492 lines
7.2 KiB
Plaintext
|
|
//====================================================
|
|
// Hindi
|
|
//====================================================
|
|
|
|
phoneme : // Lengthen the previous vowel by "length"
|
|
virtual
|
|
length 100
|
|
endphoneme
|
|
|
|
phoneme @
|
|
vowel starttype #@ endtype #@
|
|
length 130
|
|
ChangeIfDiminished(@-)
|
|
IF nextPh(H) THEN
|
|
FMT(vowel/@_low)
|
|
ENDIF
|
|
FMT(vowel/@_bck)
|
|
endphoneme
|
|
|
|
phoneme @/
|
|
vowel starttype #@ endtype #@
|
|
length 130
|
|
FMT(vowel/@_bck)
|
|
endphoneme
|
|
|
|
phoneme V
|
|
vowel starttype #@ endtype #@
|
|
length 130
|
|
ChangeIfNotStressed(@)
|
|
IF nextPh(H) THEN
|
|
FMT(vowel/@_low)
|
|
ENDIF
|
|
FMT(vowel/V_3)
|
|
endphoneme
|
|
|
|
phoneme @2
|
|
vowel starttype #@ endtype #@
|
|
length 130
|
|
FMT(vowel/@_low)
|
|
endphoneme
|
|
|
|
phoneme @3
|
|
vowel starttype #@ endtype #@
|
|
length 130
|
|
ChangeIfDiminished(@-)
|
|
FMT(vowel/@_3)
|
|
endphoneme
|
|
|
|
phoneme @4
|
|
vowel starttype #@ endtype #@
|
|
length 130
|
|
FMT(vowel/@)
|
|
endphoneme
|
|
|
|
|
|
|
|
|
|
phoneme i:
|
|
vowel long starttype #i endtype #i
|
|
length 230
|
|
IfNextVowelAppend(;)
|
|
FMT(vowel/i_fnt)
|
|
endphoneme
|
|
|
|
phoneme i // as [i:] but not marked as 'long'
|
|
vowel starttype #i endtype #i
|
|
length 230
|
|
IfNextVowelAppend(;)
|
|
FMT(vowel/i_6)
|
|
endphoneme
|
|
|
|
phoneme I
|
|
vowel starttype #i endtype #i
|
|
length 100
|
|
IfNextVowelAppend(;)
|
|
FMT(vowel/ii_3)
|
|
endphoneme
|
|
|
|
phoneme e:
|
|
vowel long starttype #e endtype #e
|
|
length 220
|
|
FMT(vowel/e_2)
|
|
endphoneme
|
|
|
|
phoneme e
|
|
vowel starttype #e endtype #e
|
|
length 130
|
|
FMT(vowel/e_2)
|
|
endphoneme
|
|
|
|
phoneme E:
|
|
vowel long starttype #e endtype #e
|
|
length 220
|
|
FMT(vdiph/ee-e)
|
|
endphoneme
|
|
|
|
phoneme E
|
|
vowel starttype #e endtype #e
|
|
length 130
|
|
FMT(vowel/e_mid)
|
|
endphoneme
|
|
|
|
phoneme &:
|
|
vowel long starttype #a endtype #a
|
|
length 220
|
|
FMT(vowel/&)
|
|
endphoneme
|
|
|
|
|
|
phoneme a:
|
|
vowel long starttype #a endtype #a
|
|
length 230
|
|
FMT(vowel/aa_9)
|
|
endphoneme
|
|
|
|
phoneme a
|
|
vowel long starttype #a endtype #a
|
|
length 130
|
|
FMT(vowel/a#_3)
|
|
endphoneme
|
|
|
|
|
|
phoneme o:
|
|
vowel long starttype #o endtype #o
|
|
length 220
|
|
FMT(vowel/o_2)
|
|
endphoneme
|
|
|
|
phoneme o
|
|
vowel starttype #o endtype #o
|
|
length 130
|
|
FMT(vowel/o)
|
|
endphoneme
|
|
|
|
phoneme O:
|
|
vowel long starttype #o endtype #o
|
|
length 210
|
|
FMT(vowel/oo_4)
|
|
endphoneme
|
|
|
|
|
|
phoneme O
|
|
vowel starttype #o endtype #o
|
|
length 130
|
|
FMT(vowel/0)
|
|
endphoneme
|
|
|
|
|
|
phoneme U
|
|
vowel starttype #u endtype #u
|
|
length 120
|
|
FMT(vowel/uu_bck)
|
|
endphoneme
|
|
|
|
|
|
phoneme u:
|
|
vowel long starttype #u endtype #u
|
|
length 230
|
|
FMT(vowel/u_bck)
|
|
endphoneme
|
|
|
|
|
|
// Nasal vowels
|
|
//=============
|
|
|
|
phoneme i~
|
|
vowel long starttype #i endtype #i
|
|
length 220
|
|
FMT(vnasal/i_n2)
|
|
endphoneme
|
|
|
|
phoneme I~
|
|
vowel long starttype #i endtype #i
|
|
length 170
|
|
FMT(vnasal/ii_n)
|
|
endphoneme
|
|
|
|
phoneme e~
|
|
vowel long starttype #e endtype #e
|
|
length 220
|
|
FMT(vnasal/e_n)
|
|
endphoneme
|
|
|
|
phoneme E~
|
|
vowel long starttype #e endtype #e
|
|
length 230
|
|
FMT(vnasal/ee_n2)
|
|
endphoneme
|
|
|
|
phoneme a~
|
|
vowel long starttype #a endtype #a
|
|
length 250
|
|
FMT(vnasal/aa_n)
|
|
endphoneme
|
|
|
|
phoneme V~
|
|
vowel long starttype #@ endtype #@
|
|
length 250
|
|
FMT(vnasal/V_n)
|
|
endphoneme
|
|
|
|
phoneme O~
|
|
vowel long starttype #o endtype #o
|
|
length 230
|
|
FMT(vnasal/oo_n2)
|
|
endphoneme
|
|
|
|
phoneme o~
|
|
vowel long starttype #o endtype #o
|
|
length 220
|
|
FMT(vnasal/o_n)
|
|
endphoneme
|
|
|
|
phoneme U~
|
|
vowel starttype #u endtype #u
|
|
length 170
|
|
FMT(vnasal/u_n)
|
|
endphoneme
|
|
|
|
phoneme u~
|
|
vowel long starttype #u endtype #u
|
|
length 230
|
|
FMT(vnasal/u_n)
|
|
endphoneme
|
|
|
|
|
|
// Diphthongs
|
|
//===========
|
|
|
|
|
|
phoneme aI
|
|
vowel long starttype #@ endtype #i
|
|
length 240
|
|
long
|
|
FMT(vdiph/&i)
|
|
endphoneme
|
|
|
|
phoneme aU
|
|
vowel long starttype #a endtype #u
|
|
length 240
|
|
long
|
|
FMT(vdiph/aau_3)
|
|
endphoneme
|
|
|
|
|
|
|
|
// CONSONANTS
|
|
//===========
|
|
|
|
phoneme v // approximant, not fricative
|
|
import_phoneme base/v#
|
|
voicingswitch f
|
|
endphoneme
|
|
|
|
|
|
phoneme H // use for full "h"
|
|
import_phoneme base/h
|
|
endphoneme
|
|
|
|
|
|
|
|
// bilabial plosives
|
|
//==================
|
|
|
|
phoneme p
|
|
import_phoneme consonants/p-
|
|
endphoneme
|
|
|
|
|
|
phoneme ph
|
|
import_phoneme consonants/ph
|
|
endphoneme
|
|
|
|
|
|
phoneme b // this is [b]
|
|
import_phoneme base/b
|
|
endphoneme
|
|
|
|
|
|
phoneme bh
|
|
vcd blb stop
|
|
lengthmod 5
|
|
voicingswitch ph
|
|
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 base/t[
|
|
voicingswitch d
|
|
endphoneme
|
|
|
|
|
|
phoneme th // dental variant of /t/
|
|
vls dnt stop
|
|
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 base/d[
|
|
voicingswitch t
|
|
endphoneme
|
|
|
|
|
|
phoneme dh
|
|
vcd dnt stop
|
|
lengthmod 5
|
|
voicingswitch th
|
|
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 stop
|
|
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 th.
|
|
vls rfx stop
|
|
lengthmod 2
|
|
ipa ʈh
|
|
voicingswitch dh.
|
|
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/th_rfx)
|
|
WAV(ustop/t)
|
|
endphoneme
|
|
|
|
phoneme d.
|
|
vcd rfx stop
|
|
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 dh.
|
|
vcd rfx stop
|
|
lengthmod 5
|
|
ipa ɖh
|
|
voicingswitch th.
|
|
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
|
|
import_phoneme base/c
|
|
endphoneme
|
|
|
|
|
|
phoneme ch
|
|
CALL base/tS;
|
|
ipa ch
|
|
endphoneme
|
|
|
|
|
|
phoneme J
|
|
import_phoneme base/J
|
|
endphoneme
|
|
|
|
|
|
phoneme Jh
|
|
vcd pal afr sibilant
|
|
lengthmod 5
|
|
voicingswitch ch
|
|
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 kh
|
|
import_phoneme consonants/kh
|
|
voicingswitch gh
|
|
endphoneme
|
|
|
|
|
|
phoneme g
|
|
import_phoneme base/g
|
|
voicingswitch k
|
|
endphoneme
|
|
|
|
|
|
phoneme gh
|
|
vcd dnt stop
|
|
lengthmod 5
|
|
voicingswitch kh
|
|
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 sibilant
|
|
lengthmod 3
|
|
WAV(ustop/percus02, 60)
|
|
endphoneme
|
|
|
|
|