ラズパイ2試食レポ[7]: しゃべらせてみる [Raspberry Pi]
ラズパイ関連のサイトを拝見すると、しゃべらせている先人が多くいますので、やってみましょう。
手持ちにスピーカーが無いので、イヤホンジャックにイヤホンをつないでテストしました。
◆音声出力制御
音声はオーディオ端子とHDMI端子の2系統に出力でき、それを切り替えるには以下のようにします。最後の数字が 1 がオーディオ端子、2 がHDMI端子、0 が自動判別です。
pi@raspberrypi ~ $ amixer cset numid=3 1
ボリュームは以下で調整。
pi@raspberrypi ~ $ amixer set PCM 20%
◆しゃべるひと
OpenJTalk、AquesTalkPiの2つが主なものらしいです。後者は商用だが個人・非営利利用ならライセンス料はかからないです。
どちらもしっかりしゃべるますが、なめらかなのはやはり後者でしょうか。
AquesTalkPiはこちら(http://www.a-quest.com/products/aquestalkpi.html)からダウンロードし、解凍するだけ。バイナリと辞書フォルダを同じ場所に置きます。
以下のように使います。
pi@raspberrypi ~ $ ./AquesTalkPi しゃべらせたい言葉 | aplay
ただし、このままだと、AquesTalkPiがエラーを起こした場合などに aplay がノイズを出力するので、以下のようなスクリプトをかますとよいらしいです。Nosさんのサイト(http://d.hatena.ne.jp/Nos/20150218/1424217597)より拝借しました。
#!/bin/bash
aquestalkpi=/home/pi/build/aquestalkpi/AquesTalkPi
var=`$aquestalkpi "$@" | base64; echo ":${PIPESTATUS[0]}"`
ret=(${var##*:})
data=${var%:*}
if [ $ret -eq 0 ]; then
echo $data | base64 --decode --ignore-garbage | aplay -q
else
echo $data | base64 --decode --ignore-garbage
exit $ret
fi
AquesTalkPiへのパスは適宜変更してください。これを atalk と名づけて
pi@raspberrypi ~ $ atalk -g 15 しゃべらせたい日本語
と使います。オプションはそのままAquesTalkPiへ渡ります。-g はボリューム指定(100がMax)。
◆何をしゃべらせる?
時報や天気をしゃべらせる例が多いようです。目覚まし時計代わりによいかもしれません。dateコマンドで日本語の時報テキストを作ってatalkに渡すだけでできますね。cronに仕込めば目覚まし時計になります。
pi@raspberrypi ~ $ atalk -g 20 "`date "+%B %d日 %A %H時 %M分"`です。"
上記のNosさんのサイトには天気をしゃべらせるpythonスクリプトの例があり面白いです。
コメント 0