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

 找回密码
 立即注册
查看: 42579|回复: 189

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

  [复制链接]

11

主题

271

帖子

2658

积分

金牌会员

Rank: 6Rank: 6

积分
2658
金钱
2377
HASS币
50
发表于 2021-10-25 14:01:07 | 显示全部楼层 |阅读模式
本帖最后由 秋雨轩 于 2022-3-16 12:27 编辑

2022年3月14日更新:萤石云的云广播功能已由免费改为付费。有需要的朋友可以根据情况决定是否继续使用该教程。
前几日发现摄像头无法播报,返回“111000用户资源包余量不足”信息,询问萤石云技术人员,反馈如下“你好,这个接口原本是计费的,之前由于我们这边计费的失误,一直都没有计费,目前已经修复了,如果需要继续使用,请购买资源包。”,真恶心……


成果展示:


前言:前几天在论坛发了个利用萤石云的轻应用API接口直接在钉钉(或其他任何应用)里内嵌类似于萤石APP的视频、云台、对讲等全功能链接的帖子,见这里。当时在研究萤石API文档时就发现了萤石有语音API接口,想着哪天有空研究研究,上周末刚好研究了一下。终于实现了任意音频文件上传萤石云并让摄像头播放出来的功能,结合百度tts,可以用nr实现任意文字tts成mp3文件再由摄像头朗读出来,摄像头变成了可tts的音箱了。最直接的应用场景就是门口的摄像头除了当眼睛现在还可以当嘴巴,可以实现有人按门铃后语音提示门外人员,还有当我出门锁门时门口摄像头tts提醒我今天天气及车辆尾号限行。之前这些是由一个小爱音箱做的,但是放在门里,门外听不是很清楚。其他应用场景大家可以任意发挥,有好的想法也欢迎留言分享。至少百十块钱的萤石摄像头可以任意tts,代替个智能音箱也不错。

前期准备:
既然用到百度tts和萤石云,当然先去申请萤石云账户和百度云账户。教程很多,这里本人不再赘述(因为我实在太懒,并且根据程序员的思维,别人已经做过的程序模块我拿过来引用就行了,没必要自己再写一遍)。
关于百度云,网上大把的教程,例如这个这个,最后得到的参数是你的百度云账户的AppID、API Key和Secret Key。
关于萤石云,网上大把的教程,例如这个这个,最后得到的参数是你的摄像头的序列号、你的萤石云账户的appkey和appsecret。


实施:
导入我的nr流,把每个节点检查一遍,里面但凡有“此处填写你的XXX”这样的地方,都请按照要求填写自己在前期准备时获取的信息。这里本人又偷了个懒,百度TTS没有直接用百度官方API,而是用了论坛坛友已经写好了的NR节点(还是那句话,前人栽树本来就是为后人乘凉的,我没必要重新栽树),需要在NR里搜索下载“百度TTS”这个节点,节点有个配置文件,需要你自己填写上你的百度云账户的AppID、API Key和Secret Key。这个节点可以将tts出来的音频文件输出到本地硬盘,并且这个NR节点会将音频文件的二进制码输出出来,这个二进制码刚好是后面给萤石摄像头上传音频文件所需要用到的。后面上传音频文件给摄像头的部分也需要在NR里搜索一个form-data格式的节点,因为根据萤石云的API,上传文件要用form-data格式,而NR自带的http request节点不支持form-data格式的POST请求(这点坑死我了)。(有更新,前面这句话有错误,NR自带的http request节点支持form-data格式上传文件,之前我一直没研究出来,以为功能有限,目前已有大神研究出来,在115楼,大家可以不用另外下载第三方的form-data格式节点了)这些都弄好后部署,就能听到萤石摄像头进行tts播报了,虽然经过了百度云和萤石云,但响应速度非常快,感觉经常比小爱tts和若琪tts直接到音箱还快。

form-data节点

form-data节点

这里注意有好几个form-data的fork版本,选择安装dainer88的这个,我试过选择了另一个执行的时候报错,其他的没再尝试。


后续:
1、我这里用了萤石云语音API里的一次性临时下发语音到设备的接口,如果想上传固定音频到萤石云,下发固定音频到萤石云,大家可以自行查阅语音API接口,举一反三。
2、上面那条流是定期获取萤石云的token,并存在全局上下文中。为什么要定期获取,可以点这里参见我上个帖子。3、本人小白,啥语言啥代码都不懂,很多东西都是靠猜,靠一遍遍的试错,最后试验出来的。就比如这个form-data格式传文件,估计懂的人1分钟搞定,而我整整试错了一下午才写出来这些代码……分享不易,大家共同进步。

NR流:
游客,如果您要查看本帖隐藏内容请回复



















评分

参与人数 5金钱 +65 HASS币 +20 收起 理由
可可DE + 5 厉害了word楼主!
sasukebinbin + 10 墙都不扶,就服楼主!
+ 20 + 20 大神666!
Tao173 + 10 感谢楼主分享!
antsunzj + 20 可以试试对讲微信语音推送到nr,再推送给摄.

查看全部评分

回复

使用道具 举报

0

主题

115

帖子

913

积分

高级会员

Rank: 4

积分
913
金钱
798
HASS币
0
发表于 2021-10-25 15:03:09 | 显示全部楼层
666 顶上去
回复

使用道具 举报

46

主题

640

帖子

3827

积分

论坛元老

Rank: 8Rank: 8

积分
3827
金钱
3187
HASS币
0
发表于 2021-10-25 15:23:54 来自手机 | 显示全部楼层
很厉害的样子,做个记好,还没想好拿过来怎么用
回复

使用道具 举报

4

主题

331

帖子

2470

积分

金牌会员

Rank: 6Rank: 6

积分
2470
金钱
2139
HASS币
0
发表于 2021-10-25 15:47:43 | 显示全部楼层
摄像头会缓存 语音.mp3 wav 吗?后期会不会对摄像头造成卡顿。
回复

使用道具 举报

11

主题

271

帖子

2658

积分

金牌会员

Rank: 6Rank: 6

积分
2658
金钱
2377
HASS币
50
 楼主| 发表于 2021-10-25 15:50:25 | 显示全部楼层
wbdownn 发表于 2021-10-25 15:47
摄像头会缓存 语音.mp3 wav 吗?后期会不会对摄像头造成卡顿。

不会,百度tts出来的语音文件是存在你的主机上的,百度tts那个节点可以指定路径。而语音文件上传萤石是传到萤石云上,不是传到摄像头里,不会存在摄像头里的。
回复

使用道具 举报

34

主题

709

帖子

4693

积分

论坛元老

Rank: 8Rank: 8

积分
4693
金钱
3974
HASS币
50
发表于 2021-10-25 16:25:10 | 显示全部楼层
不错不错,,学习一下.
回复

使用道具 举报

105

主题

2954

帖子

1万

积分

超级版主

智能家居&单板滑雪痴迷爱好者

Rank: 8Rank: 8

积分
12103
金钱
9084
HASS币
460

教程狂人突出贡献

发表于 2021-10-25 16:38:42 | 显示全部楼层
如果是本地接口就更好了!
回复

使用道具 举报

11

主题

271

帖子

2658

积分

金牌会员

Rank: 6Rank: 6

积分
2658
金钱
2377
HASS币
50
 楼主| 发表于 2021-10-25 18:31:58 来自手机 | 显示全部楼层
XCray 发表于 2021-10-25 16:38
如果是本地接口就更好了!

萤石够呛,海康不知道有没有局域网语音接口,暂时没找到。
回复

使用道具 举报

2

主题

19

帖子

104

积分

注册会员

Rank: 2

积分
104
金钱
85
HASS币
0
发表于 2021-10-27 16:23:24 | 显示全部楼层
厉害万物互联
回复

使用道具 举报

43

主题

412

帖子

3806

积分

元老级技术达人

积分
3806
金钱
3389
HASS币
136
发表于 2021-10-27 17:45:38 | 显示全部楼层
很钻研的人都很牛逼。熟读API.牛
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-25 18:27 , Processed in 0.079572 second(s), 36 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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