哈拉閒聊
瀏覽 : 20946
分享

[教程] 讓 Google Assistant 登陸 PC!

一般用戶

等級3

專業鄉民

jce123562017-5-16 22:48

Google 在這幾天釋出了 Google Assistant 的 SDK 供大家使用。
語言是 Python,可以在 Windows、macOS、Linux 上執行,當然,很多 geek 最喜歡的 Raspberry Pi 也行。
其實有心的話...任何語音助理都可以登陸PC XDD
左 Cortana,右上 Google Assistant,右中 Siri,中 Alexa。




今天來教大家怎麼在 Windows 上實做自己的...Google Home (偽)
先上個影片,實作起來大概就是這樣

別嫌它沒有好看的 GUI,畢竟這是給開發者玩的,後面我會教怎麼美化它,讓你看得順眼,又或者是讓你看不到它,而是在背景運行~
把它放在背景執行,加上語音喚醒,就是個 Google Home 了XD
電腦麥克風開到最大,拉開一段距離說 "Google" 也可以操作它

01.
首先,請先灌好 Python。
電腦是什麼位元就裝什麼位元
https://www.python.org/downloads/
當然是懶人安裝法,下一步下一步就安裝好了。

02.
打開CMD貼上下面指令後按下 enter,他就會開始跑 sdk 的安裝。


py -m pip install --upgrade google-assistant-sdk[samples]
耐心等他跑完~

03.
打開 Google Cloud Platform
https://console.cloud.google.com/cloud-resource-manager

點選上方的 CREATE PROJECT


專案名就隨你設,如 "My Google Assistant"。


等待右上方的圈圈轉完就是建立成功了。


04.
下面開始有些會借用xda上的圖
打開 Google Assistant API 頁面。
https://console.developers.google.com/apis/api/embeddedassistant.googleapis.com/overview

點選上方 Enable。


點選右方 Create credentials。


照著我圖中選。


Product name 也是隨你設,如 "My Google Assistant"。


按下 Continue 後,憑證就建立完成了。

點選 Done。


點選右方的下載圖示來下載等等會用到的憑證檔,記得下載到你找的到的位置。


05.
在電腦本機中找到你剛剛下載的憑證檔

在資料夾空白處按住 [shift] 加 [滑鼠右鍵]

在此處開啟開啟命令視窗


06.
下面開始借用xda上的圖

建議先把快速編輯模式給開起來



先貼上下面指令

py -m googlesamples.assistant.auth_helpers --client-secrets

--client-secrets 的後面加一個空格後貼上你憑證檔的檔名(包括副檔名 *.json) 後按下 enter。


把出現的網址複製起來貼上瀏覽器。


登入 Google 帳號 or 選擇帳號登入。

複製授權碼。


回到命令提示字元貼上,並按 enter。


看到 credentials saved 就是授權成功了。

此命令提示字元先不要關。

大功告成
可以開始玩 Google Assistant 囉 !

複製以下並貼在命令提示字元中

py -m googlesamples.assistant
你會看到
Press Enter to send a new request...
按下 Enter 或任何鍵後會變成
INFO:root:Recording audio request.
此時你就可以開始跟 Google Assistant 對談了。

BTW,這個是 偽 Google Home,所以 Home 能用的功能,手機卻不能用的功能,他都可以使用,比如說....叫 Uber....

附上目前 Google Home 可以玩的服務
http://www.androidpolice.com/2017/04/19/apps-services-will-work-google-home-continuously-updated/

有幾個額外的指令大家也可以玩玩看
1. 把先錄好的聲音匯入,讓 Google Assistant 去回答

py -m googlesamples.assistant -i in.wav


2. 把 Google Assistant 的回答輸出成音檔
py -m googlesamples.assistant -o out.wav

每一次都要按按鍵觸發,不像手機或 Google Home 都有 'OK Google'
這真的很麻煩,所以...xda神老外又出手了
想要可以語音觸發的話
01.
安裝 AutoVoice 的 Chrome 擴充功能。
https://chrome.google.com/webstore/detail/autovoice/mefllcpfdfhohmeadieejdjcdcbibeml?utm_source=chrome-app-launcher-info-dialog


02.

進到 AutoVoice 的設定裡。
把上方 Always Listening 勾起來。
Google Assistant Integration 的地方
空格中輸入你要喚醒 Google Assistant 的關鍵字

當然你要用 'Hey Siri'...我也是沒意見啦 XD
下方 Play a sound to confirm that you woke up Google Assistant 也勾起來,這是提示你可以開始說話的提示音。


03.
隨便開啟一個命令提示字元,用剛剛沒關的也行。

複製以下命令並貼上後按 enter。

<span style="box-sizing: inherit;">py -c "from distutils.sysconfig import get_python_lib; from urllib.request import urlretrieve; urlretrieve('</span><a href="https://joaoapps.com/AutoApps/Help/Info/com.joaomgcd.autovoice/googleassistant/__main__.py" target="_blank" rel="nofollow" style="box-sizing: inherit; cursor: pointer; word-break: break-all;">https://joaoapps.com/AutoApps/He ... y</a><span style="box-sizing: inherit;">', get_python_lib() + '/googlesamples/assistant/__main__.py')"</span>

好了,你可以用你自訂的喚醒關鍵字來傳喚 Google Assistant 了。

然後,關於 AutoVoice 的 Hotword 喚醒提示音,我個人覺得太大聲造成很刺耳,所以我自己修改了提示音的音量,這個要到 Chrome 插件的資料中改
路徑為
C:\Users\你的使用者名\AppData\Local\Google\Chrome\User Data\Default\Extensions\mefllcpfdfhohmeadieejdjcdcbibeml\1.0.14_0

這個資料夾底下你會看到 listening.mp3,這個就是提示音檔,把它複製出來一份,透過軟體把它降音量再拉進去資料夾中,在原本的正常音量提示音檔副檔名 *.mp3後面加上 .BAK作為備份。

你可以下載我降兩次音量的檔,我個人覺得這個音量已經不錯了
https://goo.gl/I7gtCQ
你要用你自己的音檔作為提示音也是可以,檔名要是listening就對了

小小附註一下,如果有使用語音喚醒的人,是不能透過手動輸入 Enter 或任何鍵來觸發 Google Assistant,只能用你設定的關鍵字,如果要手動觸發
可以在瀏覽器輸入
http://localhost:6006/wakeup

http://127.0.0.1:6006/wakeup
來觸發 Google Assistant
把這個網頁加進書籤,用Bookmark Favicon Changer這個Chrome擴充來改 icon,就會像我下面這樣



若不想每次要使用 Google Assistant 都要輸入一大串指令的話
開一個記事本
py -m googlesamples.assistant 貼上後儲存
把副檔名從 *.txt 改成 *.bat 或 *.cmd,就能像我上面那個影片一樣雙點開啟 Google Assistant !


如果你是照我的方式把指令變成可執行的檔案,那你的檔案圖示會是下面這個醜醜的批次圖示


先把這個檔案給收到你平常不會用到的資料夾中,然後右鍵按著,拖拉該批次擋到桌面上,會出現視窗,請選擇 [在此建立捷徑]
它就會建立好一個 Google Assistant 的捷徑,但圖示還是醜的
請下載這個我弄好的 *.ico 檔,下載後放到圖片資料夾中
https://goo.gl/2757tC


在該批次檔捷徑上按右鍵→內容



變更圖示


瀏覽


找到剛剛下載的 *.ico 檔後開啟


按確定就改完了



我建議執行視窗可以讓它最小化
這對有人設置開機自啟動以及用語音喚醒非常有幫助


它開啟時就會自動縮小到工作列



也可以設定快速鍵,我自己設定 ctrl+shift+A (Assistant)



再來,你可以把該捷徑放到以下路徑底下
C:\ProgramData\Microsoft\Windows\Start Menu\Programs
你就可以從開始目錄去存取它



在上面我們做了幾項"加工"...
1. 將指令轉成 *.bat 或 *.cmd
2. Hotword 喚醒
3. 更改 icon
4. 自動縮到工作列

這些都是為了讓我們在使用上更直覺方便也更美觀
但還不夠,如果能讓 Google Assistant 跟著 Windows 一起啟動,而且不會出現在工作列佔位置,會乖乖的跟許多程式一起待在 System Tray 當中,那才是最棒的,就像下圖


01.
來讓 Google Assistant 跟著 Windows 一起啟動吧
按住鍵盤 Win key + R,會跳出執行窗格,請輸入
  1. shell:startup
複製代碼
後按下確定



把更改過 icon 的 Google Assistant 捷徑放進啟動資料夾內,它就會跟著 Windows 一起啟動了


02.
要 Google Assistant 啟動時自動縮進 System Tray 當中,必須安裝 EventGhost

點選上方 Add Plugins...。


拉到最下方找到 Task Create/Switch Events,並按 OK。


點選上方 Add Macro...


在 Window 底下找到 Minimize to Tray,並按 OK。


右方窗格將會看到 Minimize to Tray 的 Macro。


在 Minimize to Tray 上按右鍵,點選 Add Action...。


在 Window 底下找到 Find a window,並按 OK。


若你背景有執行 Google Assistant 的話先將它關閉,再打開。
你會在我圖中框起來的地方找到 Google Assistant 的 CMD 程序,如果你有更改 icon,那更好找。該程序會有兩層,父層是cmd.exe,把父層點開會是我們需要的。


點開父層,再點子層,顯示的畫面會像我框起來那樣,Window Name 可能會不一樣,看你捷徑名取什麼,我是取 Google Home,所以顯示 Google Home。
沒問題後按 OK。


因為剛剛有執行過 Google Assistant 那個捷徑,所以在左方窗格應該找的到圖示為閃電的 Task.NewWindow.cmd。
把他從左方窗格直接拖到右方窗格的 Minimize to Tray 底下。
排列順序一定要是:
Task.NewWindow.cmd > Find window.cmd > Minimize to Tray。


大功告成~ 你可以重開機試試看有沒有成功。
(EventGhost 本身也要開機自啟動,在EventGhost 的設定中可勾選)

現在你已經擁有如假包換的 Google Home 了XD

有人要分享塞進 Raspberry Pi 嗎?
MagPi 要開始賣簡易型 Google Home 了哦XD


分享到這邊~感謝大家



本文章最後由( jce12356 )於 2017-5-16 23:05 編輯

Meet your Google Assistant.
檢舉 回應

一般用戶

等級2

新手鄉民

ruby321572017-5-16 22:56

後面空格好多               
感謝分享~~                                          

~HTC論壇進擊三週年~我要用HTC10狂嗨我的每一天
檢舉 回應

一般用戶

等級3

專業鄉民

jce123562017-5-16 23:02

ruby32157 發表於 2017-5-16 22:56
後面空格好多               
感謝分享~~

哈哈哈因為我這篇本來是發在 Dcard上,我轉到這裡來,所以版面都要重調。

Meet your Google Assistant.
檢舉 回應

一般用戶

等級4

模範鄉民

garysu2017-5-17 08:33

大大這樣詳細的介紹不玩玩怎麼對得起良心呢

強4登場 HTC論壇四週年‧★,:*:‧\( ̄▽ ̄)/‧:*‧°★*
檢舉 回應

一般用戶

等級1

路過旅人

honkaii2018-7-15 15:41

在第6步輸入py -m googlesamples.assistant.auth_helpers --client-secrets時,會出現No module named googlesamples.assistant.auth_helpers,求解?

檢舉 回應

一般用戶

等級6

資深大大

貓男2018-7-16 04:03

感謝分享!
要花ˋ時間來玩玩!
話說好久沒玩這種的了~

強4登場 HTC論壇四週年‧★,:*:‧\( ̄▽ ̄)/‧:*‧°★*
檢舉 回應

一般用戶

等級4

模範鄉民

小胖熊2018-7-16 13:35

看來樓主是位專業的開發者,介紹的很詳細,謝謝分享.

強4登場 HTC論壇四週年‧★,:*:‧\( ̄▽ ̄)/‧:*‧°★*
檢舉 回應

一般用戶

等級1

路過旅人

keroro6862018-11-6 21:14

回覆第五樓

網上找了一些資料後確定 新版語法有改
這段要改成:
google-oauthlib-tool --client-secrets 憑證路徑 --scope https://www.googleapis.com/auth/assistant-sdk-prototype --save --headless
本文章最後由( keroro686 )於 2018-11-6 21:16 編輯

檢舉 回應

一般用戶

等級1

路過旅人

skps002018-11-10 20:25

keroro686 發表於 2018-11-6 21:14
回覆第五樓

網上找了一些資料後確定 新版語法有改

輸入google-oauthlib-tool --client-secrets 憑證路徑 --scope https://www.googleapis.com/auth/assistant-sdk-prototype --save --headless時,會出Error: Got unexpected extra arguments (Google Assistant\憑證),求解?

檢舉 回應

一般用戶

等級1

路過旅人

FFG2012019-3-18 01:27

honkaii 發表於 2018-7-15 15:41
在第6步輸入py -m googlesamples.assistant.auth_helpers --client-secrets時,會出現No module ...

先輸入
py -m pip install --upgrade google-auth-oauthlib[tool]
把他enter
輸入
py -m google_auth_oauthlib.tool --client-secrets C:\下載憑證的位置 --scope https://www.googleapis.com/auth/assistant-sdk-prototype --save --headless
在enter就解決啦~~~


檢舉 回應

分享