本篇文章詳細說明如何將 Raspberry Pi 轉變為功能齊全的 Alexa 裝置。首先,我們需要準備好 Raspberry Pi 的硬體環境,包括麥克風和喇叭的連線與測試,並確保系統軟體更新到最新版本。接著,我們將逐步引導讀者在 Amazon 開發者平臺上註冊裝置,建立安全設定檔,並取得必要的設定檔資訊。後續步驟包含下載和安裝 AVS Device SDK,設定必要的環境變數,以及執行和授權範例應用程式。最後,我們將驗證設定是否成功,並示範如何使用 Raspberry Pi 上的 Alexa 語音服務。

17.2 Raspberry Pi設定

17.2.1 前置條件

使用您能找到的最快的Pi。我使用了一個Raspberry Pi 4,作業系統為Raspbian GNU/Linux 10 (buster)。 如果您不知道如何進行這些步驟,可以參考相關檔案或觀看教學影片。 如果您不是從新建開始,則在開始之前,請更新您的Pi軟體並重新啟動您的Pi:

  • 更新儲存函式庫套件:sudo apt update
  • 執行更新命令:sudo apt dist-upgrade
  • 按照指示並等待Pi更新。
  • 刪除不需要的檔案:sudo apt clean
  • 重新啟動您的裝置:sudo reboot 如果您需要知道自己正在執行的Pi作業系統,可以輸入cat /etc/os-release。 您可以使用cat /proc/cpuinfo查詢cpu資訊,使用cat /proc/meminfo查詢記憶體資訊。 將麥克風和喇叭/耳機連線到您的Pi並檢查它們是否正常工作。 您可以使用以下命令:
arecord -D hw:2,0 -d 5 -f cd test.wav -c 1
sudo arecord --format=S16_LE --duration=5 --rate=64000 --file-type=raw out.raw

您可以使用以下命令測試麥克風和喇叭的組合:

arecord --format=S16_LE --rate=16000 | aplay --format=S16_LE --rate=16000

您可以使用以下命令設定錄音和播放裝置的音量:alsa-mixer。使用上下鍵改變設定。 您需要一個高品質的麥克風。

內容解密:

以上步驟是為了確保Raspberry Pi能夠正確地執行Alexa Amazon Voice Service (AVS)而進行的設定和測試。這些步驟包括更新Pi的軟體、設定麥克風和喇叭、測試音訊錄製和播放等。透過這些步驟,可以確保您的Raspberry Pi能夠順暢地執行Alexa的語音服務。

Raspberry Pi 作為獨立 Alexa 裝置

17.3 程式

您可以從原始碼或指令碼設定 AVS Device SDK。如果從原始碼設定,AVS 使用點選對話功能,因此需要螢幕和鍵盤。我使用 VNC 無線連線到我的 Pi。以下是指令碼指令的步驟:

  • 註冊您的 AVS 裝置於 Amazon
  • 下載和安裝 AVS SDK
  • 執行和授權樣本應用程式
  • 使用樣本應用程式

17.3.1 註冊您的 AVS 裝置於 Amazon

三個步驟:

a) 登入 Amazon 開發者帳戶(參見 2.2 節)。

b) 註冊一個內建 AVS 裝置。

登入開發者主控臺,選擇 Alexa Voice Service。

選擇「管理您的產品」。

然後選擇「新增產品」。

如果您之前已經建立過 AVS 產品,它們將在此顯示。

在下一個螢幕中,新增有關您的裝置的資訊。產品名稱將顯示給終端使用者在 Alexa App 中,產品 ID 用於授權期間識別裝置。

選擇一個產品名稱和 ID(我使用 Raspberry2 和 Raspberry2),產品型別選擇「具有內建 Alexa 的裝置」,並選擇「否」作為伴侶應用程式,其他選擇「其他」作為產品類別。輸入一些描述(例如,原型),並選擇「免手操作」作為互動方式。

忽略上傳圖片,並對其餘問題回答「否」。

最後,點選「下一步」。

c) 設定您的安全組態檔案。

在下一個螢幕中,您可以選擇現有的安全組態檔案或建立新的組態檔案。

點選「建立新的組態檔案」,並新增組態檔案名稱和描述。

當您點選「下一步」時,您將被提供一個安全組態檔案 ID。複製它,例如:

amzn1.application.8ebda94958345678881551dca2e

選擇「其他裝置和平臺」。

點選「生成 ID」,並複製使用者端 ID,例如:

amzn1.application-oa2-client.049c89d3584a4a4f83b5f23cd4c54321

點選「下載」以取得 config.json 檔案,我們稍後需要它。這個檔案只包含使用者端 ID 和產品 ID:

{ “deviceInfo”: { “clientId”: “amzn1.application-oa2-client.049c89d3584… “, “productId”: “Raspberry2” } }

同意條款並完成。

您的產品應該已經被建立,並且應該列在您的產品清單中。

如果您選擇您的產品,您可以新增功能,例如計時器、提醒、位置服務等。

如果您想要啟用您的安全組態檔案進行商業分佈,請前往 LWA(使用 Amazon 登入),選擇您建立的安全組態檔案,新增一個指向您的隱私政策的連結,並儲存。

現在,我們已經註冊了裝置,並需要在 Pi 上安裝 Alexa Voice Service。

17.3.2 下載和安裝 AVS SDK

在 Pi 上安裝 Alexa Voice Service。我在 Raspberry Pi 4 和 Raspbian GNU/Linux 10(buster)上執行了這個程式。如果您尚未更新 Pi,請現在更新。輸入「sudo apt-get update」,然後輸入「sudo apt-get upgrade」,最後輸入「sudo reboot」。

將您下載的 config.json 檔案傳輸到 Pi 的 /home/pi/ 目錄中。我使用 WinSCP:

輸入以下命令:

cd /home/pi/ Install/setup.sh tall/genConfig.sh tall/pi.sh

注意 Amazon 的警告:

當您執行 setup.sh 時,您會得到一個錯誤訊息:

編輯 setup.sh 以替換 git 命令:

git clone https://github.com/alexa/avs-device-sdk.git

git clone https://github.com/alexa/avs-device-sdk.git -b v1.26.0.0

圖表翻譯:

  graph LR
    A[註冊 AVS 裝置] --> B[下載和安裝 AVS SDK]
    B --> C[執行和授權樣本應用程式]
    C --> D[使用樣本應用程式]

內容解密:

以上步驟描述瞭如何在 Raspberry Pi 上設定 Alexa Voice Service。首先,註冊您的 AVS 裝置於 Amazon,然後下載和安裝 AVS SDK。接下來,執行和授權樣本應用程式,最後使用樣本應用程式。這些步驟將幫助您在 Raspberry Pi 上建立一個獨立的 Alexa 裝置。

Raspberry Pi作為獨立Alexa裝置

17.3.3 執行和授權樣本應用程式

要執行樣本應用程式,請在home/pi目錄下執行以下命令:

sudo bash startsample.sh

您應該會看到一則訊息,指出您的裝置目前未授權,並要求您輸入授權碼。

授權裝置

要授權裝置,請瀏覽至指定的網站,登入您的Amazon開發者帳戶,輸入授權碼,並選擇「允許」。

  flowchart TD
    A[開始] --> B[瀏覽網站]
    B --> C[登入Amazon開發者帳戶]
    C --> D[輸入授權碼]
    D --> E[選擇允許]
    E --> F[裝置授權成功]

圖表翻譯:

此圖表描述了授權裝置的流程。首先,瀏覽至指定的網站,然後登入您的Amazon開發者帳戶,接著輸入授權碼,並最終選擇「允許」以完成授權。

17.4 使用樣本應用程式

現在,您可以像使用正常的Alexa裝置一樣使用您的Raspberry Pi。試試說:

"Alexa,今天的天氣如何"

"Alexa,告訴我一個笑話"

或其他許多Alexa命令。

內容解密:

以上內容描述了使用Raspberry Pi作為獨立Alexa裝置的過程。首先,我們需要設定Pi硬體和建立Alexa Voice Service產品。接著,我們安裝AVS SDK並執行樣本應用程式。授權裝置後,我們就可以使用樣本應用程式執行Raspberry Pi Alexa裝置。這個過程需要仔細按照步驟進行,以確保裝置正常運作。

從使用者經驗視角來看,將 Raspberry Pi 打造成獨立的 Alexa 裝置,需要經歷繁瑣的軟硬體設定及授權流程。本文詳細介紹了從系統準備、軟體安裝、Amazon AVS 註冊到最終測試的完整步驟,涵蓋了技術堆疊的各個層級。透過多維比較分析,可以發現,雖然使用指令碼簡化了部分操作,但仍需使用者具備一定的 Linux 基礎和除錯能力。技術限制深析顯示,設定過程中可能遭遇網路連線問題、套件版本衝突等挑戰,需要使用者參考官方檔案或社群資源尋求解決方案。

展望未來,隨著 AVS Device SDK 的持續發展和社群支援的完善,預計設定流程將更加簡化,使用者門檻也會降低。然而,維持系統安全性和隱私性仍是關鍵挑戰。對於希望快速體驗 Raspberry Pi Alexa 的使用者,建議採用預先設定好的映像檔或套件,以減少設定的複雜度。對於追求客製化和深入瞭解 AVS SDK 的開發者,則可以參考本文提供的步驟,逐步建構自己的 Raspberry Pi Alexa 裝置。玄貓認為,根據 Raspberry Pi 的 Alexa 裝置,在智慧家庭、物聯網等領域具有廣闊的應用前景,值得持續關注和探索。