Files
espeak-ng/phsource/ph_japanese
T

411 lines
7.2 KiB
Plaintext

// Japanese Phonemes
//
// Copyright (C) 2017 Reece H. Dunn
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, see: <http://www.gnu.org/licenses/>.
// This is using the X-SAMPA transcriptions
// (http://www.phon.ucl.ac.uk/home/sampa/x-sampa.htm).
phoneme :
virtual
length 70
endphoneme
phoneme _j
liquid palatal starttype #i
ipa ʲ
lengthmod 2
NextVowelStarts
VowelStart(j/j@)
VowelStart(j/ja)
VowelStart(j/je)
VowelStart(j/ji)
VowelStart(j/jo)
VowelStart(j/ju)
EndSwitch
endphoneme
// Vowels /////////////////////////////////////////////////////////////////////
// Close Vowels
phoneme i
vwl starttype #i endtype #i
length 160
FMT(vowel/i)
endphoneme
phoneme i~
vwl long starttype #i endtype #i
ipa ĩ
length 220
FMT(vnasal/i_n2)
endphoneme
phoneme u~
vwl starttype #u endtype #u
ipa ũ
length 220
FMT(vnasal/u_n)
endphoneme
phoneme M_Bo // M_B_o
vwl starttype #u endtype #u
ipa ɯᵝ
length 160
FMT(vowel/u_bck)
endphoneme
// Mid Vowels
phoneme e_o
vwl starttype #e endtype #e
ipa e̞
length 160
FMT(vowel/e_8)
endphoneme
phoneme o_o
vwl starttype #o endtype #o
ipa o̞
length 160
FMT(vowel/oo_3)
endphoneme
// Open Vowels
phoneme a_"
vwl starttype #a endtype #a
ipa ä
length 160
FMT(vowel/a)
endphoneme
// Consonants /////////////////////////////////////////////////////////////////
phoneme m
vcd blb nasal
Vowelout f1=2 f2=1000 -500 -350 f3=-200 80 brk
lengthmod 4
NextVowelStarts
VowelStart(m/m@)
VowelStart(m/ma)
VowelStart(m/me)
VowelStart(m/mi)
VowelStart(m/mo)
VowelStart(m/mu)
EndSwitch
IF nextPh(isNotVowel) THEN
FMT(m/m_)
ENDIF
endphoneme
phoneme n
vcd alv nasal
Vowelout f1=2 f2=1500 -300 250 f3=-100 80 rms=20 brk
lengthmod 4
NextVowelStarts
VowelStart(n/n@)
VowelStart(n/na)
VowelStart(n/ne)
VowelStart(n/ni)
VowelStart(n/no)
VowelStart(n/nu)
EndSwitch
IF nextPh(isNotVowel) THEN
FMT(n/n_)
ENDIF
endphoneme
phoneme N
vcd vel nasal
ipa ŋ
Vowelout f1=3 f2=2300 300 400 f3=-200 80 len=40 rms=20 brk
lengthmod 3
NextVowelStarts
VowelStart(nn/nn@)
VowelStart(nn/nna)
VowelStart(nn/nne)
VowelStart(nn/nni)
VowelStart(nn/nno)
VowelStart(nn/nnu)
EndSwitch
IF prevPh(#i) THEN
VowelEnding(nn/inn, -40)
ENDIF
IF prevPh(isNotVowel) AND nextPhW(isLiquid) THEN
FMT(nn/nnj)
ELIF prevPh(isPause) THEN
FMT(nn/_nn)
ELIF nextPh(isNotVowel) THEN
FMT(nn/nn_)
ENDIF
endphoneme
phoneme N\\
vcd uvl nasal
ipa ɴ
// FIXME: Stub phoneme.
CALL jp/n
endphoneme
// Plosives
phoneme p
vls blb stp
voicingswitch b
lengthmod 2
Vowelin f1=0 f2=1000 -50 -100 f3=-200 80 amp=11
Vowelout f1=0 f2=1000 -500 -350 f3=-300 80 rms=22
WAV(ustop/p)
endphoneme
phoneme b
vcd blb stp
voicingswitch p
Vowelout f1=2 f2=1000 -500 -300 f3=-300 80 brk
lengthmod 5
IF nextPh(isPause2) THEN
FMT(b/b_) addWav(x/b_)
ELIF nextPh(@-) THEN
FMT(b/b@2) addWav(x/b)
ELIF nextPh(#@) THEN
FMT(b/b@) addWav(x/b)
ELIF nextPh(#a) THEN
FMT(b/ba) addWav(x/b)
ELIF nextPh(#e) THEN
FMT(b/be) addWav(x/b)
ELIF nextPh(#i) THEN
FMT(b/bi) addWav(x/b)
ELIF nextPh(#o) THEN
FMT(b/bo) addWav(x/b)
ELIF nextPh(#u) THEN
FMT(b/bu) addWav(x/b)
ENDIF
FMT(b/b) addWav(x/b)
endphoneme
phoneme t
vls alv stp
voicingswitch d
lengthmod 2
Vowelin f1=0 f2=1700 -300 300 f3=-100 80
Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20
WAV(ustop/t, 90)
endphoneme
phoneme d
vcd alv stp
voicingswitch t
lengthmod 5
Vowelin f1=1 f2=1700 -300 300 f3=-100 80
Vowelout f1=2 f2=1700 -300 300 f3=-100 80 brk
FMT(d/d) addWav(x/d)
endphoneme
phoneme k
vls vel stp
voicingswitch g
lengthmod 2
Vowelin f1=0 f2=2300 200 300 f3=-200 80
Vowelout f1=0 f2=2300 300 400 f3=-200 80 rms=20
WAV(ustop/k)
endphoneme
phoneme g
vcd vel stp
voicingswitch k
lengthmod 5
Vowelin f1=2 f2=2300 200 300 f3=-300 80
Vowelout f1=2 f2=2300 250 300 f3=-300 80 brk
FMT(g/g) addWav(x/g2, 150)
endphoneme
phoneme ?
vls glt stp
lengthmod 3
nolink
Vowelin glstop
Vowelout glstop
WAV(ustop/null)
endphoneme
// Sibilant Affricates
phoneme t_s
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
WAV(ustop/ts, 70)
endphoneme
phoneme t_s\\
vls pal afr sibilant palatal
voicingswitch d_z\\
ipa tɕ
lengthmod 2
Vowelin f1=0 f2=2700 400 600 f3=300 80 rate len=70
WAV(ustop/ts_pzd)
endphoneme
phoneme d_z\\
vcd pla afr sibilant palatal
voicingswitch t_s\\
ipa dʑ
lengthmod 5
Vowelin f1=2 f2=2700 400 600 f3=300 80 rate len=70
Vowelout f1=2 f2=2700 400 600 f3=300 80
FMT(dzh/dzh) addWav(x/dz_pzd)
endphoneme
// Sibilant Fricatives
phoneme s
vls alv frc sibilant
voicingswitch z
lengthmod 3
Vowelin f1=0 f2=1700 -300 300 f3=-100 80
Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20
WAV(ufric/s)
endphoneme
phoneme z
vcd alv frc sibilant
voicingswitch s
lengthmod 6
Vowelout f1=0 f2=1700 -300 300 f3=-100 60 len=50
FMT(voc/z) addWav(ufric/s_, 85)
endphoneme
phoneme s\\
vls pal frc sibilant palatal
ipa ɕ
lengthmod 3
Vowelin f1=1 f2=2700 400 600 f3=200 70 rate len=70
Vowelout f1=1 f2=2700 400 600 f3=200 70 rate
WAV(ufric/sh_pzd)
endphoneme
// Fricatives
phoneme p\\
vls blb frc
ipa ɸ
Vowelout f1=0 f2=1000 -500 -350 f3=-200 80
lengthmod 2
WAV(ufric/f)
endphoneme
phoneme v
vcd lbd frc
lengthmod 6
Vowelin f1=0 f2=1000 -300 -200 f3=-300 100
Vowelout f1=0 f2=1000 -500 -300 f3=-300 60 len=50
FMT(voc/v) addWav(vocw/v)
endphoneme
phoneme C
vls pal frc palatal
ipa ç
lengthmod 3
Vowelin f1=0 f2=2700 400 600 f3=200 70
Vowelout f1=0 f2=2700 400 600 f3=200 70 rms=20
WAV(ufric/ch)
endphoneme
// Approximant
phoneme j
liquid palatal starttype #i
lengthmod 7
NextVowelStarts
VowelStart(j/j@)
VowelStart(j/ja)
VowelStart(j/je)
VowelStart(j/ji)
VowelStart(j/jo)
VowelStart(j/ju)
EndSwitch
IF nextPh(isNotVowel) THEN
Vowelout len=70
FMT(j/j_)
ENDIF
endphoneme
// Flap or Tap
phoneme r`
liquid rfx
ipa ɽ
lengthmod 3
Vowelout f1=3 f2=1400 -400 300 f3=-400 80 rms=35 len=15 colr=2
Vowelin f1=2 f2=1400 -400 300 f3=-400 80 len=20
FMT(r3/@tap_rfx)
endphoneme
// Coarticulated
phoneme w
liquid
lengthmod 7
starttype #u
NextVowelStarts
VowelStart(w/w@)
VowelStart(w/wa)
VowelStart(w/we)
VowelStart(w/wi)
VowelStart(w/wo)
VowelStart(w/wu)
EndSwitch
IF nextPh(isNotVowel) THEN
Vowelout len=50
FMT(w/w_)
ENDIF
endphoneme