You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

5.2 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

常见问题

1、为什么我说的话小智识别出来很多韩文、日文、英文🇰🇷

建议:检查一下models/SenseVoiceSmall是否已经有model.pt 文件,如果没有就要下载,查看这里下载语音识别模型文件

2、为什么会出现"TTS 任务出错 文件不存在"📁

建议:检查一下是否正确使用conda 安装了libopusffmpeg库。

如果没有安装,就安装

conda install conda-forge::libopus
conda install conda-forge::ffmpeg

3、TTS 经常失败,经常超时

建议:如果 EdgeTTS 经常失败,请先检查是否使用了代理(梯子)。如果使用了,请尝试关闭代理后再试;
如果用的是火山引擎的豆包 TTS经常失败时建议使用付费版本因为测试版本仅支持 2 个并发。

4、使用Wifi能连接自建服务器但是4G模式却接不上 🔐

原因虾哥的固件4G模式需要使用安全连接。

解决方法:目前有两种方法可以解决。任选一种:

1、改代码。参考这个视频解决 https://www.bilibili.com/video/BV18MfTYoE85

2、使用nginx配置ssl证书。参考教程 https://icnt94i5ctj4.feishu.cn/docx/GnYOdMNJOoRCljx1ctecsj9cnRe

5、如何提高小智对话响应速度

本项目默认配置为低成本方案,建议初学者先使用默认免费模型,解决"跑得动"的问题,再优化"跑得快"。
如需提升响应速度,可尝试更换各组件。以下为各组件的响应速度测试数据(仅供参考,不构成承诺):

影响因素 因素值
测试地点 广东省广州市海珠区
测试时间 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日,如果我的电脑在广东省广州市海珠区,且使用的是中国联通网络,我会优先使用:

  • LLMAliLLM
  • TTSDoubaoTTS

6、我说话很慢停顿时小智老是抢话 🗣️

建议:在配置文件中找到如下部分,将 min_silence_duration_ms 的值调大(例如改为 1000

VAD:
  SileroVAD:
    threshold: 0.5
    model_dir: models/snakers4_silero-vad
    min_silence_duration_ms: 700  # 如果说话停顿较长,可将此值调大

7、我想通过小智控制电灯、空调、远程开关机等操作 💡

本项目支持以工具调用的方式控制HomeAssistant设备

1、首先选择一款支持function call支持的LLM例如ChatGLMLLM

2、在配置文件中selected_module.Intent 设置为 function_call

3、登录HomeAssistant,点击左下角个人,切换安全导航栏,划到底部长期访问令牌生成api_key。

在配置文件中配置好你的home assistant的devices(被控制的设备)和api_keybase_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

8、更多问题可联系我们反馈 💬

我们的联系方式放在百度网盘中,点击前往,提取码是223y

网盘里有"硬件烧录QQ群"、"开源服务端交流群"、"产品建议联系人" 三张图片,请根据需要选择加入。

  • 硬件烧录QQ群适用于硬件烧录问题
  • 开源服务端交流群:适用于服务端问题
  • 产品建议联系人:适用于产品功能、产品设计等建议