資料介紹
描述
哈哈哈!圣誕節快樂!
又到了一年中的那個時候,雪,蛋酒,紅鼻子馴鹿,曲棍球。. .和降臨日歷。降臨節日歷幫助我們倒計時直到圣誕節。我們的降臨日歷,有一個轉折,或者更確切地說是一個聲音!這是 Mycroft Mark 1 開源語音平臺上一個非常簡單有趣的項目。
邁克羅夫特馬克 1
語音現在很熱門,有很多選擇可以嘗試。Mycroft 是一個完全開源的平臺,您可以進行試驗。有幾個選項,例如 PiCroft,您可以在自己的 Raspberry Pi 上免費安裝。還有 Mark 1,這是一款設計精美的設備,可從Mycroft.ai 獲得
幾個月前我開始使用 PiCroft 平臺,感謝Mycroft.ai的慷慨解囊,我現在有了 Mark 1!
這是一項開源工作,并通過其在線論壇得到了一個充滿活力且反應迅速的團隊和社區的支持。有很多技能可以使用和學習。Python是使用的語言。
在這項技能中,我使用了一個名為 Padatious 的相對較新的功能,它允許您以自然語言格式編寫語音命令!Mycroft 每天都在變得更聰明!
與 Mycroft Mark 1 互動
Mark 1 的核心是一個 Raspberry pi 板。這是我將 PiCamera 添加到 Pi 的圖片:
Mark 1 的背面提供了對所有端口和引腳(PiCamera 端口除外)的訪問,您可以連接鍵盤、鼠標、顯示器與 Mark 進行交互,就像與任何其他 RPi 一樣。但是,以“無頭”方式與 Mark 1 中的 RPi 交互同樣容易。只需在桌面上打開一個終端并使用名為ssh 的命令行程序與 Mark 交互。 我在較舊的 iMac 上執行此操作,請參閱下面的屏幕截圖。Mycroft 論壇帖子SSH 登錄憑據中對如何執行此操作進行了很好的描述。
當您習慣于指向和單擊、窗口等時,熟悉命令行可能會有些挑戰。我來自 Commodore 64 一代,因此享受這種類型的交互!有很多工具可以學習和使用。對于編碼,我使用了 nano。這是一個簡單易用的文本編輯器,隨 RPi 一起安裝。需要了解的許多命令行實用程序包括:cd、reboot、ls、chown、chmod、rm、cp、mv、pwd。幾乎所有這些都需要您使用sudo 調用。所以要小心,尤其是rm和-R !!!
當您對這些工具感到滿意時,您會喜歡這種編程方式。這很像使用多功能瑞士軍刀!
編寫自己的技能
Mycroft 技能創建已完整記錄:如何添加新技能。Mycroft 文檔最近進行了更新,并采用了更具可讀性和用戶友好的格式,因此我鼓勵您去那里深入研究它,MYCROFT.AI DOCUMENTATION。謝謝凱西!
在 github 上的MycroftAI / mycroft-skills上有許多示例技能可供學習。我學習并大量借鑒了唱歌技巧。
我還在Hackster.io上發布了 Mycroft 項目,這些項目應該可以幫助您了解很多有關在 Mycroft 平臺上創建技能的知識:
在下面的描述中,我將僅涉及此技能的亮點,并鼓勵大量使用上述資源來學習如何編寫自己的技能。
技能
Mycroft 技能位于/opt/mycroft/skills/文件夾中。當您 cd 進入此文件夾并ls 時,您會看到如下內容:
在每個技能文件夾中,都有一些子文件夾和文件構成了技能的主體。Mycroft 技能是用 python 編寫的,技能的主要功能在__init__.py文件中。任何可以在 Mark 1 的 RPi 上運行的 python 庫都可以用來編寫技能。如果您可以用 Python 編寫它,那么您的技能就可以做到!
上面的屏幕截圖顯示了 hello-world 技能的文件夾結構。這是一個很好的起始模板,可以用來模擬你的技能。該文件夾下面的文件夾是圣誕節前的技能。由于 mp3 文件和正在開發的這項技能,它有點混亂。我無法讓 mp3 文件運行,除非它們位于文件夾中。是的,對于那些在 linux 中的人來說,文件所有者是不同的,但是即使文件所有權和權限都更改為 Mycroft,我仍然無法播放 mp3,除非它們位于此處!
每個技能都由意圖組成。Intent 對應于您希望 Mycroft 響應語音命令執行的代碼。這些語音命令位于您的詞匯文件中。詞匯文件名為days.until.christmas.intent ,其內容只是文本:
how many days until christmas
how many days to christmas
when is santa coming
how long unitl christmas
is it christmas yet
意圖處理程序,或響應這些語音命令而執行的代碼,連接到 vocab 文件,如下所示:
def initialize(self):
self.load_data_files(dirname(__file__))
self.register_intent_file('days.until.christmas.intent',self.handle_christm as)
對于這項技能,我使用了 mycroft 平臺的一個新功能,稱為Padatious:
Padatious 是一個機器學習、基于神經網絡的意圖解析器。它是Adapt 意圖解析器的替代方案。與使用小組獨特單詞的 Adapt 不同,Padatious 是對整個句子進行訓練的。
我正在運行 Mycroft 0.9.10 版,它 Padatious 會自動供您使用。
Padatious 極大地簡化了為您的意圖創建詞匯文件并且效果很好。使用 Padatious,您可以像說話一樣簡單地輸入短語,Mycroft 會做出適當的回應。Adapt 效果很好,但需要做很多工作才能確保它正常工作,而 Padatious 讓您可以簡單地考慮一個人如何用自然語言提出請求。
我遇到的唯一問題是當我在文件中出現“圣誕節是什么時候”這句話時。說,“嘿,Mycroft,圣誕節是什么時候?” 它會回答圣誕節是什么的字典定義。所以我只是刪除了這個短語。
Python中的日期和時間
日期和時間計算是代碼中非常常見的需求,有時讓這些計算正常工作可能具有挑戰性。幸運的是,Python 有一個名為datetime的庫,它使這些計算變得容易!就像我上面提到的,如果它是python的一部分,你的技能可以做到!在使用datetime進行計算時,要記住的重要一點是過去的日期是“負數”,而未來的日期是“正數”。所以,如果今天是圣誕節前的某個天數,當我們進行計算比較時,結果將是肯定的。技能代碼如下:
def handle_christmas(self,message):
today = datetime.date.today()
christmasDay = datetime.date(today.year, 12, 25)
# in datetime arthmetic, if a day is in the past, it is 'negative' or less
# than today, or less than a day in the future
# check to see if christmas is past :( if so, correct to next year :(
if christmasDay < today:
christmasDay = christmasDay.replace(year=today.year+1)
daysUntilChristmas = abs(christmasDay - today)
在此之后,我們只需讓 Mycroft 說出距離圣誕節還有多少天:
self.speak("there are " + str(daysUntilChristmas.days) + " days until christmas")
你能看出這里的問題嗎?如果離圣誕節只有一天,Mycroft 仍然會說“天”。另外,Mycroft 應該在圣誕節做一些特別的事情或者說一些特別的事情,對吧。. .? 好吧,離圣誕節只有這么多天了。. .!
為了寫這個技巧,我大量借鑒了 Mycroft 的歌唱技巧。您可以而且應該讓您的 Mycroft Mark 1 為您唱首歌!然而,在這項技能中,我將歌曲列表讀入 python 列表而不是地圖。就我而言,我從zedge下載了免版稅鈴聲。這些鈴聲質量很好,擁有所有流行的最愛,并且長度剛好適合這項技能。
Python 列表的使用使我能夠利用隨機庫中一個名為selection的簡潔 Python 函數。我們將列表傳遞給選擇函數,它會從列表中返回一個隨機元素!它使代碼干凈整潔:
class DaysUntilChristmasSkill(MycroftSkill):
def __init__(self):
...
self.songs = [ join(dirname(__file__), "polar_express.mp3"),
join(dirname(__file__), "let_it_snow.mp3"),
join(dirname(__file__), "holly_jolly_christma.mp3"),
join(dirname(__file__), "frosty_the_snowman.mp3"),
join(dirname(__file__), "mr_grinch.mp3"),
join(dirname(__file__), "sugar_plum.mp3"),
join(dirname(__file__), "carol_of_bells.mp3")]
...
def handle_christmas(self,message):
...
self.process = play_mp3(choice(self.songs))
樣品
它是如何工作的?
2017 年圣誕快樂!
希望你喜歡這個簡單而有趣的技能。有一百萬種不同的方法可以改進和擴展這項技能。如果你這樣做了,請將其發布到 Hackster.io!
- 邊緣計算開源項目概述
- 玩手機游戲既有趣又健康的開源項目
- 自動割草機v1開源項目
- NRF52832觸摸開關1ch開源項目
- 1J24B音頻實驗板開源項目
- 5合1 Arduino機器人開源項目
- 有趣且可擴展的極客手持設備開源分享
- EasyFlash 1CR墨盒(寬sram)開源項目
- EasyFlash 1CR墨盒(窄sram)開源項目
- 開源項目
- 開源項目,畢業設計
- 基于性能影響因素分析的語音識別平臺體系結構 20次下載
- 收藏!姿態估計開源項目匯總資料下載
- USB音頻設計的幾個有趣故障案例資料下載
- Java最著名的開源項目 0次下載
- 關于FPGA的開源項目介紹 1161次閱讀
- PCB設計中MARK點的作用和擺放 4739次閱讀
- 優秀的IC/FPGA開源項目:偽紅外圖像處理 1949次閱讀
- 怎么上手 PR 流程?如何開始參與開源項目? 1470次閱讀
- PCB電路板MARK點和過孔位置的設計要求 1.8w次閱讀
- 源創通信 Asterisk E1 語音卡介紹 3079次閱讀
- MARK點的具有哪些特征及設計規范 1.1w次閱讀
- Mozilla基金會發起的Common Voice項目,發布新版語音識別數據集 3586次閱讀
- 全年開源項目的盤點和總結 3231次閱讀
- MARK點作用及類別,MARK點設計規范 2.2w次閱讀
- 基于Altium Designer的OSHw開源項目 3609次閱讀
- 2018 年 2 月份 GitHub 上最熱門的開源項目 4554次閱讀
- 展示Python機器學習開源項目以及在分析過程中發現的非常有趣的見解和趨勢 4080次閱讀
- Python機器學習開源項目分析過程中的見解和趨勢 703次閱讀
- 11個機器學習開源項目 2767次閱讀
下載排行
本周
- 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次下載 | 免費
評論
查看更多