資料介紹
描述
哈哈哈!圣誕節(jié)快樂!
又到了一年中的那個時候,雪,蛋酒,紅鼻子馴鹿,曲棍球。. .和降臨日歷。降臨節(jié)日歷幫助我們倒計時直到圣誕節(jié)。我們的降臨日歷,有一個轉折,或者更確切地說是一個聲音!這是 Mycroft Mark 1 開源語音平臺上一個非常簡單有趣的項目。
邁克羅夫特馬克 1
語音現(xiàn)在很熱門,有很多選擇可以嘗試。Mycroft 是一個完全開源的平臺,您可以進行試驗。有幾個選項,例如 PiCroft,您可以在自己的 Raspberry Pi 上免費安裝。還有 Mark 1,這是一款設計精美的設備,可從Mycroft.ai 獲得
幾個月前我開始使用 PiCroft 平臺,感謝Mycroft.ai的慷慨解囊,我現(xiàn)在有了 Mark 1!
這是一項開源工作,并通過其在線論壇得到了一個充滿活力且反應迅速的團隊和社區(qū)的支持。有很多技能可以使用和學習。Python是使用的語言。
在這項技能中,我使用了一個名為 Padatious 的相對較新的功能,它允許您以自然語言格式編寫語音命令!Mycroft 每天都在變得更聰明!
與 Mycroft Mark 1 互動
Mark 1 的核心是一個 Raspberry pi 板。這是我將 PiCamera 添加到 Pi 的圖片:

Mark 1 的背面提供了對所有端口和引腳(PiCamera 端口除外)的訪問,您可以連接鍵盤、鼠標、顯示器與 Mark 進行交互,就像與任何其他 RPi 一樣。但是,以“無頭”方式與 Mark 1 中的 RPi 交互同樣容易。只需在桌面上打開一個終端并使用名為ssh 的命令行程序與 Mark 交互。 我在較舊的 iMac 上執(zhí)行此操作,請參閱下面的屏幕截圖。Mycroft 論壇帖子SSH 登錄憑據(jù)中對如何執(zhí)行此操作進行了很好的描述。

當您習慣于指向和單擊、窗口等時,熟悉命令行可能會有些挑戰(zhàn)。我來自 Commodore 64 一代,因此享受這種類型的交互!有很多工具可以學習和使用。對于編碼,我使用了 nano。這是一個簡單易用的文本編輯器,隨 RPi 一起安裝。需要了解的許多命令行實用程序包括:cd、reboot、ls、chown、chmod、rm、cp、mv、pwd。幾乎所有這些都需要您使用sudo 調(diào)用。所以要小心,尤其是rm和-R !!!
當您對這些工具感到滿意時,您會喜歡這種編程方式。這很像使用多功能瑞士軍刀!
編寫自己的技能
Mycroft 技能創(chuàng)建已完整記錄:如何添加新技能。Mycroft 文檔最近進行了更新,并采用了更具可讀性和用戶友好的格式,因此我鼓勵您去那里深入研究它,MYCROFT.AI DOCUMENTATION。謝謝凱西!
在 github 上的MycroftAI / mycroft-skills上有許多示例技能可供學習。我學習并大量借鑒了唱歌技巧。
我還在Hackster.io上發(fā)布了 Mycroft 項目,這些項目應該可以幫助您了解很多有關在 Mycroft 平臺上創(chuàng)建技能的知識:
在下面的描述中,我將僅涉及此技能的亮點,并鼓勵大量使用上述資源來學習如何編寫自己的技能。
技能
Mycroft 技能位于/opt/mycroft/skills/文件夾中。當您 cd 進入此文件夾并ls 時,您會看到如下內(nèi)容:

在每個技能文件夾中,都有一些子文件夾和文件構成了技能的主體。Mycroft 技能是用 python 編寫的,技能的主要功能在__init__.py文件中。任何可以在 Mark 1 的 RPi 上運行的 python 庫都可以用來編寫技能。如果您可以用 Python 編寫它,那么您的技能就可以做到!

上面的屏幕截圖顯示了 hello-world 技能的文件夾結構。這是一個很好的起始模板,可以用來模擬你的技能。該文件夾下面的文件夾是圣誕節(jié)前的技能。由于 mp3 文件和正在開發(fā)的這項技能,它有點混亂。我無法讓 mp3 文件運行,除非它們位于文件夾中。是的,對于那些在 linux 中的人來說,文件所有者是不同的,但是即使文件所有權和權限都更改為 Mycroft,我仍然無法播放 mp3,除非它們位于此處!
每個技能都由意圖組成。Intent 對應于您希望 Mycroft 響應語音命令執(zhí)行的代碼。這些語音命令位于您的詞匯文件中。詞匯文件名為days.until.christmas.intent ,其內(nèi)容只是文本:
how many days until christmas
how many days to christmas
when is santa coming
how long unitl christmas
is it christmas yet
意圖處理程序,或響應這些語音命令而執(zhí)行的代碼,連接到 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 是一個機器學習、基于神經(jīng)網(wǎng)絡的意圖解析器。它是Adapt 意圖解析器的替代方案。與使用小組獨特單詞的 Adapt 不同,Padatious 是對整個句子進行訓練的。
我正在運行 Mycroft 0.9.10 版,它 Padatious 會自動供您使用。
Padatious 極大地簡化了為您的意圖創(chuàng)建詞匯文件并且效果很好。使用 Padatious,您可以像說話一樣簡單地輸入短語,Mycroft 會做出適當?shù)幕貞?/font>Adapt 效果很好,但需要做很多工作才能確保它正常工作,而 Padatious 讓您可以簡單地考慮一個人如何用自然語言提出請求。
我遇到的唯一問題是當我在文件中出現(xiàn)“圣誕節(jié)是什么時候”這句話時。說,“嘿,Mycroft,圣誕節(jié)是什么時候?” 它會回答圣誕節(jié)是什么的字典定義。所以我只是刪除了這個短語。
Python中的日期和時間
日期和時間計算是代碼中非常常見的需求,有時讓這些計算正常工作可能具有挑戰(zhàn)性。幸運的是,Python 有一個名為datetime的庫,它使這些計算變得容易!就像我上面提到的,如果它是python的一部分,你的技能可以做到!在使用datetime進行計算時,要記住的重要一點是過去的日期是“負數(shù)”,而未來的日期是“正數(shù)”。所以,如果今天是圣誕節(jié)前的某個天數(shù),當我們進行計算比較時,結果將是肯定的。技能代碼如下:
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 說出距離圣誕節(jié)還有多少天:
self.speak("there are " + str(daysUntilChristmas.days) + " days until christmas")
你能看出這里的問題嗎?如果離圣誕節(jié)只有一天,Mycroft 仍然會說“天”。另外,Mycroft 應該在圣誕節(jié)做一些特別的事情或者說一些特別的事情,對吧。. .? 好吧,離圣誕節(jié)只有這么多天了。. .!
為了寫這個技巧,我大量借鑒了 Mycroft 的歌唱技巧。您可以而且應該讓您的 Mycroft Mark 1 為您唱首歌!然而,在這項技能中,我將歌曲列表讀入 python 列表而不是地圖。就我而言,我從zedge下載了免版稅鈴聲。這些鈴聲質(zhì)量很好,擁有所有流行的最愛,并且長度剛好適合這項技能。
Python 列表的使用使我能夠利用隨機庫中一個名為selection的簡潔 Python 函數(shù)。我們將列表傳遞給選擇函數(shù),它會從列表中返回一個隨機元素!它使代碼干凈整潔:
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 年圣誕快樂!
希望你喜歡這個簡單而有趣的技能。有一百萬種不同的方法可以改進和擴展這項技能。如果你這樣做了,請將其發(fā)布到 Hackster.io!
- 基于小華半導體MCU電機控制開源平臺
- 邊緣計算開源項目概述
- 玩手機游戲既有趣又健康的開源項目
- 自動割草機v1開源項目
- NRF52832觸摸開關1ch開源項目
- 1J24B音頻實驗板開源項目
- 5合1 Arduino機器人開源項目
- 有趣且可擴展的極客手持設備開源分享
- EasyFlash 1CR墨盒(寬sram)開源項目
- EasyFlash 1CR墨盒(窄sram)開源項目
- 開源項目
- 開源項目,畢業(yè)設計
- 基于性能影響因素分析的語音識別平臺體系結構 20次下載
- 收藏!姿態(tài)估計開源項目匯總資料下載
- USB音頻設計的幾個有趣故障案例資料下載
- 關于FPGA的開源項目介紹 1522次閱讀
- PCB設計中MARK點的作用和擺放 5564次閱讀
- 優(yōu)秀的IC/FPGA開源項目:偽紅外圖像處理 2260次閱讀
- 怎么上手 PR 流程?如何開始參與開源項目? 1634次閱讀
- PCB電路板MARK點和過孔位置的設計要求 1.9w次閱讀
- 源創(chuàng)通信 Asterisk E1 語音卡介紹 3261次閱讀
- PCB設計中Mark點的分類與制作步驟 1.6w次閱讀
- MARK點的具有哪些特征及設計規(guī)范 1.2w次閱讀
- Mozilla基金會發(fā)起的Common Voice項目,發(fā)布新版語音識別數(shù)據(jù)集 3689次閱讀
- 全年開源項目的盤點和總結 3363次閱讀
- MARK點作用及類別,MARK點設計規(guī)范 2.3w次閱讀
- 基于Altium Designer的OSHw開源項目 3738次閱讀
- 展示Python機器學習開源項目以及在分析過程中發(fā)現(xiàn)的非常有趣的見解和趨勢 4202次閱讀
- Python機器學習開源項目分析過程中的見解和趨勢 754次閱讀
- 11個機器學習開源項目 2829次閱讀
下載排行
本周
- 1涂鴉各WiFi模塊原理圖加PCB封裝
- 11.75 MB | 76次下載 | 1 積分
- 2錦銳科技CA51F2 SDK開發(fā)包
- 24.06 MB | 29次下載 | 1 積分
- 3錦銳CA51F005 SDK開發(fā)包
- 19.47 MB | 3次下載 | 1 積分
- 4蘋果iphone 11電路原理圖
- 4.98 MB | 3次下載 | 2 積分
- 5基礎模擬電子電路
- 3.80 MB | 3次下載 | 1 積分
- 6RA-Eco-RA6M4-100PIN-V1.0開發(fā)板資料
- 34.89 MB | 1次下載 | 免費
- 7STM32F3系列、STM32F4系列、STM32L4系列和STM32L4+系列Cortex-M4編程手冊
- 3.32 MB | 1次下載 | 免費
- 8聯(lián)想A820t手機維修圖紙包括主板原理圖 尾板原理圖 點位圖
- 0.62 MB | 次下載 | 5 積分
本月
- 1AI智能眼鏡產(chǎn)業(yè)鏈分析
- 4.43 MB | 383次下載 | 免費
- 2蘇泊爾電磁爐線路的電路原理圖資料合集
- 2.02 MB | 296次下載 | 5 積分
- 3貼片三極管上的印字與真實名稱的對照表詳細說明
- 0.50 MB | 94次下載 | 1 積分
- 4長虹液晶電視R-HS310B-5HF01的電源板電路原理圖
- 0.46 MB | 91次下載 | 5 積分
- 5涂鴉各WiFi模塊原理圖加PCB封裝
- 11.75 MB | 76次下載 | 1 積分
- 6錦銳科技CA51F2 SDK開發(fā)包
- 24.06 MB | 29次下載 | 1 積分
- 7AO4803A雙P通道增強型場效應晶體管的數(shù)據(jù)手冊
- 0.11 MB | 28次下載 | 2 積分
- 8長虹液晶彩電LS29機芯的技術資料說明
- 3.42 MB | 16次下載 | 2 積分
總榜
- 1matlab軟件下載入口
- 未知 | 935127次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關降壓/升壓雙向直流/直流轉換器 PCB layout 設計
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233089次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費下載
- 340992 | 191388次下載 | 10 積分
- 5十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183342次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81588次下載 | 10 積分
- 7Keil工具MDK-Arm免費下載
- 0.02 MB | 73815次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65988次下載 | 10 積分
評論