mirror of
https://github.com/rhasspy/espeak-ng.git
synced 2026-10-31 05:35:35 +00:00
Fix error in big-endian data conversion program, producing bad data. Make geminated voiced stops (eg. [bb] ) longer at fast speeds. Provide conditional compilation of the mbrola interface, define macro INCLUDE_MBROLA in speech.h Mbrola: also look for mbrola voices in /usr/share/mbrola/voices Pad TUNES and frame_t structures to a multiple of 4 bytes. lang=da, Don't weaken unvoiced stops before pause. lang=el, Remove final unstressed [a] if the next word starts with [a]. lang=pt, Change final [U] to [w] if next word starts with a vowel. espeak 1.44.03 Fixes: Lang=el, mk. Was speaking words as individual letters. Lang=pl. Fix prounciation of 'ć' and 'ci'. Fix crash in big-endian data conversion program. Fix problem where changing voices reduces the speaking rate, at fast rates. speak_lib.h: add macro definitions for minimum, maximum, and normal speaking rate values. git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@253 d46cf337-b52f-0410-862d-fd96e6ae7743
224 lines
3.4 KiB
Plaintext
224 lines
3.4 KiB
Plaintext
|
||
//====================================================
|
||
// Portuguese - based on Base2
|
||
//====================================================
|
||
|
||
phoneme I // epenthetic i
|
||
vowel starttype #i endtype #i
|
||
unstressed
|
||
length 90
|
||
FMT(vowel/ii_6)
|
||
endphoneme
|
||
|
||
phoneme e~
|
||
vowel starttype #e endtype #e
|
||
length 240
|
||
FMT(vnasal/e_n)
|
||
endphoneme
|
||
|
||
phoneme i~
|
||
vowel starttype #i endtype #i
|
||
length 240
|
||
IfNextVowelAppend(;)
|
||
FMT(vnasal/i_n)
|
||
endphoneme
|
||
|
||
phoneme o~
|
||
vowel starttype #o endtype #o
|
||
length 240
|
||
FMT(vnasal/o_n)
|
||
endphoneme
|
||
|
||
phoneme u~
|
||
vowel starttype #u endtype #u
|
||
length 180
|
||
FMT(vnasal/u_n)
|
||
endphoneme
|
||
|
||
phoneme &~
|
||
vowel starttype #@ endtype #@
|
||
ipa ɐU+0303
|
||
length 180
|
||
// ChangeIfNotStressed(&)
|
||
FMT(vnasal/a#_n)
|
||
endphoneme
|
||
|
||
phoneme &U~
|
||
vowel starttype #@ endtype #u
|
||
ipa ɐU+0303ʊU+0303
|
||
length 240
|
||
FMT(vnasal/a#u_n)
|
||
endphoneme
|
||
|
||
phoneme oI~
|
||
vowel starttype #o endtype #i
|
||
ipa oU+0303ɪU+0303
|
||
length 260
|
||
FMT(vnasal/oi_n)
|
||
endphoneme
|
||
|
||
|
||
|
||
|
||
phoneme &
|
||
vowel starttype #@ endtype #@
|
||
length 180
|
||
FMT(vowel/a#_3)
|
||
endphoneme
|
||
|
||
phoneme &/ // Used for final "a" when next word starts with "a"
|
||
vowel starttype #@ endtype #@
|
||
length 180
|
||
IF nextPh(isVowel) THEN
|
||
ChangePhoneme(NULL)
|
||
ENDIF
|
||
FMT(vowel/a#_3)
|
||
endphoneme
|
||
|
||
|
||
phoneme A // for "al" in European Portuguese, don't reduce to [&]
|
||
vowel starttype #a endtype #a
|
||
length 200
|
||
FMT(vowel/a_2)
|
||
endphoneme
|
||
|
||
|
||
|
||
phoneme E
|
||
vowel starttype #e endtype #e
|
||
length 170
|
||
FMT(vowel/ee_3)
|
||
endphoneme
|
||
|
||
phoneme e
|
||
vowel starttype #e endtype #e
|
||
length 160
|
||
FMT(vowel/e)
|
||
endphoneme
|
||
|
||
|
||
phoneme y // this is the same as [i] for Brazil
|
||
vowel starttype #i endtype #i
|
||
length 110
|
||
IfNextVowelAppend(;)
|
||
FMT(vowel/ii_6)
|
||
endphoneme
|
||
|
||
|
||
phoneme i/ // changes to [j] before a vowel
|
||
vowel starttype #i endtype #i
|
||
length 150
|
||
IF nextPh(isVowel) THEN
|
||
ChangePhoneme(j)
|
||
ENDIF
|
||
IfNextVowelAppend(;)
|
||
FMT(vowel/ii_6)
|
||
endphoneme
|
||
|
||
|
||
phoneme O
|
||
vowel starttype #o endtype #o
|
||
length 170
|
||
FMT(vowel/0)
|
||
endphoneme
|
||
|
||
|
||
phoneme u
|
||
vowel starttype #u endtype #u
|
||
length 160
|
||
FMT(vowel/u_bck)
|
||
endphoneme
|
||
|
||
phoneme U
|
||
vowel starttype #u endtype #u
|
||
length 140
|
||
IF thisPh(isWordEnd) AND nextPh(isVowel) THEN
|
||
ChangePhoneme(w)
|
||
ENDIF
|
||
FMT(vowel/uu_bck)
|
||
endphoneme
|
||
|
||
|
||
|
||
|
||
phoneme aI
|
||
vowel starttype #a endtype #i
|
||
length 230
|
||
IfNextVowelAppend(;)
|
||
FMT(vdiph/ai)
|
||
endphoneme
|
||
|
||
|
||
phoneme eI
|
||
vowel starttype #e endtype #i
|
||
length 210
|
||
IfNextVowelAppend(;)
|
||
FMT(vdiph/ei)
|
||
endphoneme
|
||
|
||
|
||
phoneme OI
|
||
vowel starttype #o endtype #i
|
||
length 230
|
||
IfNextVowelAppend(;)
|
||
FMT(vdiph/0i)
|
||
endphoneme
|
||
|
||
|
||
phoneme eU
|
||
vowel starttype #e endtype #u
|
||
length 230
|
||
FMT(vdiph/eu)
|
||
endphoneme
|
||
|
||
|
||
phoneme EU
|
||
vowel starttype #e endtype #u
|
||
length 230
|
||
FMT(vdiph/eeu)
|
||
endphoneme
|
||
|
||
|
||
|
||
|
||
phoneme l
|
||
import_phoneme en/l // use 'dark' [l] after a vowel, should be [w]
|
||
endphoneme
|
||
|
||
|
||
phoneme x // this is [R] from Slovak/Czech
|
||
liquid
|
||
trill
|
||
ipa r
|
||
lengthmod 6
|
||
Vowelin f1=0 f2=1700 -300 300 f3=-300 80
|
||
Vowelout f1=2 f2=1700 -300 300 f3=-300 80 brk
|
||
FMT(r3/r_trill) addWav(r3/r_trill.wav, 50)
|
||
endphoneme
|
||
|
||
|
||
phoneme r-
|
||
import_phoneme en/r-
|
||
endphoneme
|
||
|
||
|
||
phoneme s# // This is [s] for Brazi;, [S] for Portugal
|
||
CALL base/s
|
||
ipa s
|
||
endphoneme
|
||
|
||
|
||
phoneme *
|
||
vcd alv stop
|
||
lengthmod 6
|
||
ipa ɾ
|
||
Vowelin f1=1 f2=1700 -300 300 f3=0 80
|
||
Vowelout f1=2 f2=1700 -300 300 f3=0 80
|
||
IF PreVoicing THEN
|
||
FMT(d/x_tap)
|
||
ENDIF
|
||
FMT(d/tap2) addWav(x/d, 40)
|
||
endphoneme
|
||
|
||
|