叮当是一款可以工作在 Raspberry Pi 上的开源中文语音对话机器人/智能音箱项目,目的是让中国的Hacker们也能快速打造个性化的智能音箱。
叮当包括以下诸多特性:
- 模块化。功能插件、语音识别、语音合成、对话机器人都做到了高度模块化,第三方插件单独维护,方便继承和开发自己的插件。
- 微信接入。支持接入微信,并通过微信远程操控自己家中的设备。
- 中文支持。集成百度、科大讯飞、阿里、谷歌等多家中文语音识别和语音合成技术,且可以继续扩展。
- 对话机器人支持。支持接入图灵机器人、Emotibot,未来还将支持接入更多机器人。
- 全局监听,离线唤醒。支持无接触地离线语音指令唤醒。
- 灵活可配置。支持定制机器人名字,支持选择语音识别和合成的插件。
- 智能家居。集成 HomeAssistant 插件,支持语音控制智能家电。
叮当的工作模式:
叮当被唤醒后,用户的语音指令先经过在线 STT 引擎进行 ASR 识别成文本,然后对识别到的文本进行技能匹配,交给适合处理该指令的技能插件去处理。插件处理完成后,得到的结果再交给 TTS 引擎合成成语音,播放给用户。
虽然一次交互可能包含多次网络请求,不过带来的好处是:每一个环节都可以被修改和定制。
详见 Demo
- Raspberry Pi 全系列,或其他 Linux 主机;
- USB 麦克风(建议选购麦克风阵列);
- 音箱(不建议蓝牙音箱);
- 至少 8G 的 Micro-SD 内存卡(刷镜像要求内存卡的实际容量至少 7.9 GB,否则可能刷不成功);
- 摄像头(可选,用于拍照)。
- 读卡器(可选,用于刷镜像进内存卡)。
如果不知道怎么选择,可以参考 硬件选购建议 。
推荐使用镜像安装的方式,像安装 Raspbian 系统一样,安装完后,只需要少量的配置即可立即使用叮当机器人。
镜像安装方法详见 镜像安装 。
刷完后记得在启动系统后进入 raspi-config
的高级选项中开启 Extend FileSystem,以让内存卡中的剩余空间合并到主分区中。
见 手动安装。
cd /home/pi/dingdang
git pull
请参考 配置 。
cd /home/pi/dingdang
python dingdang.py
建议在 tmux 或 supervisor 中执行。
运行过程中的 log 可以在启动后使用如下命令查阅:
tail -f temp/dingdang.log
如果希望运行过程中直接在屏幕中打印 log ,可以使用如下命令:
python dingdang.py --verbose
先使用 Ctrl-Z
退出当前会话,然后执行如下命令:
ps auwx | grep dingdang # 查看dingdang的PID号
kill -9 PID号
- 喜欢本项目请先打一颗星;
- 提 bug 请到 issue 页面;
- 要贡献代码,欢迎 fork 之后再提 pull request;
- 插件请提交到 dingdang-contrib ;
- 您的捐赠将鼓励我继续完善叮当,支持支付宝、微信等捐赠形式。捐赠的时候,请备注下您的昵称或姓名,我将会把您备注的信息添加到 捐赠者名单 中:
支付宝 | 微信支付 |
---|---|
- 叮当的主要开发者是 潘伟洲 。
- QQ 群:580447290(人数将满,为控制人数,需付费20元入群)
- 论坛:bbs.hahack.com
- 叮当的前身是 jasper-client。感谢 Shubhro Saha, Charles Marsh and Jan Holthuis 在 Jasper 项目上做出的优秀贡献;
- 微信机器人使用的是 liuwons 的 wxBot。
- 感谢果果 @qwedc001 帮忙搭建维护 论坛 。
- 感谢 @GoldJohnKing 设计了叮当的 logo 。
-
我能否更换成其他唤醒词,而不是叫“叮当”?
-
百度不太能够准确识别我的指令,怎么办?
- 参见 优化百度语音识别准确度 。
-
为什么取名为“叮当”?
- 我一开始有多个候选唤醒词,但我发现”叮当“在离线唤醒词中准确率最高。所以取名为“叮当”。
-
我想了解你的系统镜像都做了哪些定制?
-
pi 账户默认登录密码是啥?
- 与 Raspbian 系统默认密码相同,都是 raspberry 。
- 叮当只用作个人学习研究,如因使用叮当导致任何损失,本人概不负责。
- 本开源项目与腾讯叮当助手没有任何关系。