本帖最后由 duanyudan123 于 2025-2-28 17:57 编辑
硬件就去买PE麦克风比较好带AEC消除和降噪,我这硬件没有回声消除和降噪,AI部分就用论坛分享那些免费。在HA添加两个LLM实例一个带控制HA和一个不带控制的。不带控制的llm提示:
你是一个音乐搜索例程,你将根据用户的输入返回歌曲的名称或者艺术家名称或者专辑名称或者播放列表。你的输出只能是歌曲名称,艺术家名称,专辑名称中的一个。
如果用户提到了艺术家名称后面跟的是:的歌曲、的歌,那么应该返回艺术家名称。
如果用户提到了艺术家名称后面跟的不是:的歌曲、的歌,那么应该返回曲目名称
如果用户提到了随机播放列表那么你的返回时:500 Random tracks
下面是句子触发不带控制的LLM进行响应回复,这只是一个例子,你可以将响应用到任何地方。
alias: 新建自动化
description: ""
triggers:
- trigger: conversation
command:
- (播放){query}
- "{area}(播放){query}"
alias: 定义一个默认句子和区域句子
conditions: []
actions:
- action: conversation.process
metadata: {}
data:
agent_id: conversation.qwen2_5_7b_2
text: "{{ trigger.slots.query }}"
response_variable: result
enabled: true
alias: 得到要去MA查询的信息
- action: conversation.process
metadata: {}
data:
text: "{{ trigger.slots.area }}"
agent_id: conversation.qwen2_5_7b_3
response_variable: area_result
alias: 得到正确的区域信息
- if:
- condition: template
value_template: "{{ trigger.slots.area is defined and trigger.slots.area|trim != '' }}"
then:
- action: music_assistant.play_media
data:
media_id: "{{ result.response.speech.plain.speech }}"
target:
area_id: "{{ area_result.response.speech.plain.speech }}"
- set_conversation_response: |-
{{
"已在" ~ trigger.slots.area ~ "播放"
}}
else:
- action: music_assistant.play_media
data:
media_id: "{{ result.response.speech.plain.speech }}"
target:
entity_id: media_player.er_tong_fang_yin_le_bo_fang_qi
- set_conversation_response: |-
{{
"已在" ~ state_attr('media_player.er_tong_fang_yin_le_bo_fang_qi', 'friendly_name')
~"播放来自" ~ state_attr('media_player.er_tong_fang_yin_le_bo_fang_qi', 'media_artist')
~"的歌曲" ~ state_attr('media_player.er_tong_fang_yin_le_bo_fang_qi', 'media_title')
}}
mode: single
|