Browse Source

jp: basic Hiragana support (the "fifty sounds")

master
Reece H. Dunn 8 years ago
parent
commit
51ba95dab4
5 changed files with 407 additions and 4 deletions
  1. 1
    0
      dictsource/jp_list
  2. 162
    0
      dictsource/jp_rules
  3. 6
    0
      espeak-ng-data/voices/jpx/jp
  4. 235
    1
      phsource/ph_ipa
  5. 3
    3
      phsource/phonemes

+ 1
- 0
dictsource/jp_list View File

@@ -0,0 +1 @@
// Japanese

+ 162
- 0
dictsource/jp_rules View File

@@ -0,0 +1,162 @@
// Japanese
//
// 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/>.

// Hiragana

.group あ
あ a_" // a

.group い
い i // i

.group う
う M_Bo // u

.group え
え e_o // e

.group お
お o_o // o

.group か
か ka_" // ka

.group き
き ki // ki

.group く
く kM_Bo // ku

.group け
け ke_o // ke

.group こ
こ ko_o // ko

.group さ
さ sa_" // sa

.group し
し s\\i // shi

.group す
す sM_Bo // su

.group せ
せ se_o // se

.group そ
そ so_o // so

.group た
た ta_" // ta

.group ち
ち t_s\\i // chi

.group つ
つ t_sM_Bo // tsu

.group て
て te_o // te

.group と
と to_o // to

.group な
な na_" // na

.group に
に ni // ni

.group ぬ
ぬ nM_Bo // nu

.group ね
ね ne_o // ne

.group の
の no_o // no

.group は
は ha_" // ha

.group ひ
ひ Ci // hi

.group ふ
ふ p\\M_Bo // fu

.group へ
へ he_o // he

.group ほ
ほ ho_o // ho

.group ま
ま ma_" // ma

.group み
み mi // mi

.group む
む mM_Bo // mu

.group め
め me_o // me

.group も
も mo_o // mo

.group や
や ja_" // ya

.group ゆ
ゆ jM_Bo // yu

.group よ
よ jo_o // yo

.group ら
ら r`a_" // ra

.group り
り r`i // ri

.group る
る rM_Bo // ru

.group れ
れ re_o // re

.group ろ
ろ ro_o // ro

.group わ
わ wa_" // wa

.group ゐ
ゐ i // wi (archaic)

.group ゑ
ゑ we_o // we (archaic)

.group を
を o_o // wo

.group ん
ん n // n

+ 6
- 0
espeak-ng-data/voices/jpx/jp View File

@@ -0,0 +1,6 @@
language jp
name japanese
phonemes ipa
gender male

intonation 4

+ 235
- 1
phsource/ph_ipa View File

@@ -1,7 +1,241 @@
// International Phonetic Alphabet: Narrow Transcription
//
// Copyright (C) 2016 Reece H. Dunn
// 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).

// Vowels /////////////////////////////////////////////////////////////////////

// Close Vowels

phoneme i
vowel starttype #i endtype #i
length 160

FMT(vowel/i)
endphoneme

phoneme M_Bo // M_B_o
vowel starttype #u endtype #u
ipa ɯᵝ
length 160

FMT(vowel/u_bck)
endphoneme

// Mid Vowels

phoneme e_o
vowel starttype #e endtype #e
ipa e̞
length 160

FMT(vowel/e_8)
endphoneme

phoneme o_o
vowel starttype #o endtype #o
ipa o̞
length 160

FMT(vowel/oo_3)
endphoneme

// Open Vowels

phoneme a_"
vowel 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

// Plosives

phoneme t
vls alv stop
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 k
vls vel stop
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

// Sibilant Affricates

phoneme t_s
vls alv afr sibilant
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
ipa tɕ
lengthmod 2
Vowelin f1=0 f2=2700 400 600 f3=300 80 rate len=70

WAV(ustop/ts_pzd)
endphoneme

// Sibilant Fricatives

phoneme s
vls alv frc sibilant
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 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 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

+ 3
- 3
phsource/phonemes View File

@@ -1669,6 +1669,9 @@ endphoneme
// ADDITIONAL PHONEME TABLES
//*******************************************************************

phonemetable ipa base
include ph_ipa

phonemetable consonants base
include ph_consonants

@@ -1979,6 +1982,3 @@ include ph_guarani

phonemetable ky base
include ph_kyrgyz

phonemetable ipa base
include ph_ipa

Loading…
Cancel
Save