mirror of
https://github.com/rhasspy/espeak-ng.git
synced 2026-10-31 13:38:47 +00:00
187 lines
3.0 KiB
Plaintext
187 lines
3.0 KiB
Plaintext
|
|
//====================================================
|
|
// 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'
|
|
ELSE
|
|
ChangePhoneme(a)
|
|
ENDIF
|
|
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
|
|
|
|
phoneme n
|
|
vcd alv nasal
|
|
lengthmod 4
|
|
|
|
IF prevPhW(i) AND nextPhW(isVowel) THEN
|
|
ChangePhoneme(n^)
|
|
ENDIF
|
|
|
|
CALL base/n
|
|
endphoneme
|