DragonBoard 410c(Debian)で日本語音声合成(Open JTalk)のTTSしてみる
前回のエントリで音声の出力ができるようになったDragonBoard。この機能を元にOpen JTalk
を用いた音声合成を行ってみたいと思います。
Open JTalk - HMM-based Text-to-Speech System
以下の過去エントリを参考にしていきます。
OpenJTalk関連 uepon.hatenadiary.com
Bluetoothスピーカー関連 uepon.hatenadiary.com
Open JTalk
のインストール
Open JTalk
とMMDAgent
をインストールします。
$ sudo apt-get install open-jtalk open-jtalk-mecab-naist-jdic htsengine libhtsengine-dev hts-voice-nitech-jp-atr503-m001
$ wget http://downloads.sourceforge.net/project/mmdagent/MMDAgent_Example/MMDAgent_Example-1.6/MMDAgent_Example-1.6.zip
$ unzip MMDAgent_Example-1.6.zip
$ sudo cp -R MMDAgent_Example-1.6/Voice/mei /usr/share/hts-voice/
一度行っているので迷うことはありませんでした。
TTSを実行するシェルを編集する
Open JTalkのパラメータを設定し実行するシェルスクリプトを編集します。
$ vim jtalk.sh
【jtalk.sh】
#!/bin/bash # HTSVOICE=/usr/share/hts-voice/nitech-jp-atr503-m001/nitech_jp_atr503_m001.htsvoice HTSVOICE=/usr/share/hts-voice/mei/mei_normal.htsvoice voice=`tempfile` option="-m $HTSVOICE \ -s 16000 \ -p 100 \ -a 0.03 \ -u 0.0 \ -jm 1.0 \ -jf 1.0 \ -x /var/lib/mecab/dic/open-jtalk/naist-jdic \ -ow $voice" if [ -z "$1" ] ; then open_jtalk $option else if [ -f "$1" ] ; then open_jtalk $option $1 else echo "$1" | open_jtalk $option fi fi aplay -q $voice rm $voice
編集が終わったら実行権限を与えます。
$ chmod 755 jtalk.sh
これで準備完了です。
TTSの実行
ここまで終わったので実際に実行させてみます。 コンソール上から以下の様に話したい文章を引数として与えます。
$ ./jtalk.sh こんにちは、今日は雨が降っているなか、お越しい ただき、ありがとうございます $ ./jtalk.sh 最大級のパワフルボディ!ダリラガーン!ダゴズバ ーン! $ ./jtalk.sh ドリーミングガール、恋のシミュレーション。乙女 はいつも、ときめきクライシス。
正常に動作できたようです。
【動画】
おわりに
思ったよりすんなりOpen JTalk
を導入できました。
これでDragonBoardでも音声でアナウンスするようなものは簡単にできそうですね!