Raspberry Pi」カテゴリーアーカイブ

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

投稿日時: 投稿者:

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

1
sudo nano/etc/rc.local

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
# Print the IP address
_IP=$(hostname-I)||true
if["$_IP"];then
printf"My IP address is %s\n""$_IP"
fi
exit0

1
exit0

の前に

1
ruby/home/pi/mubogt_server_v1_0_0.rb&

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

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

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

1
chmod+x/home/pi/mubogt_server_v1_0_0.rb

自動起動後に

1
ps ax

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

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

投稿日時: 投稿者:

RUbyのファイルの1行名に

1
#!/usr/bin/ruby

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

1
ruby test.rb

でも起動するが、

1
/home/pi/test.rb

だけで起動する。

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

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

1
2
#!/usr/bin/ruby
puts"Ruby start"

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

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

1
/home/pi/test.rb

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

1
./test.rb

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

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スピーカーの優先順位を上げる。

1
sudo nano/etc/modprobe.d/alsa-base.conf
1
options snd-usb-audio index=-2

1
options snd-usb-audio index=0

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

1
sudo reboot

優先度を確認

1
cat/proc/asound/modules
1
2
0snd_usb_audio
1snd_bcm2835

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

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

Raspberry Piのオートログイン

投稿日時: 投稿者:

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

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

nanoで以下を開きます。

1
$sudo nano/etc/inittab
1
1:2345:respawn:/sbin/getty38400tty1

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

かわりに

1
1:2345:respawn:/bin/login-fユーザ名tty1</dev/tty1>/dev/tty12>&1

を新たに書き込みます。 ユーザー名は私の場合は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に移動して

1
mkdir bin

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#!/bin/sh
TMP=/tmp/jsay.wav
#cd /usr/share/hts-voice/nitech-jp-atr503-m001
cd/usr/share/hts-voice/mei_happy
echo"1ドル"|open_jtalk\
-td tree-dur.inf\
-tf tree-lf0.inf\
-tm tree-mgc.inf\
-md dur.pdf\
-mf lf0.pdf\
-mm mgc.pdf\
-dm mgc.win1\
-dm mgc.win2\
-dm mgc.win3\
-df lf0.win1\
-df lf0.win2\
-df lf0.win3\
-dl lpf.win1\
-ef tree-gv-lf0.inf\
-em tree-gv-mgc.inf\
-cf gv-lf0.pdf\
-cm gv-mgc.pdf\
-kgv-switch.inf\
-s16000\
-a0.05\
-u0.0\
-jm1.0\
-jf1.0\
-jl1.0\
-x/var/lib/mecab/dic/open-jtalk/naist-jdic\
-ow$TMP&&\
aplay--quiet$TMP
rm-f$TMP

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

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

実行権を付加します。

$ sudo chmod +x ~/bin/jsay

$ jsay はじめまして

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

発話の声。女性の声です。ちゃんと聞き取れるし、いいと思います。
[フレーム]

Raspberry PiのOS更新

投稿日時: 投稿者:

Raspberry PiのOSを更新するのに

更新情報のアップデート

1
sudo apt-get update

をしたあとに

1
sudo apt-get upgrade

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

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

投稿日時: 投稿者:

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

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

最初しなかったで

1
sudo apt-get upgrade

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

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

1
df-h

で容量を確認できます。