🏆 加入TuyaOpen AI硬件大赛!100天打造未来AI爆款硬件了解更多 →
跳到主要内容

聊天机器人

your_chat_bot 是基于 Tuya.AI 开源的大模型智能聊天机器人。通过麦克风采集语音,经语音识别处理后,实现对话交流、互动响应及调侃功能,同时可在屏幕上实时显示聊天内容。

功能介绍

  • 支持涂鸦语音智能体,支持四种聊天模式:

    • 长按对话模式:用户需长按按键以启动语音输入,松开按键即结束语音输入。

    • 按键对话模式:设备上电默认进入待机状态,用户短按一下按键后设备进入聆听状态,此时用户可进行语音输入,与智能体对话。

    • 唤醒对话模式:用户通过唤醒词将设备唤醒后,可进行单次对话,类似与音箱对话。

    • 随意对话模式:用户通过唤醒词将设备唤醒后,可进行连续对话。若唤醒后没有对话,30 秒后设备会再次进入待机状态,下次对话前需要再次唤醒。

  • 支持通过按键操作在本地打断当前对话。

  • 支持各种状态提示音,如配网、离线、唤醒等。

  • 支持各类显示屏及多套 UI 界面:

    • 微信风格

    • 聊天机器人

    • 滑动字幕(适合 OLED 小屏)

  • 支持通过 App 调节设备音量。

  • 连续进行三次上下电操作,可使设备进入配网模式。

  • 支持 App 端实时切换 AI 智能体角色。

硬件支持列表

Board配置文件UIPID
T5AI_BOARD 开发板 + 3.5 寸 RGB565 LCD 方屏(带触摸,LCD 型号:ILI9488,触摸面板:GT115)TUYA_T5AI_BOARD_LCD_3.5.config微信风格alon7qgyjj8yus74
DNESP32S3 开发板(自带 320*340 SPI ST7789 LCD 方屏)DNESP32S3.config微信风格scig7pauzzid3w4b
微雪 ESP32S3 开发板(自带 364*448 SPI sh8601 LCD 方屏)WAVESHARE_ESP32S3_TOUCH_AMOLED_1_8.config微信风格lased5audtah8wcp
T5AI_EVB 开发板(小白盒,自带 2.4 寸 SPI565 ST7789 方屏)TUYA_T5AI_EVB.config聊天机器人r3ulobrs5nwreguj
T5AI_MOJI_1_28 开发板(自带 1.28 寸 SPI565 GC9a01 圆屏)T5AI_MOJI_1.28.config聊天机器人kf8wauubey0doaiz
T5AI_MINI 开发板 + 1.3 寸 SPI565 ST7789 LCD 方屏TUYA_T5AI_MINI_LCD_1.3.config聊天机器人8btswykdiium7t8k
DNESP32S3_BOX 开发板(自带 320*340 MCU8080 ST7789 LCD 方屏)DNESP32S3_BOX.config聊天机器人znw8prbujidtzavd
ESP32S3 面包板(自带 128*32 I2C SSD1306 OLED 屏)ESP32S3_BREAD_COMPACT_WIFI.config滑动字幕j1y437proohznfbs
XINGXZHI_ESP32S3_CUBE 开发板(自带 128*64 I2C SSD1306 OLED 屏)XINGZHI_ESP32S3_CUBE_0_96OLED_WIFI.config滑动字幕uyidyzglm2m1bpcl

文件结构

项目根目录

.
├── app_default.config    # 应用默认配置文件
├── assets                # 静态资源目录
├── CMakeLists.txt        # CMake 构建脚本
├── config                # 硬件配置目录
├── include               # 头文件存放目录
├── Kconfig               # 项目配置文件
├── README_zh.md          # 中文说明文档
├── README.md             # 英文说明文档
├── script                # 脚本目录
└── src                   # 源码目录

资源目录

├── assets                 # 静态资源目录
│   ├── lang_config.h      # 多语言配置头文件
│   └── zh-CN              # 中文语言包
│       └── language.json  # 中文文本资源

硬件配置目录

config 目录下的文件为适配各类开发板的配置文件。若您已基于本应用工程完成了新板的适配,可在该目录下新增相应的适配配置文件。

├── config                 # 硬件配置目录
│   ├── DNESP32S3_BOX.config
│   ├── DNESP32S3.config
│   ├── ESP32S3_BREAD_COMPACT_WIFI.config
│   ├── T5AI_MOJI_1.28.config
│   ├── TUYA_T5AI_BOARD_EYES.config
│   ├── TUYA_T5AI_BOARD_LCD_3.5.config
│   ├── TUYA_T5AI_EVB.config
│   ├── TUYA_T5AI_MINI_LCD_1.3.config
│   ├── WAVESHARE_ESP32S3_TOUCH_AMOLED_1_8.config
│   └── XINGZHI_ESP32S3_CUBE_0_96OLED_WIFI.config

辅助工具与脚本目录

├── script                      # 脚本目录
│   └── gen_lang.py             # 多语言资源生成脚本

头文件目录

├── include
│   ├── app_chat_bot.h       # 聊天机器人功能头文件
│   ├── app_display.h        # 显示模块头文件
│   ├── app_system_info.h    # 系统信息(如网络状态、内存等)
│   ├── reset_netcfg.h       # 设备上下电重置功能头文件
│   └── tuya_config.h        # 设备授权码等信息配置

源码目录

└── src
    ├── app_chat_bot.c      # 聊天机器人功能实现
    ├── app_system_info.c   # 系统信息相关功能
    ├── display             # 显示界面模块
    ├── reset_netcfg.c      # 设备上下电重置功能
    └── tuya_main.c         # 应用入口

显示模块

├── display                 # 显示界面模块
│   ├── app_display.c       # 显示模块主控制文件
│   ├── CMakeLists.txt      # 显示模块的 CMake 配置
│   ├── font                # 字体资源目录
│   ├── image               # 图片资源目录
│   ├── Kconfig             # 显示相关的配置选项
│   ├── tuya_lvgl.c         # LVGL 与应用的适配文件
│   ├── tuya_lvgl.h         # LVGL 与应用的适配头文件
│   └── ui                  # UI 界面实现
│       ├── ui_chatbot.c    # 聊天机器人界面
│       ├── ui_display.h    # UI 模块公共头文件
│       ├── ui_oled.c       # OLED 滚动字幕界面
│       └── ui_wechat.c     # 微信风格对话界面

应用配置

  • 产品 PID

    配置宏类型说明
    TUYA_PRODUCT_KEY字符串产品的标识 ID,绑定了涂鸦 AI 智能体
  • 选择对话模式

    配置宏类型说明
    ENABLE_CHAT_MODE_KEY_PRESS_HOLD_SINGEL布尔长按对话模式
    ENABLE_CHAT_MODE_KEY_TRIG_VAD_FREE布尔按键对话模式
    ENABLE_CHAT_MODE_ASR_WAKEUP_SINGEL布尔唤醒对话模式
    ENABLE_CHAT_MODE_ASR_WAKEUP_FREE布尔随意对话模式
  • 选择唤醒词

    该配置只会在对话模式选择 唤醒对话随意对话 两种模式下才会出现。

    配置宏类型说明
    ENABLE_WAKEUP_KEYWORD_NIHAO_TUYA布尔唤醒词为 “你好涂鸦”
    ENABLE_WAKEUP_KEYWORD_NIHAO_XIAOZHI布尔唤醒词为 “你好小智”
    ENABLE_WAKEUP_KEYWORD_XIAOZHI_TONGXUE布尔唤醒词为 “小智同学”
    ENABLE_WAKEUP_KEYWORD_XIAOZHI_GUANJIA布尔唤醒词为 “小智管家”

工作流程

该工程依赖应用组件 ai_audio ,该组件主要实现了采集音频、播放音频、创建云端 AI 会话等功能。

  • 长按对话模式

  • 按键对话模式

  • 唤醒对话模式

  • 随意对话模式

编译工程

  1. 安装与配置前置环境,详细请参考 快速入门

  2. 从 TuyaOpen 的根目录切换至应用目录。

    cd apps/tuya.ai/your_chat_bot
    
  3. 选择对应的开发板配置。

    tos.py config choice
    
  4. 编译工程。

    tos.py build
    

适配新开发板

外设要求列表

TuyaOpen 支持的外设列表可参考 外设驱动列表。新增的开发板必须具备列表中所列的 必要 外设驱动。

外设外设组件说明是否必要
音频驱动audio_codecs支持采集 PCM 格式的音频数据,以及播放 MP3 格式的语音(参数为:16 位位宽、16 KHz 采样率、单声道)必要
显示驱动DisplayLCD 屏/OLED 屏必要
指示灯驱动LED指示设备当前是否处于监听等状态非必要
按键驱动Button在按键对话模式下,可通过按键打断当前对话并开启新的对话非必要

适配开发板

关于如何新增和适配开发板,请参考 适配新的板级驱动 Board

开发板注册外设驱动硬件的统一入口为 board_register_hardware,该接口的实现是放在板级的文件夹中。

如需修改驱动的硬件配置(如修改引脚、芯片类型等),请在目标开发板的文件夹(boards/目标开发环境/目标开发板,如 boards/T5AI/TUYA_T5AI_BOARD )中进行修改。