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

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

の前に

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

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

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

自動起動後に

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

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スピーカーにしたのに音質が悪いです。他に問題があるのかもしれません。

Raspberry Piのオートログイン

Raspberry Piのオートログイン(自動起動)ができました。

Debian(squeeze) startxによる自動起動
を参考にさせていただきました。

nanoで以下を開きます。

の行を#でコメントアウトします。

かわりに

を新たに書き込みます。 ユーザー名は私の場合はpiになります。

保存してnanoを終了させて再起動すると、Raspberry Piがオートログインします。

これ、記述を間違うと、Raspberry Piが起動しなくなります。
SDカードのコピーをとってから試されるといいと思います。

OpenJTalkで音声合成

橋本商会さんにならい、そのままやってみました。
本当にそのままです。

橋本商会 Raspberry Piに喋らせる

以下も参考にしました。
Raspberry Pi で遊ぶ (2) —Open JTalk で喋ってもらう—

OpenJTalk インストール

sudo apt-get install open-jtalk open-jtalk-mecab-naist-jdic htsengine libhtsengine-dev hts-voice-nitech-jp-atr503-m001

MMD agentに交換するためにインストール

wget http://downloads.sourceforge.net/project/mmdagent/MMDAgent_Example/MMDAgent_Example-1.3/MMDAgent_Example-1.3.zip
unzip MMDAgent_Example-1.3.zip
sudo cp -R MMDAgent_Example-1.3/Voice/* /usr/share/hts-voice/

自分のpiのディレクトリーにbinというディレクトリーを作ります。

piに移動して

その後、以下のソースコードをjsayというファイル名で ~/bin/jsayとして保存。
jsayはシェルスクリプトなので.shが必要かと思いましたがなくてもよいようです。

エディター nanoを起動して以上のコードを貼付けて保存するのですが
最初にユーザー名piでログインしているので

suno nano で起動しないと、 ~/bin/jsay に保存できませんでした。

実行権を付加します。

$ sudo chmod +x ~/bin/jsay

$ jsay はじめまして

しゃべりました。
イアフォン端子にスピーカーをつなぎましたが特にひどい雑音はしませんでした。

発話の声。女性の声です。ちゃんと聞き取れるし、いいと思います。

Raspberry PiのOS更新

Raspberry PiのOSを更新するのに

更新情報のアップデート

をしたあとに

をします。
前者はすぐでしたが、後者は30分程度かかりました。

Raspberry PiのSDカードの使用できる容量を増やしました

Raspberry PiのSDカードの使用できる容量を増やしました。以下を参考にしました。初期設定では、2GBしか使えません。

http://kkayataka.hatenablog.com/entry/2012/10/13/114500
を参考にしました。

最初しなかったで

がメモリーがないといって途中で終わってしまった。

容量を増やしたらうまく行きました。

で容量を確認できます。