Raspberry Pi 3を液晶タッチパネル付きのGoogle Homeスピーカー化するまで

今流行りのスマートスピーカーも、ラズベリーパイをカスタマイズして実現できてしまいます。
今回は、さまざまなウェブサイトを参考にGoogle Assistantを利用したラズパイのGoogle Homeもどきを作ってみました。

まず最初は8GB以上のフォーマット済のMicroSDをカードスロットに入れ、HDMIモニターに接続し、USBキーボード・マウスを接続します。

画面指示に従いRaspbianをインストールを完了しておきます。

コントロールに用いるPC側には、リモートデスクトップのRealVNC Viewer、ファイル流し込みに必要なFileZillaと、コマンド実行に必要なTTSSH2の3点セットをインストールしておきます。

RealVNC Viewer
https://www.realvnc.com/download/viewer/
FileZilla
https://filezilla-project.org/download.php
TTSSH2
https://ja.osdn.net/projects/ttssh2/

これらからラズパイにアクセスするための初期ユーザー名はpi、パスワードはraspberryです。
(後ほどrootパスワードと併せて変更をお勧めします)

起動したら、ラズパイ側では、メニュー→「ラズベリーパイの設定」から、SSHとVNCを有効にしておきます。

その後、ラズパイのコマンドラインを開き、各種コンポーネントやFirmwareを最新にアップデートし、再起動

sudo apt-get update
sudo apt-get upgrade
sudo rpi-update
reboot

FileZillaでファイル転送できるようにするためにFTPサーバをラズベリーパイにインストールします。
http://yamaryu0508.hatenablog.com/entry/2014/12/02/102648

きれいな日本語フォントと日本語入力をインストールします。
https://qiita.com/izuki_y/items/4587eb2f1634644fec05

USBマイクとスピーカーを接続し、Google Assistanceを導入。
方法については下記リンクを参照。
https://www.raspberrypi.org/forums/viewtopic.php?t=188958

オーディオ設定(マイク・スピーカー設定とテスト)はこちらを参照。
https://developers.google.com/assistant/sdk/guides/library/python/embed/audio

私の場合は、USB接続したマイク内蔵ウェブカメラがデバイス1,0、スピーカーは内蔵3.5㎜ジャックを利用なのでデバイス0,0の為、/home/piに作成する .asoundrcファイルの内容は以下の通りになりました。
(sudo nano .asoundrc でファイル作成および編集、もしくはFileZillaで流し込み)


pcm.!default {type asym
capture.pcm "mic"
playback.pcm "speaker"
}
pcm.mic {
type plug
slave {
pcm "hw:1,0"
}
}
pcm.speaker {
type plug
slave {
pcm "hw:0,0"
}
}

この後、ラズベリーパイのPCMデバイスの有効化が必要です。
右上のスピーカーマークを右クリックして、接続したマイク(PCMデバイス)を有効にします。

Google Assistantの設定の途中、jsonファイルを入手し、assistant.jsonとリネームして/home/piに置く必要があります。
https://developers.google.com/api-client-library/python/auth/installed-app#creatingcred

最後の以下の仕上げのコマンドに関しては、SSHではなくてVNCもしくは実際のラズパイの画面のコマンドプロンプト上で実行する必要があります。

cd ~/voice-recognizer-raspi
source env/bin/activate
python3 src/main.py

その後ラズベリーパイ側でポップアップされる画面からGoogleアカウントにログインする必要があります。SSHではブラウザーの立ち上がりが遮断されてしまうためダメでした。

この作業の終了後、OK Googleに答えてくれるようになりました。

[embedyt] https://www.youtube.com/watch?v=N5ixxE-xrzY[/embedyt]

Google Assistantの音声のみが小さかったり大きかったりする場合は、ボイスコマンドで調整します。
使うボイスコマンドは以下を参照。
https://support.google.com/googlehome/answer/7072489?hl=en

ラズベリーパイがしゃべってくれるようになったので、ここからは機能追加に移ります。

これだけでは、まだGoogle Assistanceは声のやり取りしかできないので、機能を拡張するためにIFTTTを導入します。
https://qiita.com/spicemanjp/items/131531d09a4fb2874f20

ここで一旦シャットダウンし、アリババで購入した480×320ドット3.5Inchタッチパネルモニター(3.5inch RPi monitor)を接続し、起動します。(刺すだけでは白い画面のままでまだモニターは機能しません)

まずは以下の記事を参照して設定ファイルを作成しておきます。
https://www.raspberrypi.org/forums/viewtopic.php?t=143581

それだけでは動かないので、タッチパネルモニターを動かすためにドライバを入れて、有効化しておきます。
https://www.pa0esh.com/?page_id=46080

この時、ダウンロードしたドライバをFileZillaで/home/piに転送しておきます。
方法については下記リンクを参照。

自宅のNASと接続する方法は以下が参考になります。
https://qiita.com/ui/items/8521d237bcacf75a37ba

そして次は自宅外からのリモートアクセスをできるようにするためngrokを使います。
https://qiita.com/kitaro729/items/44214f9f81d3ebda58bd

さらに、せっかくマイクにカメラ付きWebcamを使っているので、監視カメラとして活用する道を探ります。
http://projects.privateeyepi.com/home/webcam-surveillance-project/webcam-surveillance-monitor

いかがでしょうか?
まだまだGoogle Assistanは進化の段階ですが、どんどんできることが増えていくRaspberry Piとの連携は今後にも期待が持てそうですね。

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください