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

 找回密码
 立即注册
查看: 4921|回复: 40

[经验分享] 小爱音箱播放NAS音乐

[复制链接]

16

主题

167

帖子

1367

积分

金牌会员

Rank: 6Rank: 6

积分
1367
金钱
1200
HASS币
0
发表于 2023-9-3 23:14:46 | 显示全部楼层 |阅读模式
本帖最后由 pikaq 于 2023-9-3 23:14 编辑

2020年6月39元入手的红米Play音箱,通过node-red-contrib-xiaoai-tts节点包装了两个文本指令:
小爱同学 <指令>:发送指令,例如“小爱同学 几点了”相当于语音问小爱几点了;
小爱音箱 <文本>:tts,例如“小爱音箱 几点了”小爱会发声“几点了”。
IMG_20230903_214634.jpg
还有个很想实现的功能,就是通过小爱音箱播放NAS里的音乐,但在node-red-contrib-xiaoai-tts节点里并没有找到播放链接的功能,如此低配的音箱,蓝牙连手机播放的效果很差,也没有DLNA功能,所以一度以为这个功能无法实现。后来偶然在xiaoai-tts/src/player/playUrl.js at master · vv314/xiaoai-tts (github.com) 发现小爱音箱还有个player_play_url的api可以播放链接,于是包装成指令试了一下:
小爱 播放 <url>
IMG_20230903_222522.jpg
竟然真有效,而且不仅能播放音频文件,连mp4这样的视频文件也能播放(当然只有声音),但是不支持目录,也不支持m3u8这样的播放列表文件。每个文件播放结束后发送“小爱 播放 <下一个url>”来播放下一个文件太麻烦了,于是包装了另一个指令:
小爱 播放目录 <目录|文件|url> [循环模式]
WebDAV.png IMG_20230903_223207.jpg
“播放目录”会执行一个脚本,脚本支持两个参数,第1个必传目录或文件或NAS链接,链接会被转换为NAS上的目录或文件;第2个可选参数循环模式,0表示播放目录不循环,1表示目录循环,2表示单曲循环。脚本会通过传入参数查找文件确定当前要播放的文件,然后调用ffmpeg获取文件播放时长,再发送指令“小爱 播放  <当前文件url>; <当前文件播放时长> 小爱 播放目录 <当前文件> <循环模式>”,作用是让小爱音箱播放NAS上的文件,并且设置一个文件时长后的定时任务,当前文件播放结束后自动重新运行该脚本,脚本会根据传入参数确定下一个要播放的文件,从而实现了让小爱音箱播放NAS上的目录或者单曲循环。
总的来说还是挺满意的,通过小爱播放NAS音乐,播放指定目录,从指定文件开始播放指定目录,单曲循环,定时播放等都实现了,这小爱音箱性价比太值了。


因为这个实现与我的指令、WebDAV、文件分享等功能结合在一起,难以剥离,所以具体的脚本和代码就不分享了,分享方法和思路,感兴趣的可以参考试试。


评分

参与人数 1金钱 +10 收起 理由
DDDear + 10 高手,这是高手!

查看全部评分

回复

使用道具 举报

0

主题

562

帖子

2194

积分

金牌会员

Rank: 6Rank: 6

积分
2194
金钱
1632
HASS币
0
发表于 2023-9-3 23:21:05 | 显示全部楼层
求指导怎么弄的控制呀
回复

使用道具 举报

0

主题

36

帖子

328

积分

中级会员

Rank: 3Rank: 3

积分
328
金钱
292
HASS币
0
发表于 2023-9-3 23:56:22 | 显示全部楼层
6 学习一下
回复

使用道具 举报

0

主题

116

帖子

1831

积分

金牌会员

Rank: 6Rank: 6

积分
1831
金钱
1715
HASS币
0
发表于 2023-9-4 08:32:00 | 显示全部楼层
学习一下
回复

使用道具 举报

74

主题

514

帖子

3119

积分

论坛元老

Rank: 8Rank: 8

积分
3119
金钱
2605
HASS币
0
发表于 2023-9-4 09:29:40 | 显示全部楼层
感谢思路,想问一下node-red-contrib-xiaoai-tts节点和/vv314/xiaoai-tts/是一个吗?不是的话后者怎么在ha里边调用?
回复

使用道具 举报

12

主题

418

帖子

2298

积分

金牌会员

HomeAssistant

Rank: 6Rank: 6

积分
2298
金钱
1875
HASS币
20
发表于 2023-9-4 11:46:28 | 显示全部楼层
我测试了调音量没问题,但是不能tts和playUrl。。。不知道哪里不对
回复

使用道具 举报

5

主题

96

帖子

650

积分

高级会员

Rank: 4

积分
650
金钱
554
HASS币
0
发表于 2023-9-4 12:27:48 | 显示全部楼层
可以安装在NR里吗,NR里怎么播放URL的MP3?
回复

使用道具 举报

16

主题

167

帖子

1367

积分

金牌会员

Rank: 6Rank: 6

积分
1367
金钱
1200
HASS币
0
 楼主| 发表于 2023-9-4 19:32:50 | 显示全部楼层
silas3082 发表于 2023-9-4 09:29
感谢思路,想问一下node-red-contrib-xiaoai-tts节点和/vv314/xiaoai-tts/是一个吗?不是的话后者怎么在ha ...

对node-red-contrib-xiaoai-tts节点稍微做了点修改,加了一个play_url功能
回复

使用道具 举报

16

主题

167

帖子

1367

积分

金牌会员

Rank: 6Rank: 6

积分
1367
金钱
1200
HASS币
0
 楼主| 发表于 2023-9-4 19:34:26 | 显示全部楼层
DDDear 发表于 2023-9-4 11:46
我测试了调音量没问题,但是不能tts和playUrl。。。不知道哪里不对

tts是可以的 ,play_url需要自己改代码或者催原作者更新
回复

使用道具 举报

16

主题

167

帖子

1367

积分

金牌会员

Rank: 6Rank: 6

积分
1367
金钱
1200
HASS币
0
 楼主| 发表于 2023-9-4 19:35:29 | 显示全部楼层
yuejr 发表于 2023-9-4 12:27
可以安装在NR里吗,NR里怎么播放URL的MP3?

对node-red-contrib-xiaoai-tts节点稍微做点修改,加一个play_url功能就可以了
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-5-7 14:26 , Processed in 0.137065 second(s), 35 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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