当前位置: 首页 > ops >正文

Docker部署语音转文字(STT)服务并接入Home Assistant

在Home Assistant用API方式接入大模型或者树莓派docker安装ollama运行大模型并接入HomeAssistant之后,HA就有了智能助手了,但是想要语音让HA干活,还需要语音转文字(STT)服务
参考了多篇教程,也尝试了之后,采用yaming116构建的docker镜像是最方便的,因此这里我也记录一下

准备

1.已安装HomeAssistant及HACS,可以看我这篇文章
2.HA已接入大模型
3.已安装好docker

Docker安装语音转文字(STT)服务

yaming116构建了几个docker镜像,都是本地离线部署的,主要有两个技术路线:sherpa-onnx-asr和FunAsr
sherpa-onnx-asr占用资源较少,速度也挺快,FunAsr则占用资源较高,慢一些,但是识别率更好些
我把服务跑在了NAS中,CPU是J4125,根据自己硬件和需求在这两个之间选择即可

sherpa-onnx-asr

如果采用sherpa-onnx-asr,根据自己需要可以在下面的命令中选择版本

由于我的NAS内存较小,仅2G而且跑了其他服务,一开始安装的完整版,跑不动,后面换了sherpa-onnx-asr-tiny版本,速度很快,内存占用在150M左右,准确度也够用
下面命令来自作者的git,如果作者更新了以作者的仓库中的命令为准

# 完整版, 目前完整版占用 1g 内存
docker pull yaming116/sherpa-onnx-asr:latest
# 目前zipformer 和 latest 模型版本一致,sherpa-onnx 推荐实用 paraformer 模型,目前为了保持稳定暂时latest不修改
docker pull yaming116/sherpa-onnx-asr:zipformer-2024-7-5
# paraformer 非流式识别模式,效果更好
docker pull yaming116/sherpa-onnx-asr:paraformer-2024-7-5# 低内存版本
docker pull yaming116/sherpa-onnx-asr-tiny:latestdocker run -d \
--restart=always -it \
--name sherpa-onnx-asr \
-p 5001:5001 \
yaming116/sherpa-onnx-asr:latest

FunAsr

如果采用FunAsr,可以使用下面的命令

docker run -d \
--restart=always -it \
--name fun-asr \
-p 5001:5001 \
-v $PWD/models:/models \
yaming116/fun-asr:latest

注意,如果是用群晖跑服务,那么端口不能用5000、5001,要避开选用其他端口!

HA安装home-assistant-fun-asr集成

到作者的git上下载home-assistant-fun-asr ,然后到运行HA的服务器上,把仓库中的custom_components/fun_asr文件夹复制到HA的config/custom_components/fun_asr目录下

不管STT服务是用sherpa-onnx-asr还是FunAsr都是一样用这个集成

这里因为我的HA是跑在docker中的,物理机的文件夹直接映射到了容器中的/config文件夹内,所以这里就少了/config这一层的文件夹了

在这里插入图片描述
重启HA,进入【设置】-【设备与服务】,找到Fun Asr集成

在这里插入图片描述
填入STT服务的ip和端口,根据自己的跑的服务选择参数,比如我跑了sherpa-onnx-asr-tiny版本,那么就勾选tiny
在这里插入图片描述
进入【设置】-【语音助手】,选择自己实现配好的语音助手,将语音转文字选择刚刚配置好的FunAsr即可

如果还没有配置语音助手,可以看看我之前的文章:Home Assistant用API方式接入大模型、树莓派docker安装ollama运行大模型并接入HomeAssistant

在这里插入图片描述

语音控制HA

语音一般用手机端进行使用,所以还需要下载homeassistant App

安卓
苹果

登录进去后,就可以用语音来控制设备了~
在这里插入图片描述

这里有些我参考过的文章,有些写的也挺详细的,可以参考~
可能是作者本人的文章:离线语音识别CPU 版本 本地化部署最佳实践&企微微信已支持
HomeAssistant 语音助手对接AI大模型相关系列教程说明
本地化部署HomeAssistant语音助手并接入DeepSeek

http://www.xdnf.cn/news/15368.html

相关文章:

  • C++11 std::is_permutation:从用法到原理的深度解析
  • androidstudio 高低版本兼容
  • 破解 VMware 迁移难题:跨平台迁移常见问题及自动化解决方案
  • 【第六节】docker可视化工具portainer安装
  • Angular 框架下 AI 驱动的企业级大前端应用开
  • Docker 拉取镜像并离线迁移至云桌面指南(以Redis为例)
  • 高安全前端架构:Rust-WASM 黑盒技术揭秘
  • 安全初级(一)
  • vscode 源码编译
  • CA-IS3082W 隔离485 收发器芯片可能存在硬件BUG
  • 如何连接 AWS RDS 数据库实例
  • React Three Fiber 实现 3D 模型视图切换、显隐边框、显隐坐标轴
  • 从欧洲杯初现到世俱杯之巅:海信冰箱的“保鲜传奇”
  • IIS错误:Service Unavailable HTTP Error 503. The service is unavailable.
  • 专题:2025机器人产业深度洞察报告|附136份报告PDF与数据下载
  • 如何将数据从一部手机传输到另一部手机?
  • CompletableFuture 源码解析
  • 微服务引擎 MSE 及云原生 API 网关 2025 年 3 月产品动态
  • CentOS 安装jenkins笔记
  • DiffDet4SAR——首次将扩散模型用于SAR图像目标检测,来自2024 GRSL(ESI高被引1%论文)
  • 深入浅出Kafka Broker源码解析(下篇):副本机制与控制器
  • 总结一下找素数的三种方法
  • 【Bluedroid】蓝牙协议栈enable流程深度解析
  • 若依(RuoYi)框架项目结构全解析
  • [Dify]-进阶1- Dify 支持的多种 AI 模型解析与选择建议
  • Linux修炼:自动化构建make/Makefile
  • sshpass原理详解及自动化运维实践
  • 微软发布BioEmu模型
  • 【FPGA】AXI总线协议
  • 动态规划题解——单词拆分【LeetCode】