初めの一歩、ラズパイに目、耳、口を追加する
今回は、先日日本でも発売され話題となった「Amazon Echo」や「Google Home」の機能をラズパイで自作してしまいます! いつもとちょっと趣向を変えて、MESHの記事で人気のヨシケンさんのおでましです! 自分独自のクールなガジェットを作ってみませんか?
◆ ◆ ◆
こんにちは、ヨシケンです!
私はRaspberry Piで、GoogleやAmazon、docomoなどのAPI、AI機能を使って、様々なスマート・デバイスを作っています。
スマート・デバイスって何?という方は、今、巷で話題になっている、Amazon Echoなどのスマート・スピーカーや、文字を読取り自動翻訳してくれるGoogleカメラ翻訳などの機能と思ってもらえばいいと思います。
そんなスマートな機器を、安価な小型LinuxコンピュータRaspberry Pi(以下ラズパイと呼んでいきます)を使って、形も機能も自分独自のデバイスを作れたら楽しくないでしょうか?
実際にラズパイを使ってスマート・スピーカーやAIカメラなどを作りながら、その先端的なAPIやAI機能を見ていきます。
この記事の作例として、写真のようなAIカメラを作っていきたいと思います。カメラで写真を撮ると、写っている物を声で教えてくれたり、外国語を読み取って翻訳してくれるような面白いカメラです。
ラズパイをスマート・デバイスにするために必要なもの
スマート(賢さ)はもちろん最新のAPIやAI機能をラズパイにインストールする事になるのですが、今回はその前段として、それらに必要な情報を収集する検知機能をラズパイに追加していきます。
人間で言えば、目に当たるカメラ、耳となるマイク、そして口になるスピーカーがそれに当たります。
それらをセットアップする事により、ラズパイで音声を録音したり、再生したりする事ができるようになります。またカメラで写真や動画を撮るようにします。
では、スマート・デバイス化の第一歩、ハードウェアのセットアップをしていきましょう。
今回の記事で必要なもの一覧
小型USBマイク
(USBで使えるマイクなら何でも構いませんが、今回は小型で1,000円以下のこちらを使いました。)
小型スピーカー
(こちらもイヤフォン・ジャックに差さるものなら構いませんが、充電式アンプ付きのこちらを使っています。)
パイ・カメラ
(ラズパイ公式カメラです。これと同形状で夜間撮影が可能なPiNoIRというものもあります。)
小型バッテリー
(小型ならどんなものでも構いません。)
今回の記事の流れ
1.Raspberry Piの基本設定を行う
2.スピーカーの設定をして、音を再生してみる
3.マイクの設定をして、録音する
4.カメラを設定して、静止画、動画を撮ってみる
5.まとめ
Raspberry Piの設定
ラズパイとSDカードを買ってきただけですと、まだOSなどのインストールが済んでいません。
ただラズパイのOS Raspbianのインストール方法は、たくさんの情報がインターネットにありますし、デバプラでもこの記事などを見て、まずOSのインストールをして下さい。
その後のラズパイへのログイン方法、X-Windowの立ち上げやraspi-configによる最低限のセットアップなどは、こちらのラズパイで何かしたい!と思った人のまとめに詳しく載っていますので、見てみて下さいね。
また、ラズパイに画面やキーボードを繋がなくても、SSH(セキュア通信プロトコル)接続で自分のパソコンからログインして、パソコンのコマンドツールを使う方法もあります。こちらの記事などに詳しくまとまっていますので、参照しながら、パソコンからラズパイのコマンドを操れるようにして下さい。
ここでは、直近のRaspbian(Stretch with Desktop)がインストール済で、ラズパイにSSH接続して、パソコンからコマンド操作が出来るようになっている前提で進めていきます。
ハードウェアの設定
ではラズパイに付けるスピーカー、マイク、カメラなどの設定、接続確認をしていきます。
モバイルバッテリーは、あっても無くても構いませんが、作例のような箱に入れる時にかさばらない小さめのバッテリーがあるといいと思います。
スピーカーの設定
スピーカーは、大きな音が出るように充電式アンプ付きのものを使っていますが、音声ジャックがあるものであれば何でも構いません。スピーカーをラズパイのジャックに差してみて下さい。
ここから先ほどのラズパイにSSH接続する記事などを参照して、ラズパイにSSH接続してコマンド操作をしていきます。
スピーカーが認識されているか、aplay -lでスピーカーのカード番号を確かめます。
ここでは[bcm2835 ALSA]となっている、card 0. Device 0にスピーカーが認識されている状態です。
サンプル・サウンドを流してみて、音が出るか確認します。
[aplay]
aplay -l
aplay /usr/share/sounds/alsa/Front_Center.wav
フロント、センター、という英語の女性の声が聞こえたでしょうか?
マイクの設定
次に、マイクをラズパイのUSB端子に差し、使っていきます。
音声入力の方は、arecord -lでマイクのカード番号を確認する事ができます。この場合は [USB Audio]の部分で、card 1, device 0になっています。
ではarecordで音を録音し、それを先ほどのaplayで聞いてみましょう。
音量の調整は、alsamixerで行います。キーを上にすると音量が上がり、Escで保存後、元の画面に戻ります。
[arecord]arecord -l
arecord test.wav
# 又は
arecord -f S16_LE -r 16000 -D 1 test.wav
# 録音を止める時は、CTRL+C
alsamixer #音量の調整など。止めるときは、Esc
aplay test.wav
# 又は
aplay -f S16_LE -r 16000 test.wav
最後に、arecordとaplayを繋げて、ファイルにせずに、喋った事をそのままオウム返しに出力してみます。
# 又は
arecord -f cd -Dhw:1 | aplay -Dhw:0
多少ハウリングするかもしれませんが、しゃべったままの声が、スピーカーから再生されればOKです。
カメラの設定
次にカメラの設定に移ります。
カメラは、USB経由でつながる通常のウェブカムでも使えますが、ここではラズパイのカメラ端子にそのまま差せる、パイ・カメラを使っていきます。
白いカメラケーブルをカメラの裏側に差し、ラズパイの中ほどにあるカメラ端子にも差し込みます。端子の白いフックを引き上げ、ロックを外した後に、ケーブルを差しフックを深く入れる事で固定できます。
では、パイ・カメラで写真を撮ってみます。
ちなみによく間違えるのですが、カメラをつなぐケーブルが下、レンズ上の黒い端子が上側になっていると、上下正しく写真を撮ることができます。(この写真の向きであればOKです。)
ラズパイには標準で、静止画を撮るraspistillと、動画を撮るraspividのコマンドがあるので、簡単に画像を扱えます。念の為apt-get updateをして、全体をアップデートしておいて下さい。
[raspistill]sudo apt-get update #ラズパイをアップデートしておきます
sudo raspistill -o image.jpg
raspistillのコマンドだけで、image.jpgという画像が撮れたと思います。ラズパイのデスクトップ画面経由でその写真を開くか、自分のPCにscpなどでファイルを転送して確認してみて下さい。
(パイ・カメラで撮った写真)
それでは、動画も撮ってみます。
ここではh264というフォーマットで、動画を5秒間撮影しています。
sudo raspivid -o video.h264 -t 5000
こちらもデスクトップで開くか、ダウンロードして、動画が撮られているかチェックしてみて下さいね。
(パイ・カメラで撮った動画)
(カメラ、スピーカー、マイク、バッテリーが全て付いた状態)
まとめ
今回はラズパイをスマート・デバイスにする最初の一歩、ハードウェアのセットアップを行いました。
人間の目、耳、口に当たる、カメラ、マイク、スピーカーを設定し、最低限の検知機能が備わった訳です。
コマンド操作により、映像を撮影したり、音を聞いて、それを再生したりする事ができるようになったと思います。
次回以降は、小さなお弁当箱のようなケースに入れて、ガジェットっぽくしていきたいと思います。
そしてラズパイに頭脳となるAPIやAI機能を付け加え、スマート・デバイスにしていきます。
今後も「ラズパイを使ってAIカメラを自作しよう」を、お楽しみに!
今回の連載の流れ
第1回:初めの一歩、ラズパイに目、耳、口を追加する(今回)
第2回:ボタンとウェブサーバー機能を付けて、カメラ、マイクを操作
第3回:NTT docomoのAPIを使って、画像認識カメラを作る
第4回:撮った画像を読み上げる、おしゃべりカメラにしよう
第5回:顔や文字などを読み取って、自動でメールする
第6回:人の話を聞いて、写真撮影、画像解析するAIカメラを完成させる!