寻找能够支持满血版deepseek模型的智能音箱(by quqi99)

作者:张华 发表于:2025-02-15
版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明(http://blog.csdn.net/quqi99)

问题

deepseek目前这么火,但想要找个支持deepseek大模型的智能音箱却找不到。
openai出来了也好几年了,市场上真正支持大模型的音箱也是没有。哪怕是那些声称支持大模型的小度之类的,它用的也不是全血版的模型,实际上属于智障音箱。

可以通过homeassistant支持吗?

家里有小爱,去年试过mi-gpt (见: https://blog.csdn.net/quqi99/article/details/136807407), 但那是一个轮循的模式,效果很差,无法实用。
之前没接触过homeassistant,看到网上说目前小米有官方的homeassistant plugin,误以为homeassistant容易通过监听拿到小爱的语音。实现上也不可行。所以下面的未成功,只是一个笔记,它仍然有两个问题:

  • 在不刷机的前题下homeassistant很难通过监听拿到小爱的语音
  • homeassistant的Extended OpenAI Conversation似乎仅支持openai, 或许它支持官方的deepseek api (但官方目前停止了,无法测试),但它好像不支持火山方舟上自定义的deepseek模型 (这个插件不支持doubao model似乎可以理解),那换成硅基流动上的类openai api的deepseek模型也没成功。虽说是python 很容易调试,但懒得继续了,放弃。
#armbian doesn't support homeassistant due to 'AttributeError: module 'josepy' has no attribute 'ComparableX509''
#/root/homeassistant/bin/python -c "import josepy; print(hasattr(josepy, 'ComparableX509'))"
#[homeassistant.bootstrap] Support for the running Python version 3.10.12 is deprecated and will be removed in Home Assistant 2023.8; Please upgrade Python to 3.11
add-apt-repository ppa:deadsnakes/ppa && apt install python3.11
#let us install homeassistant on minipc instead of box
apt install python3 python3-pip python3-virtualenv python3-dev build-essential libffi-dev pkg-config libssl-dev libjpeg-dev zlib1g-dev -y
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source $HOME/.cargo/env && rustc --version
apt purge python3-virtualenv && pip3 install virtualenv
virtualenv -p python3.11 homeassistant && source homeassistant/bin/activate
pip3 install --upgrade pip
pip3 install homeassistant
pip3 install Pillow==9.5.0 josepy acme hass-nabucasa  #for armbian only
/root/homeassistant/bin/hass
cat << EOF |sudo tee /etc/systemd/system/homeassistant.service
[Unit]
Description=Home Assistant
After=network-online.target
[Service]
Type=simple
User=root
#ExecStart=/root/homeassistant/bin/hass -c "/root/.homeassistant"
ExecStart=/bak/soft/homeassistant/bin/hass -c "/home/hua/.homeassistant"
RestartForceExitStatus=100
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl restart homeassistant.service
sudo journalctl -f -u homeassistant.service
sudo apt install libturbojpeg0-dev -y
#then install homeassistant on android and connect the homeassistant on the box

小爱音箱接到homeassistant,首先要确保它们在同一个网络,我家有两个路由器不在同一个网络。先在 minipc上运行:
hua@minipc:~$ sudo cat /etc/netplan/01-network-manager-all.yaml |head
network:
  version: 2
  renderer: networkd
  wifis:
    wlan0:
      dhcp4: true
      access-points:
        "quqiAP5G":
          password: "xxxx"
  ethernets:

#安装 HACS(Home Assistant Community Store)- 这可以帮助我们安装和管理各种第三方插件
mkdir -p ~/.homeassistant/custom_components
wget -O ~/.homeassistant/custom_components/hacs.zip "https://github.com/hacs/integration/releases/latest/download/hacs.zip"
unzip ~/.homeassistant/custom_components/hacs.zip -d ~/.homeassistant/custom_components/hacs
rm ~/.homeassistant/custom_components/hacs.zip
sudo systemctl restart homeassistant

#配置 HACS - 这里会需要生成github个人访问令牌给HACS用来避免API速率限制问题
Open the page http://minipc.lan:8123/ , click 'Settings > Devices & Services -> Add Integration', then search HACS and select it,click Submit

#安装Xiaomi MIoT
打开'http://192.168.99.179:8123/hacs/dashboard',搜索'Xiaomi MIoT', 若不出来页面的话是因为需要ss(sudo journalctl -f -u homeassistant.service), 点击最右下角的"Download"按钮将它下载到~/.homeassistant/custom_components/xiaomi_miot/, 然后重启一下(~/.homeassistant/custom_components/xiaomi_miot/), 另外我将"Xiaomi Gateway 3"一并下载了.

#配置Xiaomi MToT添加小爱音箱有两种方式,一是通过小米帐号,二是通过token方式(提取小米音箱token的方法见:https://github.com/PiotrMachowski/Xiaomi-cloud-tokens-extractor , bash <(curl -L https://github.com/PiotrMachowski/Xiaomi-cloud-tokens-extractor/raw/master/run.sh)
然后从这个页面(http://192.168.99.179:8123/hacs/dashboard)进入 'Xiaomi Miot Auto'再直接"ADD INTEGRATION TO"来添加小爱音箱(或参考:https://post.smzdm.com/p/aov07o4n/)。
验证方法是:从设置->Xiaomi Miot Auto中能找到Mi AI Speaker Pro

#homeassistant中添加deepseek支持
先在HACS中安装'Extended OpenAI Conversation'插件 (需网络能正常访问github), 
也要安装'Environment variable for Home Assistant'插件(https://github.com/Athozs/hass-environment-variable), HACS中没这个插件就点HACS中的三个点添加一个Integration type的repository(https://github.com/Athozs/hass-environment-variable.git)然后再在HACS中安装这个插件. 安装插件后都要重启服务(sudo systemctl restart homeassistant.service)
然后在配置文件~/.homeassistant/configuration.yaml中添加下面3个环境变量:
default_config:
environment_variable:
  OPENAI_API_KEY=sk-xxx
  OPENAI_BASE_URL=https://api.siliconflow.cn/v1
  LLM_MODELEND=deepseek-ai/DeepSeek-R1

#配置'Extended OpenAI Conversation', 点击这个网页中的"ADD INTEGRATION TO"开始配置 - https://www.home-assistant.io/integrations/openai_conversation/
但似乎这个插件'Extended OpenAI Conversation'目前只支持openai, 我改了OPENAI_BASE_URL也不起作用,修改了/bak/soft/homeassistant/lib/python3.12/site-packages/openai/_client.py也不起作用。懒得研究了。另外,如果在homeassistant处监听小爱声音也是一个问题。放弃

esp-sparkbot

看网上有一篇文章"esp-sparkbot保姆级复刻教程 环境搭建和工程编译固件烧录" (https://oshwhub.com/esp-college/esp-sparkbot), 说用esp32来实现deepseek模型, 但看了一眼源码(https://gitee.com/esp-friends/esp_sparkbot/tree/master/example/factory_demo_v1),似乎:

  • 似乎只支持baidu的一个非满血版的模型 ERNIE-Lite-8K
  • 要支持 deepseek也还是要改代码的

修改代码支持了deepseek又能怎样,不还是非满血版的模型吗? 我也不熟悉硬件设计。放弃。

注:这个不是小智(用的是火山的tts),是另一个系统esp-sparkbot, 用的是百度的tts, 在大模型的自定义方面可能会找不到后端。

字节的Ola Friend耳机

想找一个支持满血版deepseek模型的智能音箱找不到,却找到了字节的Ola Friend耳机。

  1. 耳机与手机通过蓝牙相连,耳机再与手机上的豆包app配对之后,手机上的豆包app才会允许从蓝牙接过来的耳机声音。所以不用ola friend耳机是无法唤醒手机上的豆包app的。字节就为了卖耳机才锁死了手机上豆包app的唤醒功能。
  2. 既然用的是手机的豆包app,那后端是可以用满血版模型的,至于后端是不是deepseek就不那么重要了
  3. 所以这是一个变相版的满血版大模型耳机(是耳机而不是音箱),可能过段时间市面上会有满血版deepseek大模型音箱卖,但估计也不会开放让我们自定义deepseek模型(如在火山方舟上自定义的deepseek模型速度目前最快),商家可能会让你用收费的封闭的deepseek模型。

好吧,目前这个ola friend耳机也算可以用:

  • 自已用的话,可随时通过语音来问豆包,真正的AI语音助手(当然得一直带着手机)
  • 孩子用的话,可以将耳机给他来练习英语,而不用将手机给他伤害眼睛

再等等?

再等等的话,估计我用的三星手机的Bixby也马上接入deepseek模型了,直接用我目前已有的SHOKZ OpenFit T910耳机就可以了。

继续esp32

继续搜索esp32时找到了小智ai的固件 - https://github.com/78/xiaozhi-esp32
https://ccnphfhqs21z.feishu.cn/wiki/F5krwD16viZoF0kKkvDcrZNYnhb
看起来支持语音唤醒的是立创·实战派ESP32-S3开发板 - https://rcnv1t9vps13.feishu.cn/wiki/LdCrw9neaiGgzrkrFyjclllynYd

基他一些理论学习

待买的硬件是立创ESP32-S3开发版(https://item.szlcsc.com/43285221.html)
若连接电池的话可参考 - https://img.alicdn.com/imgextra/i1/2216065701349/O1CN013Id29G1LptKGke11e_!!2216065701349.jpg
开发版如何拆卸 - https://lceda001.feishu.cn/wiki/L5Qhw037viVW5MkyFXPcRLhznbe
1, 下载固件 - https://github.com/78/xiaozhi-esp32/releases/download/v1.1.2/v1.1.2_lichuang-dev.zip
2, 烧录教程 - https://ccnphfhqs21z.feishu.cn/wiki/Zpz4wXBtdimBrLk25WdcXzxcnNS

无IDF开发环境时可用flash烧录工具(https://docs.espressif.com/projects/esp-test-tools/zh_CN/latest/esp32/production_stage/tools/flash_download_tool.html), 或在线烧录(https://espressif.github.io/esp-launchpad/ , 点"DIY"), 用usb线连接开发板和电脑即可,摁住侧边按键(复位键)和顶部中间按键(boot按键),先松开boot按键,再松开复位键,即可进入烧写模式。
打开后选’ESP32-S3’, ‘Develop’, ‘UART’(开发版正面TypeC朝下时右边的接口为UART接口即USB转串口CH340K, 左边的为USB接口, 见: https://oshwhub.com/li-chuang-kai-fa-ban/li-chuang-shi-zhan-pai-esp32-s3-kai-fa-ban), 然后加载固件merged-binary.bin, 固件后面的输入框填写0x00, 选择COM端口(在windows设备管理器端口处查看, 一般带有CH34字样), 最后点击Start开始烧录。烧录完成之后,点击开发版上的RST按钮重启开发版,即可进入wifi配网模式。

IDF开发环境搭建 - https://wiki.lckfb.com/zh-hans/szpi-esp32s3/beginner/install.html
编译小智 - https://icnynnzcwou8.feishu.cn/wiki/JEYDwTTALi5s2zkGlFGcDiRknXf

实践

立创esp32-s3缺货,最后买了面包板星智
https://www.nologo.tech/product/esp32/esp32s3/esp32s3ai/esp32s3xiaozhi/esp32s3ai_qa.html
IDF开发环境搭建 - https://rcnv1t9vps13.feishu.cn/wiki/UwaJwcJQwiuZVtk5QCfcrkS2nmf

具体步骤:

1, 安装ESP IDF环境 , 它会也会安装usb jtag等驱动  - https://dl.espressif.com/dl/esp-idf/
2, 安装后点击桌面上的'ESP-IDF 5.3 PowerShell'打开
3, vim main\Kconfig.projbuild 修改wss://api.tenclass.net/xiaozhi/v1 到 ws://ai.quqi99.xx.com/xiaozhi/v1 (注意:改成ws而不是wss)
4, 继续 运行下列命令
git clone https://github.com/78/xiaozhi-esp32
cd D:\soft\ai\xiaozhi-esp32
idf.py clean
idf.py set-target esp32s3
#https://rcnv1t9vps13.feishu.cn/wiki/UwaJwcJQwiuZVtk5QCfcrkS2nmf
#这款芯片是ESP32-S3-WROOM-1/1U N16R8 (不是ESP32-S3-DevKitC-1) - https://rcnv1t9vps13.feishu.cn/wiki/TdBIw5e0GiORQSkVuvmc74jandh
#正常选v1.1.2_bread-compact-wifi.zip - https://github.com/78/xiaozhi-esp32/releases/tag/v1.1.2
#https://hcngjtwigghb.feishu.cn/wiki/CmZxwV17miwpYHk46ZpcXutOnJ8
idf.py menuconfig  #在Xiaozhi Assistant目录将Board Type改成(面包wifi+LCD), 并且将CONNECTION_TYPE设置为Websocket 
idf.py build
#idf.py build flash monitor
cd script
python release.py
ls D:\soft\ai\xiaozhi-esp32\build\merged-binary.bin
5, 开发板连接到电脑后使用chrome烧录 - https://espressif.github.io/esp-launchpad/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

quqi99

你的鼓励就是我创造的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值