Windows10でGoogle Assistantを利用する方法

#概要
WindowsでGoogle Assistantを利用したいと考えた時に情報が少なかったので、調べたことをまとめておきます。
ただし、2020年8月19日現在では、利用できる機能が限られているようです。詳しくは以下でまとめておきます。

#実行環境
・python == 3.6
・windows10

#利用できる機能
こちらから引用しました。
https://developers.google.com/assistant/sdk/overview

|  |  |
|:-:|:-:|
|Supported architectures   |All gRPC platforms   |
|Supported languages   |All gRPC languages   |
|Hands-free activation  |No   |
|Audio capture and playback   |Reference code is provided |
|Conversation state management   |Reference code is provided   |
|Timers and alarms   |No   |
|Playback of podcasts and news   |No   |
|Broadcast voice messages   |No   |
|Visual output (HTML5) of Assistant responses   |Yes   |

最新情報は、こちらのURLから確認できます。
https://developers.google.com/assistant/sdk/release-notes

#環境構築
1. Pythonの環境構築はここでは省きます。
2. Google Cloud Platformを開いて、左上の**"Create Project"**をクリック。https://console.cloud.google.com/cloud-resource-manager
![001.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/672284/d3ef0d17-4701-48e1-7fdb-0783e20537a0.png)

3. Project nameに好きな名前を入れます。（プロジェクトIDは変更も可能ですが、すべて小文字で半角数字で終わっていなければいけません。）
![002.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/672284/2521b954-1d15-03d2-c3bc-a51363565e4f.png)

4. Google Assistant APIsを別タブで開きます。https://console.developers.google.com/apis/api/embeddedassistant.googleapis.com/overview
![003.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/672284/b271058c-822f-e4bd-ba2b-6c9f5e001685.png)自分の作ったプロジェクトを選択し、Openをクリック。
![004.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/672284/2c3609d0-5881-611e-1c97-fafc448d64ae.png)


5. 右上側の**"CREATEC REDENTIALS"**をクリック。
![005.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/672284/090a0c4e-8ede-258a-f948-efe4ef2d2fb1.png)

6. 画像の通りに選択欄を埋めます。そして、**"What credentials do I need?"**をクリック。その後、**"SET UP CONCENT SCREAN"**をクリック。
![006.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/672284/81de5857-d072-8e55-2a4e-58b7bf9ee7a0.png)

7. そして**"External"**を選択し**"CREATE"**
![007.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/672284/ccf19ae9-2795-4eaa-bf95-92c40c1a06f0.png)


8. Projectnameを決めます。ただし、Googleなど有名な企業名が入っていると認められない場合があります。その後、一番下の**"SAVE"**をクリック。
![008.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/672284/1f83e8c9-48d5-9450-ad75-6b7cbca57a68.png)

9. 右側のカギマークの付いた**"Credentials"**に戻ります。上にある**"+CREATE CREDENTIALS"**から**"Help me choose"**を選択。
![004.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/672284/80028811-6f86-8260-2e62-cd620a647b90.png)

10. もう一度画像の通りに選択欄を埋めます。
![005.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/672284/4858a3ab-38d2-cda2-f67d-8aa48ce0353b.png)

11. そして**"client id"**の名前を決めます。そして**"Create OAuth client ID"**をクリック。
![006.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/672284/86fdb47e-b3e9-01f8-7f5a-6771bfe2a239.png)

10. **"Create ID"**を入力し、**"Download"**を押します。（ここでダウンロードしたファイルは使いません。）
![010.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/672284/44c628c2-58f6-4ae6-b16e-617622ac6d32.png)

10. **"Done"**を押した後、自分のプロジェクト欄の一番右側にある矢印を押してjsonファイルをダウンロードします。
![011.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/672284/b4cdf2f2-9d09-3835-4958-a0889e4fbdf9.png)

11. ここでダウンロードしたjsonファイルはCドライブ直下にフォルダーを作ってそこに入れます。
![007.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/672284/c319a7a8-2fcb-d0b4-f876-511f9152742e.png)



12. コマンドプロンプトから以下を入力し、Google Assistant SDKをインストール。
 
```
py -m pip install google-assistant-sdk[samples]
```

16 次に以下を入力し、インストール。

```
py -m pip install google-auth-oauthlib[tool]
```

17 以下のようにコマンドプロンプトに入力してください。

```
google-oauthlib-tool --client-secrets C:\先程のjsonファイルの場所\ --scope https://www.googleapis.com/auth/assistant-sdk-prototype --save --headless
```

18 表示されたURLをコピーして、ブラウザで検索。アカウントとの連携を認めるためにAllowを二回クリック。サインインに必よなコードが表示されるのでコピーします。
![008.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/672284/5135b076-27cc-1ad2-b77a-993f2c3ac1b8.png)
![009.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/672284/ac7bbb6b-2408-2a8e-9f47-209be7dac066.png)

19 コマンドプロンプトに戻りコピーしたコードを貼り付けてEnterを入力。jsonファイルの情報がアカウントに保存されます。

20 以上の操作が完了していると、以下のコードで録音と再生のテストができます。

```
py -m googlesamples.assistant.grpc.audio_helpers
```

![010.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/672284/3de615e6-5235-f165-6272-0ec33c01c7d1.png)

21 jsonファイルをがあるフォルダにコマンドプロンプト上で移動します。

22 そのフォルダ上で以下のコマンドを入力します。

```
googlesamples-assistant-devicetool --project-id 自分のプロジェクトID register-model --manufacturer “製造者名を自分で決めてください” --product-name “製品名を自分で決めてください” --type LIGHT --model “なんでもいいです。”
```

23 最後に以下のコマンドを入力します。

```
py -m googlesamples.assistant.grpc.pushtotalk --device-model-id “自分のモデルID” --project-id 自分のプロジェクトID
```

24 成功すれば、**"Please Enter to send a new request..."**と表示されます。Enter入力後、話しかけれると答えてくれます。（ただし、現時点では英語です。）

#参考
https://www.lifewire.com/google-assistant-on-windows-4628292