Skip to content

Releases: wangzongming/esp-ai

Server@2.86.53 - Client@2.95.56

18 Aug 13:59

Choose a tag to compare

Server - Nodejs

  • ✨ 新增 ASR 插件新增 getClientAudioConfig 用于获取客户端传入的音频配置,详情见文档。
  • ✨ 新增 支持传入文本来进行对话,详情见:传入文本对话
  • ✨ 新增 music_gen_ing 的指令回调,用于标识开始创作音乐
  • ✨ 新增 服务请求中可以增加 AUDIO_BUFFER_SIZELITTLE_ROM 用于告诉服务端设备的能力
  • ✨ 新增 服务请求中可以增加 spk_sample_ratespk_channelsspk_formatspk_bitrate 用于控制服务器返回的音频采样率 、声道数量 、 音频格式 、 音频比特率
  • 💄 优化 LLM 提示词
  • 💄 优化 流量控制逻辑优化,并且支持客户端传入缓冲区大小。
  • 💄 优化 VAD 机制优化
  • 💄 优化 鉴权失败机制
  • 💄 优化 文本间隔的流畅性
  • 💄 优化 TTS 插件可以返回任意格式或者采样率的音频流, 框架内部增加 codec
  • 🐞 修复 文字和表情下发不同步的问题
  • 🐞 修复 部分其他问题

Install

npm i esp-ai@2.86.53

docker Install

docker exec -it esp-ai-server  npm i esp-ai@2.86.53

Client - Arduino

  • ✨ 新增 esp32c3开发板兼容
  • ✨ 新增 灯珠数量设置
  • ✨ 新增 会话监听 onSessionStatus 形参增加 session_end 状态。
  • ✨ 新增 onVolumeCb 回调函数用于监听音量变化。
  • 💄 优化 内部音频文件全部改为 16khz 的。
  • 💄 优化 配网方式默认使用蓝牙配网。
  • 💄 优化 动态内存占用情况进行深度优化
  • 💄 优化 小程序配网时的提示语修改为“打开微信小程序配网”
  • 💄 优化 音量变化时发出提示音
  • 🤔 调整 蓝牙配网只使用 ble 配网。
  • 🤔 调整 打断会话时不回复问候语,这样响应会快一些。
  • 🤔⚠️调整 全局变量 esp_ai_pixels 改为指针,使用时请使用 esp_ai_pixels->xxx
  • 🤔⚠️调整 ESP_AI_wifi_config.html_str 改为const char*类型,避免大量内存被占用。
// 旧版
char html_str[] = "<html><body>配网页面</body></html>";

// 新版
const char html_str[] PROGMEM = R"rawliteral( 
xxx
)rawliteral";
  • 🤔⚠️调整 所有回调函数的形参改为 const String& 类型,在提高数据安全性的同时避免大量内存被占用。
// 旧版
void on_command( String command_id,  String data)
{ 
    // ... 
}

// 新版
void on_command(const String &command_id, const String &data)
{ 
    // ... 
}
  • 🐞 修复 聆听指示灯有时候过快亮起来
  • 🐞 修复 网络连接成功回调执行延迟比较大

Install
esp-ai-2.95.56.zip

Server@2.75.51 - Client@2.86.49

14 Jun 03:31

Choose a tag to compare

Server@2.75.51 - Client@2.86.49

Server - Nodejs

💄 优化 VAD 结束时间优化
🐞 修复 有些情况下 .stop() 方法会导致设备会一直处于唤醒中,并且增加 stop_all 参数 用于打断所有播放。

Install

npm i esp-ai@2.75.51

docker Install

docker exec -it esp-ai-server  npm i esp-ai@2.75.51

Client - Arduino

💄 优化 对部分服务指令增加响应帧。
💄 优化 蓝牙配网数据采用分段传输。

Install

esp-ai-2.86.49.zip

Server@2.74.50 - Client@2.84.49

04 Jun 14:27

Choose a tag to compare

2025/6/4 Server@2.74.50 - Client@2.84.49

Server - Nodejs

  • 💄 优化 LLM 提示词,避免有些时候让他讲故事等场景它不会真的去讲。

Install

npm i esp-ai@2.74.50

docker Install

docker exec -it esp-ai-server  npm i esp-ai@2.74.50

Client - Arduino

  • 🐞 修复 蓝牙配网硬件传入的数据不能被正常解析。
  • 🐞 修复 多个网络记忆逻辑存在些许问题。
  • 🐞 修复 修复非常见位数的麦克风无法收音。
  • 🐞 修复 .setLocalData 方法设置的数据,如果存在相同子串会导致冲突。
  • 🐞 修复 .clearData 不会清除自定义数据的问题。
  • 🐞 修复 连接自定义服务器失败的问题。

Install
esp-ai.zip

Server@2.74.49 - Client@2.84.43

01 Jun 07:39

Choose a tag to compare

2025/6/1 Server@2.74.49 - Client@2.84.43

Server - Nodejs

  • ✨ 新增 await awaitPlayerDone(...) 方法用于等待音频播放完毕。
  • ✨ 新增 isSpeaking(...) 方法用于获取某个设备是否正在播放音频。
  • ✨ 新增 api_keygen_client_config(...).api_key 配置,用于配置全局/用户的ESP-AI的秘钥,在一些需要进行AI服务时使用。
  • ✨ 新增 vad_first(首次等待用户说话时间)、vad_course(对话过程中等待用户说话时间) 用于全局配置静默时间。
  • ✨ 新增 LLM 插件的形参中增加 text_is_over 用于标识大语言模式是否已经推理完毕。
  • ✨ 新增 LEDC 控制指令配置,用于配置舵机等传感器的控制。
  • ⚠️ 新增 music_server 形参中增加 signal 信号,用于判断用户是否已经打断了对话,详情见文档。
  • ⚠️ 新增 IAT 插件的形参中增加 onIATText 用于告诉框架当前 ASR 识别的内容。(破坏性更新,需要所有IAT插件跟随更改,必须增加调用这个钩子。)
  • 🤔 ⚠️ 调整 删除 .isPlaying() 使用 .isSpeaking() 替换。
  • 💄 优化 通信协议增加 流量控制 机制,防止硬件能力不足。
  • 💄 优化 用户指令执行于回复更自然流畅。
  • 💄 优化 用户指令在不设置 message 将由 LLM 进行推理回答。
  • 💄 优化 重构音频数据帧组成。
  • 🐞 修复 命令执行后就退下了,正常应该继续聆听用户说话。
  • 🐞 修复 歌曲创作的问题。
  • 🐞 修复 有时候错误提示 设备未连接, 将忽略本次唤醒
  • 🐞 修复 部分其他问题。
  • 🐞 修复 LLM 句子最后面如果是一个括号,可能会被错误的单独拆分。
  • 🐞 修复 修复 ~... 和一些特殊的结束符号结束的句子没有被正确结束。
  • 🐞 修复 休息提示语有时候不对。

Client - Arduino

  • ✨ 新增 .playBuiltinAudio(...) 方法用于播放 MP3 音频文件。
  • ✨ 新增 .awaitPlayerDone() 方法用于等待音频播放完毕。
  • ✨ 新增 .isSpeaking() 方法用于获取是否正在播放音频。
  • ✨ 新增 ESP_AI_i2s_config_mic.bits_per_sample.channel_format 用于匹配各种不同型号的I2S麦克风和开发板。
  • ✨ 新增 情绪监听中增加 肯定否定 情绪。
  • ✨ 新增 .delAllTask() 删除所有任务、.suspendAllTask() 挂起所有任务、.resumeAllTask() 恢复所有任务。
  • ✨ 新增 支持记忆5个WIFI
  • ✨ 新增 LEDC 控制方法,用于配置舵机等传感器的控制。
  • ✨ 新增 蓝牙配网实现,在 wifi_config 中配置 way 即可,详情见客户端配置文档。
  • 🤔 调整 唤醒状态下不可重复唤醒,避免一些的奇怪的问题。
  • 🤔 调整 arduino-audio-tools 依赖降级到版本 v1.0.2
  • 🤔 ⚠️ 调整 硬件端删除所有 VAD 判断,迁移到服务端处理。删除 wakeup_conifg.vad_firstwakeup_conifg.vad_course 配置。
  • 🤔 ⚠️ 调整 删除 edge_impulse 唤醒方案(原因:精度难以达到理想效果)
  • 🤔 ⚠️ 调整 上报的音频流采用 PCM 格式,避免编码导致的延时(VAD放置到服务端需要实时性优先)。
  • 💄 优化 聆听状态不应该被打断,否则会出现一些不可控的问题。
  • 💄 优化 打断会话流畅度优化。
  • 💄 优化 对话流畅度优化。
  • 💄 优化 音频编解码代码大量优化。
  • 💄 优化 内置的所有mp3提示语进行压缩。
  • 🐞 修复 设备未初始化完毕和热点启动状态下指示灯没有颜色,以及部分情况下AI说话中的指示灯会提前结束的问题。

注意

请自行下 \client\libraries\libraries.zip 放置到依赖目录

Install
esp-ai-2.84.43.zip

Server@2.61.42 - Client@2.65.42

30 Mar 14:06

Choose a tag to compare

2025/3/30 Server@2.61.42 - Client@2.65.42

Server

  • 🆕 新增 .onEmotion() 方法,用于在硬件监听AI的情绪
  • 🤔 调整 使用开放平台服务的地方改用备用域名
  • 🤔 调整 文件注释信息改为 MIT

Client

  • 🆕 新增 .onEmotion() 方法,用于在硬件监听AI的情绪
  • 🤔 调整 使用开放平台服务的地方改用备用域名
  • 🤔 调整 文件注释信息改为 MIT

esp-ai-2.65.42.zip

Server@2.58.42 - Client@2.62.41

14 Mar 09:35

Choose a tag to compare

2025/3/14 Server@2.58.42 - Client@2.62.41

Server

  • 🐞 修复 官方 ASR 无法使用的问题

Client

未做升级

Server@2.58.41 - Client@2.62.41

12 Mar 02:40

Choose a tag to compare

2025/3/12 Server@2.58.41 - Client@2.62.41

Server

  • 🆕 新增 .reCache 方法,用于在服务端清除客户端音频缓存,功能同客户端的 .reCache
  • 🤔 调整 .updateClientConfig 方法将不在清楚客户段音频缓存,需要手动调用 .reCache 方法。
  • 💄 优化 语句拆分优化

Client

未做升级

Server@2.58.38 - Client@2.62.40

10 Mar 07:53

Choose a tag to compare

2025/3/10 Server@2.58.38 - Client@2.62.40

Server

  • 🐞 修复 小数点语句拆分错误

Client

  • 🆕 新增 onBeginCb 用打断程序执行,如电量不足时,应该提示用户充电,而不是继续去连接 wifi
  • 🤔 调整 用户未说话时将默认等待 5s 改为默认等待 10s
  • 💄 优化 arduino-audio-tools 依赖升级到最新版本
  • 🐞 修复 有时会话打断会重启
  • 🐞 修复 有时会一直处于ai说话中

Install
esp-ai-2.62.40.zip

arduino-audio-tools.zip

Server@2.58.35 - Client@2.59.37

24 Feb 15:09

Choose a tag to compare

2025/2/24 Server@2.58.35 - Client@2.59.37

Server

Client

  • 🤔 调整 不管是何种情况下的语音,只要播放完毕都会执行 onSessionStatus 回调
  • 🐞 修复 网络出问题时语音识别不会主动结束

Install

esp-ai-2.59.37.zip

Server@2.58.37 - Client@2.58.36

20 Feb 02:01

Choose a tag to compare

2025/2/20 Server@2.58.35 - Client@2.58.36

Server

  • 🆕 新增 插件形参中增加 session_id 会话ID
  • 🤔⚠️ 调整 指令依然可以设置 message ,会优先使用message 进行回复
  • 🐞 修复 长时间不说话设备自动休息时没有说休息提示

Client

  • 🆕 新增 指示灯引脚改为配置方式
  • 🆕 新增 插件形参中增加 session_id 会话ID

Install
esp-ai-2.58.36.zip