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

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

Open JTalk - HMM-based Text-to-Speech System

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

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

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

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

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

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

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

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

bash
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

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

bash
which hts_engine
/usr/local/bin/hts_engine

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

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

bash
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のソースコードをのぞいてみるt、形態素解析にはmecabが使われているようでした。

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

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

bash
./configure
make
sudo make install

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

bash
which open_jtalk 
/usr/local/bin/open_jtalk

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

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

bash
# 音響モデルのダウンロード
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

この音響モデルを変えることで、声の種類や発音の感じを変えることができるようです。名古屋大学がメイ&タクミの音響モデルを聴いてみますと、ディープラーニングを使わずとも結構滑らかに聴こえることに驚きです。 メイ&タクミ動画 | メイ&タクミ公式ウェブサイト

テキストを音声に変換

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

bash
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という音声ファイルが生成されます。このファイルを再生することで、指定したテキストの音声を聞くことができます。

音声ファイルの再生

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

bash
sudo aplay output.wav

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

関連記事

最後までご覧いただきありがとうございます!

▼ 記事に関するご質問やお仕事のご相談は以下よりお願いいたします。
お問い合わせフォーム

Pandasで画像・動画処理をはじめよう!
Python学習にオススメの本をご紹介!