python语音播报天气预报_树莓派之天气预报语音播报
目录
树莓派之天气预报语音播报
方案选定
项目基调
需求分析
解决方案
具体实施
step1天气信息
安装ilang软件
json解析和文字组合
定时任务
树莓派之天气预报语音播报
前几天跟同事在聊家里的“小爱同学”可以语音报天气,听起来不错,也想要一个。不过嘛,作为技术宅的本人,如果买一个的话,是不是太Low了,于是想到家里万能的树莓派,实现这个功能应该是问题不大的。开始了折腾。
方案选定
项目基调
原则1:不对树莓派硬件进行大的改动;
原则2:我们一定要用开源或者免费的方案;
需求分析
要获取天气预报信息
要组合成相应文字
文字转语音
语音播报
定时执行
解决方案
天气预报:
天气预报服务供应商有很多,我选的叫和风天气,和小风天气是专为个人开发者、学生、公益组织以及所有非商业环境使用而推出的免费天气数据服务,涵盖了几乎所有基础天气数据。对于我而言,够用就好。
组合成相应文字:
这部分我们可以用自己的代码来实现
文字转语音:
文字转语音是我们项目的核心,有两种方向,一是使用在线转,本地播放;优点是声音优美,缺点是依赖服务商,还有多数会要收费,另一个是本地转本地播放;优点是不依赖别人,缺点是声音差点;我做的不是商用,所以音质差点就差点吧,能听懂就行。所以选择ilang方案,本地转换python2.7环境的一个文字转语音项目。
语音播报:
ilang方案里可以直接播放。
定时执行:
linux系统里支持定时任务,所以crontab -e 命令可以满足我们的要求
具体实施
step1天气信息
在和风天气网站注册个帐号,拿到key,用post请求就可以得到返回的json格式数据了:
https://free-api.heweather.net/s6/weather/forecast?location=成都&key=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
返回数据:
安装ilang软件
这里有个前提,因为ilang是基于python2.7的,所以系统中必须要有python2.7;
正常情况下输入以下命令:
sudo apt-get install mpg123
sudo pip install ilangbd
完成后测试
ilang “你好,world!”
注意不要在hdmi接口上听,否则听不到最前面的两个字,所以用音箱直接连树莓派的音频输出吧;
如果还有疑问请参考这篇博客:树莓派使用ilangbd库进行python进行中文文本转语音
json解析和文字组合
好了,现在把它们串起来,下面是python3.4的代码:(我的系统装了python3.4和python2.7两个版本的python)
import json
import os
import requests
postdata = {'location': '成都', 'key': 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'}
stra = requests.post('https://free-api.heweather.net/s6/weather/forecast', data=postdata)
json_obj = json.loads(stra.text)
w0 = json_obj['HeWeather6'][0]
wether = w0['daily_forecast'][1]
outstr = '明天天气{0}转{1},温度{2}到{3}摄氏度.'.format(wether['cond_txt_d'], wether['cond_txt_n'], wether['tmp_max'], wether['tmp_min'])
cmdline = 'ilang "' + outstr + '"'
os.system(cmdline)
保存为AnalysisWeather.py,OK,如果不出什么意外,到目前为止,在命令行中输入:
python3 AnalysisWeather.py
应该可以听到它播报出正常的天气语音了;那么我们的工作是不是快结束了呢?还没有,后面还有一个大坑,对那就是crontab。
定时任务
crontab是linux的定时任务,看起来是很OK的对不对。它的坑就是它没有环境变量的支持,所以你的python2,python3的位置,以及其它自己要定义的环境变量都要自行设置,否则就会出一经典的一幕:在命令行里执行的好好的程序,在crontab里死活不执行。不说了,具体的是这样,把上面的命令放到一个shell命令文件里:
alarm.sh:
#!/bin/bash
source /etc/profile
source /home/pi/.bashrc
cd /home/pi/al_clock
python3 AnalysisWeather.py
好了,在命令行再试一下:
/home/pi/al_clock/alarm.sh
有声音就OK了,最后放到crontab里面:
crontab -e
#auto rebort weather with void for
30 7 * * * /home/pi/al_clock/alarmd.sh
每天早上7点半播报天气
大功告成!
我们的口号是:我们要玩树莓派,不要被树莓派玩儿!
python语音播报天气预报_树莓派之天气预报语音播报相关推荐
- 点钞机语音怎么打开_抖音内测语音直播!支持8人在线聊天,一文教你如何玩?...
这两天,抖音又传来新消息,语音直播功能已经开始内测,一些安装了内测版抖音的朋友已经可以在"开直播"功能下看到它的入口了. 这个功能对于广大用户来说是多了一个有意思的新玩法,语音直播 ...
- python语音控制智能家电_Python 树莓派智能音箱语音控制电脑开关机-Python 实用宝典...
完成下面这个有趣的实验,你所需要的东西有: 1.路由器(能够形成局域网,且电脑已用网线连接) 2.一个智能音箱(本教程使用的是亚马逊 Echo Dot 2) 3.主板支持wake on lan (大部 ...
- python实现3d扫描_树莓派制作的3D扫描仪
作者:the_anykey 翻译:瑟瑟 校对:plantpark Hi, 我是arduino和树梅派的忠实粉丝,当然也喜欢3d打印.我想为我的孩子们做一个3d模型,然后就开始研究怎么去做一个3d扫描器 ...
- 树莓派是python的应用领域吗_树莓派为什么采用python语言为主要开发语言?
回复内容: 他老爸想让更多小孩学会编程,去用电脑实现自己有趣的想法.本来打算只让这个机器跑Python(是只跑Python,像学习机一样的东西.并没有想过在上面弄一个完整的linux).但是后来动真格 ...
- 树莓派python交互界面实例_树莓派综合项目2:智能小车(二)tkinter图形界面控制...
一.介绍 树莓派综合项目2:智能小车(一)四轮驱动中,实现了代码输入对四个电机的简单控制,本章将使用Python 的图形开发界面的库--Tkinter 模块(Tk 接口),编写本地运行的图形界面,控制 ...
- python创建sqlite3数据库_树莓派使用 Python + SQLite 建立温度数据库
相比 MySQL 而言,SQLite 更为轻便.易于维护和部署.本文使用Python向SQLite数据库中插入树莓派温度数据,SQLite数据库中包含一张只包含三个字段的记录表--参数名称,时间和温度 ...
- python控制步进电机驱动器_树莓派通过GPIO控制步进电机(python)
步进电机的驱动程序一样是让我费了好大力气才使他正常工作,在代码上走了不少弯路 树莓派不建议直接使用舵机,虽然舵机方便,而且仅需要一根信号线,不过需要舒服pwm信号,而新版的b+板子已经没有了物理的pw ...
- java语音播报源代码_详解Android 语音播报实现方案(无SDK)
本文介绍了详解Android 语音播报实现方案(无SDK),分享给大家,具体如下: 功能描述 类似支付宝收款时候的语音播报功能:当别人扫描你的收款码,你收到钱之后,就会听到"支付宝到账12. ...
- python延时us函数_树莓派高级GPIO库,wiringpi2 for python使用笔记(二)高精度计时、延时函数...
学过单片机的同学应该清楚,我们在编写传感器驱动时,需要用到高精度的定时器.延时等功能,wiringpi提供了一组函数来实现这些功能,这些函数分别是: micros() #返回当前的微秒数,这个数在调用 ...
最新文章
- php框架where条件使用,where条件
- linux下的QQ执行玩法:pidgin-lwqq
- XenApp 6 license导入报错的终极解决方案
- 开博首发2017年1月13日开博大吉
- 边工作边考研的计算机经验,边工作边考研的经验
- IOS下将文字转成图片方法
- date 减去固定时长_javascript – 从Date对象减去日/月/年
- UI2CODE智能生成代码——组件识别篇
- class.forname找不到类_自媒体情感类文章素材怎么找?
- 域控服务器取消验证_AD域控
- Node.js之Stream可读流readable
- ​云原生:重新定义云时代的技术标准 | 凌云时刻
- PIL图像处理-二值化
- MapReduce-处理需求NBA球员数据(Hadoop)
- net proxy FortiGate 200A / SANGFOR / Blue Coat
- big_6d77fbb7bde4011fdf01df45fef8d0dd9ddcbdd5.jpg
- 2022RWCTF体验赛web的wp
- 达州中学高考2021成绩查询,2020达州高考成绩揭晓,恭喜恭喜!另附成绩统计表...
- HTML标签学习基础新人笔记
- 归因分析_归因分析:如何衡量影响? (第2部分,共2部分)