matsuiです。
昨日の記事 ゆっくりボイスをしゃべらせるためのPHPプログラム「YukkuriTalk」を作成してみました の続きです。
Raspberry Piとは
Raspberry Pi(ラズベリーパイ)はLinuxで動作する名刺サイズの小型PCです。
3,000円程度で購入できます。
512MBバージョンが出た数ヶ月前に購入し待つこと3ヶ月、忘れた頃に到着しました。
で、そこから数ヶ月間また存在を忘れ、つい先日思い出しセットアップを行いました。
Raspberry Piの基本セットアップ
ググるといろんなサイトが出て来ると思いますので、ここでは軽く説明します。
http://www.raspberrypi.org/downloads からOSのイメージをダウンロードします。
今回は「Raspbian “wheezy”」を選択しました。
ダウンロードしたイメージを、DDWinなどのフリーソフトでSDカードに書き込んでやればOKです。
SDカード容量は最低2GB必要ですが、それだと相当パンパンなので、用途に応じてあったものを買っておきましょう。
私はLinux環境だったので以下のコマンドでセットアップしました。Macの人も同様のやり方で行けると思います。
ダウンロードしたイメージは「2012-12-16-wheezy-raspbian.img」、SDカードのデバイス(dfコマンドで確認できます)は「/dev/sdx1」だとします。
$ sudo umount /dev/sdx1 $ sudo dd bs=4M if=2012-12-16-wheezy-raspbian.img of=/dev/sdx
(最後のコマンドのデバイス名に数字がつかないことに注意してください)
起動と初期セットアップ
上で作ったSDカード、HDMIケーブルとLANケーブル、USBキーボードを挿して起動します。
起動したらメニューが現れますので、以下の設定を行います。
(1) 何はともあれ「update」でメニューを最新にする
(2) タイムゾーンをAsia/Tokyoにセットする
(3) パスワードを変更する
(4) expand_rootfsで、SDカードの全領域を使えるようにする(数十分かかります)
続いて、パッケージを最新にします。これも1時間ほどかかります。
$ sudo apt-get update $ sudo apt-get upgrade
ゆっくりをしゃべらせようとするが・・・
さて、ここまでこれば普通のLinuxと同じです。
昨日ご紹介した「YukkuriTalk」で、しゃべらせようとしますが・・・
残念、AquesTalkはx86用のバイナリで、普通のやり方ではCPUがARMであるRaspberry Piには対応できません。
ちなみにWineもARM環境には非対応です。
通常のやり方では難しいということがわかりました。
それでも私はゆっくりをしゃべらせたい
しかし、それでも私はゆっくりをしゃべらせたい。ここは強い意志を持って別の解決案を探ります。
そこで考えたのが、上のような方式です。
しゃべらせたい文字列をPOSTし、ゆっくりサーバがwavファイルを生成、Raspberry Piはそれをダウンロードして再生します。
今回はAmazonEC2上にマイクロインスタンスで専用サーバを立てました。
そして完成
”そこには、ゆっくりとゴミの日やGoogleカレンダーの予定をしゃべるRaspberry Piちゃんの姿が・・・”
使ってみるとなかなか快適です。
少なくとも、ゴミの出し忘れは激減しました。
cronに登録したものは何でもしゃべれますので、いくらでも応用がききます。
$ ./yukkuritalkclient "ゆっくりしていってね" [talked] ゆっくりしていってね
作ったソフトはGitHubに公開しておきました。
詳しい使い方は同梱のマニュアルをご覧ください。昨日の記事もセットアップの参考になると思います。
→ GitHub ketaiorg / YukkuriTalkServer
→ GitHub ketaiorg / YukkuriTalkClient
wavファイルの生成にWineをつかっているため、Webサーバのユーザ権限でWineの実行が必要になります。
このあたりが少しやっかいかもしれませんね。HTTP経由ではなくSSH経由でwavファイルを取得してもいいかもしれません。
専用ステッカーも作りました。やはりDIYはこういうどうでも良いところに懲りたいものですよね。
透明ケースに合わせてスケルトン仕様のシールとしました。大満足の出来です。
はれてラズベリーゆっくりとなりました。
RaspberryPiのようなデバイスは、買うだけで満足してしまいがちです。
眠らせるのは勿体ないので、みなさんもぜひ活用方法を模索してみてはいかがでしょうか。