OpenJTalk を Ubuntu Server にインストールして音声合成させるまで
はじめに
今回は 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
のインストールやサウンドカードの選択を適宜行う必要があるかもしれません。
関連記事
- 【XYペンプロッター制作④】Grbl v0.9とCNCjsのインストール
- Electronを動かしてHello world!表示するまで(macOS)
- Antの使い方 〜 Javaプロジェクトのモジュール作成
- 【tesseractでOCR】PDFから文字の抽出→文字データが埋め込まれたPDFを作成【自炊への道】
- ESP32でSPIFFS領域に保存する方法【M5StickC PLUS】