Files
espeak-ng/phsource/ph_basque
T
jonsd 6bc5e798c1 [1.48.03]
Fix bug, use of the command-line  "espeakedit --compile" produced phoneme data
in which vowels started at full amplitude instead of gradual increase.

Fix bug:  SSML <break time=""> with values greater than 23 seconds were ignored
due to arithmetic overflow.

Phoneme definition files:
Added new function:  ChangeNextPhoneme().

Language changes include: da, en, fa, gu, hu, it, nl, pt, ta

Started new language: eu (Basque).

*_rules files:
Allow $p_alt1, $p_alt2, etc in pre-conditions.  The rule matches if the
characters before the current point in the word occur as an entry in the
*_list file with the corresponding $alt attibute.

Added condition $list.  This is similar to $p_alt etc, but examines
all words in the *_list file which don't have the $only attribute.


git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@374 d46cf337-b52f-0410-862d-fd96e6ae7743
2014-03-04 16:52:26 +00:00

177 lines
2.9 KiB
Plaintext
Executable File

//====================================================
// Basque - based on Base2
//====================================================
phoneme a
vowel starttype #a endtype #a
length 200
FMT(vowel/a_4)
endphoneme
phoneme a2 // delete if the next vowel is 'a'. Used for numbers.
vowel starttype #a endtype #a
length 200
IF nextPh(#a) THEN
ChangePhoneme(NULL) // merge consecutive 'a'
ENDIF
FMT(vowel/a_4)
endphoneme
phoneme e
vowel starttype #e endtype #e
length 200
FMT(vowel/e_mid2)
endphoneme
phoneme i
vowel starttype #i endtype #i
length 190
IfNextVowelAppend(;)
FMT(vowel/i)
endphoneme
phoneme o
vowel starttype #o endtype #o
length 200
FMT(vowel/oo)
endphoneme
phoneme u
vowel starttype #u endtype #u
length 200
FMT(vowel/u_bck2)
endphoneme
phoneme Y
vowel starttype #@ endtype #@
length 200
FMT(vowel/y#)
endphoneme
// Note: I have made [s] and [z] the same, and similarly [ts] and [tz]
// These should be changed to the correct "s", "z", "ts" and "tz" sounds fo Basque.
phoneme s
vls alv frc sibilant
ipa ʂ
lengthmod 3
Vowelin f1=0 f2=1700 -300 300 f3=-100 80
Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20
IF nextPh(isPause) THEN
WAV(ufric/sh_rfx, 60)
ENDIF
WAV(ufric/sh_rfx, 90) // different from s but probably not correct
endphoneme
phoneme z
vls alv frc sibilant
ipa s
lengthmod 3
Vowelin f1=0 f2=1700 -300 300 f3=-100 80
Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20
// z+z=tz, z+g=zk, z+g=zt, z+b=zp
IF nextPh(z) THEN
ChangeNextPhoneme(tz)
ChangePhoneme(NULL)
ELSEIF nextPh(g) THEN
ChangeNextPhoneme(k)
ELSEIF nextPh(d) THEN
ChangeNextPhoneme(t)
ELSEIF nextPh(b) THEN
ChangeNextPhoneme(p)
ENDIF
IF nextPh(isPause) THEN
WAV(ufric/s_, 60)
ENDIF
WAV(ufric/s, 80)
endphoneme
phoneme ts
vls alv afr sibilant
ipa tʂ
lengthmod 2
Vowelin f1=0 f2=1700 -300 300 f3=-100 80
Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20
IF nextPh(isPause2) THEN
WAV(ustop/ts_)
ENDIF
WAV(ustop/ts)
endphoneme
phoneme tz
vls alv afr sibilant
ipa ts
lengthmod 2
Vowelin f1=0 f2=1700 -300 300 f3=-100 80
Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20
IF nextPh(isPause2) THEN
WAV(ustop/ts_)
ENDIF
WAV(ustop/ts)
endphoneme
phoneme t
vls dnt stop
lengthmod 2
// t+g=k, t+d=t, t+z=tz
IF nextPh(g) THEN
ChangeNextPhoneme(k)
ChangePhoneme(NULL)
ELSEIF nextPh(d) THEN
ChangeNextPhoneme(t)
ChangePhoneme(NULL)
ELSEIF nextPh(z) THEN
ChangeNextPhoneme(tz)
ChangePhoneme(NULL)
ENDIF
CALL base2/t
endphoneme
phoneme r
vcd alv flp rhotic
brkafter
ipa ɾ
lengthmod 3
IF nextPhW(isVowel) THEN
ChangePhoneme(**)
ENDIF
CALL base/*
endphoneme
phoneme b
import_phoneme es/b
endphoneme
phoneme d
import_phoneme es/d
endphoneme
phoneme g
import_phoneme es/g
endphoneme