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

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.lryc.cn/news/588580.html

相关文章:

  • Dubbo高阶难题:异步转同步调用链上全局透传参数的丢失问题
  • 设备发出、接收数据帧的工作机制
  • HarmonyOS从入门到精通:动画设计与实现之九 - 实用动画案例详解(上)
  • HarmonyOS从入门到精通:动画设计与实现之九 - 实用动画案例详解(下)
  • 暑假Python基础整理 -- 文件及目录操作
  • keepalive模拟操作部署
  • 2025-7-14-C++ 学习 排序(2)
  • IoC容器深度解析:架构、原理与实现
  • 驱动开发系列60- Vulkan 驱动实现-SPIRV到HW指令的实现过程(1)
  • 分支战略论:Git版本森林中的生存法则
  • PHP password_verify() 函数
  • 什么是微服务?-核心思想:化整为零,各自为战
  • Node.js + Express的数据库AB View切换方案设计
  • 【EM算法】三硬币模型
  • 自动微分模块
  • Class9简洁实现
  • JavaScript进阶篇——第二章 高级特性核心
  • JavaScript进阶篇——第一章 作用域与垃圾回收机制
  • 力扣 hot100 Day44
  • java基础(day07)
  • 板凳-------Mysql cookbook学习 (十一--------10)
  • 06【C++ 初阶】类和对象(上篇) --- 初步理解/使用类
  • ThreadLocal内部结构深度解析
  • 《大数据技术原理与应用》实验报告三 熟悉HBase常用操作
  • 每天一个前端小知识 Day 31 - 前端国际化(i18n)与本地化(l10n)实战方案
  • html js express 连接数据库mysql
  • Java:继承和多态(必会知识点整理)
  • 为什么资深C++开发者大部分选vector?揭秘背后的硬核性能真相!
  • 9.服务容错:构建高可用微服务的核心防御
  • #Paper Reading# Apple Intelligence Foundation Language Models