Open JTalk のインストールと使用法 (Ubuntu 上)
【関連する外部ページ】
- Open JTalk の公式ページ: https://open-jtalk.sourceforge.net/
- Open JTalk のダウンロードページ: https://sourceforge.net/projects/open-jtalk/files/
- hts_engine API の公式ページ: https://hts-engine.sourceforge.net/
- hts_engine API のダウンロードページ: https://sourceforge.net/projects/hts-engine/files/
このページでは,次の 2 通りの方法を説明する.
- ソースコードからのビルドとインストール(最新版を使う場合)
- apt によるインストール(Ubuntu の公式リポジトリのパッケージを使う場合)
前準備
Ubuntu のシステム更新
Ubuntu で OS のシステム更新を行うときは, 端末で,次のコマンドを実行する。これは、パッケージ情報を最新の状態に保ち、インストール済みのパッケージをセキュリティアップデートやバグ修正を含めて更新するためである。
# パッケージリストの情報を更新
sudo apt update
# インストール済みのパッケージを包括的に更新 (依存関係も考慮)
sudo apt full-upgrade
ビルド用ツールと音声再生ツールのインストール
端末で,次のコマンドを実行する. build-essential は C コンパイラ等のビルド用ツール,alsa-utils は音声再生コマンド aplay を提供する.
# パッケージリストの情報を更新
sudo apt update
sudo apt -y install build-essential curl unzip alsa-utils
hts_engine API と Flite+hts_engine(英語音声合成)のインストール(ソースコードからのビルド)
hts_engine API は,HTS で学習された HMM から音声波形を合成するエンジンである. Flite+hts_engine は,英語テキスト解析器 Flite と hts_engine API を組み合わせた英語音声合成システムである. Open JTalk のビルドには hts_engine API が必要である.
端末で,次のコマンドを実行する.
cd /tmp
curl -L -o hts_engine_API-1.10.tar.gz https://downloads.sourceforge.net/project/hts-engine/hts_engine%20API/hts_engine_API-1.10/hts_engine_API-1.10.tar.gz
curl -L -o flite+hts_engine-1.07.tar.gz https://downloads.sourceforge.net/project/hts-engine/flite%2Bhts_engine/flite%2Bhts_engine-1.07/flite%2Bhts_engine-1.07.tar.gz
curl -L -o hts_voice_cmu_us_arctic_slt-1.05.tar.gz https://downloads.sourceforge.net/project/hts-engine/HTS%20voice/hts_voice_cmu_us_arctic_slt-1.05/hts_voice_cmu_us_arctic_slt-1.05.tar.gz
#
cd /tmp
tar -xvzof hts_engine_API-1.10.tar.gz
cd hts_engine_API-1.10
./configure
make
sudo make install
sudo ldconfig
#
cd /tmp
tar -xvzof flite+hts_engine-1.07.tar.gz
cd flite+hts_engine-1.07
./configure
make
sudo make install
sudo ldconfig
#
cd /usr/local/share
sudo tar -xvzof /tmp/hts_voice_cmu_us_arctic_slt-1.05.tar.gz
Flite+hts_engine を使ってみる
- 英語テキストファイルの準備
端末で,次のコマンドを実行する.
echo "Hello, this is a speech synthesis test." > /tmp/input.txt - 音声ファイルの作成
端末で,次のコマンドを実行する. -m は HTS voice ファイル,-o は出力する WAV ファイルの指定である.
flite_hts_engine -m /usr/local/share/hts_voice_cmu_us_arctic_slt-1.05/cmu_us_arctic_slt.htsvoice -o /tmp/output.wav /tmp/input.txt - 再生してみる
端末で,次のコマンドを実行する.
aplay /tmp/output.wav
Open JTalk のインストール(ソースコードからのビルド)
Open JTalk 本体,UTF-8 の辞書 open_jtalk_dic_utf_8-1.11,日本語男性話者の HTS voice hts_voice_nitech_jp_atr503_m001-1.05 をインストールする. 事前に,前の節の手順で hts_engine API をインストールしておく必要がある.
端末で,次のコマンドを実行する.
cd /tmp
curl -L -o open_jtalk-1.11.tar.gz https://downloads.sourceforge.net/project/open-jtalk/Open%20JTalk/open_jtalk-1.11/open_jtalk-1.11.tar.gz
curl -L -o open_jtalk_dic_utf_8-1.11.tar.gz https://downloads.sourceforge.net/project/open-jtalk/Dictionary/open_jtalk_dic-1.11/open_jtalk_dic_utf_8-1.11.tar.gz
curl -L -o hts_voice_nitech_jp_atr503_m001-1.05.tar.gz https://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
#
cd /tmp
tar -xvzof open_jtalk-1.11.tar.gz
cd open_jtalk-1.11
./configure --with-charset=UTF-8 \
--with-hts-engine-header-path=/usr/local/include \
--with-hts-engine-library-path=/usr/local/lib
make
sudo make install
#
cd /usr/local/share
sudo tar -xvzof /tmp/open_jtalk_dic_utf_8-1.11.tar.gz
#
cd /usr/local/share
sudo tar -xvzof /tmp/hts_voice_nitech_jp_atr503_m001-1.05.tar.gz
女性話者の HTS voice(Mei)の追加
女性話者の HTS voice は,MMDAgent の配布物 MMDAgent_Example-1.8.zip に含まれている. 端末で,次のコマンドを実行する.
cd /tmp
curl -L -o MMDAgent_Example-1.8.zip https://downloads.sourceforge.net/project/mmdagent/MMDAgent_Example/MMDAgent_Example-1.8/MMDAgent_Example-1.8.zip
unzip -o MMDAgent_Example-1.8.zip
sudo cp -R /tmp/MMDAgent_Example-1.8/Voice/mei /usr/local/share/
Open JTalk を使ってみる
- 日本語テキストファイル(UTF-8)の準備
端末で,次のコマンドを実行する.
echo "これは音声合成のテストです。" > /tmp/input2.txt - 音声ファイルの作成
端末で,次のコマンドを実行する. -m は HTS voice ファイル,-x は辞書ディレクトリ,-ow は出力する WAV ファイルの指定である.
open_jtalk -m /usr/local/share/hts_voice_nitech_jp_atr503_m001-1.05/nitech_jp_atr503_m001.htsvoice -x /usr/local/share/open_jtalk_dic_utf_8-1.11 -ow /tmp/output2.wav /tmp/input2.txt - 再生してみる
端末で,次のコマンドを実行する.
aplay /tmp/output2.wav
apt によるインストールと使用(Ubuntu の公式リポジトリ)
Ubuntu の公式リポジトリには Open JTalk 1.11 のパッケージが収録されている. Open JTalk 本体と辞書は universe,日本語男性話者の HTS voice は multiverse に含まれる.
- インストール
端末で,次のコマンドを実行する.
sudo add-apt-repository -y universe sudo add-apt-repository -y multiverse # パッケージリストの情報を更新 sudo apt update sudo apt -y install open-jtalk open-jtalk-mecab-naist-jdic hts-voice-nitech-jp-atr503-m001 alsa-utilsインストールされるファイルの場所は次の通りである.
- 辞書: /var/lib/mecab/dic/open-jtalk/naist-jdic
- HTS voice: /usr/share/hts-voice/nitech-jp-atr503-m001/nitech_jp_atr503_m001.htsvoice
- 日本語テキストファイル(UTF-8)の準備
端末で,次のコマンドを実行する.
echo "これは音声合成のテストです。" > /tmp/1.txt - シェルスクリプトの作成
次の内容を /tmp/hoge.sh という名前で保存する. -r は話す速さ(1.0 が標準),-a はスペクトルの後フィルタ係数,-jf は基本周波数の GV の重みであり,これらを変えると声の印象が変わる.
#!/bin/sh open_jtalk \ -x /var/lib/mecab/dic/open-jtalk/naist-jdic \ -m /usr/share/hts-voice/nitech-jp-atr503-m001/nitech_jp_atr503_m001.htsvoice \ -ow /tmp/hoge.wav \ -r 1.0 \ -a 0.5 \ -jf 1.0 \ "$@" - 実行
端末で,次のコマンドを実行する. open_jtalk はファイル名を省略すると標準入力からテキストを読み込む.
sh /tmp/hoge.sh /tmp/1.txt aplay /tmp/hoge.wavテキストファイルの文字コードが UTF-8 でない場合(Shift_JIS や EUC-JP の場合)は, nkf または iconv で UTF-8 に変換してから渡す. 端末で,次のコマンドを実行する.
sudo apt -y install nkf nkf -w /tmp/1.txt | sh /tmp/hoge.sh aplay /tmp/hoge.wav