AquesTalk Pi を使ってみる

AquesTalk Pi の使い方まとめ

に倣いAquesTalk Pi を「個人的」に使ってみます。

http://www.a-quest.com/products/aquestalkpi.html

からダウンロードします。
Raspberry Piのブラウザ Midoriを使いました。

/home/piに

aquestalkpi-20130827.tar.gz

がダウンロードされるので展開します。

/home/piの中にaquestalkpiといディレクトリが作成されるのでそこに移動します。

しゃべらせてみます。

声を声種f2にするには(デフォルトはf1)

にします。
AquesTalk Piを入れるといままで使えていたOpenJTalkが使えなくなってしまいました。
aquestalkpiのディレクトリを削除してもだめだったので
OpenJTalkを再インストールしました。
共存できないようです。

AquesTalk Piはインストールも簡単でとても扱いやすくてすばらしいのですが、
大学などで公式に使用するにはライセンスが必要なので
とりあえず、現在はマグボットでは使用しません。

非商用、個人でマグボッットで使用するのには問題ないと思います。

ライセンスについては
AquesTalk Pi の使い方まとめ

AquesTalk Piの詳しい使用方法については
AquesTalk Pi

をご覧下さい。

バックグラウンドでWebSocketサーバを起動

Rubyで作ったWebSocketサーバを自動起動してみます。

の前に

と書く。
mubogt_server_v1_0_0.rbはWebSocketサーバのファイル名

最初にruby、最後に&をつける。これがミソ。
バックグラウンドで実行します。
これをつけないとフォラグラウンドで実行されて、いつまでたっても解放されず
コマンド受付状態にならない。
&をつけないと、
先に行けずに止まってしまうでしょう。

mubogt_server_v1_0_0.rbに実行権を付与。(これが必要かどうかわからない)

自動起動後に

でこのプロセスが走っているか確認できます。
しかし、この方法ではシステム起動時に「一度だけ」起動するので、途中で何かの原因でプロセスが止まるとそれきりになります。
止まってもなんどでも起動するのではればデーモン化が必要です。
これは次のステップで。

rc.localでのRubyスクリプトの自動実行

起動時にスクリプトを実行する方法としていくつか方法があるが、ここでは比較的簡単にできるrc.localにスクリプトを書く方法を試してみる。

rc.localを編集

中身は以下。

例えば

mubogt_server_v1_0_0.rb

exit 0の前に

と書いて

再起動

する。

スクリプトは
シェルスクリプトでもRubyやPythonの起動スクリプトでもいい。

ハマったのはデフォルトでrc.local内のスクリプトが自動起動しなかったこと

とすれば動くのでスクリプトには問題ない。

仕方ないので実行権を付与してみる。

これで動いた。

デフォルトで動かないのは、こう書いてあるので当然ですね。

rc.local内のスクリプト

は、起動するとIPアドレスを表示してくれます。

以前にjsayという日本語音声プログラムを試してみたので

Raspberry Piで音声合成

これを

と加えることで
起動時にIPアドレスをしゃべるようになりました。

参考
Raspberry PiをSHOUTcastクライアントにする

Raspberry Pi上でRubyファイルの実行

RUbyのファイルの1行名に

(シェバン)
があるが、それがあると
test.rbを実行するのにホームディレクトリ上で

でも起動するが、

だけで起動する。

ファイル名のtest.rbはtestでもいい。Linuxは拡張子で判断していない。

実際やってみると以下のことでハマった。

をなぜか1行目は空白で、2行名から書いていたので、ファイルが実行できず。1行名から書く。

ruby test.rbは、実際はファイルの位置を明記して

として実行する。最初にrubyと書かなくていい。
もしくは、

で実行。
.はホームディレクトリをさす。

test.rbではなく、./test.rbと打たないといけないのは
ホームディレクトリにパスが通っていないから。
本当はtest.rbと打ちたいですが
ホームディレクトリにパスを通すと危険だそうです。

参考
カレントディレクトリのプログラムを実行するには
http://www.atmarkit.co.jp/flinux/rensai/linuxtips/040execcaprog.html

変数pathにカレントディレクトリを含める方法(あまりよくない)
http://www.not-enough.org/abe/manual/comm/command-path.html

USBスピーカーの優先度を上げる

Raspberry PiにUSBスピーカーをつなげても鳴らない。
alsamixer でF6を押してUSBスピーカーを選択してもUSBスピーカーに切り替わらない。
sudo amixer cset numid=3 1 にはUSBスピーカーの項目はない。

USBスピーカーは サンワサプライ MM-SPS2UWH
http://www.sanwa.co.jp/product/syohin.asp?code=MM-SPS2UWH&cate=1
USBハブ経由でつなげました。

http://cubic9.com/Devel/%C5%C5%BB%D2%B9%A9%BA%EE/RaspberryPi/%C6%FC%CB%DC%B8%EC%B2%BB%C0%BC%C7%A7%BC%B1/
に習って

USBスピーカーの優先順位を上げる。

にする。
保存してリブート

優先度を確認

となっていれば成功。
USBスピーカーから音がでました!

追伸
せっかくUSBスピーカーにしたのに音質が悪いです。他に問題があるのかもしれません。