『瀚思彼岸』» 智能家居技术论坛

标题: 让openwrt路由成为ha的tts音响 [打印本页]

作者: kjjuhfv    时间: 2023-12-3 21:40
标题: 让openwrt路由成为ha的tts音响
本帖最后由 kjjuhfv 于 2023-12-3 21:38 编辑

前几天 大佬放出新玩法 https://bbs.hassbian.com/forum.p ... ypeid%26typeid%3D30我发现了squeezelite这个新玩意 折腾几天后成功接入ha

先说下必须条件
1 一个openwrt路由 不限构架 x86或者非x86都可以 (我的x86和一个mips的mt7620都成功了)
2 这个路由必须要有一个usb接口
3 一个免驱的usb声卡  (某宝价格10块钱以内)

=========================================================
开始前先说一下个人遇到的最大难点
那就是安装usb声卡的驱动和squeezelite
玩openwrt以来
我发现我几乎没能成功在openwrt上安装ipk
不是缺这个就是缺那个  
最终只能找别人编译好的固件
后来知道了有在线编译才解决了这些问题
各位遇到安装不上的问题可以采用这个方法
地址  https://openwrt.ai/
这个网站免费版每天只可以编译一次 大家在决定前先考虑好要什么再开始编译
在定制软件包那里的后面
添加上这些  
kmod-sound-core
kmod-usb-audio
squeezelite-full
alsa-utils
记得每个软件包之间加空格
===========================================================
开始
插上usb声卡 接上音响线  路由开机
使用ssh进入openwrt的后台
1 检查usb声卡是否正常  
   ls /dev         需要存在 dsp audio mixer 这三样

2 检测squeezelite服务是否运行
   ps|grep squeeze
   正常会显示下面这种信息
  1. root@OpenWrt:~# ps|grep squeeze
  2. 21132 root     41832 S    /usr/bin/squeezelite -n SqueezeWrt1 -M SqueezeLite -o hw:0,3 -a 200
  3. 28370 root      1124 S    grep squeeze
复制代码
3  查看声卡顺序
    aplay -l
    正常会显示出usb声卡的信息
  1. root@OpenWrt:~#     aplay -l
  2. **** List of PLAYBACK Hardware Devices ****
  3. card 0: PCH [HDA Intel PCH], device 3: HDMI 0 [HDMI 0]
  4.   Subdevices: 1/1
  5.   Subdevice #0: subdevice #0
  6. card 0: PCH [HDA Intel PCH], device 7: HDMI 1 [HDMI 1]
  7.   Subdevices: 1/1
  8.   Subdevice #0: subdevice #0
  9. card 0: PCH [HDA Intel PCH], device 8: HDMI 2 [HDMI 2]
  10.   Subdevices: 1/1
  11.   Subdevice #0: subdevice #0
  12. card 0: PCH [HDA Intel PCH], device 9: HDMI 3 [HDMI 3]
  13.   Subdevices: 1/1
  14.   Subdevice #0: subdevice #0
  15. card 1: Device [USB Audio Device], device 0: USB Audio [USB Audio]
  16.   Subdevices: 1/1
  17.   Subdevice #0: subdevice #0
复制代码
带有 USB Audio Device 的就是usb声卡了
记录下声卡的信息  card 1: Device [USB Audio Device], device 0: USB Audio [USB Audio]

4 编译squeezelite配置文件
vi /etc/config/squeezelite
  1. config options 'options'
  2.         option name 'SqueezeWrt'      # 这个是ha里面显示的名字
  3.         option model_name 'SqueezeLite'
  4.         option close_delay '0'
  5.         option priority '0'
  6.         option max_sr '0'
  7.         option device 'hw:0,0'        #需要修改成usb声卡
  8.         option dsd_over_pcm '0'
  9.         option ircontrol '0'
  10.         option enabled '1'
复制代码
注意修改的是   option device 'hw:0,0'   这一行
修改成第三步获取到的usb声卡的信息
hw:0,0  第一个0对应card 1   第二个0对应device 0
修改后就是
  1. option device 'hw:1,0'
复制代码

5 重启SqueezeLite并检查
/etc/init.d/squeezelite restart && ps|grep squeeze
  1. root@OpenWrt:~#  /etc/init.d/squeezelite restart && ps|grep squeeze
  2. 29849 root     35148 R    /usr/bin/squeezelite -n SqueezeWrt1 -M SqueezeLite -o hw:1,0 -a 200:
  3. 29850 root      1252 R    {squeezelite} /bin/sh /etc/rc.common /etc/init.d/squeezelite running
  4. 29852 root      1124 R    grep squeeze
复制代码
6 在ha添加squeezelite
   配置--添加集成---SlimProto
   添加完成后刷新几次网页 会自动发现squeezelite 可以愉快的使用了

7 默认音量可能会有点低的问题     可以使用alsamixer设置音量
   在ssh输入alsamixer
  进入alsamixer后按f6选择usb声卡
  按左右选择接口 按上下调整音量  可以先播放一首歌再根据现场调整
  据说有的usb声卡调整到最大可能会爆音

最后的一些感想
x86主机一般都自带极为先进的3.5mm音响接口
然而我折腾几天都没能驱动它们
期待有大佬可以解决这个问题
这样的话x86主机就可以省下另外购买usb声卡的费用










作者: sorrypqa    时间: 2023-12-3 23:06
大佬就是可以为所欲为
作者: myfyfy    时间: 2023-12-4 00:25
我也弄了好久没搞定自带的因特尔的声卡,驱动啥的都正常,就是没有声音,现在用usbs声卡用着,电脑跟iphone都是,alrplay2接入的。windows延迟很低,iphone延迟比较大
作者: mobility    时间: 2023-12-4 09:36
usb声卡的具体型号,是啥呀?还有喇叭 选了那种的呢?
作者: kjjuhfv    时间: 2023-12-4 13:07
mobility 发表于 2023-12-4 09:36
usb声卡的具体型号,是啥呀?还有喇叭 选了那种的呢?

某宝上搜索的时候加上免驱就可以了

作者: 隔壁的王叔叔    时间: 2023-12-4 17:09
如果主机没有声卡但是有蓝牙,我加了usb声卡后,能否通过主机的蓝牙连接到音箱播放?
作者: kjjuhfv    时间: 2023-12-4 17:43
隔壁的王叔叔 发表于 2023-12-4 17:09
如果主机没有声卡但是有蓝牙,我加了usb声卡后,能否通过主机的蓝牙连接到音箱播放? ...

https://bbs.hassbian.com/forum.p ... ypeid%26typeid%3D30

这位大佬就是用蓝牙连接到音箱的
你有蓝牙应该就不需要声卡了
作者: 隔壁的王叔叔    时间: 2023-12-4 18:08
kjjuhfv 发表于 2023-12-4 17:43
https://bbs.hassbian.com/forum.php?mod=viewthread&tid=23526&extra=page%3D1%26filter%3Dtypeid%26typ ...

aplay -l
aplay: device_list:274: no soundcards found...
所以估计有蓝牙也不行吧
作者: kjjuhfv    时间: 2023-12-4 18:12
隔壁的王叔叔 发表于 2023-12-4 18:08
aplay -l
aplay: device_list:274: no soundcards found...
所以估计有蓝牙也不行吧

都是openwrt方案  应该是你哪里没弄清楚吧

作者: 隔壁的王叔叔    时间: 2023-12-4 18:31
kjjuhfv 发表于 2023-12-4 18:12
都是openwrt方案  应该是你哪里没弄清楚吧

我这个主机是armbian,我也不太清楚,照道理需要加个声卡吧,要不然怎么发音呢?
作者: kjjuhfv    时间: 2023-12-4 18:59
隔壁的王叔叔 发表于 2023-12-4 18:31
我这个主机是armbian,我也不太清楚,照道理需要加个声卡吧,要不然怎么发音呢? ...

我记得论坛里有大佬发过蓝牙连接音箱的教程

https://bbs.hassbian.com/forum.php?mod=viewthread&tid=267

群晖也没有声卡 照样可以的
作者: 花落花空    时间: 2023-12-4 19:01
本帖最后由 花落花空 于 2023-12-4 19:04 编辑

感觉操作上麻烦了,openwrt直接用airplay2即可[attach]54050[/attach]

作者: kjjuhfv    时间: 2023-12-4 19:07
花落花空 发表于 2023-12-4 19:01
感觉操作上麻烦了,openwrt直接用airplay2即可

我之前测试这个的时候一直使用x86主机
没插usb声卡  也没想起来要插
一直无法启动 以为不能使用

作者: 花落花空    时间: 2023-12-4 19:29
kjjuhfv 发表于 2023-12-4 19:07
我之前测试这个的时候一直使用x86主机
没插usb声卡  也没想起来要插
一直无法启动 以为不能使用

如果声卡是op能驱动的,就可以用板载声卡,不行就得usb咯
作者: kjjuhfv    时间: 2023-12-4 19:40
花落花空 发表于 2023-12-4 19:29
如果声卡是op能驱动的,就可以用板载声卡,不行就得usb咯

我刚插上usb声卡试了一次 依然不行
不知道大佬怎么设置的?
作者: adamjensen    时间: 2023-12-6 12:29
本帖最后由 adamjensen 于 2023-12-6 17:14 编辑

试了一下成功了,路由器用的大麦DW22D,刷的官方版本的openwrt,不需要编译ipk,opkg直接装就行。声卡试了三个,HTC手机送的Type-C小尾巴,ES9018K2M声卡,奥睿科的一款带音量旋钮的声卡,都能用。插上以后lsusb分别显示如下:
  1. 0bb4:03e0 HTC HTC Type-C to 3.5mm Headphone Jack
  2. 2fc6:f801 SXW Tech SXW CTUAD192 PRM-A
  3. 0c76:161f  USB PnP Audio Device
复制代码


作者: kjjuhfv    时间: 2023-12-6 13:52
adamjensen 发表于 2023-12-6 12:29
试了一下成功了,路由器用的大麦DW22D,刷的官方版本的openwrt,不需要编译ipk,opkg直接装就行 ...

我在网上下载的 包括自己编译的 直接安装就没一次能行
大概中文圈的openwrt都是lean的代码
官方的openwrt我就没试过了
作者: adamjensen    时间: 2023-12-6 14:57
kjjuhfv 发表于 2023-12-6 13:52
我在网上下载的 包括自己编译的 直接安装就没一次能行
大概中文圈的openwrt都是lean的代码
官方的openwrt ...

官方的就是比较精简,需要啥都得自己装
作者: kjjuhfv    时间: 2023-12-6 17:44
adamjensen 发表于 2023-12-6 12:29
试了一下成功了,路由器用的大麦DW22D,刷的官方版本的openwrt,不需要编译ipk,opkg直接装就行。声卡试了 ...

3个卡都能正常发声吗?
作者: adamjensen    时间: 2023-12-6 21:40
kjjuhfv 发表于 2023-12-6 17:44
3个卡都能正常发声吗?

都能正常发声
作者: jjss520    时间: 2024-8-16 10:25
坛里有个用随身WIFI刷OPENWRT做TTS,可惜各种插件装不了
作者: kjjuhfv    时间: 2024-8-16 15:33
jjss520 发表于 2024-8-16 10:25
坛里有个用随身WIFI刷OPENWRT做TTS,可惜各种插件装不了

你是指这个随身wifi里面的openwrt安装不了插件  还是指这个随身WiFi安装不了openwrt?
openwrt安装不了插件对我来说这太正常了  我几乎就没有能在openwrt里面成功安装过插件
作者: jjss520    时间: 2024-8-16 15:51
kjjuhfv 发表于 2024-8-16 15:33
你是指这个随身wifi里面的openwrt安装不了插件  还是指这个随身WiFi安装不了openwrt?
openwrt安装不了插 ...

随身wifi刷的OPENWRT里安装不插件,试了N个固件,坛子里有个帖子,但楼主就不放出固件
作者: ganguotu    时间: 2024-8-16 16:04
看到了,谢谢分享啊,这个支持DLNA吗?
作者: kjjuhfv    时间: 2024-8-16 16:30
ganguotu 发表于 2024-8-16 16:04
看到了,谢谢分享啊,这个支持DLNA吗?

这个主要是用于ha的tts  播放音乐
dlna是不支持的
你是要播放视频还是音乐?
是从ha还是从其他客户端推送?
作者: kjjuhfv    时间: 2024-8-16 16:35
jjss520 发表于 2024-8-16 15:51
随身wifi刷的OPENWRT里安装不插件,试了N个固件,坛子里有个帖子,但楼主就不放出固件 ...

https://firmware-selector.openwr ... id=lenovo_newifi-y1

这个是openwrt固件官方的构建地址
你打开这个随身WiFi的openwrt的首页看看型号
然后尝试输入关键字  
如果有这个型号的  在自定义已安装的软件包那里输入你想要的插件名
作者: ganguotu    时间: 2024-8-16 16:39
kjjuhfv 发表于 2024-8-16 16:30
这个主要是用于ha的tts  播放音乐
dlna是不支持的
你是要播放视频还是音乐?

播放音乐,有DLNA就可以不经过HA,很方便地投屏音乐了
作者: kjjuhfv    时间: 2024-8-16 16:45
ganguotu 发表于 2024-8-16 16:39
播放音乐,有DLNA就可以不经过HA,很方便地投屏音乐了

openwrt也有dlna的插件 不过我没使用过
而且我对dlna的使用体验极差
如果你一定想使用dlna
可以用安卓盒子  一般自带dlna 价格也不贵




欢迎光临 『瀚思彼岸』» 智能家居技术论坛 (https://bbs.hassbian.com/) Powered by Discuz! X3.5