Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -147,14 +147,16 @@ server:

## 部署文档

![Banners](docs/images/banner2.png)

本项目提供两种部署方式,请根据您的具体需求选择:

#### 🚀 部署方式选择

| 部署方式 | 特点 | 适用场景 | Docker部署文档 | 源码部署文档 |
|---------|------|---------|---------|---------|
| **最简化安装** | 智能对话、IOT功能,数据存储在配置文件 | 低配置环境,无需数据库 | [Docker只运行Server](./docs/Deployment.md#%E6%96%B9%E5%BC%8F%E4%B8%80docker%E5%8F%AA%E8%BF%90%E8%A1%8Cserver) | [本地源码只运行Server](./docs/Deployment.md#%E6%96%B9%E5%BC%8F%E4%BA%8C%E6%9C%AC%E5%9C%B0%E6%BA%90%E7%A0%81%E5%8F%AA%E8%BF%90%E8%A1%8Cserver)|
| **全模块安装** | 智能对话、IOT、OTA、智控台,数据存储在数据库 | 完整功能体验 |[Docker运行全模块](./docs/Deployment_all.md#%E6%96%B9%E5%BC%8F%E4%B8%80docker%E8%BF%90%E8%A1%8C%E5%85%A8%E6%A8%A1%E5%9D%97) | [本地源码运行全模块](./docs/Deployment_all.md#%E6%96%B9%E5%BC%8F%E4%BA%8C%E6%9C%AC%E5%9C%B0%E6%BA%90%E7%A0%81%E8%BF%90%E8%A1%8C%E5%85%A8%E6%A8%A1%E5%9D%97) |
| **最简化安装** | 智能对话、IOT功能,数据存储在配置文件 | 低配置环境,无需数据库,仅支持虾哥1.6.0及以下固件版本 | [Docker只运行Server](./docs/Deployment.md#%E6%96%B9%E5%BC%8F%E4%B8%80docker%E5%8F%AA%E8%BF%90%E8%A1%8Cserver) | [本地源码只运行Server](./docs/Deployment.md#%E6%96%B9%E5%BC%8F%E4%BA%8C%E6%9C%AC%E5%9C%B0%E6%BA%90%E7%A0%81%E5%8F%AA%E8%BF%90%E8%A1%8Cserver)|
| **全模块安装** | 智能对话、IOT、OTA、智控台,数据存储在数据库 | 完整功能体验,支持虾哥最新固件 |[Docker运行全模块](./docs/Deployment_all.md#%E6%96%B9%E5%BC%8F%E4%B8%80docker%E8%BF%90%E8%A1%8C%E5%85%A8%E6%A8%A1%E5%9D%97) | [本地源码运行全模块](./docs/Deployment_all.md#%E6%96%B9%E5%BC%8F%E4%BA%8C%E6%9C%AC%E5%9C%B0%E6%BA%90%E7%A0%81%E8%BF%90%E8%A1%8C%E5%85%A8%E6%A8%A1%E5%9D%97) |

> 💡 提示:以下是按最新代码部署后的测试平台,有需要可烧录测试,并发为6个,每天会清空数据

Expand Down
2 changes: 1 addition & 1 deletion docs/Deployment.md
Original file line number Diff line number Diff line change
Expand Up @@ -290,7 +290,7 @@ LLM:

这个信息很有用的,后面`编译esp32固件`需要用到。

接下来,你就可以开始 [编译esp32固件](firmware-build.md)了。
接下来,你就可以开始 [编译1.6.0版本esp32固件](firmware-build.md)了。


以下是一些常见问题,供参考:
Expand Down
12 changes: 10 additions & 2 deletions docs/Deployment_all.md
Original file line number Diff line number Diff line change
Expand Up @@ -182,7 +182,11 @@ Websocket接口:
ws://你电脑局域网的ip:8000/xiaozhi/v1/
```

接下来,你就可以开始 [编译esp32固件](firmware-build.md)了。
接下来,你就可以开始操作你的esp32设备了,你可以`自行编译esp32固件`也可以配置使用`虾哥编译好的1.6.1以上版本的固件`。两个任选一个

1、 [编译自己的esp32固件](firmware-build.md)了。

2、 [基于虾哥编译好的固件配置自定义服务器](firmware-setting.md)了。


# 方式二:本地源码运行全模块
Expand Down Expand Up @@ -402,7 +406,11 @@ Websocket接口:
ws://你电脑局域网的ip:8000/xiaozhi/v1/
```

接下来,你就可以开始 [编译esp32固件](firmware-build.md)了。
接下来,你就可以开始操作你的esp32设备了,你可以`自行编译esp32固件`也可以配置使用`虾哥编译好的1.6.1以上版本的固件`。两个任选一个

1、 [编译自己的esp32固件](firmware-build.md)了。

2、 [基于虾哥编译好的固件配置自定义服务器](firmware-setting.md)了。

# 常见问题

Expand Down
124 changes: 124 additions & 0 deletions docs/firmware-build-1.6.0.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,124 @@
# 编译1.6.0版本esp32固件

## 第1步 配置环境
先按照这个教程配置项目环境[《Windows搭建 ESP IDF 5.3.2开发环境以及编译小智》](https://icnynnzcwou8.feishu.cn/wiki/JEYDwTTALi5s2zkGlFGcDiRknXf)

## 第2步 打开配置文件
配置好编译环境后,下载虾哥iaozhi-esp32项目源码,


从这里下载虾哥[xiaozhi-esp32项目1.6.0版本源码](https://github.com/78/xiaozhi-esp32/archive/refs/tags/v1.6.0.zip)。

从这里下载虾哥[xiaozhi-esp32项目1.6.0版本源码](https://github.com/78/xiaozhi-esp32/archive/refs/tags/v1.6.0.zip)。

从这里下载虾哥[xiaozhi-esp32项目1.6.0版本源码](https://github.com/78/xiaozhi-esp32/archive/refs/tags/v1.6.0.zip)。

下载后,解压缩包,打开`xiaozhi-esp32/main/Kconfig.projbuild`文件。


## 第3步 修改WEBSOCKET地址
找到`WEBSOCKET_URL`的`default`的内容,把`wss://api.tenclass.net/xiaozhi/v1/`
改成你自己的地址,例如,我的接口地址是`ws://192.168.1.25:8000/xiaozhi/v1/`,就把内容改成这个。

修改前:

```
config WEBSOCKET_URL
depends on CONNECTION_TYPE_WEBSOCKET
string "Websocket URL"
default "wss://api.tenclass.net/xiaozhi/v1/"
help
Communication with the server through websocket after wake up.
```

修改后(示例):

```
config WEBSOCKET_URL
depends on CONNECTION_TYPE_WEBSOCKET
string "Websocket URL"
default "ws://192.168.1.25:8000/xiaozhi/v1/"
help
Communication with the server through websocket after wake up.
```

注意:你的地址是`ws://`开头,不是`wss://`开头,一定不要写错了。

注意:你的地址是`ws://`开头,不是`wss://`开头,一定不要写错了。

注意:你的地址是`ws://`开头,不是`wss://`开头,一定不要写错了。

## 第4步 设置编译参数

设置编译参数

```
# 终端命令行进入xiaozhi-esp32的根目录
cd xiaozhi-esp32
# 例如我使用的板子是esp32s3,所以设置编译目标为esp32s3,如果你的板子是其他型号,请替换成对应的型号
idf.py set-target esp32s3
# 进入菜单配置
idf.py menuconfig
```

![图片](images/build_setting01.png)

进入菜单配置后,再进入`Xiaozhi Assistant`,将`CONNECTION_TYPE`设置为`Websocket`
回退到主菜单,再进入`Xiaozhi Assistant`,将`BOARD_TYPE`设置你板子的具体型号
保存退出,回到终端命令行。

![图片](images/build_setting02.png)

## 第5步 编译固件

```
idf.py build
```

如果是vscode安装的idf可以使用`F1`或者`ctrl+shift+p`,输入idf然后直接选择进行编译

还可以直接进行烧录不用接下来的操作

<img src="./images/vscode_idf.png" width="500px"/>

## 第6步 打包bin固件

```
cd scripts
python release.py
```

编译成功后,会在项目根目录下的`build`目录下生成固件文件`merged-binary.bin`。
这个`merged-binary.bin`就是要烧录到硬件上的固件文件。

注意:如果执行到第二命令后,报了“zip”相关的错误,请忽略这个错误,只要`build`目录下生成固件文件`merged-binary.bin`
,对你没有太大影响,请继续。

## 第7步 烧录固件
将esp32设备连接电脑,使用chrome浏览器,打开以下网址

```
https://espressif.github.io/esp-launchpad/
```

打开这个教程,[Flash工具/Web端烧录固件(无IDF开发环境)](https://ccnphfhqs21z.feishu.cn/wiki/Zpz4wXBtdimBrLk25WdcXzxcnNS)。
翻到:`方式二:ESP-Launchpad 浏览器WEB端烧录`,从`3. 烧录固件/下载到开发板`开始,按照教程操作。

烧录成功且联网成功后,通过唤醒词唤醒小智,留意server端输出的控制台信息。

## 常见问题
以下是一些常见问题,供参考:

[1、为什么我说的话,小智识别出来很多韩文、日文、英文](./FAQ.md)

[2、为什么会出现“TTS 任务出错 文件不存在”?](./FAQ.md)

[3、TTS 经常失败,经常超时](./FAQ.md)

[4、使用Wifi能连接自建服务器,但是4G模式却接不上](./FAQ.md)

[5、如何提高小智对话响应速度?](./FAQ.md)

[6、我说话很慢,停顿时小智老是抢话](./FAQ.md)

[7、我想通过小智控制电灯、空调、远程开关机等操作](./FAQ.md)
54 changes: 8 additions & 46 deletions docs/firmware-build.md
Original file line number Diff line number Diff line change
@@ -1,54 +1,16 @@
# 编译esp32固件
# esp32固件编译

## 第1步 配置环境
先按照这个教程配置项目环境[《Windows搭建 ESP IDF 5.3.2开发环境以及编译小智》](https://icnynnzcwou8.feishu.cn/wiki/JEYDwTTALi5s2zkGlFGcDiRknXf)

## 第2步 打开配置文件
配置好编译环境后,下载虾哥iaozhi-esp32项目源码,

从这里下载虾哥[xiaozhi-esp32项目源码](https://github.com/78/xiaozhi-esp32/archive/refs/tags/v1.6.0.zip)。
从这里下载虾哥[xiaozhi-esp32项目源码](https://github.com/78/xiaozhi-esp32)。

从这里下载虾哥[xiaozhi-esp32项目源码](https://github.com/78/xiaozhi-esp32/archive/refs/tags/v1.6.0.zip)
下载后,打开`xiaozhi-esp32/main/Kconfig.projbuild`文件

从这里下载虾哥[xiaozhi-esp32项目源码](https://github.com/78/xiaozhi-esp32/archive/refs/tags/v1.6.0.zip)。

下载后,解压缩包,打开`xiaozhi-esp32/main/Kconfig.projbuild`文件。


## 第3步 修改WEBSOCKET地址
找到`WEBSOCKET_URL`的`default`的内容,把`wss://api.tenclass.net/xiaozhi/v1/`
改成你自己的地址,例如,我的接口地址是`ws://192.168.1.25:8000/xiaozhi/v1/`,就把内容改成这个。

修改前:

```
config WEBSOCKET_URL
depends on CONNECTION_TYPE_WEBSOCKET
string "Websocket URL"
default "wss://api.tenclass.net/xiaozhi/v1/"
help
Communication with the server through websocket after wake up.
```

修改后(示例):

```
config WEBSOCKET_URL
depends on CONNECTION_TYPE_WEBSOCKET
string "Websocket URL"
default "ws://192.168.1.25:8000/xiaozhi/v1/"
help
Communication with the server through websocket after wake up.
```

注意:你的地址是`ws://`开头,不是`wss://`开头,一定不要写错了。

注意:你的地址是`ws://`开头,不是`wss://`开头,一定不要写错了。

注意:你的地址是`ws://`开头,不是`wss://`开头,一定不要写错了。

## 第4步 修改OTA地址
如果你是全模块部署本项目,就修改OTA接口,如果你只是部署了8000端口的xiaozhi-server,可以继续沿用虾哥团队的OTA接口。如果你不修改OTA接口,请直接忽略本第4步,直接看第5步
## 第3步 修改OTA地址

找到`OTA_VERSION_URL`的`default`的内容,把`https://api.tenclass.net/xiaozhi/ota/`
改成你自己的地址,例如,我的接口地址是`http://192.168.1.25:8002/xiaozhi/ota/`,就把内容改成这个。
Expand All @@ -70,7 +32,7 @@ config OTA_VERSION_URL
The application will access this URL to check for updates.
```

## 第5步 设置编译参数
## 第4步 设置编译参数

设置编译参数

Expand All @@ -91,7 +53,7 @@ idf.py menuconfig

![图片](images/build_setting02.png)

## 第6步 编译固件
## 第5步 编译固件

```
idf.py build
Expand All @@ -103,7 +65,7 @@ idf.py build

<img src="./images/vscode_idf.png" width="500px"/>

## 第7步 打包bin固件
## 第6步 打包bin固件

```
cd scripts
Expand All @@ -116,7 +78,7 @@ python release.py
注意:如果执行到第二命令后,报了“zip”相关的错误,请忽略这个错误,只要`build`目录下生成固件文件`merged-binary.bin`
,对你没有太大影响,请继续。

## 第8步 烧录固件
## 第7步 烧录固件
将esp32设备连接电脑,使用chrome浏览器,打开以下网址

```
Expand Down
53 changes: 53 additions & 0 deletions docs/firmware-setting.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
# 基于虾哥编译好的固件配置自定义服务器

## 第1步 确认版本
烧录虾哥已经编译好的1.6.1版本固件

## 第2步 准备你的ota地址
如果你按照教程使用的是全模块部署,就应该会有ota地址。

此刻,请你用浏览器打开你的ota地址,例如我的ota地址
```
https://2662r3426b.vicp.fun/xiaozhi/ota/
```

如果显示“OTA接口运行正常,websocket集群数量:X”。那就往下。

如果显示“OTA接口运行不正常”,大概是你还没在`智控台`配置`Websocket`地址。那就:

- 1、使用超级管理员登录智控台

- 2、顶部菜单点击`参数管理`

- 3、在列表中找到`server.websocket`项目,输入你的`Websocket`地址。例如我的就是

```
wss://2662r3426b.vicp.fun/xiaozhi/v1/
```

配置完后,再使用浏览器刷新你的ota接口地址,看看是不是正常了。如果还不正常就,就再次确认一下Websocket是否正常启动,是否配置了Websocket地址。

## 第3步 进入配网模式
进入机器的配网模式,在页面顶部,点击“高级选项”,在里面输入你服务器的`ota`地址,点击保存。重启设备

## 第4步 唤醒小智,查看日志输出

唤醒小智,看看日志是不是正常输出。


## 常见问题
以下是一些常见问题,供参考:

[1、为什么我说的话,小智识别出来很多韩文、日文、英文](./FAQ.md)

[2、为什么会出现“TTS 任务出错 文件不存在”?](./FAQ.md)

[3、TTS 经常失败,经常超时](./FAQ.md)

[4、使用Wifi能连接自建服务器,但是4G模式却接不上](./FAQ.md)

[5、如何提高小智对话响应速度?](./FAQ.md)

[6、我说话很慢,停顿时小智老是抢话](./FAQ.md)

[7、我想通过小智控制电灯、空调、远程开关机等操作](./FAQ.md)