[[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

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
SmartDoc