資料介紹
描述
概括
該項目結合使用屏幕抓取和 API 來獲取弗吉尼亞北部環城公路內 66 號州際公路的當前行駛速度和當前可變通行費,并通過亞馬遜的 Alexa 語音服務向用戶提供這些信息。要試用它,請先啟用它(只需說“啟用 66 個通行費”或訪問亞馬遜技能商店中的“66 個通行費”)。從此,只要說一句“開通六十六通行費”。
資源
該項目使用 Alexa 的語音服務。代碼使用 Python 3 編寫,使用Alexa Skills Kit SDK for Python。該代碼在 AWS 的 lambda 服務上運行。它還(最少)使用 DynamoDB 來存儲特定于用戶的信息。行程時間是從弗吉尼亞交通部 (VDOT) 的511 弗吉尼亞交通信息網站上獲取的。實時通行費價格是通過 VDOT 的SmarterRoads數據門戶的 API 獲得的。Web 抓取和 XML 解析是使用 Python 的Beautiful Soup庫完成的。
python 代碼以及交互模型(JSON 文件)可在https://github.com/ViennaMike/I-66-Tolls獲得
背景
我正在尋找一個將使用SmarterRoads門戶上的數據集之一的項目,并且我認為能夠檢查北弗吉尼亞環城公路內 66 號州際公路的動態通行費會很有用。入站交通在早上 5:30 到 9:30 之間收費,而出站交通在下午 3:00 到 7:00 之間收費。
通行費會動態調整以保持高速。雖然通行費可能會在檢查家里的費用和司機到達入口的時間之間發生變化,但了解高度可變的通行費仍然很有用,尤其是因為整個 10 英里長度的通行費有時會飆升至 40 美元以上。
我之前用亞馬遜的模板寫過一個簡單的問答技能,但這是我的第一個自定義技能。
描述
Alexa skill 的整體架構如下圖所示:
高級架構
當用戶與技能交互時,系統會根據開發人員在 Alexa 技能構建器中定義的交互模型處理輸入。這是在 JSON 文件中捕獲的。技能構建器也是您告訴技能在哪里可以找到用于處理請求的執行代碼并為認證和分發準備技能的地方。
在 66 Tolls 的情況下,有八個自定義意圖,以及 Alexa 內置意圖,例如 HelpIntent、FallbackIntent、StopIntent 等。自定義意圖是:
- get_speeds 用于獲取兩個大致平行的旅行選項(I-66 和 US-50)的速度和旅行時間
- get_toll_hours 獲取有關通行費生效時間的靜態信息
- get_details 獲取有關動態收費系統如何工作的額外靜態信息
- list_interchanges 獲取進出入口列表
- get_toll 獲取指定方向從給定入口到出口的當前通行費
- save_trip 保存每個方向用戶最頻繁的進出
- get_favs 向用戶報告他之前保存的行程。
- get_specific_help 為特定類型的請求提供幫助(獲取通行費、獲取速度和保存行程)。
當之前保存過行程的用戶打開該技能時,如果是早上,該技能會立即返回相應的當前入站通行費,如果是晚上或下午,則返回出站通行費。
Alexa Skills Kit SDK 包含內置功能,可簡化與 Amazon 的DynamoDB NoSQL 數據庫的交互。這個技能使用一個簡單的DynamoDB表來存儲user_id(key),最頻繁的入站出入口,最頻繁的出站出入口。
到目前為止,該項目最簡單的部分是從兩個 VDOT 源獲取旅行時間和通行費的代碼。有一個用于收費數據的 API,我不得不做一些簡單的網絡抓取來獲取旅行時間數據。這段代碼可以在代碼中的 get_travel_times() 和 get_tolls() 函數中找到。
開發語音交互模型需要多次迭代,我發現隨著時間的推移,我能夠改進對話模型,同時減少意圖的數量和與每個意圖關聯的槽類型的數量。然而,即便如此,我發現我的技能的第一個發布版本并沒有像我預期的那樣為用戶工作。大多數情況下在技術上運行良好(有一個嚴重錯誤),但除我以外的用戶說的事情與我想象的不同,并以不同的方式尋求幫助。不僅要花時間思考用戶將如何與您的技能互動(就像我一開始所做的那樣),而且還要讓其他人也測試您的技能并獲得反饋,這絕對是值得的。
因為這對我來說是新的,所以花了相當多的時間和反復試驗來弄清楚如何編寫處理程序代碼,尤其是如何處理會話和持久屬性以及與 DynamoDB 的交互。我使用了大量資源,其中最好的是 Ralu Bolovan 的Skill SDK文檔、Color Picker示例應用程序和A Beginner's Guide to the New AWS Python SDK for Alexa 。如文檔中所述,python SDK 支持兩種編碼模型,一種基于帶有裝飾器的函數,另一種基于類。我選擇使用類,但拾色器示例使用修飾函數。
我遇到的一些麻煩來自兩個因素:1) Alexa 技能的界面隨著時間的推移發生了變化。它一直在改進,但這也意味著網絡上的一些示例和教程已經過時了。2) 雖然有詳盡的文檔,但許多教程和示例都側重于簡單的演示。出于這個原因,退后一步并閱讀更多 SDK 而不是總是跳進去可能更好。例如,我需要讓我的代碼在每次調用意圖時都做一些事情,無論意圖是什么。事實證明這是由請求攔截器和響應攔截器處理的,大多數簡單示例都忽略了它們。這一點,連同對使用 DynamoDB 的全面演練,是我找到適用于 Alexa 的新 AWS Python SDK 初學者指南的原因 如此樂于助人。
我最初希望該技能的調用是“我六十六通行費”,但我發現 Alexa 無法將其識別為調用。出于這個原因,我不得不調用“六十六通行費”而不是“我。六十六通行費。”
我還發現,如果你使用 Alexa 的內置“確認”功能,那么當你的代碼第一次被調用時,handler_input.request_envelope.session.new被設置為 False,顯然是因為內置的確認請求啟動了會議。這是要小心的事情。由于這個和其他原因,我最終檢查了我之前是否初始化了會話屬性,而不是檢查會話是否是新的。
我修復的最后一個技術錯誤是我沒有考慮過服務器的“本地時間”是什么。我一直天真地認為,既然我使用的是AWS的北弗吉尼亞服務器,那么本地時間就是美國東部時區,但是所有Lambda服務器都使用GMT作為本地時間,這更有意義。所以我使用 pytz 庫轉換為本地時間。
對于語音界面,我發現我必須擴展插槽值的同義詞列表(例如用于出口的名稱),添加更具體的幫助查詢,除了全面的,因此很長,“幫助”意圖,并利用用于檢查用戶提供的插槽值的界面內置功能,我在簡單教程中沒有讀到過。
我希望這個示例對想要編寫自己的自定義 Alexa 技能的其他人有所幫助。
- 有源濾波裝置在軌道交通行業的應用與選型 0次下載
- YNH-360 人臉識別通行主板規格書
- 基于可拓路徑的密集人群環境通行策略綜述 12次下載
- allegro學習教程之查看GXL線長 0次下載
- 公交車停靠站的快速路出口通行能力模型 14次下載
- 解決干擾問題的通行做法資料下載
- 溫濕度曲線圖實時查看終端的PCB原理圖及源碼 38次下載
- 如何使用Alexa語音控制電視遙控器 11次下載
- 如何使用區域道路實況數據進行交通行為譜分析的方法說明 3次下載
- ADAS技術有什么作用?如何減少道路的安全問題? 8次下載
- Getting Started with RFID 2次下載
- 電話自動催費軟件9.3
- 硬件型號查看工具
- 008密碼查看器V2.34
- 萬能文件查看器下載 0次下載
- DC電源降壓芯片型號怎么查看 908次閱讀
- 寄存器查看器的功能和使用 1383次閱讀
- Linux系統中的10個常用的文本查看命令 1w次閱讀
- 路由表的介紹與查看 3026次閱讀
- 如何查看模塊的診斷信息 1807次閱讀
- 如何在Linux中查看隱藏文件 1.5w次閱讀
- 如何在IDEA中查看依賴關系 1.8w次閱讀
- 計算機端口在哪里查看 2.7w次閱讀
- Linux終端中查看圖像的方法 4339次閱讀
- 關于ETC的使用技巧及遇到問題時的正確措施 2949次閱讀
- 微雪電子ROC-RK3308主板CC-Amazon Alexa簡介 1282次閱讀
- 簡述Linux文本查看命令 3435次閱讀
- 智能交通行業有哪些值得關注 2159次閱讀
- 單相費控智能電表的原理及設計 1.4w次閱讀
- 無線設備傳輸距離的估算與費里斯傳輸公式 5018次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數據手冊
- 1.06 MB | 532次下載 | 免費
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費
- 5元宇宙深度解析—未來的未來-風口還是泡沫
- 6.40 MB | 227次下載 | 免費
- 6迪文DGUS開發指南
- 31.67 MB | 194次下載 | 免費
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費
- 8FP5207XR-G1中文應用手冊
- 1.09 MB | 178次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33566次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537798次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191187次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多