2012/12/16からのアクセス回数 6789 Raspberry PiでJuliusを使って音声認識をしたいと思っているので、その結果を 音声合成を使って出力するものを探していたところ、以下のページが見つかりました。 音声合成ソフト †Raspberry Piで動くか心配でしたが、試しにhts_engine, Open-Jtalkをインストールしてみました。 手順は、 Open JTalkで音声合成 に従って行いました。 hts_engine APIのインストール †以下のページから最新の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 †次に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用データのダウンロードと設定 †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起動用のスクリプト †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で簡単に音声合成ができるのは素晴らしいの一言です。 コメント †皆様のご意見、ご希望をお待ちしております。 Tweet |