手元に USBスピーカー(iBUFFALO BSSP25U)があったので、それを接続し Raspberry Pi から音を出してみたいと思います。
◆Raspberry Pi にUSBスピーカーを接続
まずUSBスピーカーを接続し、認識しているか確認します。
が、USB-Audio が二つ目になっているので、このままではUSBスピーカーからは音は出ません。
/etc/modprobe.d/alsa-base.conf の snd-usb-audio の行をコメントアウトします。
いったん、モジュールをアンロードし、再ロードします。
USB-Audio が一つ目になっているのを確認します。
◆Raspberry Pi にしゃべってもらう
まずは、AquesTalk Pi (http://www.a-quest.com/products/aquestalkpi.html) から aquestalkpi-20130827.tar.gz をダウンロードしてきます。
それを raspberry pi 上で展開します。
上記をコピペするなり、curl コマンドで取るなりします。
今度は、時間をお知らせしてくれるシェルスクリプトを書いてみます。
jihou.sh
上記をコピペするなり、curl コマンドで取るなりします。
これで、毎時間の5分前にお知らせ、というような事も cron に登録すれば出来るようになりました。
◆Raspberry Pi で音楽を鳴らす
Music Player Daemon (MPD) をインストールします。
以前に作成した /etc/init.d/init-ramdisk に追記しておきます。
music ディレクトリに適当な音楽ファイルを放り込む。
(デフォルトだと /var/lib/mpd/music/)
曲登録。
ここで一つ問題が。
mpd で音楽再生中に AquesTalk Pi でおしゃべりさせようとしても、しゃべってくれません。。。
/etc/mpd.conf の下記をコメントアウトすると音楽再生中でもおしゃべりしてくれました。声、少し小さい気がしますが。
次回は、ジョイスティックを繋いで操作出来るようにしてみたいと思います。
◆おまけ1
MPD にはスマホからでもアクセスできます。
世の中では MPD クライアントソフトがたくさん作られていて、スマホ用のアプリも例外なくあります。
自分もいくつか試してみて、Droid MPD Client が自分には合ってそうだったので、Xperia Z3 に入れています。
◆おまけ2
USBスピーカーを接続したまま電源入れると、起動時にプツプツ言って、立ち上がらない時がありました。
何でか結構悩みましたが、電力足りてないのか
/boot/config.txt の末尾に下記を追加したら安定しました。
◆Raspberry Pi にUSBスピーカーを接続
まずUSBスピーカーを接続し、認識しているか確認します。
$ cat /proc/asound/cardsちゃんと認識しています。
0 [ALSA ]: bcm2835 - bcm2835 ALSA
bcm2835 ALSA
1 [MicroII ]: USB-Audio - Audio Advantage MicroII
C-Media INC. Audio Advantage MicroII at usb-bcm2708_usb-1.3, full speed
が、USB-Audio が二つ目になっているので、このままではUSBスピーカーからは音は出ません。
/etc/modprobe.d/alsa-base.conf の snd-usb-audio の行をコメントアウトします。
#options snd-usb-audio index=-2
いったん、モジュールをアンロードし、再ロードします。
$ sudo alsa unload
$ sudo modprobe snd_usb_audio
$ sudo modprobe snd_bcm2835
USB-Audio が一つ目になっているのを確認します。
$ cat /proc/asound/cards
0 [MicroII ]: USB-Audio - Audio Advantage MicroII
C-Media INC. Audio Advantage MicroII at usb-bcm2708_usb-1.3, full speed
1 [ALSA ]: bcm2835 - bcm2835 ALSA
bcm2835 ALSA
◆Raspberry Pi にしゃべってもらう
まずは、AquesTalk Pi (http://www.a-quest.com/products/aquestalkpi.html) から aquestalkpi-20130827.tar.gz をダウンロードしてきます。
それを raspberry pi 上で展開します。
$ mkdir /home/pi/local/下記を実行。
$ cd /home/pi/local/
$ tar xvzf aquestalkpi-20130827.tar.gz
$ aquestalkpi/AquesTalkPi hello | aplayしゃべったー!!
$ mkdir /home/pi/local/bin/talk.sh という名前のシェルスクリプトを書いてみました。
$ cd /home/pi/local/bin/
#!/bin/sh
TALK=/home/pi/local/aquestalkpi/AquesTalkPi
${TALK} -s 120 "$*" | aplay 2> /dev/null
上記をコピペするなり、curl コマンドで取るなりします。
$ curl -O http://sstea.blog.jp/raspi/script/talk.sh実行権限を付与します。
$ chmod 755 talk.sh引数で渡した言葉をしゃべってくれるという簡単なシェルスクリプトです。ちゃんと動いてます。
$ ./talk.sh hello
今度は、時間をお知らせしてくれるシェルスクリプトを書いてみます。
jihou.sh
#!/bin/sh
time=`date "+%-H時、%-M分、%-S秒になりました"`
/home/pi/local/bin/talk.sh ${time}
上記をコピペするなり、curl コマンドで取るなりします。
$ curl -O http://sstea.blog.jp/raspi/script/jihou.sh実行権限を付与します。
$ chmod 755 jihou.sh今の時間を知らせてくれます。
$ ./jihou.sh
これで、毎時間の5分前にお知らせ、というような事も cron に登録すれば出来るようになりました。
$ crontab -eとし、末尾に下記を追加して終了します。
55 * * * * /home/pi/local/bin/jihou.sh
◆Raspberry Pi で音楽を鳴らす
Music Player Daemon (MPD) をインストールします。
$ sudo apt-get install mpd mpc
以前に作成した /etc/init.d/init-ramdisk に追記しておきます。
#!/bin/sh
### BEGIN INIT INFO
# Provides: init-ramdisk
# Required-Start: $local_fs
# Required-Stop: $local_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
### END INIT INFO
chmod 775 /var/log
mkdir -p /var/log/ConsoleKit/
mkdir -p /var/log/fsck/
mkdir -p /var/log/apt/
mkdir -p /var/log/ntpstats/
mkdir -p /var/log/samba/
mkdir -p /var/log/mpd/
chown root.ntp /var/log/ntpstats/
chown root.adm /var/log/samba/
touch /var/log/lastlog
touch /var/log/wtmp
touch /var/log/btmp
touch /var/log/mpd/mpd.log
chown root.utmp /var/log/lastlog
chown root.utmp /var/log/wtmp
chown root.utmp /var/log/btmp
music ディレクトリに適当な音楽ファイルを放り込む。
(デフォルトだと /var/lib/mpd/music/)
曲登録。
$ mpc update再生。おぉー、音楽、鳴りました。
$ mpc ls | mpc add
$ mpc play次の曲。
$ mpc next設定とかもいろいろあります。詳細は "mpc help" で。
$ mpc volume 80
$ mpc repeat on
ここで一つ問題が。
mpd で音楽再生中に AquesTalk Pi でおしゃべりさせようとしても、しゃべってくれません。。。
/etc/mpd.conf の下記をコメントアウトすると音楽再生中でもおしゃべりしてくれました。声、少し小さい気がしますが。
audio_output {ついでに下記をコメントアウトすることで、ベロベロ出てたエラーもなくなりました。
type "alsa"
name "My ALSA Device"
# device "hw:0,0" # optional
format "44100:16:2" # optional
mixer_device "default" # optional
mixer_control "PCM" # optional
mixer_index "0" # optional
}
#bind_to_address "localhost"
次回は、ジョイスティックを繋いで操作出来るようにしてみたいと思います。
◆おまけ1
MPD にはスマホからでもアクセスできます。
世の中では MPD クライアントソフトがたくさん作られていて、スマホ用のアプリも例外なくあります。
自分もいくつか試してみて、Droid MPD Client が自分には合ってそうだったので、Xperia Z3 に入れています。
◆おまけ2
USBスピーカーを接続したまま電源入れると、起動時にプツプツ言って、立ち上がらない時がありました。
何でか結構悩みましたが、電力足りてないのか
/boot/config.txt の末尾に下記を追加したら安定しました。
safe_mode_gpio=4
max_usb_current=1