樹莓派折騰指南之將你的樹莓派變身 Google Home

將你的樹莓派變身 Google Home

目前的智能化已經對人們的生活影響越來越深刻,從智能音箱鼻祖 Amazon Echo 發佈之後,智能數字助理就進入了人們的生活當中,也成爲人們生活的一部分,特別是其與智能家居配合之後,以前科幻電影中的場景,目前已經漸漸成爲現實。

當前國內的廠家也有發佈類似的產品,比如小米的小愛同學,阿里的天貓精靈等智能助理產品,智能家居加上智能助理中樞,將是物聯網真正進入人們平常生活的最深刻的體現。

而且 Google 和 Amazon 都發布了自己語音助手的 SDK ,今天就來看一下如何接入
Google Assistant SDK ,來體驗一下樹莓派版本的 Google Home

準備工作

材料準備

硬件:

  • Raspberry Pi
  • USB 麥克風或者免驅聲卡搭配 3.5mm 接口麥克風
  • 3.5mm 接口的揚聲器

軟件:

  • Google 賬戶
  • 科學上網環境

基本步驟

  1. 硬件準備和網絡連接
  2. 配置測試聲音設備
  3. 配置開發者項目及相關設置
  4. 安裝 SDK 和示例項目
  5. 註冊你的硬件設備
  6. 運行示例代碼
  7. 其他

步驟一:硬件準備和網絡連接

  1. 已經安裝好系統並且搭建好科學上網環境的樹莓派

  2. 連接你的麥克風和揚聲器到樹莓派,麥克風你可以購買一個免驅聲卡,連接你的 3.5 mm 麥克風,比如下面這樣的,幾塊錢就能買到。樹莓派有一個 3.5mm 的耳機插口,你的揚聲器可以接入此接口。
    15155927429534

  3. 將你的樹莓派連接網絡

  4. ssh 遠程連接你的樹莓派

步驟二:配置測試聲音設備

第一步:確認你的錄音和播放設備正常工作

  1. 在命令行輸入以下命令,按下 Ctrl+C 來結束。
speaker-test -t wav

如果你沒有聽到任何聲音,請檢查你的揚聲器和樹莓派連接是否正常,或者揚聲器是不是聲音調的太小了。同時你可以通過輸入以下命令

sudo raspi-config

選擇
15155932467591

然後選擇
15155932800447

將你的聲音輸出從耳機插口輸出
15155933119751

  1. 錄製一個簡短的聲音片段,如果你這時出現了問題,請轉到下面的第二步。
arecord --format=S16_LE --duration=5 --rate=16000 --file-type=raw out.raw
  1. 播放剛剛錄製的音頻來檢查錄製效果。
aplay --format=S16_LE --rate=16000 out.raw

調整你的錄製和播放設備,通過下面這個命令:

alsamixer

15155937585522

如果你的錄製和播放設備工作正常,那麼這一步的聲音設備的配置就完成了,如果你出現了錯誤,那麼可以繼續下面的步驟嘗試修復問題。

第二步:找到你的錄製和播放設備。

通過下面這個命令來顯示你的聲音捕捉設備列表,找到你的麥克風,並記錄下設備卡號和設備號。

arecord -l

15155941154890

如上圖所示的 card num 是1,device num 爲 0。

通過下面這個命令來顯示你的聲音播放設備列表,記錄下你的 3.5 mm 接口的設備卡號和設備號,3.5mm 設備的特徵是帶有 Analog 或者 bcm2835 ALSA (不是 bcm2835 IEC958/HDMI) 字段。

aplay -l

15155944050157

第三步

在你的 /home/pi 目錄下創建一個名爲 .asoundrc 文件,可以直接輸入

cd ~
sudo nano .asoundrc

粘貼以下內容到你的終端編輯器內:

pcm.!default {
  type asym
  capture.pcm "mic"
  playback.pcm "speaker"
}
pcm.mic {
  type plug
  slave {
    pcm "hw:<card number>,<device number>"
  }
}
pcm.speaker {
  type plug
  slave {
    pcm "hw:<card number>,<device number>"
  }
}

其中的兩處 <card number>,<device number> ,分別是剛剛讓你記錄的麥克風和揚聲器的設備卡號和設備號,比如剛剛我展示的圖片,我的是內容是
15155947400239

如果你有一個 HDMI 的聲音輸出並且連接了耳機接口,那麼請按照剛剛上面 sudo raspi-config 的設置將你的聲音輸出強制從耳機接口輸出。

然後重複步驟一看看是不是依然存在問題,如果依然存在問題,可以嘗試更換你的聲音錄製和播放設備。

步驟三:配置開發者項目及相關設置

Google 的開發者項目允許你的設備能夠訪問 Google Assistant API,爲了能夠訪問這個 API,需要進行以下的配置工作。
首先,進入 Google 的 Cloud Platform Console,在你的項目頁面,創建一個項目或者選一個已經存在的項目。
15155950828092

然後允許你剛剛所選的項目使用 Google Assistant API,點擊以下鏈接開通 Google Assistant API
點擊啓用即可。
15155953311656

然後通過下面的步驟創建一個客戶端認證 ID 憑證:

  1. 創建客戶端 ID
    15155954695217

  2. 輸入產品名稱及其他可選信息,點擊保存即可。
    15155955232716

  3. 應用類型選擇其他,並輸入一個名稱。
    15155956528728

  4. 點擊創建後彈出一個提醒的窗口,這裏可以直接點擊確定關閉它。

  5. 此時出現這樣的界面:
    15155957656082

點在下載圖標,下載這個 json 文件。名字類似與client_secret_client-id.json

最後上面下載的文件必須放到 pi 用戶的 Downloads 目錄下面以授權使 Google Assistant SDK 示例項目正常使用,不要重命名這個文件。
可以通過以下方法來將剛剛下載的文件傳到 Downloads 目錄。

  1. 在你的電腦新打開一個終端,不要 ssh 連接 pi,輸入以下命令:
scp ~/Downloads/client_secret_具體你的文件名.json pi@raspberry-pi-ip-address:/home/pi/

然後輸入密碼。
2. 如果你是 Windows,你可以使用 FileZilla 等 ftp 工具,如下:
15155961850035

打開 Downloads 目錄,將你的文件拖入即可。
15155962460662

爲了使用 Google Assistant 你必須要共享一些活動數據給 Google,授予 Google Assistant 一定的權限,否則你運行項目的時候,她會一直跟你說,她需要權限才能跟你說話。
打開活動控制頁面

15155964264654
15155964345681
15155964424810

步驟四:安裝 SDK 和示例項目

Google 推薦在 Python 的虛擬環境運行該項目,避免對系統環境造成影響,具體運行以下命令:

sudo apt-get update
sudo apt-get install python3-dev python3-venv 
python3 -m venv env
env/bin/python -m pip install --upgrade pip setuptools
source env/bin/activate

上面的最後一條命令是激活虛擬環境,然後安裝依賴軟件包:

sudo apt-get install portaudio19-dev libffi-dev libssl-dev

使用 pip 來安裝最新版本的依賴包:

python -m pip install --upgrade google-assistant-library
python -m pip install --upgrade google-assistant-sdk[samples]

生成授權資格
首先安裝及升級授權工具

python -m pip install --upgrade google-auth-oauthlib[tool]

然後在命令行輸入一下命令

google-oauthlib-tool --scope https://www.googleapis.com/auth/assistant-sdk-prototype \
          --save --headless --client-secrets /home/pi/Downloads/client_secret_你的文件名.json

然後你應該會在命令行中看到一個網址
Please visit this URL to authorize this application: https://...

將這個網址完整的 copy 到瀏覽器中,登陸你的 Google 賬號,然後點擊授權允許,你會在瀏覽器中看到一行代碼,類似4/XXXX,將這行代碼 copy 到命令行Enter the authorization code:的後面
如果授權成功,那麼你會在類似下面的響應。
credentials saved: /path/to/.config/google-oauthlib-tool/credentials.json

步驟五:註冊你的硬件設備

使用 Google 的註冊工具,首先設備名最好是數字和字母的組合,首字段必須是數字或字母。
使用下面的命令格式註冊:

googlesamples-assistant-devicetool register-model --manufacturer 生產者 \
          --product-name 產品名 [--description my-product-description] \
          --type device-type [--trait 支持的特性] --model 我的設備

上面的我的設備這個必須是一個唯一的名字,所以你可以使用你的項目 ID 作爲前綴,下面的是 Google 的一個示例命令:

googlesamples-assistant-devicetool register-model --manufacturer "Assistant SDK developer" \
          --product-name "Assistant SDK light" --type LIGHT --model my-model

然後使用以下命令向服務器查詢你剛剛創建的設備:

googlesamples-assistant-devicetool get --model my-model

比如下面
15155975614463

步驟六:運行示例代碼

現在你就可以準備運行示例項目來和你的樹莓派對話了,首先運行下面的命令:

googlesamples-assistant-hotword --project_id 你的項目 iD --device_model_id  上一步創建的設備

然後對着你的麥克風可以說話詢問了,注意要是英文。激活的關鍵詞是 Ok GoogleHey Google,你可以在終端中看到對話開始和結束的提示。

可以試着問問她你所在的城市的天氣,讓她唱首歌,讓她叫你起牀等等。

步驟七: 其他

你還可以增加一個 LED 燈來爲你的對話添加一些特性,通過 LED 燈提示對話開始等,也可以擴展這個項目及你的樹莓派。具體的可以參考擴展 Google Assistant

以上就是變身 Google Home 的基本過程,下一步,我將我的樹莓派變身成爲智能家居中樞,讓 Siri 爲我開關燈!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章