本篇文章詳細說明如何將 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 裝置,在智慧家庭、物聯網等領域具有廣闊的應用前景,值得持續關注和探索。