Jul 15 2017
使用叮当声控智米电风扇

    使用叮当声控智米电风扇

    前言

    dingdang-robot (以下简称“叮当”),是我在今年5月20号开源的一个中文智能音箱项目。

    起初,我只是抱着一个好玩的心态做这个项目,并不期望这个项目能得到多少关注。然而,随着 QQ 用户群人数的不断壮大,越来越多的朋友安装了叮当,并且真正将它投入在了日常的使用上。很多朋友也提出了各种好玩的建议、想法,甚至为叮当贡献了插件或者捐赠了这个项目,让我觉得这个项目是很有价值的,也让我知道,我能做的还有很多东西。因此,我并不是开源了叮当之后就撒手不管了,而是利用业余时间不断完善叮当,又陆续发布了 8 个小版本,使得叮当在响应速度和功能丰富程度上都有了很大提升:

    • 自 v0.1.1 起,邮件通知也增加了 echo 功能,用户可以发送带 [echo] 前缀的邮件给叮当接入的邮箱,从而实现让叮当朗读标题的消息,而不是提醒有新的邮件。利用这个功能,可以很方便地和 ifttt 结合,当满足某个条件时让图灵通知这个事件。例如,我将 ifttt 的 Date & Time 触发器和 Email 做了联动,实现定时在每天晚上 11 点发送邮件通知我睡觉;
    • 自 v0.1.2 起,叮当的响应速度有了很大提升;
    • v0.1.3 增加了 snowboy 离线唤醒 STT 引擎,目前有 PocketSphinx 和 snowboy 两套离线唤醒引擎可供选择;
    • v0.1.4 增加了 SendQR 插件,可以让叮当将微信的登录二维码发送到邮箱。@hhao 也给叮当写了个可以获取二维码图片文件的服务器插件。另外,邮箱增加了 [control] 前缀支持,用户可以发送带 [control] 前缀标题的邮件,该标题里的内容会被当成一句指令交给叮当执行,从而实现类似微信的远程控制叮当的功能;
    • v0.1.5 开始,可以微信控制音乐播放了;
    • v0.1.7 开始,所有插件都可以通过在插件配置里头通过 enable 选项开关;
    • 叮当的官方+第三方插件数量由 6 个增加到了 13 个。

    除了完善已有的功能,我也正试图让叮当往智能家电控制中心的方向上发展。

    如今很多智能音箱除了用来听歌对话之外,还扮演了家庭中的一个控制中心的角色。不过,由于各家采用的接入协议有所区别,A 家的智能家电并不见得能得到 B 家的智能音箱的支持。而由于叮当是开源的项目,对其进行定制,接入控制家电所需的协议,从而实现声控大部分的智能家电是完全可能的。今天我就分享一下如何用叮当控制智米电风扇。

Read More

Jul 2 2017
Comment.js:一个纯JS实现的静态站点评论系统

    Comment.js:一个纯JS实现的静态站点评论系统

    前言

    我的博客最早是使用 Disqus 来实现评论功能的。Disqus 被墙了之后,改成了多说。今年年初,多说也正式关闭了,于是我被逼着又开始寻找其他的替代评论系统。

    我先是试用了网易云跟贴、畅言等几种类似的社会化评论系统。畅言要求站点必须备案,而我实在没有为了评论去申请备案的动力。网易云跟贴的管理后台上有很多不明觉厉的功能,但好像都没多大用处。最致命的问题是我不小心把我的站点绑定到了另一个网易账户,而不是我常用的微博账户。这样的话,我每次回贴就得退登到微博账户,要管理贴子的时候又得切回管理员账户,非常不方便。然而网易云跟贴并没有提供解绑的功能。于是我给他们提了需求,然而一直到现在都没有回复。再加上有了多说作为前车之鉴,我对国内的免费评论服务已经失去了信心。今天把A换成B,难以保证日后B也关闭了,被逼着又换到C,实在是懒得折腾下去啊。于是,我放弃了换用类似的评论系统的念头。

    之后我找到了 isso 项目,它是一个 Python 实现的开源评论服务。这个服务需要搭建在自己的服务器上。官方的简介简明扼要:“a Disqus alternative”。出于对 Python 的好感,我把站点的评论功能迁移到了 isso 。然而,我对 isso 也并不是很满意。首先它的功能其实也非常弱,不支持 Markdown 语法,不支持 Gravatar 头像,也没有一个像样的管理后台,搭建和配置的过程也比较费时,远达不到开箱即用的程度。再加上 isso 需要服务器运营,为了一个评论系统而去购买服务器确实太奢侈了。用了几个月后,我又萌生了换掉它的念头。

Read More

May 28 2017
手把手教你编写叮当机器人插件

    手把手教你编写叮当机器人插件

    叮当 是一款可以工作在 Raspberry Pi 上的开源中文语音对话机器人/智能音箱项目,目的是让中国的Hacker们也能快速打造类似 Amazon Echo 的个性化的智能音箱。

    由于叮当是完全开源的,编写插件来满足自己的个性化需求就成了使用叮当的最大乐趣。您可以自由地接入自己需要的服务,让叮当更好的为您服务。

    这篇文章将一步步教你如何编写一个天气插件,并最终发布到 dingdang-contrib 中。

    交互示例:

    • 用户:天气
    • 叮当:深圳天气。今天:晴。最高气温:25~30摄氏度;明天:晴。26~31摄氏度;后天:小雨。最高气温:23~29摄氏度。
Read More

May 22 2017
叮当:一个开源的中文智能音箱项目

    叮当:一个开源的中文智能音箱项目

    这个项目其实来源于我生活中的一个需求:我每天晚上都会去厨房做一个面包当明天的早餐,当我把用料按顺序准备好放进面包机时,我需要准确预约到明天早上我吃早餐的时间。然而,几乎每次在这个时候我都没有带手机在身边,而是都放在客厅里充电,这时只能跑去客厅看时间。虽然厨房到客厅只有几步之遥,但自己又是懒癌患者,每天都要这么来回奔波就觉得很不方便。要解决这个问题当然有很多种方法,比如直接买个小时钟放在厨房。不过我更希望“连看都不用看”,直接有人告诉我时间。所以,我需要一个像 Amazon Echo 那样的智能音箱。

    然而,不论是 Amazon Echo 、Google Home 还是微软 Cortana 音箱,在国内的使用都是个问题。虽然国内也有类似的智能音箱产品,但我没有用过这些产品,不知道可定制性如何。比如,如果我需要开发个功能让它告诉我某种面包的配方是什么,这些产品就不一定能做到了。考虑再三,我决定自己动手写一个。整个项目用了差不多三个星期的业余零碎时间。

    先放上项目主页:http://dingdang.hahack.com

    下面分享一下我在开发这个项目过程中的心得。

Read More

Oct 19 2015
学习 React Native for Android:React 基础

    学习 React Native for Android:React 基础

    React Native 主张用 React 的开发思维来编写 UI 层。因此在学习 React-Native 之前,了解基本的 React 的语法和存在的坑会对今后 React Native 的开发大有裨益。

    本文将从一个简单的例子开始,逐步完善我们的程序。在这个过程中,我们将一步步探讨如何用 React 来开发网页应用,以及需要注意的陷阱。与其他教程不同,本文将采用类似 Zed A. Shaw《Learn Code the Hard Way》 系列的案例驱动的形式,从例子开始着手。我相信,掌握一门新技术最好的方法就是自己动手。因此,我并不打算面面俱到的列举所有关于 React 的内容,而更倾向于担任一个引路人的角色:把读者们带到 React 花园的门前,然后让读者们在 React 花园里来一场自助游。为了让这个旅途更加有收获,我会在每节内容的最后安排几个练习,并在最后分享一些值得深入学习的文章和教程。

Read More

© 2017 Joseph Pan with help from Hexo and .