建议:检查一下models/SenseVoiceSmall
是否已经有model.pt
文件,如果没有就要下载,查看这里下载语音识别模型文件
建议:检查一下是否正确使用conda
安装了libopus
和ffmpeg
库。
如果没有安装,就安装
conda install conda-forge::libopus
conda install conda-forge::ffmpeg
建议:如果 EdgeTTS
经常失败,请先检查是否使用了代理(梯子)。如果使用了,请尝试关闭代理后再试;
如果用的是火山引擎的豆包 TTS,经常失败时建议使用付费版本,因为测试版本仅支持 2 个并发。
原因:虾哥的固件,4G模式需要使用安全连接。
解决方法:目前有两种方法可以解决。任选一种:
1、改代码。参考这个视频解决 https://www.bilibili.com/video/BV18MfTYoE85
2、使用nginx配置ssl证书。参考教程 https://icnt94i5ctj4.feishu.cn/docx/GnYOdMNJOoRCljx1ctecsj9cnRe
本项目默认配置为低成本方案,建议初学者先使用默认免费模型,解决"跑得动"的问题,再优化"跑得快"。
如需提升响应速度,可尝试更换各组件。以下为各组件的响应速度测试数据(仅供参考,不构成承诺):
影响因素 | 因素值 |
---|---|
测试地点 | 广东省广州市海珠区 |
测试时间 | 2025年2月19日 12:52 |
宽带运营商 | 中国联通 |
测试方法:
1、把各组件的密钥配置上去,只有配置了密钥的组件才参与测试。
2、配置完密钥后,执行以下方法
# 进入项目根目录,执行以下命令:
conda activate xiaozhi-esp32-server
python performance_tester.py
生成报告如下
LLM 性能排行:
模块名称 | 平均首Token时间 | 平均总响应时间 |
---|---|---|
AliLLM | 0.547s | 1.485s |
ChatGLMLLM | 0.677s | 3.057s |
TTS 性能排行:
模块名称 | 平均合成时间 |
---|---|
EdgeTTS | 1.019s |
DoubaoTTS | 0.503s |
CosyVoiceSiliconflow | 3.732s |
推荐配置组合 (综合响应速度):
组合方案 | 综合得分 | LLM首Token | TTS合成 |
---|---|---|---|
AliLLM + DoubaoTTS | 0.539 | 0.547s | 0.503s |
AliLLM + EdgeTTS | 0.642 | 0.547s | 1.019s |
ChatGLMLLM + DoubaoTTS | 0.642 | 0.677s | 0.503s |
ChatGLMLLM + EdgeTTS | 0.745 | 0.677s | 1.019s |
AliLLM + CosyVoiceSiliconflow | 1.184 | 0.547s | 3.732s |
2025年2月19日
,如果我的电脑在广东省广州市海珠区
,且使用的是中国联通
网络,我会优先使用:
- LLM:
AliLLM
- TTS:
DoubaoTTS
建议:在配置文件中找到如下部分,将 min_silence_duration_ms
的值调大(例如改为 1000
):
VAD:
SileroVAD:
threshold: 0.5
model_dir: models/snakers4_silero-vad
min_silence_duration_ms: 700 # 如果说话停顿较长,可将此值调大
本项目,支持以工具调用的方式控制HomeAssistant设备
1、首先选择一款支持function call支持的LLM,例如ChatGLMLLM
。
2、在配置文件中,将 selected_module.Intent
设置为 function_call
。
3、登录HomeAssistant
,点击左下角个人
,切换安全
导航栏,划到底部长期访问令牌
生成api_key。
在配置文件中,配置好你的home assistant的devices
(被控制的设备)和api_key
和base_url
等信息。例如:
plugins
home_assistant:
devices:
- 客厅,玩具灯,switch.cuco_cn_460494544_cp1_on_p_2_1
- 卧室,台灯,switch.iot_cn_831898993_socn1_on_p_2_1
base_url: http://你的homeassistant地址:8123
api_key: 你的home assistant api访问令牌
最后,允许function_call 插件在配置文件中启用hass_get_state
(必须)、hass_set_state
(必须)、hass_play_music
(不想用ha听音乐可以不启动),例如:
Intent:
...
function_call:
type: nointent
functions:
- change_role
- get_weather
- get_news
- hass_get_state
- hass_set_state
- hass_play_music
我们的联系方式放在百度网盘中,点击前往,提取码是223y
。
网盘里有"硬件烧录QQ群"、"开源服务端交流群"、"产品建议联系人" 三张图片,请根据需要选择加入。
- 硬件烧录QQ群:适用于硬件烧录问题
- 开源服务端交流群:适用于服务端问题
- 产品建议联系人:适用于产品功能、产品设计等建议