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

 找回密码
 立即注册
查看: 1070|回复: 11

[技术探讨] 如何在自动化中执行后用大模型进行个性语音回复。

[复制链接]

76

主题

624

帖子

2722

积分

金牌会员

Rank: 6Rank: 6

积分
2722
金钱
2093
HASS币
0
发表于 2025-2-5 23:45:28 | 显示全部楼层 |阅读模式
本帖最后由 lichao622 于 2025-2-6 20:05 编辑

自动化中可以设置固定的回复,也可以读取一些传感器的数值播报出来。但是这种也听腻了,而且永远都是固定的说法。能不能用大模型(gpt deepseek gemmi等)进行自由的回复,然后在tts中播放(比如语音助手或者小爱同学这种)。我初步想到的是用conversation对话,给大模型描述下,他需要回复对应的内容。但是这个回复的speeh应该怎么用呢?怎么选择指定的助手播放呢?

截屏2025-02-05 23.38.24.png

尝试设置对话处理就可以,变量后面用。其实也就是针对固定的场景或者自动化,灵活的表达。而不是每次都是固定的回复,增加点趣味吧。
action: conversation.process
data:
  agent_id: conversation.chatgpt
  text: 用人类语言生成适合早上的话,简短一些,可以包含关心、提醒、问候、激励、名言等任何内容,不要重复之前的内容。然后告诉我今天的天气,根据天气简短的做出提醒。
response_variable: morning


回复

使用道具 举报

6

主题

91

帖子

377

积分

论坛分享达人

积分
377
金钱
286
HASS币
0
发表于 2025-2-6 08:48:49 | 显示全部楼层
我觉得是可行的
第一步,安装ollama
第二步,在服务器上运行ollama, 你可以运行seepseek模型,比如说用这个命令 ollama run deepseek-r1:7b
第三步,在服务器上安装一个gtts文本转mp3软件: pip install gtts
第四步,建立一个shell脚本,暂且叫这个脚本为ds.sh
#!/bin/bash
ollama run deepseek "$1" > response.txt
gtts-cli -f response.txt -o output.mp3

第五步,在HA里添加一个shell_command:
shell_command:
  deepseek_reply: ds.sh {{prompt}}
然后你就在action里调用这个命令了。
actions:
  - action: shell_command.deepseek_reply
之后你会得到一个output.mp3,再播放它即刻。
这些都是我手敲的,没有测试过,但是我觉得理论上是可以的。
回复

使用道具 举报

14

主题

1529

帖子

4875

积分

论坛元老

Rank: 8Rank: 8

积分
4875
金钱
3346
HASS币
0
发表于 2025-2-6 09:11:08 | 显示全部楼层
你升级下版本,可以制定响应变量
回复

使用道具 举报

76

主题

624

帖子

2722

积分

金牌会员

Rank: 6Rank: 6

积分
2722
金钱
2093
HASS币
0
 楼主| 发表于 2025-2-6 09:56:49 | 显示全部楼层
悠哉悠哉 发表于 2025-2-6 08:48
我觉得是可行的
第一步,安装ollama
第二步,在服务器上运行ollama, 你可以运行seepseek模型,比如说用这 ...

我来试试。但是这个还得外部安装软件呀。
回复

使用道具 举报

76

主题

624

帖子

2722

积分

金牌会员

Rank: 6Rank: 6

积分
2722
金钱
2093
HASS币
0
 楼主| 发表于 2025-2-6 10:01:57 | 显示全部楼层
隔壁的王叔叔 发表于 2025-2-6 09:11
你升级下版本,可以制定响应变量

响应变量是不是也只能输入固定的话呢。
回复

使用道具 举报

14

主题

1529

帖子

4875

积分

论坛元老

Rank: 8Rank: 8

积分
4875
金钱
3346
HASS币
0
发表于 2025-2-6 10:18:24 | 显示全部楼层
lichao622 发表于 2025-2-6 10:01
响应变量是不是也只能输入固定的话呢。

随便输,只是把响应拿出来方便下一步操作。
回复

使用道具 举报

16

主题

227

帖子

1235

积分

金牌会员

Rank: 6Rank: 6

积分
1235
金钱
1008
HASS币
0
发表于 2025-2-6 10:34:40 | 显示全部楼层
actions:
  - action: conversation.process
    metadata: {}
    data:
      text: 讲一个笑话
      agent_id: conversation.qwen2_5_7b
    response_variable: xiaohua
  - action: tts.speak
    metadata: {}
    data:
      cache: true
      media_player_entity_id: media_player.home_assistant_voice_09122e_media_player
      message: "{{xiaohua}}"
    enabled: true
  - action: assist_satellite.announce
    metadata: {}
    data:
      message: "{{xioahua}}"
    target:
      entity_id: assist_satellite.home_assistant_voice_09122e_assist_satellite
回复

使用道具 举报

16

主题

227

帖子

1235

积分

金牌会员

Rank: 6Rank: 6

积分
1235
金钱
1008
HASS币
0
发表于 2025-2-6 10:35:51 | 显示全部楼层
本帖最后由 duanyudan123 于 2025-2-6 10:44 编辑

tts和公告都可以用的。如果需要显示文字,而不是是原始响应内容可以使用模板格式化,保留中文字符串。
回复

使用道具 举报

14

主题

1529

帖子

4875

积分

论坛元老

Rank: 8Rank: 8

积分
4875
金钱
3346
HASS币
0
发表于 2025-2-6 11:11:05 | 显示全部楼层
duanyudan123 发表于 2025-2-6 10:35
tts和公告都可以用的。如果需要显示文字,而不是是原始响应内容可以使用模板格式化,保留中文字符串。 ...

大佬,上面的这个assist_satellite.announce是什么,我的咋没有?
回复

使用道具 举报

165

主题

2660

帖子

8242

积分

元老级技术达人

积分
8242
金钱
5577
HASS币
30
发表于 2025-2-6 12:44:06 | 显示全部楼层
隔壁的王叔叔 发表于 2025-2-6 11:11
大佬,上面的这个assist_satellite.announce是什么,我的咋没有?

卫星播报信息。你应该没有语音助手设备,一般是esphome组的,或者ha官方的,跟tts语音播报一样,


语音助手每次回复确实都差不多,很难每次不一样,比如打开电视语音,反馈就那几种,好的,或者搞定,或者电视已经打开,强制加点随机语句,增加新鲜感,我感觉意义不大,
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2025-3-14 14:59 , Processed in 0.938140 second(s), 35 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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