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

 找回密码
 立即注册
楼主: 秋雨轩

[进阶教程] 你是我的眼,也是我的嘴——利用萤石摄像头TTS播报

  [复制链接]

7

主题

87

帖子

733

积分

高级会员

Rank: 4

积分
733
金钱
646
HASS币
0
发表于 2021-11-20 19:12:44 | 显示全部楼层
很厉害的样子,做个记好,还没想好拿过来怎么用
回复

使用道具 举报

11

主题

266

帖子

2574

积分

金牌会员

Rank: 6Rank: 6

积分
2574
金钱
2298
HASS币
50
 楼主| 发表于 2021-11-20 20:15:48 来自手机 | 显示全部楼层
dinglifeng 发表于 2021-11-20 19:08
老大 请问转化成二进制数据用哪个节点作为一个NR初学者我现在是一脸懵逼,您能给做个例子么
...

这得看你那个tts输出来的是什么,很多节点都会自带输出二进制数据功能。你看看你那个tts输出的是啥。通用的把文件转化成二进制数据的我知道file in节点可以。比如你那个tts输出到本地一个语音mp3文件,你就可以用file in节点把这个文件转化成二进制数据。
回复

使用道具 举报

30

主题

526

帖子

2323

积分

金牌会员

Rank: 6Rank: 6

积分
2323
金钱
1792
HASS币
20
发表于 2021-11-20 21:18:36 | 显示全部楼层
秋雨轩 发表于 2021-11-20 20:15
这得看你那个tts输出来的是什么,很多节点都会自带输出二进制数据功能。你看看你那个tts输出的是啥。通用 ...

[
    {
        "id": "f475c700356aa16a",
        "type": "http-send-multipart-form-v3",
        "z": "557fd105.fe3338",
        "name": "摄像头播放",
        "filetype": "binary",
        "formparts": "",
        "ret": "txt",
        "url": "https://open.ys7.com/api/lapp/voice/sendonce",
        "tls": "",
        "sendrequest": false,
        "x": 2770,
        "y": 980,
        "wires": [
            []
        ]
    },
    {
        "id": "84920f544da93720",
        "type": "function",
        "z": "557fd105.fe3338",
        "name": "整理数据",
        "func": "msg.token=global.get('萤石token')\nmsg.payload = {\n  file: {\n    field: 'voiceFile',\n    data: msg.data,\n    type: 'binary',\n    name: 'tts'\n  },\n  formOptions: {\n    accessToken: `${msg.token}`,\n    deviceSerial:'135345203',\n  }\n}\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 2580,
        "y": 980,
        "wires": [
            [
                "f475c700356aa16a"
            ]
        ]
    },
    {
        "id": "2306085ccc1f3679",
        "type": "api-call-service",
        "z": "557fd105.fe3338",
        "name": "edge tts",
        "server": "d06297cb.c4f038",
        "version": 3,
        "debugenabled": false,
        "service_domain": "tts",
        "service": "edge_tts_say",
        "entityId": "media_player.xxxx",
        "data": "",
        "dataType": "jsonata",
        "mergecontext": "",
        "mustacheAltTags": false,
        "outputProperties": [
            {
                "property": "data",
                "propertyType": "msg",
                "value": "你好啊",
                "valueType": "str"
            }
        ],
        "queue": "none",
        "x": 2380,
        "y": 980,
        "wires": [
            [
                "84920f544da93720"
            ]
        ]
    },
    {
        "id": "ece6e9261b958a42",
        "type": "function",
        "z": "557fd105.fe3338",
        "name": "TTS内容",
        "func": "var message = `主人您好,欢迎您回家。`;\nmsg.payload = {};\nmsg.payload.data = {\"message\":message};\nreturn msg;\n",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 2200,
        "y": 980,
        "wires": [
            [
                "2306085ccc1f3679"
            ]
        ]
    },
    {
        "id": "0e088915f8025859",
        "type": "inject",
        "z": "557fd105.fe3338",
        "name": "",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "",
        "payloadType": "date",
        "x": 2040,
        "y": 980,
        "wires": [
            [
                "ece6e9261b958a42"
            ]
        ]
    },
    {
        "id": "d06297cb.c4f038",
        "type": "server",
        "name": "Home Assistant",
        "version": 2,
        "addon": true,
        "rejectUnauthorizedCerts": true,
        "ha_boolean": "y|yes|true|on|home|open",
        "connectionDelay": true,
        "cacheJson": true,
        "heartbeat": false,
        "heartbeatInterval": 30
    }
]

我写成这样就不知道后面怎么弄了,您能帮我看看么
回复

使用道具 举报

0

主题

4

帖子

30

积分

新手上路

Rank: 1

积分
30
金钱
26
HASS币
0
发表于 2021-11-20 21:24:38 | 显示全部楼层
感谢感谢
回复

使用道具 举报

11

主题

266

帖子

2574

积分

金牌会员

Rank: 6Rank: 6

积分
2574
金钱
2298
HASS币
50
 楼主| 发表于 2021-11-21 12:22:39 | 显示全部楼层
dinglifeng 发表于 2021-11-20 21:18
[
    {
        "id": "f475c700356aa16a",

看了一下,你用的这个edge tts是个HA的插件,然后NR调用HA的service,这个我就不太了解了,得去问问这个插件作者,能否输出音频文件二进制数据。不过我看HA官网,tts的service应该都有个cache和cache_dir的参数可以设置。如果你那个tts插件也可以用的话,就可以把音频文件存到本地,然后用我说的file in节点再读取出来生成二进制数据,你可以试一下。
https://www.home-assistant.io/integrations/tts
回复

使用道具 举报

30

主题

526

帖子

2323

积分

金牌会员

Rank: 6Rank: 6

积分
2323
金钱
1792
HASS币
20
发表于 2021-11-21 17:27:22 | 显示全部楼层
秋雨轩 发表于 2021-11-21 12:22
看了一下,你用的这个edge tts是个HA的插件,然后NR调用HA的service,这个我就不太了解了,得去问问这个 ...

谢谢啊 我大概明白什么意思了,我去试试看 百度现在不能领取免费的语音合成了 愁人
回复

使用道具 举报

2

主题

47

帖子

385

积分

中级会员

Rank: 3Rank: 3

积分
385
金钱
338
HASS币
0
发表于 2021-11-21 18:07:02 | 显示全部楼层
学习一下
回复

使用道具 举报

15

主题

305

帖子

2247

积分

金牌会员

Rank: 6Rank: 6

积分
2247
金钱
1942
HASS币
0
发表于 2021-12-5 17:26:52 | 显示全部楼层
安装http-send-multipart-form-v3后,部署时报错
捕获2.JPG
节点管理里面查看发现
捕获3.JPG
查看node red版本信息如下:
  Current version: 10.2.0
  Upgrades Node-RED to v2.1.4 (#1196)
不知道是否是此节点与新版本不兼容导致的,请教大家是否有解决办法?
回复

使用道具 举报

17

主题

177

帖子

1360

积分

金牌会员

Rank: 6Rank: 6

积分
1360
金钱
1183
HASS币
10
发表于 2021-12-7 20:08:42 | 显示全部楼层
cjnt007 发表于 2021-12-5 17:26
安装http-send-multipart-form-v3后,部署时报错

节点管理里面查看发现

同样问题
回复

使用道具 举报

11

主题

266

帖子

2574

积分

金牌会员

Rank: 6Rank: 6

积分
2574
金钱
2298
HASS币
50
 楼主| 发表于 2021-12-7 20:48:56 来自手机 | 显示全部楼层
cjnt007 发表于 2021-12-5 17:26
安装http-send-multipart-form-v3后,部署时报错

节点管理里面查看发现

看样子真跟版本有关,不是node-red的版本就是node.js的版本问题。要不换换版本试一试,要不换其他http-send-multipart-form节点试试,我当时发现有好几个http-send-multipart-form节点,试了这个可以,另一个不可以用,其他的没再试了。
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-5-1 00:47 , Processed in 0.178810 second(s), 32 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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