電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>使用Alexa查看當(dāng)前通行費

使用Alexa查看當(dāng)前通行費

2023-06-20 | zip | 0.00 MB | 次下載 | 免費

資料介紹

描述

概括

該項目結(jié)合使用屏幕抓取和 API 來獲取弗吉尼亞北部環(huán)城公路內(nèi) 66 號州際公路的當(dāng)前行駛速度和當(dāng)前可變通行費,并通過亞馬遜的 Alexa 語音服務(wù)向用戶提供這些信息要試用它,請先啟用它(只需說“啟用 66 個通行費”或訪問亞馬遜技能商店中的“66 個通行費”)。從此,只要說一句“開通六十六通行費”。

資源

該項目使用 Alexa 的語音服務(wù)。代碼使用 Python 3 編寫,使用Alexa Skills Kit SDK for Python。該代碼在 AWS 的 lambda 服務(wù)上運行。它還(最少)使用 DynamoDB 來存儲特定于用戶的信息。行程時間是從弗吉尼亞交通部 (VDOT) 的511 弗吉尼亞交通信息網(wǎng)站上獲取的。實時通行費價格是通過 VDOT 的SmarterRoads數(shù)據(jù)門戶的 API 獲得的。Web 抓取和 XML 解析是使用 Python 的Beautiful Soup庫完成的。

python 代碼以及交互模型(JSON 文件)可在https://github.com/ViennaMike/I-66-Tolls獲得

背景

我正在尋找一個將使用SmarterRoads門戶上的數(shù)據(jù)集之一的項目,并且我認(rèn)為能夠檢查北弗吉尼亞環(huán)城公路內(nèi) 66 號州際公路的動態(tài)通行費會很有用。入站交通在早上 5:30 到 9:30 之間收費,而出站交通在下午 3:00 到 7:00 之間收費。

?
pYYBAGOpd6aAKlNIAAEGAg7pEjg147.png
?

通行費會動態(tài)調(diào)整以保持高速。雖然通行費可能會在檢查家里的費用和司機(jī)到達(dá)入口的時間之間發(fā)生變化,但了解高度可變的通行費仍然很有用,尤其是因為整個 10 英里長度的通行費有時會飆升至 40 美元以上。

我之前用亞馬遜的模板寫過一個簡單的問答技能,但這是我的第一個自定義技能。

描述

Alexa skill 的整體架構(gòu)如下圖所示:

?
poYBAGOpd66AZ3CBAACVZIcKCu8618.png
?

高級架構(gòu)

當(dāng)用戶與技能交互時,系統(tǒng)會根據(jù)開發(fā)人員在 Alexa 技能構(gòu)建器中定義的交互模型處理輸入。這是在 JSON 文件中捕獲的。技能構(gòu)建器也是您告訴技能在哪里可以找到用于處理請求的執(zhí)行代碼并為認(rèn)證和分發(fā)準(zhǔn)備技能的地方。

在 66 Tolls 的情況下,有八個自定義意圖,以及 Alexa 內(nèi)置意圖,例如 HelpIntent、FallbackIntent、StopIntent 等。自定義意圖是:

  • get_speeds 用于獲取兩個大致平行的旅行選項(I-66 和 US-50)的速度和旅行時間
  • get_toll_hours 獲取有關(guān)通行費生效時間的靜態(tài)信息
  • get_details 獲取有關(guān)動態(tài)收費系統(tǒng)如何工作的額外靜態(tài)信息
  • list_interchanges 獲取進(jìn)出入口列表
  • get_toll 獲取指定方向從給定入口到出口的當(dāng)前通行費
  • save_trip 保存每個方向用戶最頻繁的進(jìn)出
  • get_favs 向用戶報告他之前保存的行程。
  • get_specific_help 為特定類型的請求提供幫助(獲取通行費、獲取速度和保存行程)。

當(dāng)之前保存過行程的用戶打開該技能時,如果是早上,該技能會立即返回相應(yīng)的當(dāng)前入站通行費,如果是晚上或下午,則返回出站通行費。

Alexa Skills Kit SDK 包含內(nèi)置功能,可簡化與 Amazon 的DynamoDB NoSQL 數(shù)據(jù)庫的交互。這個技能使用一個簡單的DynamoDB表來存儲user_id(key),最頻繁的入站出入口,最頻繁的出站出入口。

到目前為止,該項目最簡單的部分是從兩個 VDOT 源獲取旅行時間和通行費的代碼。有一個用于收費數(shù)據(jù)的 API,我不得不做一些簡單的網(wǎng)絡(luò)抓取來獲取旅行時間數(shù)據(jù)。這段代碼可以在代碼中的 get_travel_times() 和 get_tolls() 函數(shù)中找到。

開發(fā)語音交互模型需要多次迭代,我發(fā)現(xiàn)隨著時間的推移,我能夠改進(jìn)對話模型,同時減少意圖的數(shù)量和與每個意圖關(guān)聯(lián)的槽類型的數(shù)量。然而,即便如此,我發(fā)現(xiàn)我的技能的第一個發(fā)布版本并沒有像我預(yù)期的那樣為用戶工作。大多數(shù)情況下在技術(shù)上運行良好(有一個嚴(yán)重錯誤),但除我以外的用戶說的事情與我想象的不同,并以不同的方式尋求幫助。不僅要花時間思考用戶將如何與您的技能互動(就像我一開始所做的那樣),而且還要讓其他人也測試您的技能并獲得反饋,這絕對是值得的。

因為這對我來說是新的,所以花了相當(dāng)多的時間和反復(fù)試驗來弄清楚如何編寫處理程序代碼,尤其是如何處理會話和持久屬性以及與 DynamoDB 的交互。我使用了大量資源,其中最好的是 Ralu Bolovan 的Skill SDK文檔、Color Picker示例應(yīng)用程序和A Beginner's Guide to the New AWS Python SDK for Alexa 。如文檔中所述,python SDK 支持兩種編碼模型,一種基于帶有裝飾器的函數(shù),另一種基于類。我選擇使用類,但拾色器示例使用修飾函數(shù)。

我遇到的一些麻煩來自兩個因素:1) Alexa 技能的界面隨著時間的推移發(fā)生了變化。它一直在改進(jìn),但這也意味著網(wǎng)絡(luò)上的一些示例和教程已經(jīng)過時了。2) 雖然有詳盡的文檔,但許多教程和示例都側(cè)重于簡單的演示。出于這個原因,退后一步并閱讀更多 SDK 而不是總是跳進(jìn)去可能更好。例如,我需要讓我的代碼在每次調(diào)用意圖時都做一些事情,無論意圖是什么。事實證明這是由請求攔截器和響應(yīng)攔截器處理的,大多數(shù)簡單示例都忽略了它們。這一點,連同對使用 DynamoDB 的全面演練,是我找到適用于 Alexa 的新 AWS Python SDK 初學(xué)者指南的原因 如此樂于助人。

我最初希望該技能的調(diào)用是“我六十六通行費”,但我發(fā)現(xiàn) Alexa 無法將其識別為調(diào)用。出于這個原因,我不得不調(diào)用“六十六通行費”而不是“我。六十六通行費?!?/font>

我還發(fā)現(xiàn),如果你使用 Alexa 的內(nèi)置“確認(rèn)”功能,那么當(dāng)你的代碼第一次被調(diào)用時,handler_input.request_envelope.session.new被設(shè)置為 False,顯然是因為內(nèi)置的確認(rèn)請求啟動了會議。這是要小心的事情。由于這個和其他原因,我最終檢查了我之前是否初始化了會話屬性,而不是檢查會話是否是新的。

我修復(fù)的最后一個技術(shù)錯誤是我沒有考慮過服務(wù)器的“本地時間”是什么。我一直天真地認(rèn)為,既然我使用的是AWS的北弗吉尼亞服務(wù)器,那么本地時間就是美國東部時區(qū),但是所有Lambda服務(wù)器都使用GMT作為本地時間,這更有意義。所以我使用 pytz 庫轉(zhuǎn)換為本地時間。

對于語音界面,我發(fā)現(xiàn)我必須擴(kuò)展插槽值的同義詞列表(例如用于出口的名稱),添加更具體的幫助查詢,除了全面的,因此很長,“幫助”意圖,并利用用于檢查用戶提供的插槽值的界面內(nèi)置功能,我在簡單教程中沒有讀到過。

我希望這個示例對想要編寫自己的自定義 Alexa 技能的其他人有所幫助。


下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1SMD LED選型手冊 貼片燈珠
  2. 5.47 MB   |  3次下載  |  免費
  3. 2加密芯片的一種破解方法和對應(yīng)加密方案改進(jìn)設(shè)計
  4. 0.29 MB   |  1次下載  |  免費
  5. 3多功能MPU芯片GC9005數(shù)據(jù)手冊
  6. 2.67 MB   |  1次下載  |  免費
  7. 4碳化硅逆變焊機(jī)基本產(chǎn)品介紹
  8. 7.35 MB   |  1次下載  |  免費
  9. 5基本半導(dǎo)體產(chǎn)品在Sic逆變焊機(jī)中的應(yīng)用
  10. 7.27 MB   |  1次下載  |  免費
  11. 6基本半導(dǎo)體產(chǎn)品在125kW工商業(yè)儲能PCS中的應(yīng)用
  12. 10.74 MB   |  1次下載  |  免費
  13. 7MOSFET參數(shù)解讀
  14. 1.59 MB   |  1次下載  |  2 積分
  15. 8550W充電機(jī)原理圖
  16. 0.13 MB   |  1次下載  |  6 積分

本月

  1. 1使用單片機(jī)實現(xiàn)七人表決器的程序和仿真資料免費下載
  2. 2.96 MB   |  44次下載  |  免費
  3. 23314A函數(shù)發(fā)生器維修手冊
  4. 16.30 MB   |  13次下載  |  免費
  5. 3美的電磁爐維修手冊大全
  6. 1.56 MB   |  9次下載  |  5 積分
  7. 4STM32F101x8/STM32F101xB手冊
  8. 1.69 MB   |  8次下載  |  1 積分
  9. 5使用TL431設(shè)計電源
  10. 0.67 MB   |  7次下載  |  免費
  11. 6感應(yīng)筆電路圖
  12. 0.06 MB   |  7次下載  |  免費
  13. 7不對稱半橋(AHB)反激變換器的分析與設(shè)計
  14. 0.68 MB   |  6次下載  |  1 積分
  15. 8LZC3106G高性能諧振控制器中文手冊
  16. 1.29 MB   |  5次下載  |  1 積分

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935119次下載  |  10 積分
  3. 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計
  4. 1.48MB  |  420062次下載  |  10 積分
  5. 3Altium DXP2002下載入口
  6. 未知  |  233084次下載  |  10 積分
  7. 4電路仿真軟件multisim 10.0免費下載
  8. 340992  |  191367次下載  |  10 積分
  9. 5十天學(xué)會AVR單片機(jī)與C語言視頻教程 下載
  10. 158M  |  183335次下載  |  10 積分
  11. 6labview8.5下載
  12. 未知  |  81581次下載  |  10 積分
  13. 7Keil工具M(jìn)DK-Arm免費下載
  14. 0.02 MB  |  73807次下載  |  10 積分
  15. 8LabVIEW 8.6下載
  16. 未知  |  65987次下載  |  10 積分