顯示具有 voice 標籤的文章。 顯示所有文章
顯示具有 voice 標籤的文章。 顯示所有文章

2017年5月8日 星期一

Google Assistant 服務 在 RPi or Mac 上的應用

GooglePi

在網路上看到這篇文章,覺得很有興趣,Google Cloud 提供了$300 鎂 的免費試用,因此可以來試試。原本我還在學習圖型辨識,但我想最近AI 越來越強,自己也不是這領域的專家,與其重新學習去當巨人,不如直接站在巨人的肩頭上,看能不能當個巨人肩頭上的寄生蟲。
這裡有官方網頁的教學說明,更清楚:Overview

照著實作

第一步:啟動你的 RPi3

第二步:在Google Cloud 上設定 Google Assistant API

申請完 Google Clound後,首先新增一個專案
然後在Google Could Platform 上 選取 「API 管理員」裡的 「資訊主頁」
點選 在資訊主頁裡有項 「啟用API」


點選後,它會跳到 「API管理員」的 「資料庫」頁面,在搜尋欄裡,輸入「google assistant」,就可以看到 Google 自動幫你在它提供的100多個API 裡 filte 出來。 直接點選下面 filte 出來的 「Google Assistant API」
會看到頁面上針對 「Google Assistant API」的介紹與說明,然後點選頁面上的「啟用」
上面說明 「Google Assistant API」它使用的是 OAuth 2.0 的方式來存取使用者資料,因為它需要存取我們輸入給它的語音資料,因此需要授權。
點選 「OAuth 同意畫面」,如果沒有這個畫面,那先點選到「資料庫」,再點選「憑證」,應該就會有了。

點選「建立憑證」裡的 「OAuth 用戶端ID」
選擇「其它」,名稱用 google-assistant-rpi3, 或你自己取一個。
然後按 「建立」。

你應該就會得到下列畫面:
按下「確定」後,就可以看到你新建立的憑證。

然後點選右方的下載,將憑證存到你的電腦上。

至此,在google 的部分就設定完成了。

第三步:在RPi 上設定 Google Assistant(不過我是在Mac上設定)

首先設定 Python 的 虛擬環境。真的很神奇,現在連程式語言都提供虛擬環境讓你測試,避免像我這種初學者把環境弄得亂七八糟,搞不回來。虛擬環境搞亂了,就刪掉重來就好。

在mac 下,用home-brew 下載 portaudio 模組
然後啟用python虛擬環境,我用的是 virtualenv , 你可以看到 它會新建立一個叫 myenv 的環境:



之後就可以啟動我們的虛擬環境了⋯⋯

你會看到前面的提示符號多了一個 (myenv),即表示我們已經進入虛擬環境內。
接下來就可以安裝 Google Assistant SDK

切換到 ./myenv/bin 下,可以看到已經有兩個googlesamples 的 程式:

googlesamples-assistant 和 googlesamples-assistant-auth

同時把剛才的憑證一併copy 到這裡來
接下來,我們要用 googlesamples-assistant-auth 程式來先做憑證認證。

你會發現程式少了 google.auth 模組,再安裝 google.auth 模組:

再驗證一次憑證:
又少了 requests 模組,再來裝 requests 模組:
再驗證一次憑證:
還少了 google_auth_oauthlib 模組⋯⋯
再來裝 它 :
再驗證一次憑證:
還是少了 click 模組⋯⋯
再來裝它:

再驗證一次憑證:

你的browser 會跳出驗證的確認畫面:

點選你要啟用的帳號,然後再「同意」即完成認證。

Browser 畫面會變成:

同時  terminal 會回到提示符號。
差不多,我們就可以試試看,記得將你的RPi或電腦接上麥克風和喇叭。
然後執行 googlesamples-assistant:

唉⋯⋯還是少了 tenacity 模組,再來裝一下:
再來執行 googlesamples-assistant:
又少了 sounddevice 模組,相信我,這是最後一個我們缺的模組了⋯⋯

用力給它執行下去吧 googlesamples-assistant:

哈哈哈哈⋯⋯
終於可以囉~
這時,你只要按下 「enter」,然後對著Mic 說你要問的東西,Google Assistant 就會從喇叭回應囉⋯⋯可惜的是,它並不懂台語或中文。
至此己完全成功,如果你聽到它回應:
“Actually there are some basic settings that need your permission first. Just go into the Google Home app for details.”
那表示你的 google 帳號並沒有授權google 取用你的「聲音和語音活動」的權限,連到 Google Account Activity Controls 去啟動,就可以正常了。


謝謝參與。