Skip to content

Instantly share code, notes, and snippets.

@wakaba
Last active December 28, 2015 12:19
Show Gist options
  • Save wakaba/7499633 to your computer and use it in GitHub Desktop.
Save wakaba/7499633 to your computer and use it in GitHub Desktop.
## Open JTalk installer
##
## hts_engine <http://hts-engine.sourceforge.net/>
## Open JTalk <http://open-jtalk.sourceforge.net/>
## NIT ATR503 M001 <http://open-jtalk.sourceforge.net/readme_hts_voice_nitech_jp_atr503_m001.php>
## Mei <http://sourceforge.net/projects/mmdagent/files/MMDAgent_Example/>
##
## Usage:
##
## # apt-get install mono-runtime
## $ make
## $ make sample
all: open_jtalk m001 mei
clean:
rm -f local/hts-engine-src.tar.gz local/open_jtalk.tar.gz
rm -f local/m001.tar.gz local/htsvconv.zip local/mmdagent-example.zip
WGET = wget
MONO = mono
OPEN_JTALK_ROOT_DIR = ./local/open_jtalk
_OPEN_JTALK_ROOT_DIR = $(abspath $(OPEN_JTALK_ROOT_DIR))
OPEN_JTALK_TARBALL_URL = http://downloads.sourceforge.net/project/open-jtalk/Open%20JTalk/open_jtalk-1.06/open_jtalk-1.06.tar.gz
M001_TARBALL_URL = http://downloads.sourceforge.net/project/open-jtalk/HTS%20voice/hts_voice_nitech_jp_atr503_m001-1.05/hts_voice_nitech_jp_atr503_m001-1.05.tar.gz
## htsvconv <http://neu101.seesaa.net/article/316259910.html> <https://app.box.com/s/tyyekt16kpwv3lye3pvl>
HTSVCONV_ZIP_URL = https://app.box.com/index.php?rm=box_download_shared_file&shared_name=tyyekt16kpwv3lye3pvl&file_id=f_6004333035
MMDAGENT_EXAMPLE_ZIP_URL = http://downloads.sourceforge.net/project/mmdagent/MMDAgent_Example/MMDAgent_Example-1.3.1/MMDAgent_Example-1.3.1.zip
local/hts-engine-src.tar.gz:
mkdir -p local
$(WGET) -O $@ "http://hts-engine.cvs.sourceforge.net/viewvc/hts-engine/hts_engine_API/src/?view=tar"
local/open_jtalk.tar.gz:
mkdir -p local
$(WGET) -O $@ "$(OPEN_JTALK_TARBALL_URL)"
local/m001.tar.gz:
mkdir -p local
$(WGET) -O $@ "$(M001_TARBALL_URL)"
local/htsvconv.zip:
mkdir -p local
$(WGET) -O $@ "$(HTSVCONV_ZIP_URL)"
local/mmdagent-example.zip:
mkdir -p local
$(WGET) -O $@ "$(MMDAGENT_EXAMPLE_ZIP_URL)"
hts-engine: $(_OPEN_JTALK_ROOT_DIR)/bin/hts_engine
$(_OPEN_JTALK_ROOT_DIR)/bin/hts_engine: local/hts-engine-src.tar.gz
mkdir -p local/make-hts-engine
cd local/make-hts-engine && \
tar zxf ../hts-engine-src.tar.gz && \
cd src && \
touch ChangeLog && \
aclocal && \
automake -a -c && \
autoconf && \
./configure --prefix="$(_OPEN_JTALK_ROOT_DIR)" && \
make && \
make install
rm -fr local/make-hts-engine
open_jtalk: hts-engine $(_OPEN_JTALK_ROOT_DIR)/bin/open_jtalk
$(_OPEN_JTALK_ROOT_DIR)/bin/open_jtalk: local/open_jtalk.tar.gz
mkdir -p local/make-open_jtalk
cd local/make-open_jtalk && \
tar zxf ../open_jtalk.tar.gz
ls local/make-open_jtalk
cd local/make-open_jtalk/open_jtalk-* && \
./configure \
--prefix="$(_OPEN_JTALK_ROOT_DIR)" \
--with-hts-engine-header-path="$(_OPEN_JTALK_ROOT_DIR)/include" \
--with-hts-engine-library-path="$(_OPEN_JTALK_ROOT_DIR)/lib" \
--with-charset=UTF-8 && \
make && \
make install
rm -fr local/make-open_jtalk
m001: $(_OPEN_JTALK_ROOT_DIR)/voices/m001/nitech_jp_atr503_m001.htsvoice
$(_OPEN_JTALK_ROOT_DIR)/voices/m001/nitech_jp_atr503_m001.htsvoice: local/m001.tar.gz
mkdir -p local/make-m001
cd local/make-m001 && tar zxf ../m001.tar.gz
mkdir -p $(_OPEN_JTALK_ROOT_DIR)/voices/m001
mv local/make-m001/*/* $(_OPEN_JTALK_ROOT_DIR)/voices/m001/
rm -fr local/make-m001
htsvconv: local/htsvconv/htsvconv.exe
local/htsvconv/htsvconv.exe: local/htsvconv.zip
mkdir -p local/htsvconv
cd local/htsvconv && unzip -u ../htsvconv.zip
mei: htsvconv local/mmdagent-example.zip
mkdir -p local/make-mei
cd local/make-mei && unzip -u ../mmdagent-example.zip
for VOICE in mei_angry mei_bashful mei_happy mei_normal mei_sad; do \
cd local && $(MONO) htsvconv/htsvconv.exe make-mei/*/Voice/$$VOICE && cd ..; \
mkdir -p $(_OPEN_JTALK_ROOT_DIR)/voices/$$VOICE; \
mv local/make-mei/*/Voice/$$VOICE/*.txt $(_OPEN_JTALK_ROOT_DIR)/voices/$$VOICE/; \
mv local/$$VOICE.htsvoice $(_OPEN_JTALK_ROOT_DIR)/voices/$$VOICE/; \
done
rm -fr local/make-mei
sample: open_jtalk m001 mei
echo "こんにちは。今日は良い天気ですね。" > local/sample.txt
$(_OPEN_JTALK_ROOT_DIR)/bin/open_jtalk \
-m $(_OPEN_JTALK_ROOT_DIR)/voices/m001/nitech_jp_atr503_m001.htsvoice \
-x $(_OPEN_JTALK_ROOT_DIR)/dic \
-ow local/sample-m001.wav \
local/sample.txt
$(_OPEN_JTALK_ROOT_DIR)/bin/open_jtalk \
-m $(_OPEN_JTALK_ROOT_DIR)/voices/mei_normal/mei_normal.htsvoice \
-x $(_OPEN_JTALK_ROOT_DIR)/dic \
-ow local/sample-mei.wav \
local/sample.txt
## License: Public Domain.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment