FrontPage

2012/12/16からのアクセス回数 6490

Raspberry PiでJuliusを使って音声認識をしたいと思っているので、その結果を 音声合成を使って出力するものを探していたところ、以下のページが見つかりました。

Open JTalkで音声合成

音声合成ソフト

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で簡単に音声合成ができるのは素晴らしいの一言です。

コメント

選択肢 投票
おもしろかった 5  
そうでもない 0  
わかりずらい 1  

皆様のご意見、ご希望をお待ちしております。


(Input image string)


添付ファイル: fileojtalktmpvoice.wav 1763件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2017-08-17 (木) 19:54:15 (2436d)
SmartDoc