🎤

open_jtalkで合成した音声をリアルタイムでオーディオに出力してみる

2024/01/25に公開

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