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

 找回密码
 立即注册
查看: 1775|回复: 19

[经验分享] 让openwrt路由成为ha的tts音响

[复制链接]

18

主题

430

帖子

1937

积分

金牌会员

Rank: 6Rank: 6

积分
1937
金钱
1507
HASS币
0
发表于 2023-12-3 21:40:12 | 显示全部楼层 |阅读模式
本帖最后由 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
   正常会显示下面这种信息
root@OpenWrt:~# ps|grep squeeze
21132 root     41832 S    /usr/bin/squeezelite -n SqueezeWrt1 -M SqueezeLite -o hw:0,3 -a 200
28370 root      1124 S    grep squeeze
3  查看声卡顺序
    aplay -l
    正常会显示出usb声卡的信息
root@OpenWrt:~#     aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: PCH [HDA Intel PCH], device 3: HDMI 0 [HDMI 0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 7: HDMI 1 [HDMI 1]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 8: HDMI 2 [HDMI 2]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 9: HDMI 3 [HDMI 3]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: Device [USB Audio Device], device 0: USB Audio [USB Audio]
  Subdevices: 1/1
  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
config options 'options'
        option name 'SqueezeWrt'      # 这个是ha里面显示的名字
        option model_name 'SqueezeLite'
        option close_delay '0'
        option priority '0'
        option max_sr '0'
        option device 'hw:0,0'        #需要修改成usb声卡
        option dsd_over_pcm '0'
        option ircontrol '0'
        option enabled '1'
注意修改的是   option device 'hw:0,0'   这一行
修改成第三步获取到的usb声卡的信息
hw:0,0  第一个0对应card 1   第二个0对应device 0
修改后就是
option device 'hw:1,0' 

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

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

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









评分

参与人数 2金钱 +26 收起 理由
隔壁的王叔叔 + 10 大神666!
sorrypqa + 16 高手,这是高手!

查看全部评分

回复

使用道具 举报

50

主题

1301

帖子

4927

积分

论坛DIY达人

积分
4927
金钱
3626
HASS币
20
发表于 2023-12-3 23:06:39 | 显示全部楼层
大佬就是可以为所欲为
回复

使用道具 举报

0

主题

10

帖子

71

积分

注册会员

Rank: 2

积分
71
金钱
61
HASS币
0
发表于 2023-12-4 00:25:07 | 显示全部楼层
我也弄了好久没搞定自带的因特尔的声卡,驱动啥的都正常,就是没有声音,现在用usbs声卡用着,电脑跟iphone都是,alrplay2接入的。windows延迟很低,iphone延迟比较大
回复

使用道具 举报

47

主题

262

帖子

1576

积分

金牌会员

Rank: 6Rank: 6

积分
1576
金钱
1314
HASS币
0
发表于 2023-12-4 09:36:01 | 显示全部楼层
usb声卡的具体型号,是啥呀?还有喇叭 选了那种的呢?
回复

使用道具 举报

18

主题

430

帖子

1937

积分

金牌会员

Rank: 6Rank: 6

积分
1937
金钱
1507
HASS币
0
 楼主| 发表于 2023-12-4 13:07:33 | 显示全部楼层
mobility 发表于 2023-12-4 09:36
usb声卡的具体型号,是啥呀?还有喇叭 选了那种的呢?

某宝上搜索的时候加上免驱就可以了
Screenshot_20231204-130511_淘宝.png
回复

使用道具 举报

7

主题

1081

帖子

3393

积分

论坛元老

Rank: 8Rank: 8

积分
3393
金钱
2312
HASS币
0
发表于 2023-12-4 17:09:01 | 显示全部楼层
如果主机没有声卡但是有蓝牙,我加了usb声卡后,能否通过主机的蓝牙连接到音箱播放?
回复

使用道具 举报

18

主题

430

帖子

1937

积分

金牌会员

Rank: 6Rank: 6

积分
1937
金钱
1507
HASS币
0
 楼主| 发表于 2023-12-4 17:43:43 | 显示全部楼层
隔壁的王叔叔 发表于 2023-12-4 17:09
如果主机没有声卡但是有蓝牙,我加了usb声卡后,能否通过主机的蓝牙连接到音箱播放? ...

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

这位大佬就是用蓝牙连接到音箱的
你有蓝牙应该就不需要声卡了
回复

使用道具 举报

7

主题

1081

帖子

3393

积分

论坛元老

Rank: 8Rank: 8

积分
3393
金钱
2312
HASS币
0
发表于 2023-12-4 18:08:58 | 显示全部楼层
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...
所以估计有蓝牙也不行吧
回复

使用道具 举报

18

主题

430

帖子

1937

积分

金牌会员

Rank: 6Rank: 6

积分
1937
金钱
1507
HASS币
0
 楼主| 发表于 2023-12-4 18:12:44 | 显示全部楼层
隔壁的王叔叔 发表于 2023-12-4 18:08
aplay -l
aplay: device_list:274: no soundcards found...
所以估计有蓝牙也不行吧

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

使用道具 举报

7

主题

1081

帖子

3393

积分

论坛元老

Rank: 8Rank: 8

积分
3393
金钱
2312
HASS币
0
发表于 2023-12-4 18:31:42 | 显示全部楼层
kjjuhfv 发表于 2023-12-4 18:12
都是openwrt方案  应该是你哪里没弄清楚吧

我这个主机是armbian,我也不太清楚,照道理需要加个声卡吧,要不然怎么发音呢?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-5-9 14:58 , Processed in 0.140256 second(s), 35 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表