の続き。
せっかくRaspberry Piを使っているので、サーバでは出来ないことをしたいと思い、ポケモンの鳴き声を出してみることにした。
これで、ポケモンが現れると鳴き声が現実世界に鳴り響くという、仮想と現実がよりいりまじった、良い感じの世界観を作ることが出来る。
用意するモノ
- Raspberry Pi
- スピーカー
- 鳴き声の音源ファイル
ちなみに我が家のスピーカはUSB電源、音声アナログ入力のこれ
準備
- Raspberry Piにスピーカーを繋ぐ。
- 鳴き声の音源ファイルをRaspberryPi上に保存する
- ファイル名は0埋めした3桁図鑑No.wavとし、フォルダ名はpokevoiceとする
- sudo -u root aplay -D plughw:0,0 適当なwav のコマンドで再生できることを確認しておく
- Botをrootじゃないユーザで実行するならsudoは不要
- plughwの値は、aplay -lで確認する
- 音量も調整しておく
PokemonGo-SlackBotの編集
pythonは触ったことがないが、雰囲気で・・・。
send_to_slack関数を呼ぶ直前で、aplayにて音を再生すれば良い。
具体的には、mainprocess_step関数 でsend_to_slack関数を呼んでいるif文があるので、そこを編集する。
diffはこんな感じ。
$ git diff diff --git a/pokemon_pb2.pyc b/pokemon_pb2.pyc index a20598a..1aa12c1 100644 Binary files a/pokemon_pb2.pyc and b/pokemon_pb2.pyc differ diff --git a/pokeslack.py b/pokeslack.py index 4c2f5e7..fdb361b 100755 --- a/pokeslack.py +++ b/pokeslack.py @@ -922,8 +922,10 @@ transform_from_wgs_to_gcj(Location(Fort.Latitude, Fort.Longitude)) else: user_icon = ':pokeball:' - - + print "pokemon = " + str(poke.pokemon.PokemonId) + from subprocess import check_call + cmd = "aplay -D plughw:2,0 ./pokevoice/" + str(poke.pokemon.PokemonId).zfill(3) + ".wav" + check_call( cmd.split(" ") ) send_to_slack(alert_text, pokename, user_icon, slack_webhook_urlpath) spotted_pokemon[poke.SpawnPointId] = {'disappear_datetime': disappear_datetime, 'pokename': pokename} diff --git a/transform.pyc b/transform.pyc index 2875abb..9a0e24f 100644
処理内容は見たまま単純で、図鑑Noを取ってきて0埋めしてファイルパスにし、aplayに渡しているだけである。
AR感が出てきてなかなか良い感じなので、かなりおすすめだ。さらに戦闘突入BGMを合わせるのもいいかもしれない。