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

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

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

  [复制链接]

3

主题

74

帖子

996

积分

高级会员

Rank: 4

积分
996
金钱
922
HASS币
0
发表于 2021-12-21 21:51:40 来自手机 | 显示全部楼层
秋雨轩 发表于 2021-12-21 09:42
addon的nr我还真没用过,不太了解。要么自己直接安装nr,要么还有个办法,试试nr自带的http request节点 ...

谢谢,实在没用过NR,有点无从下手,慢慢研究吧
回复

使用道具 举报

3

主题

74

帖子

996

积分

高级会员

Rank: 4

积分
996
金钱
922
HASS币
0
发表于 2021-12-22 01:22:50 | 显示全部楼层
秋雨轩 发表于 2021-12-12 09:42
Node-RED version: v1.2.1
Node.js  version: v12.20.1

docker 安装 Node-RED version: v1.2.1 默认的 Node.js  version: v10.22.1 安装 @dainer88/node-red-contrib-send-form 提示 SyntaxError: Unexpected token * (line:3) 错误,还是用不了。

有没有 Node-RED version: v1.2.1 和 Node.js  version: v12.20.1 这个配置的docker compose啊?

回复

使用道具 举报

3

主题

74

帖子

996

积分

高级会员

Rank: 4

积分
996
金钱
922
HASS币
0
发表于 2021-12-22 01:30:10 | 显示全部楼层
秋雨轩 发表于 2021-12-21 09:42
addon的nr我还真没用过,不太了解。要么自己直接安装nr,要么还有个办法,试试nr自带的http request节点 ...

用自带的http request节点倒是不报错,但是没什么反应,完全不知道问题在哪。

能不能劳烦楼主用自带的http request节点再调试一下。这个@dainer88/node-red-contrib-send-form实在是用不起来
回复

使用道具 举报

11

主题

266

帖子

2574

积分

金牌会员

Rank: 6Rank: 6

积分
2574
金钱
2298
HASS币
50
 楼主| 发表于 2021-12-22 07:33:23 | 显示全部楼层
scxs535 发表于 2021-12-22 01:30
用自带的http request节点倒是不报错,但是没什么反应,完全不知道问题在哪。

能不能劳烦楼主用自带的ht ...

自带的http request节点我研究过,没成功。
回复

使用道具 举报

3

主题

74

帖子

996

积分

高级会员

Rank: 4

积分
996
金钱
922
HASS币
0
发表于 2021-12-22 08:39:26 | 显示全部楼层
秋雨轩 发表于 2021-12-22 07:33
自带的http request节点我研究过,没成功。

成功了。
终于用nr自带的http request节点成功发声了。
这样只需安装node-red-contrib-baidutts一个节点就能用了。
多谢楼主的帮助。
奉上代码:

[
    {
        "id": "ed5c22be.f24b8",
        "type": "tab",
        "label": "样例:百度TTS萤石摄像头播放",
        "disabled": false,
        "info": ""
    },
    {
        "id": "e295bd00.6875f",
        "type": "function",
        "z": "ed5c22be.f24b8",
        "name": "萤石appkey&appsecret",
        "func": "msg.headers={\n         'Content-Type':'application/x-www-form-urlencoded',\n}\nmsg.payload={\n    "appKey":"此处填写你的萤石云账号信息",\n    "appSecret":"此处填写你的萤石云账号信息"\n}\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "x": 390,
        "y": 120,
        "wires": [
            [
                "b6de2172.7894"
            ]
        ]
    },
    {
        "id": "b6de2172.7894",
        "type": "http request",
        "z": "ed5c22be.f24b8",
        "name": "",
        "method": "POST",
        "ret": "obj",
        "paytoqs": "ignore",
        "url": "https://open.ys7.com/api/lapp/token/get",
        "tls": "",
        "persist": false,
        "proxy": "",
        "authType": "",
        "x": 620,
        "y": 120,
        "wires": [
            [
                "ada5c087.d9e7d"
            ]
        ]
    },
    {
        "id": "58b8501a.8f147",
        "type": "inject",
        "z": "ed5c22be.f24b8",
        "name": "",
        "props": [
            {
                "p": "payload"
            }
        ],
        "repeat": "",
        "crontab": "00 02 * * 1",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "",
        "payloadType": "date",
        "x": 200,
        "y": 120,
        "wires": [
            [
                "e295bd00.6875f"
            ]
        ]
    },
    {
        "id": "ada5c087.d9e7d",
        "type": "change",
        "z": "ed5c22be.f24b8",
        "name": "",
        "rules": [
            {
                "t": "set",
                "p": "萤石token",
                "pt": "global",
                "to": "payload.data.accessToken",
                "tot": "msg"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 820,
        "y": 120,
        "wires": [
            []
        ]
    },
    {
        "id": "ca58bc7e.c053c",
        "type": "baidu-tts",
        "z": "ed5c22be.f24b8",
        "server": "b7a5e998.62a508",
        "data": "",
        "spd": "5",
        "pit": "6",
        "vol": "13",
        "per": "0",
        "path": "",
        "x": 380,
        "y": 260,
        "wires": [
            [
                "57c2029.6a274fc"
            ]
        ]
    },
    {
        "id": "db13457a.010148",
        "type": "inject",
        "z": "ed5c22be.f24b8",
        "name": "输入TTS的文字",
        "props": [
            {
                "p": "data",
                "v": "谁人笑我太疯癫。此处填写想要TTS的文字",
                "vt": "str"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payloadType": "str",
        "x": 200,
        "y": 260,
        "wires": [
            [
                "ca58bc7e.c053c"
            ]
        ]
    },
    {
        "id": "57c2029.6a274fc",
        "type": "function",
        "z": "ed5c22be.f24b8",
        "name": "整理数据",
        "func": "msg.token=global.get('萤石token')\n\nmsg.headers = {}\nmsg.method = "POST"\nmsg.url = "https://open.ys7.com/api/lapp/voice/sendonce" ;\nmsg.headers["content-type"] = "multipart/form-data";\n\n\nmsg.payload  = {\n    accessToken: `${msg.token}`,\n    deviceSerial:'此处填写你的摄像头序列号',\n    voiceFile: {\n        value: msg.result.data,\n        options: {\n            filename: 'tts.mp3',\n        },\n    },\n};\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "x": 580,
        "y": 260,
        "wires": [
            [
                "fa1e4c48.e86e"
            ]
        ]
    },
    {
        "id": "fa1e4c48.e86e",
        "type": "http request",
        "z": "ed5c22be.f24b8",
        "name": "摄像头播放",
        "method": "use",
        "ret": "txt",
        "paytoqs": "ignore",
        "url": "https://open.ys7.com/api/lapp/voice/sendonce",
        "tls": "",
        "persist": false,
        "proxy": "",
        "authType": "",
        "x": 730,
        "y": 260,
        "wires": [
            []
        ]
    },
    {
        "id": "e5c3f635.5e07b8",
        "type": "comment",
        "z": "ed5c22be.f24b8",
        "name": "获取萤石云token",
        "info": "",
        "x": 360,
        "y": 80,
        "wires": []
    },
    {
        "id": "1204021c.a16b5e",
        "type": "comment",
        "z": "ed5c22be.f24b8",
        "name": "百度云tts萤石摄像头播放",
        "info": "",
        "x": 420,
        "y": 220,
        "wires": []
    },
    {
        "id": "b7a5e998.62a508",
        "type": "baidu-tts-server",
        "z": "",
        "name": "百度TTS配置样例",
        "appID": "此处填写你的百度云appID",
        "apiKey": "此处填写你的百度云API Key",
        "secretKey": "此处填写你的百度云Secret Key"
    }
]
回复

使用道具 举报

11

主题

266

帖子

2574

积分

金牌会员

Rank: 6Rank: 6

积分
2574
金钱
2298
HASS币
50
 楼主| 发表于 2021-12-22 10:02:07 来自手机 | 显示全部楼层
scxs535 发表于 2021-12-22 08:39
成功了。
终于用nr自带的http request节点成功发声了。
这样只需安装node-red-contrib-baidutts一个节点 ...

太牛逼了,我没帮到啥,你却做了很大贡献,等我有时间试试,没问题的话把帖子更新一下。
回复

使用道具 举报

3

主题

74

帖子

996

积分

高级会员

Rank: 4

积分
996
金钱
922
HASS币
0
发表于 2021-12-22 20:42:24 | 显示全部楼层
秋雨轩 发表于 2021-12-22 10:02
太牛逼了,我没帮到啥,你却做了很大贡献,等我有时间试试,没问题的话把帖子更新一下。 ...

楼主能不能在这个基础上再研究研究,怎么用http request调用本地mp3文件,不通过baidu?
回复

使用道具 举报

30

主题

526

帖子

2323

积分

金牌会员

Rank: 6Rank: 6

积分
2323
金钱
1792
HASS币
20
发表于 2021-12-23 00:09:42 | 显示全部楼层
本帖最后由 dinglifeng 于 2021-12-23 00:17 编辑
huang7dede 发表于 2021-12-11 10:31
你这function节点写错了,,改成这样就行,,需要参数是msg.data="马桶已经清洁",,你之前设置的是msg.payload. ...

老大 安装了 edge-tts节点 部署的时候提示 流程由于缺少节点类型而停止,能给看看咋回事么
  • SyntaxError: Cannot use import statement outside a module (line:7)

回复

使用道具 举报

44

主题

632

帖子

3570

积分

论坛元老

Rank: 8Rank: 8

积分
3570
金钱
2938
HASS币
0
发表于 2021-12-23 09:23:00 | 显示全部楼层
楼主 你看下 是不是近来那个萤石云视频播放链接是否已失效,我这边测试了 直接打开网页已经无法显示监控画面了 以前可以的
回复

使用道具 举报

11

主题

266

帖子

2574

积分

金牌会员

Rank: 6Rank: 6

积分
2574
金钱
2298
HASS币
50
 楼主| 发表于 2021-12-23 10:14:37 来自手机 | 显示全部楼层
wangmucha 发表于 2021-12-23 09:23
楼主 你看下 是不是近来那个萤石云视频播放链接是否已失效,我这边测试了 直接打开网页已经无法显示监控画 ...

我的还可以啊,刚测试的。如果有问题那就是萤石云端的问题。另外看看会不会是你的token没获取到,token过期了。
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-5-3 12:36 , Processed in 0.058130 second(s), 30 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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