资料介绍
描述
哈哈哈!圣诞节快乐!
又到了一年中的那个时候,雪,蛋酒,红鼻子驯鹿,曲棍球。. .和降临日历。降临节日历帮助我们倒计时直到圣诞节。我们的降临日历,有一个转折,或者更确切地说是一个声音!这是 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次下载 | 免费
评论
查看更多