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

 找回密码
 立即注册
查看: 579|回复: 16

[经验分享] 语音助手配合MusicAssistant实现语音控制播放音乐

[复制链接]

7

主题

64

帖子

649

积分

高级会员

Rank: 4

积分
649
金钱
585
HASS币
0
发表于 7 天前 | 显示全部楼层 |阅读模式
本帖最后由 piajava 于 2025-1-5 14:09 编辑

2025.1.5更新:
MusicAssistant的HACS版本已冻结,全面转向ha内部版本。MASS官网语音控制教程已全部删除(删除前最后一版特别注明仅限HACS)。目前暂时想到的解决方案有:
1.若已下载hacs版,先按原配置继续使用,不要移除(目前无新功能,实测2025.1版本仍能正常使用);
2.使用英文论坛的方案https://community.home-assistant.io/t/ha-ma-no-voice-integration-working-throws-error/812074/28,自建intents MassPlayMediaAssist,继续配合原中文意图使用;
3.HA升级至2025.1版本,配合官方放出的蓝图(原理是自动化的句子触发器,所以官方版本是英文句子触发,理论上可以仿照写出中文触发器)使用blueprints/music_assistant_blueprint.yaml at main · music-assistant/blueprints · GitHub

========================以下是原帖===========================
先上截图预览效果

                               
登录/注册后可看大图

MusicAssistant(下文简称MASS)是一个音乐库管理器,用于管理您的本地和在线音乐源(本地音乐源目前支持本地文件、SMB共享、jellf和plex等),它可以轻松地将您喜爱的流媒体(主要是applemusic和spotify等,暂不支持国内音乐平台)传输到各种受支持的播放器(支持sonos、airplay、dlna等,也可以将HA的播放器暴露给MASS),并与HA相配合。安装MASS部分可以查看官网教程https://music-assistant.io/installation/,有docker和haos两种安装方式,个人建议在有一定音频解码能力的主机上安装。

安装完成后在MASS集成(推荐用HACS安装)上配置MASS主机的ip,完成后可以看见所有接入了MASS的播放器实体,进入实体选择媒体可以看见MASS上的所有音乐,HA与MASS连通部分就算弄好了。此时就可以控制已经接入MASS的播放器来播放音乐了。

接下来是配置语音助手播放音乐部分,我的HA的docker安装的,版本2024.12.5。HA 2024.12版开始支持优先匹配本地意图,本地意图匹配不上再发送给语音助手设定的大模型理解,能够减少一些api调用,提高处理速度。而12.5左右的版本解决了中文意图
不识别的bug。建议升到2024.12.5体验。
按照官方教程,在HA的config目录中(放configuration.yaml的目录)添加一个名为custom_sentences/zh-cn的文件夹(即新建一个
custom_sentences文件夹,在里面再新建一个zh-cn文件夹),然后将music_assistant_PlayMediaAssist.yaml(用于自定义意图)和responses.yaml(自定义意图答复)放入zh-cn文件夹,然后重启HA,之后就可以用语音助手控制播放音乐了。(注意目前语音播放需要调用的MassPlayMediaAssist服务已确认在docker版的官方MASS集成中不可用,需要禁用HA集成,到HACS手动安装集成。github上答复是考虑做一个蓝图弥补,现在先用HACS版本)

语音意图用法:
以定位区域里的播放器播放为例,其它可参考music_assistant_PlayMediaAssist.yaml内格式:
"用在<area>[里]的{name}<play>(歌手|艺术家){artist}的(歌|音乐)"
<area>是在HA里设置的区域关键词;[里]方括号里的是可选关键词,和后面的“的”连起来就是匹配“里的”或“的”;{name}是播放器名字,<play>播放关键词,匹配expansion_rules里play的关键词,目前匹配“播放”或“收听”(歌手|艺术家),匹配“歌手”或者“艺术家”;{artist}歌手艺术家的名字;(歌|音乐),匹配“歌”或者“音乐”。
比如如果我在客厅有一台叫做MA3的播放器,命令就可以是
用在客厅的MA3播放歌手周杰伦的歌

ps:MASS原配置文件music_assistant_PlayMediaAssist.yaml中的“<artist>”字段会莫名让意图无反应,所以我把它删掉了,大家也可以结合自己的语境修改music_assistant_PlayMediaAssist.yaml中的sentences部分,之后可以通过开发者工具-ASSIST语句解析器实验是否能正确识别。




zh-cn.zip

1.03 KB, 下载次数: 19

评分

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

查看全部评分

回复

使用道具 举报

153

主题

2369

帖子

7373

积分

元老级技术达人

积分
7373
金钱
4999
HASS币
30
发表于 6 天前 | 显示全部楼层
这个是官方弄的吗,还是你自己弄的
回复

使用道具 举报

7

主题

64

帖子

649

积分

高级会员

Rank: 4

积分
649
金钱
585
HASS币
0
 楼主| 发表于 6 天前 | 显示全部楼层
bugensui 发表于 2024-12-30 12:01
这个是官方弄的吗,还是你自己弄的

官方弄的,我只是将music_assistant_PlayMediaAssist.yaml这个文件适配中文环境
回复

使用道具 举报

74

主题

568

帖子

2486

积分

金牌会员

Rank: 6Rank: 6

积分
2486
金钱
1913
HASS币
0
发表于 6 天前 | 显示全部楼层
llm能否匹配意图
回复

使用道具 举报

7

主题

64

帖子

649

积分

高级会员

Rank: 4

积分
649
金钱
585
HASS币
0
 楼主| 发表于 6 天前 | 显示全部楼层

我没有LLM,Musicassistant的文档中对LLM控制的说明就只有“Any reasonable request to play on a device should be understood by the LLM thus there are no mandatory sentences that must be used.”
https://music-assistant.io/integration/voice/
回复

使用道具 举报

153

主题

2369

帖子

7373

积分

元老级技术达人

积分
7373
金钱
4999
HASS币
30
发表于 5 天前 | 显示全部楼层
这句话怎么理解,ha系统内置的mass集成不行,要语音控制,必须用之前的hacs里的mass集成才可以?
注意目前语音播放需要调用的MassPlayMediaAssist服务已确认在docker版的官方MASS集成中不可用,需要禁用HA集成,到HACS手动安装集成。github上答复是考虑做一个蓝图弥补,现在先用HACS版本


回复

使用道具 举报

7

主题

64

帖子

649

积分

高级会员

Rank: 4

积分
649
金钱
585
HASS币
0
 楼主| 发表于 5 天前 | 显示全部楼层
bugensui 发表于 2024-12-31 16:29
这句话怎么理解,ha系统内置的mass集成不行,要语音控制,必须用之前的hacs里的mass集成才可以?

...

对于我使用的docker版来说,是的。ha系统内置的mass集成在语音控制时会在日志报错:homeassistant.helpers.intent.UnknownIntent: Unknown intent MassPlayMediaAssist,github上反馈说是mass的核心集成目前不支持语音控制。英文论坛上的另一种解决方法是自己创建intent MassPlayMediaAssist。
github关于报错的反馈
英文论坛的另一种解决方案
回复

使用道具 举报

2

主题

19

帖子

63

积分

注册会员

Rank: 2

积分
63
金钱
44
HASS币
0
发表于 3 天前 | 显示全部楼层
我是直接在ha里面安装的ma,操作和楼主这个一样吗?20.12.2024
回复

使用道具 举报

3

主题

303

帖子

3312

积分

论坛元老

Rank: 8Rank: 8

积分
3312
金钱
3009
HASS币
0
发表于 3 天前 | 显示全部楼层
piajava 发表于 2024-12-31 17:00
对于我使用的docker版来说,是的。ha系统内置的mass集成在语音控制时会在日志报错:homeassistant.helper ...

请教下,HAOS加载项安装的MusicAssistant试用12.5系统自带的mass插件还是HACS安装的插件,HACS安装的插件名称是Music Assistant (CUSTOM)
回复

使用道具 举报

7

主题

64

帖子

649

积分

高级会员

Rank: 4

积分
649
金钱
585
HASS币
0
 楼主| 发表于 3 天前 | 显示全部楼层
iamhyde 发表于 2025-1-2 13:10
请教下,HAOS加载项安装的MusicAssistant试用12.5系统自带的mass插件还是HACS安装的插件,HACS安装的插件名 ...

我自己目前是用的HACS安装的插件 Music Assistant (CUSTOM),鉴于最近都还没有更新,为了用助手控制的话推荐先用Music Assistant (CUSTOM),哪天系统自带的解决了再迁过去。(Music Assistant其实也是2024.12版左右才集成进ha自带的插件,之前都是用的HACS)
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2025-1-5 20:24 , Processed in 0.186237 second(s), 35 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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