目录

树莓派之天气预报语音播报

方案选定

项目基调

需求分析

解决方案

具体实施

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语音播报天气预报_树莓派之天气预报语音播报相关推荐

  1. 点钞机语音怎么打开_抖音内测语音直播!支持8人在线聊天,一文教你如何玩?...

    这两天,抖音又传来新消息,语音直播功能已经开始内测,一些安装了内测版抖音的朋友已经可以在"开直播"功能下看到它的入口了. 这个功能对于广大用户来说是多了一个有意思的新玩法,语音直播 ...

  2. python语音控制智能家电_Python 树莓派智能音箱语音控制电脑开关机-Python 实用宝典...

    完成下面这个有趣的实验,你所需要的东西有: 1.路由器(能够形成局域网,且电脑已用网线连接) 2.一个智能音箱(本教程使用的是亚马逊 Echo Dot 2) 3.主板支持wake on lan (大部 ...

  3. python实现3d扫描_树莓派制作的3D扫描仪

    作者:the_anykey 翻译:瑟瑟 校对:plantpark Hi, 我是arduino和树梅派的忠实粉丝,当然也喜欢3d打印.我想为我的孩子们做一个3d模型,然后就开始研究怎么去做一个3d扫描器 ...

  4. 树莓派是python的应用领域吗_树莓派为什么采用python语言为主要开发语言?

    回复内容: 他老爸想让更多小孩学会编程,去用电脑实现自己有趣的想法.本来打算只让这个机器跑Python(是只跑Python,像学习机一样的东西.并没有想过在上面弄一个完整的linux).但是后来动真格 ...

  5. 树莓派python交互界面实例_树莓派综合项目2:智能小车(二)tkinter图形界面控制...

    一.介绍 树莓派综合项目2:智能小车(一)四轮驱动中,实现了代码输入对四个电机的简单控制,本章将使用Python 的图形开发界面的库--Tkinter 模块(Tk 接口),编写本地运行的图形界面,控制 ...

  6. python创建sqlite3数据库_树莓派使用 Python + SQLite 建立温度数据库

    相比 MySQL 而言,SQLite 更为轻便.易于维护和部署.本文使用Python向SQLite数据库中插入树莓派温度数据,SQLite数据库中包含一张只包含三个字段的记录表--参数名称,时间和温度 ...

  7. python控制步进电机驱动器_树莓派通过GPIO控制步进电机(python)

    步进电机的驱动程序一样是让我费了好大力气才使他正常工作,在代码上走了不少弯路 树莓派不建议直接使用舵机,虽然舵机方便,而且仅需要一根信号线,不过需要舒服pwm信号,而新版的b+板子已经没有了物理的pw ...

  8. java语音播报源代码_详解Android 语音播报实现方案(无SDK)

    本文介绍了详解Android 语音播报实现方案(无SDK),分享给大家,具体如下: 功能描述 类似支付宝收款时候的语音播报功能:当别人扫描你的收款码,你收到钱之后,就会听到"支付宝到账12. ...

  9. python延时us函数_树莓派高级GPIO库,wiringpi2 for python使用笔记(二)高精度计时、延时函数...

    学过单片机的同学应该清楚,我们在编写传感器驱动时,需要用到高精度的定时器.延时等功能,wiringpi提供了一组函数来实现这些功能,这些函数分别是: micros() #返回当前的微秒数,这个数在调用 ...

最新文章

  1. php框架where条件使用,where条件
  2. linux下的QQ执行玩法:pidgin-lwqq
  3. XenApp 6 license导入报错的终极解决方案
  4. 开博首发2017年1月13日开博大吉
  5. 边工作边考研的计算机经验,边工作边考研的经验
  6. IOS下将文字转成图片方法
  7. date 减去固定时长_javascript – 从Date对象减去日/月/年
  8. UI2CODE智能生成代码——组件识别篇
  9. class.forname找不到类_自媒体情感类文章素材怎么找?
  10. 域控服务器取消验证_AD域控
  11. Node.js之Stream可读流readable
  12. ​云原生:重新定义云时代的技术标准 | 凌云时刻
  13. PIL图像处理-二值化
  14. MapReduce-处理需求NBA球员数据(Hadoop)
  15. net proxy FortiGate 200A / SANGFOR / Blue Coat
  16. big_6d77fbb7bde4011fdf01df45fef8d0dd9ddcbdd5.jpg
  17. 2022RWCTF体验赛web的wp
  18. 达州中学高考2021成绩查询,2020达州高考成绩揭晓,恭喜恭喜!另附成绩统计表...
  19. HTML标签学习基础新人笔记
  20. 归因分析_归因分析:如何衡量影响? (第2部分,共2部分)

热门文章

  1. Hbase入门到实战-连载六(Phoenix)
  2. 判断服务器IP否被墙 是否被TCP阻断
  3. Python爬虫自学
  4. 【ybtoj 高效进阶 1.5】【广搜】 荆轲刺秦王
  5. java 入门 博客园_java入门基础
  6. 线性代数攻略(适合复习考试,零基础不挂科秘籍)
  7. 能力跃迁体系:如何系统化提升自己的能力
  8. encoder- Linux从入门到精通【下】
  9. 计算机与电视如何通过网络连接,微鲸电视如何连接网络 有线和无线WiFi两种方法图解-网络连接设置...
  10. unity 导出游戏符号表