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
284 lines
4.3 KiB
Plaintext
284 lines
4.3 KiB
Plaintext
|
|
|
|
//=========================================================
|
|
// Dutch
|
|
//=========================================================
|
|
|
|
|
|
// Vowels
|
|
//=======
|
|
|
|
|
|
phoneme @ // Schwa
|
|
vowel starttype #@ endtype #@
|
|
unstressed
|
|
length 125
|
|
FMT(vowel/@_4)
|
|
endphoneme
|
|
|
|
phoneme i
|
|
vowel starttype #i endtype #i
|
|
length 160
|
|
IF prevPh(w) THEN
|
|
VowelStart(w/wi2)
|
|
ENDIF
|
|
FMT(vowel/i_2)
|
|
endphoneme
|
|
|
|
phoneme I
|
|
vowel starttype #i endtype #i
|
|
length 130
|
|
FMT(vowel/ii)
|
|
endphoneme
|
|
|
|
phoneme y
|
|
vowel starttype #u endtype #u
|
|
length 180
|
|
FMT(vowel/y)
|
|
endphoneme
|
|
|
|
phoneme 8
|
|
vowel starttype #u endtype #u
|
|
length 140
|
|
FMT(vowel/y#)
|
|
endphoneme
|
|
|
|
phoneme u
|
|
vowel starttype #u endtype #u
|
|
length 150
|
|
FMT(vowel/u_bck)
|
|
endphoneme
|
|
|
|
phoneme E
|
|
vowel starttype #e endtype #e
|
|
length 140
|
|
FMT(vowel/e_mid2)
|
|
endphoneme
|
|
|
|
phoneme E2 // as[E] but reduces to @ if unstressed
|
|
vowel starttype #e endtype #e
|
|
length 140
|
|
ChangeIfDiminished(@)
|
|
FMT(vowel/ee_2)
|
|
endphoneme
|
|
|
|
phoneme O
|
|
vowel starttype #o endtype #o
|
|
length 140
|
|
FMT(vowel/o_6)
|
|
endphoneme
|
|
|
|
phoneme O: // for "oor"
|
|
vowel starttype #o endtype #o
|
|
length 210
|
|
FMT(vowel/o_6)
|
|
endphoneme
|
|
|
|
phoneme a:
|
|
vowel starttype #a endtype #a
|
|
length 210
|
|
IF thisPh(isUnstressed) THEN
|
|
IF thisPh(isWordEnd) THEN
|
|
FMT(vowel/a#_2)
|
|
ELSE
|
|
FMT(vowel/a#_4)
|
|
ENDIF
|
|
ENDIF
|
|
FMT(vowel/a)
|
|
endphoneme
|
|
|
|
phoneme A
|
|
vowel starttype #a endtype #a
|
|
length 160
|
|
IF thisPh(isUnstressed) THEN
|
|
FMT(vowel/a#_2)
|
|
ENDIF
|
|
FMT(vowel/aa_7)
|
|
endphoneme
|
|
|
|
phoneme A~
|
|
import_phoneme fr/A~
|
|
endphoneme
|
|
|
|
phoneme O~
|
|
vowel starttype #o endtype #o
|
|
length 190
|
|
FMT(vnasal/oo_n2)
|
|
endphoneme
|
|
|
|
|
|
// Diphthongs
|
|
//===========
|
|
|
|
phoneme e:
|
|
vowel starttype #e endtype #i
|
|
length 190
|
|
FMT(vdiph/ei)
|
|
endphoneme
|
|
|
|
phoneme e# // as [e:] but change to [@] in unstressed syllables
|
|
vowel starttype #e endtype #i
|
|
length 190
|
|
ChangeIfUnstressed(@)
|
|
ChangePhoneme(e:)
|
|
endphoneme
|
|
|
|
phoneme Y:
|
|
vowel starttype #@ endtype #@
|
|
length 220
|
|
FMT(vdiph/y#y_3)
|
|
endphoneme
|
|
|
|
phoneme o:
|
|
vowel starttype #o endtype #u
|
|
length 200
|
|
FMT(vdiph/ou_4)
|
|
endphoneme
|
|
|
|
|
|
phoneme EI
|
|
vowel starttype #a endtype #i
|
|
length 210
|
|
FMT(vdiph/eei)
|
|
endphoneme
|
|
|
|
phoneme Wy
|
|
vowel starttype #@ endtype #u
|
|
length 220
|
|
FMT(vdiph/&y)
|
|
endphoneme
|
|
|
|
phoneme VU
|
|
vowel starttype #a endtype #o
|
|
length 220
|
|
FMT(vdiph/aau_2)
|
|
endphoneme
|
|
|
|
phoneme eU
|
|
vowel starttype #e endtype #u
|
|
length 220
|
|
FMT(vdiph/eu)
|
|
endphoneme
|
|
|
|
phoneme yU
|
|
vowel starttype #u endtype #u
|
|
length 220
|
|
FMT(vdiph2/yu)
|
|
endphoneme
|
|
|
|
|
|
|
|
|
|
// CONSONANTS
|
|
//===========
|
|
|
|
|
|
phoneme r
|
|
import_phoneme base/R2
|
|
endphoneme
|
|
|
|
|
|
|
|
phoneme Q
|
|
vcd vel frc
|
|
lengthmod 6
|
|
voicingswitch x
|
|
Vowelin f1=2 f2=2300 200 300 f3=-300 80
|
|
Vowelout f1=2 f2=2300 250 300 f3=-300 80 brk
|
|
|
|
IF prevPhW(x) THEN
|
|
ChangePhoneme(NULL)
|
|
ENDIF
|
|
IF nextPhW(isVoiced) THEN
|
|
ELSE
|
|
ChangePhoneme(x)
|
|
ENDIF
|
|
|
|
IF nextPh(isPause2) THEN
|
|
FMT(voc/Q_) addWav(vocw/Q_)
|
|
ENDIF
|
|
FMT(voc/Q_less) addWav(vocw/Q2, 140)
|
|
endphoneme
|
|
|
|
|
|
phoneme ! // Short pause, replaces assimilated t,d,p,b at end of word
|
|
pause
|
|
ipa NULL
|
|
starttype _ endtype _
|
|
lengthmod 1
|
|
length 25
|
|
endphoneme
|
|
|
|
|
|
phoneme k
|
|
import_phoneme consonants/k- // unaspirated
|
|
endphoneme
|
|
|
|
|
|
phoneme t
|
|
IF thisPh(isWordEnd) THEN
|
|
IF nextPh(t) OR nextPh(d) THEN
|
|
ChangePhoneme(!)
|
|
ENDIF
|
|
ENDIF
|
|
CALL consonants/t-
|
|
endphoneme
|
|
|
|
phoneme d
|
|
IF thisPh(isWordEnd) THEN
|
|
IF nextPh(t) OR nextPh(d) THEN
|
|
ChangePhoneme(!)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF prevPh(!) THEN // previous was [t] or [d], now assimilated
|
|
ChangePhoneme(t)
|
|
ENDIF
|
|
CALL base/d
|
|
endphoneme
|
|
|
|
phoneme p
|
|
IF thisPh(isWordEnd) THEN
|
|
IF nextPh(p) OR nextPh(b) THEN
|
|
ChangePhoneme(!)
|
|
ENDIF
|
|
ENDIF
|
|
CALL consonants/p- // unaspirated
|
|
endphoneme
|
|
|
|
phoneme b
|
|
IF thisPh(isWordEnd) THEN
|
|
IF nextPh(p) OR nextPh(b) THEN
|
|
ChangePhoneme(!)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF prevPh(!) THEN // previous was [p] or [b], now assimilated
|
|
ChangePhoneme(p)
|
|
ENDIF
|
|
CALL base/b
|
|
endphoneme
|
|
|
|
phoneme s
|
|
IF thisPh(isWordEnd) THEN
|
|
IF nextPh(s) OR nextPh(z) THEN
|
|
ChangePhoneme(!)
|
|
ENDIF
|
|
ENDIF
|
|
CALL base/s // unaspirated
|
|
endphoneme
|
|
|
|
phoneme z
|
|
IF thisPh(isWordEnd) THEN
|
|
IF nextPh(s) OR nextPh(z) THEN
|
|
ChangePhoneme(!)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF prevPh(!) THEN // previous was [s] or [z], now assimilated
|
|
ChangePhoneme(s)
|
|
ENDIF
|
|
CALL base/s
|
|
endphoneme
|
|
|