wukong-robot
扫码查看

一个可高度定制的中文语音对话机器人项目

wukong-robot

综合介绍

wukong-robot 是一个为创客(Maker)和极客(Hacker)设计的开源中文语音对话机器人项目。它允许用户利用树莓派等硬件,快速构建一个个性化的智能音箱。这个项目的核心在于其高度的模块化和灵活性,用户可以自由选择和组合不同的功能插件、语音识别(ASR)引擎和语音合成(TTS)技术。它支持包括百度、阿里、腾讯、科大讯飞在内的多种中文语音服务,并集成了ChatGPT等先进的对话模型,实现了流畅的多轮对话。wukong-robot 的独特之处在于它支持离线唤醒,并且是首个支持脑机接口唤醒的开源智能音箱项目。项目还提供了一个配套的Web后台,方便用户进行远程控制、配置修改和日志查看。通过开放的API,开发者可以轻松地将wukong-robot与智能家居设备(如HomeAssistant)或其他应用进行联动,实现更丰富的应用场景。

功能列表

  • 高度模块化: 功能插件、语音识别、语音合成和对话机器人各自独立,便于开发者定制和扩展。
  • 丰富的中文语音支持: 集成了百度、科大讯f讯、阿里、腾讯、OpenAI Whisper、微软Edge等多种中文语音识别和合成技术。
  • 强大的对话能力: 支持接入ChatGPT、图灵机器人等在线对话模型,也支持本地对话机器人。
  • 离线语音唤醒: 支持Snowboy和Porcupine两套离线唤醒引擎,保证了低延迟和隐私性,同时支持脑机等多种新颖的唤醒方式。
  • 灵活的配置选项: 用户可以自定义机器人的名字、选择不同的语音技术插件。
  • 智能家居集成: 支持通过MQTT、HomeAssistant等协议与智能家居设备联动,可用语音控制家电。
  • Web后台管理: 提供配套后台,用户可通过网页远程操控机器人、修改配置和查看运行日志。
  • 开放API接口: 后台开放Web API,允许开发者通过Restful方式进行调用,扩展更多功能。
  • 跨平台支持: 能在macOS、多种Linux发行版(如Ubuntu、Raspbian)以及通过WSL在Windows上运行。

使用帮助

wukong-robot的设计目标是让用户能够轻松上手,通过简单的步骤打造属于自己的智能音箱。以下是详细的安装和使用流程。

环境要求

在开始安装前,请确保你的设备满足以下条件:

  1. Python版本: 需要 Python 3.7 或更高版本,但不支持 Python 3.10 及以上版本。
  2. 操作系统与硬件:
    • 搭载Intel芯片的Mac(不支持M1芯片)
    • 64位的Ubuntu 12.04 / 14.04
    • 全系列树莓派(Raspbian系统)
    • 装有WSL(Windows Subsystem for Linux)的Windows系统

安装流程

wukong-robot的安装过程已经大大简化。

第一步:克隆项目代码打开终端,进入你希望存放项目的目录,然后执行以下git命令从GitHub克隆项目:

git clone https://github.com/wzpan/wukong-robot.git

第二步:进入项目目录

cd wukong-robot

第三步:安装依赖项目所需的Python库都记录在requirements.txt文件中。执行以下命令进行安装:

pip3 install -r requirements.txt

如果在此过程中遇到依赖库安装失败的问题,通常是由于缺少系统级的依赖包。例如,在Debian系的Linux(如Raspbian和Ubuntu)上,你可能需要先安装以下这些包:

sudo apt-get install portaudio19-dev libatlas-base-dev libsm6 libpangocairo-2.0-0 libpangox-1.0-0 libpango-1.0-0 libpangoft2-1.0-0 libqtgui4 libqtwebkit4 libqt4-test

配置机器人

配置是使用wukong-robot最关键的一步。所有配置都通过一个名为config.yml的文件进行管理。

  1. 生成配置文件:首次运行wukong-robot时,系统会提示你是否需要在用户主目录下创建一个配置文件。输入 y 并按回车,系统会自动将默认的default.yml模板复制到~/.wukong/config.yml。不建议直接修改default.yml,因为这会给后续的项目升级带来冲突。
  2. 修改配置文件:使用你喜欢的文本编辑器打开~/.wukong/config.yml文件。文件内有详细的注释,说明了每个配置项的作用。以下是一些核心配置:
    • 定制机器人名字:在robot部分,你可以修改name字段来给你的机器人取一个新名字,例如“小明同学”。你还可以设置hotword字段,这是唤醒机器人的关键词,默认为“悟空悟空”或“snowboy”。
      robot:
      name: '悟空'
      hotword: '悟空悟空'
      
    • 配置语音服务 (ASR & TTS):这是最核心的配置。你需要在stt(语音识别)和tts(语音合成)部分选择你希望使用的服务商。例如,如果你想使用百度的语音服务,需要:
      1. 前往百度AI开放平台注册账号,创建应用,并获取APP_IDAPI_KEY, 和 SECRET_KEY
      2. 将获取到的信息填入config.ymlbaidu_yuyin部分。
      3. stttts字段中,将值改为'baidu'
      # 语音识别
      stt: 'baidu'
      # 语音合成
      tts: 'baidu'
      # 百度语音服务配置
      baidu_yuyin:
      # 你的 App ID
      app_id: ''
      # 你的 API Key
      api_key: ''
      # 你的 Secret Key
      secret_key: ''
      ```        **提示**: 强烈建议注册并使用自己的API信息,而不是用默认配置,因为共享的API有使用频率限制,会影响体验。
      
    • 配置对话机器人:在conversation部分,你可以配置对话逻辑。默认接入了图灵机器人,你也可以配置为使用ChatGPT等更强大的模型。要使用ChatGPT,你需要:
      1. 获取OpenAI的API Key。
      2. openai配置部分填入你的api_key
      3. conversationrobot字段设置为'openai'
      conversation:
      robot: 'openai' # 或者 'tuling'
      openai:
      api_key: 'sk-xxxxxxxxxx'
      model: 'gpt-3.5-turbo'
      

运行和使用

完成配置后,你就可以启动机器人了。

  1. 启动程序:在wukong-robot项目根目录下,执行以下命令:
    python3 wukong.py
    

    为保证程序在后台持续运行,建议在tmuxsupervisor中执行该命令。

  2. 唤醒和交互:程序启动后,它会进入待机监听状态。对着麦克风说出你设定的唤醒词(例如“悟空悟空”),当听到“我在”的回应后,就可以开始和它对话了。
  3. 使用后台管理端:wukong-robot在运行时会启动一个Web后台服务。你可以在浏览器中访问http://<你的设备IP>:5001来打开管理界面。
    • 默认地址http://localhost:5001
    • 默认账户wukong
    • 默认密码wukong@2019注意: 为了安全,请务必在config.yml中修改server部分的userpassword。通过后台,你可以:
    • 远程和机器人进行文本对话。
    • 在线修改配置并重启机器人。
    • 实时查看运行日志,方便排查问题。

项目升级

如果项目发布了新版本,你可以通过以下简单命令进行升级:

python3 wukong.py update

如果自动升级失败,可以尝试进入项目目录手动执行git pullpip3 install -r requirements.txt来解决。

应用场景

  1. 个性化智能音箱用户可以根据自己的兴趣和需求,定制一个独一无二的智能音箱。例如,可以更改唤醒词、选择喜欢的声音(通过不同的TTS服务实现),并编写自定义技能插件来满足特定需求,比如查询特定信息、控制个人设备等。
  2. 智能家居中控通过与HomeAssistant、MQTT等智能家居平台的集成,wukong-robot可以成为家庭的语音控制中心。用户可以通过语音指令控制灯光、窗帘、空调等智能设备,实现全屋智能化的语音联动。
  3. 编程学习与实践平台对于编程爱好者和学生来说,wukong-robot是一个绝佳的学习平台。通过阅读和修改其源代码,可以深入理解语音识别、自然语言处理、API调用等技术的实际应用。开发自己的技能插件也是一个很好的编程练习。
  4. 特定场景的语音助手wukong-robot可以被部署在特定场景中,作为一个高度定制化的语音助手。例如,在办公室,它可以被定制为查询内部知识库、预定会议室的助手;在实验室,它可以用来记录实验数据或控制实验设备。

QA

  1. 问:wukong-robot支持哪些硬件设备?答:它支持全系列的树莓派、装有64位Ubuntu的电脑、Intel芯片的Mac以及通过WSL在Windows上运行。基本上,只要能满足Python环境和系统依赖,大部分Linux设备都可以运行。
  2. 问:我是否需要一直连接互联网才能使用?答:部分功能需要。唤醒词识别是在本地离线完成的,但语音识别(ASR)、语音合成(TTS)以及对话机器人(如ChatGPT)通常需要调用云服务API,因此需要连接互联网。如果你配置了本地的对话机器人和TTS服务,则可以在局域网内使用。
  3. 问:开发一个新的技能插件复杂吗?答:不复杂。wukong-robot的插件机制设计得非常简洁。开发者只需要继承一个基类,定义关键词和处理逻辑即可。官方文档提供了详细的插件开发教程,从简单的“hello world”到查询天气、播放音乐等复杂功能都有实例。
  4. 问:为什么我说话机器人没有反应?答:可能的原因有几个:首先,检查麦克风硬件是否正常工作并被系统正确识别;其次,确认config.yml中的配置是否正确,特别是语音服务的API Key等信息;最后,可以通过后台管理界面的日志功能查看程序运行中是否有报错信息,以便定位问题。
微信微博Email复制链接