サイトロゴ

OpenJTalk を Ubuntu Server にインストールして音声合成させるまで

著者画像
Toshihiko Arai

はじめに

今回は miniPC にインストールした Ubuntu Server に OpenJTalk インストールして音声合成を試してみました。

https://open-jtalk.sp.nitech.ac.jp/

いわゆる「棒読みちゃん」です。OpenJTalkは昨今流行りのディープラーニング技術を使うのではなく、統計的パラメトリック音声合成(HMMベースの音声合成)技術を利用しています。テキストの音素解析や韻律の生成を行い、これに基づいて音声波形を生成します。


必要なパッケージのインストール

まず、必要な依存パッケージをインストールします。

sudo apt-get update
sudo apt-get install -y make gcc g++ zlib1g-dev curl

HTSエンジンのインストール

OpenJTalkを使うためには HTSエンジンもインストールする必要がありますので、次の手順でインストールしておきます。

OpenJTalk をインストールする際に HTS_engine.h が見つからないというエラーが出たら、ここら辺を参考してみてください。

次のコマンドは、HTSエンジンをダウンロードしてインストールします。

curl -LO https://downloads.sourceforge.net/hts-engine/hts_engine_API-1.10.tar.gz
tar xzf hts_engine_API-1.10.tar.gz
cd hts_engine_API-1.10
./configure
make
sudo make install

次のように、インストールできたことが確認できます。

which hts_engine
/usr/local/bin/hts_engine

OpenJTalkのソースコードをダウンロード

次に、OpenJTalkのソースコードをダウンロードし、展開します。2024年時点では、このURLが最新でした。

curl -LO https://downloads.sourceforge.net/open-jtalk/open_jtalk-1.11.tar.gz
tar xzf open_jtalk-1.11.tar.gz
cd open_jtalk-1.11

OpenJTalkのソースコードをのぞいてみると、形態素解析にはmecabが使われているようでした。

OpenJTalkのビルドとインストール

以下のコマンドでOpenJTalkをビルドしてインストールします。

./configure
make
sudo make install

次のように、インストールできたことが確認できます。

which open_jtalk 
/usr/local/bin/open_jtalk

音響モデルと辞書のダウンロード

次に、音響モデルと辞書をダウンロードします。

curl -LO https://downloads.sourceforge.net/open-jtalk/hts_voice_nitech_jp_atr503_m001-1.05.tar.gz
tar xzf hts_voice_nitech_jp_atr503_m001-1.05.tar.gz

curl -LO https://downloads.sourceforge.net/open-jtalk/open_jtalk_dic_utf_8-1.11.tar.gz
tar xzf open_jtalk_dic_utf_8-1.11.tar.gz

この音響モデルを変えることで、声の種類や発音の感じを変えることができるようです。名古屋大学がメイ&タクミの音響モデルを聴いてみますと、ディープラーニングを使わずとも結構滑らかに聴こえることに驚きです。 https://mei.web.nitech.ac.jp/?page_id=15871

テキストを音声に変換

OpenJTalkを使用して、テキストを音声ファイルに変換します。

open_jtalk \
    -x ./open_jtalk_dic_utf_8-1.11 \
    -m ./hts_voice_nitech_jp_atr503_m001-1.05/nitech_jp_atr503_m001.htsvoice \
    -ow output.wav \
    -ot log.txt <<EOF
こんにちは、これはOpenJTalkのテストです。
EOF

上記のコマンドを実行すると、output.wavという音声ファイルが生成されます。このファイルを再生することで、指定したテキストの音声を聞くことができます。

音声ファイルの再生

最後に、生成された音声ファイルを再生します。以下のコマンドを使って再生することができます。

sudo aplay output.wav

私の環境ですと aplay はスーパーユーザーでないと実行できませんでした。また人によっては、aplay のインストールやサウンドカードの選択を適宜行う必要があるかもしれません。

関連記事