[[FrontPage]] #contents 2012/12/16からのアクセス回数 &counter; Raspberry PiでJuliusを使って音声認識をしたいと思っているので、その結果を 音声合成を使って出力するものを探していたところ、以下のページが見つかりました。 [[Open JTalkで音声合成>http://linux-suomi.net/modules/poco/index.php?content_id=6]] ** 音声合成ソフト [#d7fd5eac] Raspberry Piで動くか心配でしたが、試しにhts_engine, Open-Jtalkをインストールしてみました。 手順は、 [[Open JTalkで音声合成>http://linux-suomi.net/modules/poco/index.php?content_id=6]] に従って行いました。 *** hts_engine APIのインストール [#yf8267de] 以下のページから最新のhts_engine APIをダウンロードしました。 http://sourceforge.net/projects/hts-engine/ 私のダウロードしたものは、hts_engine_API-1.06.tar.gz です。 いつもの通り~/Downloadedディレクトリに落としたファイルを~/localに展開し、インストールしました。 #pre{{ $ tar xzvf ~/Downloaded/hts_engine_API-1.06.tar.gz $ cd hts_engine_API-1.06/ $ ./configure $ make $ sudo make install }} *** Open JTalk [#ud92c415] 次にOpen JTalkをインストールします。 http://sourceforge.net/projects/open-jtalk/ から最新をダウンロードします。 私のダウンロードしたのは、open_jtalk-1.05.tar.gz でした。 こちらは、configureで文字コードとしてUTF-8を使うように指定します。 #pre{{ $ 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用データのダウンロードと設定 [#x633d94f] hts_engine用データを以下のURLからダウンロードしました。 http://downloads.sourceforge.net/open-jtalk/hts_voice_nitech_jp_atr503_m001-1.04.tar.gz ダウンロードしたファイルを展開し、以下に移動します。 #pre{{ $ 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起動用のスクリプト [#y6141e96] Open JTalkの引数は多いため、スクリプトにまとめて使います。 Raspberry Piではwavファイルの再生にaplayを使用しました。 #pre{{ $ 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を起動してみました。 #pre{{ $ ./ojtalk.sh test.txt Playing WAVE '/tmp/ojtalktmpvoice.wav' : Signed 16 bit Little Endian, Rate 16000 Hz, Mono }} 約2秒くらいして合成音声が出力されました。結果を知って聞いているとそれなりに聞こえますが、知らない言葉を再生した場合には、何を言っているか分からないというレベルですね。 - 合成結果 &ref(ojtalktmpvoice.wav); それでも、こんな小さなRaspberry Piで簡単に音声合成ができるのは素晴らしいの一言です。 ** コメント [#e054e726] #vote(おもしろかった[4],そうでもない[0],わかりずらい[1]) #vote(おもしろかった[5],そうでもない[0],わかりずらい[1]) 皆様のご意見、ご希望をお待ちしております。 #comment_kcaptcha