残しときます(自分用)

忘れないうちにね!

Debian Jessie に OpenJtalk を入れてテキストを読み上げてみた

もりすけです。

ゆっくり実況ってあるじゃないですか。
ニコニコ動画とかでよくあるやつです。

それ用にと思ってテキスト読み上げソフトを入れてみました。

今回の作業手順です。

1.OpenJtalk のインストール
2.辞書とボイスのダウンロード
3.OpenJtalk のテスト
4.bashで読み上げスクリプト作成

1.OpenJtalk のインストール

では、早速インストールです。
いつもの呪文を唱えます。

~$ sudo aptitude update
~$ sudo aptitude install open-jtalk

The following NEW packages will be installed:
  libhtsengine1{a} open-jtalk 
0 packages upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
Need to get 215 kB of archives. After unpacking 708 kB will be used.
Do you want to continue? [Y/n/?] 

これでインストール完了です。
簡単ですね。

2.辞書とボイスのインストール

辞書とボイスは必須ですね。
Debianのパッケージにありましたので、 今回はここからインストールします。

~$ sudo aptitude install open-jtalk-mecab-naist-jdic hts-voice-nitech-jp-atr503-m001

open-jtalk-mecab-naist-jdic が辞書、
hts-voice-nitech-jp-atr503-m001 がボイスです。

辞書は /var/lib/mecab/dic/open_jtalk/ の中に、
ボイスは /usr/share/hts-voice/ の中にインストールされました。

MMDAgentの女性ボイス

女性用のボイスもあるとのことで、
ここからダウンロードしました。
http://www.mmdagent.jp/

f:id:namotch:20150623231713p:plain

MMDAgent "Sample Script" version 1.4 の中の Binary Package を選びます。

ダウンロードしたファイルを解凍して適当な場所へ移動します。
今回は パッケージのボイスと同じ所に入れました。

~$ unzip MMDAgent_Example-1.4.zip
~$ sudo mv ./MMDAgent_Example-1.4/Voice/mei usr/share/hts-voice/

3.OpenJtalk のテスト

open_jtalk コマンドで音声ファイルを作成してみましょう。 まずは喋らせる言葉をファイルに保存します。

~$ vi text.txt

これはテストです

言葉を入力して保存します。
ファイル名は何でもいいです。

では、音声に変換します。

open_jtalk -x /var/lib/mecab/dic/open-jtalk/naist-jdic/ -m /usr/share/hts-voice/nitech-jp-atr503-m001/nitech_jp_atr503_m001.htsvoice text.txt -ow output.wav

すると、output.wav が作成されます。
聞いてみましょう。

~$ mplayer output.wav

男性の声で上手く再生されれば成功です。

4.bashで読み上げスクリプト作成

コマンドでもいいんですが、
わざわざテキストファイルを作成するのもどうかと思いますので、 bash で動くコマンドを作ってしまいましょう。
読み上げ用ですので、作成した音声ファイルはすぐに消すことにします。

[talk] # ファイル名は拡張子なしの「talk」にしました。

---
#!/bin/bash
VOICE=/usr/share/hts-voice/nitech-jp-atr503-m001/nitech_jp_atr503_m001.htsvoice
DIC=/var/lib/mecab/dic/open-jtalk/naist-jdic/
WAV=/tmp/ojtalktmpvoice.wav
echo "$1" | open_jtalk \
-x $DIC \
-m $VOICE \
-ow $WAV

mplayer $WAV
rm $WAV

MMDAgentのボイスで再生したい場合はこんなふうに変更して下さい。

VOICE=/usr/share/hts-voice/mei/mei_normal.htsvoice

再生

~$ ./talk これはテストです

うまく再生できたらOKです。

最後に

ちょっと喋り方が変ですが、
調整したらもっと綺麗になるんでしょうかね。

いろいろ試してみたいと思います。