RaspberryPi
Python3
raspberrypizero
GoogleAssistant

Raspberry Pi1(たぶんZeroも可)でGoogle Assistantを試す

More than 1 year has passed since last update.

Raspberry Pi3じゃなくてもGoogle Assistantができるみたいなので、Raspberry Pi1で試してみました。
たぶんZeroでもできると思います。
(Zero W買えませんでした)

Python全くわかりませんが、手順に沿ったらできました。
「OK Google」は対応してないのかな?

参考サイト

ハードウェア

  • Raspberry pi1
  • スピーカー … 100均で買った
  • マイク … LogicoolのWebcam C200が手元にあった

セットアップ

Install Python 3

$ sudo apt-get update
$ sudo apt-get install python3 python3-venv

作業用ディレクトリの作成

$ cd ~
$ mkdir MyGoogleHome
$ cd MyGoogleHome

Create a new virtual environment (recommended):

$ python3 -m venv env
$ env/bin/python -m pip install --upgrade pip setuptools
$ source env/bin/activate

OAuthクライアントIDの作成とJSONファイルの入手

https://developers.google.com/assistant/sdk/prototype/getting-started-other-platforms/config-dev-project-and-account
を参考に、client_secret_<client-id>.jsonを入手。

Authorization

$ pip install --upgrade google-auth-oauthlib[tool]
$ google-oauthlib-tool --client-secrets [jsonファイル] --scope https://www.googleapis.com/auth/assistant-sdk-prototype --save --headless

コマンド実行後、「このURLにアクセスしてね」的なメッセージが出力され、コードの入力待ち状態になります。
ブラウザでURLにアクセスし、指示に従ってコードを入手。入手したコードをターミナルに貼り付ける。

サンプルプログラムの入手

$ sudo apt-get install portaudio19-dev libffi-dev libssl-dev
$ pip install --upgrade google-assistant-sdk[samples]

おそらく、google-assistant-sdkそのものもダウンロードしてくると思われます。
結構時間かかります。。。

サンプル実行

$ googlesamples-assistant-pushtotalk
$ googlesamples-assistant-pushtotalk 
INFO:root:Connecting to embeddedassistant.googleapis.com
Press Enter to send a new request... ←エンターを入力して英語で質問開始。
INFO:root:Recording audio request.
INFO:root:End of audio request detected
INFO:root:Transcript of user request: "who is the first American President". ←自動で質問が終わったことを検知して、質問した内容が出力
INFO:root:Playing assistant response. ←音声出力
INFO:root:Finished playing assistant response.
Press Enter to send a new request... ←エンター待ちになって、繰り返す

すごーい

終わりに

英語が喋れなので、AndroidのGoogle翻訳アプリに喋ってもらいました。