wukong-robot 是一个开源的中文语音对话机器人和智能音箱项目,旨在帮助开发者快速构建个性化的智能音箱。它支持中文语音识别、语音合成和多轮对话功能,集成了ChatGPT、百度、科大讯飞等技术。项目设计模块化,插件和功能可自由扩展,适合运行在树莓派、Mac 和 Linux 系统上。截至2023年3月,wukong-robot 已被安装超过1.3万次,唤醒次数超70万次。它还可能是首个支持脑机交互的开源智能音箱项目,适合科技爱好者和开发者定制个性化语音助手。
功能列表
- 支持中文语音识别,集成百度、科大讯飞、阿里、腾讯、OpenAI Whisper 等多种技术。
- 提供语音合成(TTS),支持 VITS 声音克隆、微软 Edge 等技术。
- 支持多轮对话,接入 ChatGPT、图灵机器人等在线对话系统。
- 模块化设计,功能插件独立维护,开发者可轻松开发和集成新插件。
- 支持离线唤醒,使用 Porcupine 和 Snowboy 引擎,以及脑机交互和行空板摇一摇等创新唤醒方式。
- 提供后台管理端,支持远程对话、配置修改和日志查看。
- 支持树莓派等硬件平台,安装简单,代码易于维护。
- 可对接智能家居系统,通过语音控制家电。
使用帮助
安装流程
wukong-robot 提供多种安装方式,适合树莓派、Mac 和 Linux 系统。以下以树莓派为例,介绍 Docker 安装流程:
- 准备环境:确保设备已安装 Docker。运行以下命令安装 Docker:
sudo apt update sudo apt install docker.io sudo systemctl start docker sudo systemctl enable docker
- 克隆安装脚本:从 GitHub 获取 wukong-robot 的树莓派安装脚本:
git clone https://github.com/wzpan/wukong-robot-pi-installer.git cd wukong-robot-pi-installer sudo chmod +x pi_installer
- 运行安装脚本:执行安装命令,脚本会自动拉取 wukong-robot 的 Docker 镜像并配置环境:
sudo ./pi_installer
- 配置环境:首次运行时,系统会提示是否在用户目录下创建配置文件。输入
y
创建~/.wukong/config.yml
。配置文件包含语音识别、合成和插件设置。建议参考默认配置文件default.yml
进行修改,但不要直接修改default.yml
,以免后续更新覆盖:cp static/default.yml ~/.wukong/config.yml nano ~/.wukong/config.yml
- 启动 wukong-robot:在项目根目录运行以下命令启动:
python3 wukong.py
- 安装插件:wukong-robot 支持第三方插件,需单独克隆插件仓库并安装依赖:
cd ~/.wukong git clone https://github.com/wzpan/wukong-contrib.git contrib pip3 install -r contrib/requirements.txt
主要功能操作
- 语音唤醒:默认唤醒词为
snowboy
,可通过配置文件自定义。唤醒后,系统进入录音模式,等待用户语音指令。例如,说“snowboy,打开灯”可触发智能家居插件。 - 语音交互流程:用户语音通过 ASR(语音识别)转为文本,经 NLU(自然语言理解)解析后匹配插件处理,最后通过 TTS(语音合成)输出结果。例如,说“今天天气如何”,天气插件会返回语音答复。
- 后台管理端:启动后,访问
http://<设备IP>:5001
进入管理界面,可远程发送指令、查看日志或修改配置。例如,调整唤醒词或切换语音识别引擎。 - 插件使用:插件如
Echo.py
可重复用户输入的文本,适合测试。安装第三方插件(如百度 FM 或天气插件)需在config.yml
中配置 API 密钥。例如,配置天气插件:weather: enable: true key: '心知天气 API Key'
特色功能操作
- ChatGPT 集成:通过配置
openai_api_key
接入 ChatGPT,支持多轮对话。需在config.yml
中设置:openai: api_key: 'your_openai_api_key' model: 'gpt-3.5-turbo'
使用时,说“snowboy,和我聊聊人工智能”,即可进入多轮对话模式。
- 脑机交互:wukong-robot 支持 Muse 脑机设备唤醒,需配置脑机设备并启用相关插件。运行后,通过脑电波信号触发唤醒,适合实验性应用。
- 智能家居控制:通过 HASS(Home Assistant)插件控制家电。配置
config.yml
中的 HASS 参数后,可用语音指令如“打开客厅灯”控制设备。
注意事项
- 确保麦克风和扬声器正常工作,测试录音和播放功能:
arecord -d 5 test.wav aplay test.wav
- 若使用树莓派,需正确配置声卡(如 ReSpeaker 2 Mics)。参考
.asoundrc
配置:pcm.!default { type asym playback.pcm { type plug slave.pcm "hw:1,0" } capture.pcm { type plug slave.pcm "hw:1,0" } } ctl.!default { type hw card 1 }
- 遇到问题可查看日志或访问 GitHub Issues 页面(如 #355、#353)获取社区帮助。
应用场景
- DIY 智能音箱
开发者可利用 wukong-robot 在树莓派上打造个性化智能音箱,定制唤醒词和语音交互功能,适合家庭使用或展示科技项目。 - 智能家居控制
通过接入 HASS 插件,wukong-robot 可语音控制灯、空调等设备,适合打造智能家居中枢。 - 教育与研究
学生和研究者可利用其模块化设计学习语音识别、NLP 和插件开发,适合 AI 教学或实验项目。 - 脑机交互实验
支持脑机唤醒功能,适合神经科学或人机交互研究者探索新型交互方式。
QA
- 如何解决“snowboy API 已关闭”问题?
Snowboy API 已于2020年12月停止服务,需切换至 Porcupine 或其他离线唤醒引擎。修改config.yml
中的唤醒引擎配置,推荐使用 Porcupine。 - 为何麦克风无法唤醒?
检查声卡配置是否正确,运行arecord -l
确认麦克风设备。确保.asoundrc
配置正确,或参考 GitHub Issue #57 调整 ReSpeaker 设置。 - 如何添加新插件?
克隆wukong-contrib
仓库,安装依赖后将插件复制到~/.wukong/contrib
目录,并在config.yml
中启用。例如,添加百度 FM 插件需配置baidufm
参数。 - 如何保护 API 密钥安全?
不要将openai_api_key
等敏感信息直接打印或写入日志。设置config.yml
文件权限为仅当前用户可读(chmod 600 config.yml
)。参考 Issue #317 修复潜在安全问题。