diff --git a/dictsource/jp_list b/dictsource/jp_list
new file mode 100644
index 00000000..50badbed
--- /dev/null
+++ b/dictsource/jp_list
@@ -0,0 +1 @@
+// Japanese
diff --git a/dictsource/jp_rules b/dictsource/jp_rules
new file mode 100644
index 00000000..429e3f7c
--- /dev/null
+++ b/dictsource/jp_rules
@@ -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: .
+
+// 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
diff --git a/espeak-ng-data/voices/jpx/jp b/espeak-ng-data/voices/jpx/jp
new file mode 100644
index 00000000..930bd401
--- /dev/null
+++ b/espeak-ng-data/voices/jpx/jp
@@ -0,0 +1,6 @@
+language jp
+name japanese
+phonemes ipa
+gender male
+
+intonation 4
diff --git a/phsource/ph_ipa b/phsource/ph_ipa
index 50718613..8b70d815 100644
--- a/phsource/ph_ipa
+++ b/phsource/ph_ipa
@@ -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: .
+
// 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
diff --git a/phsource/phonemes b/phsource/phonemes
index 9e60056f..a184fdae 100644
--- a/phsource/phonemes
+++ b/phsource/phonemes
@@ -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