🎤
open_jtalkで合成した音声をリアルタイムでオーディオに出力してみる
Raspberry Piでopen_jtalkを使ってリアルタイムで音声再生を行いたかったので手順をまとめました。
PortAudio関連のライブラリ追加
PortAudioを使って再生を行うので、事前に関連のライブラリを入れておきます。
ここではそれ以外で音声ファイルの操作に必要なものも一緒に追加しています。
sudo apt install -y portaudio19-dev libsndfile1-dev ffmpeg
open_jtalkのビルド
パッケージで取得できるものはPortAudioのライブラリに対応していないようなので、ソースからビルドします。
ソースコードの取得
wget http://downloads.sourceforge.net/open-jtalk/open_jtalk-1.11.tar.gz
wget http://downloads.sourceforge.net/hts-engine/hts_engine_API-1.10.tar.gz
tar xvzf open_jtalk-1.11.tar.gz
tar xvzf hts_engine_API-1.10.tar.gz
ソースコードのビルド
HTS Engineをビルドします。
cd ./hts_engine_API-1.10
./configure --prefix=/usr/local CFLAGS=' -g -O2 -D AUDIO_PLAY_PORTAUDIO -I /usr/include' LDFLAGS='-L /usr/lib' LIBS='-lportaudio'
make clean all
sudo make install
次にopen_jtalkをビルドします。
cd open_jtalk-1.11/
./configure --prefix=/usr/local --with-hts-engine-header-path=/usr/local/include --with-hts-engine-library-path=/usr/local/lib LDFLAGS=' -L /usr/local/lib -L /usr/lib' LIBS='-lportaudio'
make clean all
sudo make install
音声モデルのダウンロードと展開
以下のコマンドで音声モデルデータをダウンロードし、展開します。
wget http://downloads.sourceforge.net/open-jtalk/hts_voice_nitech_jp_atr503_m001-1.05.tar.gz
tar xvzf hts_voice_nitech_jp_atr503_m001-1.05.tar.gz
動作確認
以下のコマンドで動作確認を行います。
wav形式で出力する場合
echo '今日は天気が良いです' | /usr/local/bin/open_jtalk -x /usr/local/dic -m hts_voice_nitech_jp_atr503_m001-1.05/nitech_jp_atr503_m001.htsvoice -ow output.wav
直接出力する場合
echo '今日は天気が良いです' | /usr/local/bin/open_jtalk -x /usr/local/dic -m hts_voice_nitech_jp_atr503_m001-1.05/nitech_jp_atr503_m001.htsvoice -z 3200
これで正常に音声が再生できればOKです。
Discussion