2012/12/16からのアクセス回数 6857
Raspberry PiでJuliusを使って音声認識をしたいと思っているので、その結果を 音声合成を使って出力するものを探していたところ、以下のページが見つかりました。
Raspberry Piで動くか心配でしたが、試しにhts_engine, Open-Jtalkをインストールしてみました。
手順は、 Open JTalkで音声合成 に従って行いました。
以下のページから最新のhts_engine APIをダウンロードしました。
http://sourceforge.net/projects/hts-engine/
私のダウロードしたものは、hts_engine_API-1.06.tar.gz です。
いつもの通り~/Downloadedディレクトリに落としたファイルを~/localに展開し、インストールしました。
$ tar xzvf ~/Downloaded/hts_engine_API-1.06.tar.gz $ cd hts_engine_API-1.06/ $ ./configure $ make $ sudo make install
次にOpen JTalkをインストールします。
http://sourceforge.net/projects/open-jtalk/
から最新をダウンロードします。 私のダウンロードしたのは、open_jtalk-1.05.tar.gz でした。
こちらは、configureで文字コードとしてUTF-8を使うように指定します。
$ tar xzvf ~/Downloaded/open_jtalk-1.05.tar.gz $ cd open_jtalk-1.05/ $ ./configure --with-charset=UTF-8 $ make $ sudo make install
hts_engine用データを以下のURLからダウンロードしました。
http://downloads.sourceforge.net/open-jtalk/hts_voice_nitech_jp_atr503_m001-1.04.tar.gz
ダウンロードしたファイルを展開し、以下に移動します。
$ tar xzvf ~/Downloaded/hts_voice_nitech_jp_atr503_m001-1.04.tar.gz $ sudo mv hts_voice_nitech_jp_atr503_m001-1.04 /usr/local/share/
Open JTalkの引数は多いため、スクリプトにまとめて使います。
Raspberry Piではwavファイルの再生にaplayを使用しました。
$ cat <\EOF > ojtalk.sh #!/bin/bash VOICE=/usr/local/share/hts_voice_nitech_jp_atr503_m001-1.04 DIC=/usr/local/dic open_jtalk \ -td $VOICE/tree-dur.inf \ -tf $VOICE/tree-lf0.inf \ -tm $VOICE/tree-mgc.inf \ -md $VOICE/dur.pdf \ -mf $VOICE/lf0.pdf \ -mm $VOICE/mgc.pdf \ -df $VOICE/lf0.win1 \ -df $VOICE/lf0.win2 \ -df $VOICE/lf0.win3 \ -dm $VOICE/mgc.win1 \ -dm $VOICE/mgc.win2 \ -dm $VOICE/mgc.win3 \ -ef $VOICE/tree-gv-lf0.inf \ -em $VOICE/tree-gv-mgc.inf \ -cf $VOICE/gv-lf0.pdf \ -cm $VOICE/gv-mgc.pdf \ -k $VOICE/gv-switch.inf \ -x $DIC \ -ow /tmp/ojtalktmpvoice.wav \ $1 aplay /tmp/ojtalktmpvoice.wav rm /tmp/ojtalktmpvoice.wav EOF $ chmod +x ojtalk.sh
テストデータとして、「日本海側を中心に大雪となっています。」をtest.txtに入れてojtalk.shを起動してみました。
$ ./ojtalk.sh test.txt Playing WAVE '/tmp/ojtalktmpvoice.wav' : Signed 16 bit Little Endian, Rate 16000 Hz, Mono
約2秒くらいして合成音声が出力されました。結果を知って聞いているとそれなりに聞こえますが、知らない言葉を再生した場合には、何を言っているか分からないというレベルですね。
それでも、こんな小さなRaspberry Piで簡単に音声合成ができるのは素晴らしいの一言です。
皆様のご意見、ご希望をお待ちしております。