Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/wangzongming/esp-ai

The simplest and most cost-effective AI integration solution, enabling any device to achieve intelligent conversation functionality (based on ESP development boards). If you like this project, please give it a Star! | 最简单、最低成本的AI接入方案,让任何物品都能实现智能对话功能(基于ESP开发板)。喜欢本项目的话点个 Star 吧,您的一个 Star 对目前的仓库发展非常重要
https://github.com/wangzongming/esp-ai

aiot arduino arduino-llm esp-ai esp32 esp32-ai esp32-idf esp32-llm esp8266 iat llm rag tts

Last synced: about 1 month ago
JSON representation

The simplest and most cost-effective AI integration solution, enabling any device to achieve intelligent conversation functionality (based on ESP development boards). If you like this project, please give it a Star! | 最简单、最低成本的AI接入方案,让任何物品都能实现智能对话功能(基于ESP开发板)。喜欢本项目的话点个 Star 吧,您的一个 Star 对目前的仓库发展非常重要

Awesome Lists containing this project

README

        


![logo.png](https://xiaomingio.top/esp-ai/images/logo.png)

ESP-AI

硬件接入AI最简单、最低成本的方案
The simplest and lowest cost solution for any item to access AI

[![NPM version][npm-image]][npm-url]
[![NPM downloads][download-image]][download-url]
[![][bundlephobia-image]][bundlephobia-url]

[Changelog](https://espai.fun/change-logs.html) ·
[中文文档](https://espai.fun/) ·
[English Docs](https://espai.fun/en)

![](https://raw.githubusercontent.com/andreasbm/readme/master/assets/lines/rainbow.png)

[npm-image]: https://img.shields.io/npm/v/esp-ai.svg?style=flat-square
[npm-url]: https://npmjs.org/package/esp-ai
[download-url]: https://npmjs.org/package/esp-ai
[bundlephobia-image]: https://badgen.net/bundlephobia/minzip/esp-ai?style=flat-square
[download-image]: https://img.shields.io/npm/dm/esp-ai.svg?style=flat
[bundlephobia-url]: https://bundlephobia.com/package/esp-ai

![logo.png](https://xiaomingio.top/esp-ai/images/ESP-AI.png)


👉简体中文

> Provides a complete AI dialogue solution for your development board, including but not limited to the `IAT(ASR)+LLM+TTS` integration solution for the `ESP32` series development boards. It is injected into the project as a dependency without affecting existing projects.

For developing the dialogue functionality of robots, you only need to prepare the `IAT(ASR)`, `LLM`, and `TTS` services, and leave the rest to `ESP-AI`.

The server-side code of this project is based on `Node.js`, and the hardware code is based on `Arduino`/`IDF`.

Open source is not easy, click the `Star` button in the upper right corner to show your support~

# 🖥 Website

- [中文网站](https://espai.fun/)
- [English](https://espai.fun/en)
# ✨ Features

- ✔️ Customizable offline wake words with multiple built-in wake-up methods (voice, button, serial port, Tianwen ASRPro)
- ✔️ Complete conversation chain: IAT (ASR) ➡️ LLM/RAG ➡️ TTS
- ✔️ Fast response algorithms for TTS/LLM, designed to balance service cost while providing the quickest response time
- ✔️ Supports conversation interruption
- ✔️ Recognizes user commands (appliance control, singing, etc.) and can dynamically respond based on context
- ✔️ Configurable
- ✔️ Plugin-based, allowing integration with any LLM/TTS/IAT using plugins
- ✔️ One-to-many relationship between service and clients, with independent configuration for each client (hardware)
- ✔️ Connection supports authentication
- ✔️ Full-chain streaming data interaction
- ✔️ Developer platform offers: free services, visual configuration, etc.
- ✔️ Client configuration webpage provided
- ✔️ Easily handles high concurrency scenarios (requires Nginx for load balancing)
- ✔️ Ready to use out of the box

# 🧐 Next Steps

- [ ] 🤔 Improve accuracy of built-in offline wake-up (currently recommended to use Tianwen ASRPro)
- [ ] 🤔 Incorporate AI into user intent inference (e.g., "Turn off the light quickly" and "Turn on the light quickly" will both be recognized as "Turn on the light" command)
- [ ] 🤔 Online wake word generation
- [ ] 🤔 Client OTA support
- [ ] 🤔 Develop plugins in other languages (to avoid relying solely on Node.js for plugin development)
- [ ] 🤔 Provide a dedicated development board (to avoid current complex wiring)

# 📦 Install

### Server
```bash
docker run -itd -p 8080:8080 -v /esp-ai-server/index.js:/server/index.js --name esp-ai-server registry.cn-shanghai.aliyuncs.com/xiaomingio/esp-ai:1.0.0
```
### Client
Download the dependency on the release page and burn it to the development board, see details: [Client Install](https://espai.fun/start.html#%E5%AE%A2%E6%88%B7%E7%AB%AF)

# 🔨 Inject Soul into Your Robot with Just a Few Lines of Code

Below are the `Node.js` and `Arduino` codes you need to write if you only require dialogue functionality.


# 📜 Commercial Use

For commercial use, please purchase a commercial license. For more details, see [Commercial License](./COMMERCIAL_LICENSE.md).
The commercial license is granted per unit of **Company Name + Product Name + Version**, for example: "Shenzhen XXX Company Smart Doll V1.0".
The commercial license fee for a single product version is 10,000 RMB, payable in a one-time payment.

License inquiry/report address: [https://espai.fun/commercial-license.html](https://espai.fun/commercial-license.html).

# 🏪 Discussion Group
QQ Discussion Group: 854445223

# 🎥 Case Study Video
[bilibili](https://www.bilibili.com/video/BV1gE421w7Dw/?share_source=copy_web&vd_source=041c9610a29750f498de1bafe953086b)

## 🤝 Contributing [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)

Let's build a better `esp-ai` together.

We warmly invite contributions from everyone. Feel free to share your ideas through [Pull Requests](https://github.com/wangzongming/esp-ai/pulls) or [GitHub Issues](https://github.com/wangzongming/esp-ai//issues).





Top Contributors of wangzongming/esp-ai - Last 28 days








Performance Stats of wangzongming/esp-ai - Last 28 days






Active Contributors of wangzongming/esp-ai - Last 28 days


# 🌍 Star geographical distribution



Star Geographical Distribution of wangzongming/esp-ai

# quote
If this project has helped your research, please cite us:

@software{ESP-AI,
title = {{ESP-AI}},
author = {小明IO},
year = 2024,
journal = {GitHub repository},
publisher = {GitHub},
howpublished = {\url{https://github.com/wangzongming/esp-ai}}
}