node-red+百度TTS+小度dlna让小度开口说话
测试流预览图:
准备工作:
1. nginx文件服务器的搭建,因为dlna是需要网络文件流进行播放的,不能使用本地路径的文件
2. dlnap.py脚本准备
3. function-npm节点安装
nginx服务器搭建根据各个系统不同,所以方法也不同,树莓派的安装很简单:sudo apt-get install nginx
其他系统请自行百度安装,此处只贴出配置文件
1. 安装完成后,查看nginx服务状态:`service nginx status` 如果为running,或者其他只要不报错不存在即可
2. 编辑配置文件,此处为树莓派配置示例:`vi /etc/nginx/conf.d/file.conf`
server {
listen 80;
server_name 192.168.4.175; # 你的nginx服务器的内网IP
charset utf-8;
client_max_body_size 1000M; # adjust to taste
location / {
alias /root/nodered/tts/; # 准备暴露的TTS文件路径,不存在的目录请自行新建,不然后报错
autoindex on; # 浏览器是否可以访问目录
}
}
3. 然后重启nginx服务,浏览器访问 http://192.168.4.175 (你的nginx服务器的IP) ,浏览器显示的即为你/root/nodered/tts/的文件
脚本文件下载链接: dlnap.py
脚本测试方法:
-
发现所有dlan设备:
python3 dlnap.py --all
测试脚本是否能正常发现小度音响 -
播放音频:
python3 dlnap.py --play 192.168.2.143(脚本发现的小度的IP) --play http://www.example.com/test.mp3(播放音频的URL,不支持本地路径文件,可以在本地搭建nginx文件服务,然后将音频文件中放在路径中)
如果以上测试成功了,那么就可以正式的接入node-red了
需要节点:
- function-npm 节点,需要自己手动安装,这个是百度tts需要使用的 其余节点已自动集成了