本系统主要包括四个函数:

1、获取天气数据

1、输入要查询天气的城市

2、利用urllib模块向中华万年历天气api接口请求天气数据

3、利用gzip解压获取到的数据,并编码utf-8

4、利用json转化成python识别的数据,返回为天气预报数据复杂形式的字典(字典中的字典)

2、输出当天天气数据

1、格式化输出当天天气,包括:天气状况,此时温度,最高温度、最低温度,风级,风向等。

3,语音播报当天天气

1、创建要输出的语音文本(weather_forecast_txt)

2、利用百度的语音合成模块AipSpeech,合成语音文件

3,利用playsound模块播放语音

4、未来几天温度变化趋势

1、创建未来几天高低温数据的字典

2,利用matplotlib模块,图形化温度变化趋势

5、代码

#导入必要模块

import urllib.parse

import urllib.request

import gzip

import json

import playsound

from aip import AipSpeech

import matplotlib.pyplot as plt

import re

#设置参数,图片显示中文字符,否则乱码

plt.rcParams['font.sans-serif']=['SimHei']

#定义获取天气数据函数

def Get_weather_data():

print('------天气查询------')

city_name = input('请输入要查询的城市名称:')

url = 'http://wthrcdn.etouch.cn/weather_mini?city=' + urllib.parse.quote(city_name)

weather_data = urllib.request.urlopen(url).read()

# 读取网页数据

weather_data = gzip.decompress(weather_data).decode('utf-8')

# #解压网页数据

weather_dict = json.loads(weather_data)

return weather_dict

#定义当天天气输出格式

def Show_weather(weather_data):

weather_dict = weather_data

if weather_dict.get('desc') == 'invilad-citykey':

print('你输入的城市有误或未收录天气,请重新输入...')

elif weather_dict.get('desc') == 'OK':

forecast = weather_dict.get('data').get('forecast')

print('日期:', forecast[0].get('date'))

print('城市:', weather_dict.get('data').get('city'))

print('天气:', forecast[0].get('type'))

print('温度:', weather_dict.get('data').get('wendu') + '℃ ')

print('高温:', forecast[0].get('high'))

print('低温:', forecast[0].get('low'))

print('风级:', forecast[0].get('fengli').split('

print('风向:', forecast[0].get('fengxiang'))

weather_forecast_txt = '您好,您所在的城市%s,' \

'天气%s,' \

'当前温度%s,' \

'今天最高温度%s,' \

'最低温度%s,' \

'风级%s,' \

'温馨提示:%s' % \

(

weather_dict.get('data').get('city'),

forecast[0].get('type'),

weather_dict.get('data').get('wendu'),

forecast[0].get('high'),

forecast[0].get('low'),

forecast[0].get('fengli').split('

weather_dict.get('data').get('ganmao')

)

return weather_forecast_txt,forecast

#定义语音播报今天天气状况

def Voice_broadcast(weather_forcast_txt):

weather_forecast_txt = weather_forcast_txt

APP_ID = 你的百度语音APP_ID

API_KEY = 你的百度语音API_KEY

SECRET_KEY = 你的百度语音SECRET_KEY

client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)

print('语音提醒:', weather_forecast_txt)

#百度语音合成

result = client.synthesis(weather_forecast_txt, 'zh', 1, {'vol': 5})

if not isinstance(result, dict):

with open('sound2.mp3', 'wb') as f:

f.write(result)

f.close()

#playsound模块播放语音

playsound.playsound(r'C:\Users\ban\Desktop\bsy\sound2.mp3')

#未来四天天气变化图

def Future_weather_states(forecast):

future_forecast = forecast

dict={}

#获取未来四天天气状况

for i in range(5):

data = []

date=future_forecast[i]['date']

date = int(re.findall('\d+',date)[0])

data.append(int(re.findall('\d+',future_forecast[i]['high'])[0]))

data.append(int(re.findall('\d+', future_forecast[i]['low'])[0]))

data.append(future_forecast[i]['type'])

dict[date] = data

data_list = sorted(dict.items())

date=[]

high_temperature = []

low_temperature = []

for each in data_list:

date.append(each[0])

high_temperature.append(each[1][0])

low_temperature.append(each[1][1])

fig = plt.plot(date,high_temperature,'r',date,low_temperature,'b')

plt.xlabel('日期')

plt.ylabel('℃')

plt.legend(['高温','低温'])

plt.xticks(date)

plt.title('最近几天温度变化趋势')

plt.show()

#主函数

if __name__=='__main__':

weather_data = Get_weather_data()

weather_forecast_txt, forecast = Show_weather(weather_data)

Future_weather_states(forecast)

Voice_broadcast(weather_forecast_txt)

6、最终效果

python实现天气预报_python实现智能语音天气预报相关推荐

  1. python语音播报天气预报_python实现智能语音天气预报

    python编写的语音天气预报 本系统主要包括四个函数: 1.获取天气数据 1.输入要查询天气的城市 2.利用urllib模块向中华万年历天气api接口请求天气数据 3.利用gzip解压获取到的数据, ...

  2. python json loads 中文乱码_python实现智能语音天气预报

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: 飞奔的帅帅 PS:如有需要Python学习资料的小伙伴可以加点击下 ...

  3. python天气预报的功能介绍_python实现智能语音天气预报

    本系统主要包括四个函数: 1.获取天气数据 1.输入要查询天气的城市 2.利用urllib模块向中华万年历天气api接口请求天气数据 3.利用gzip解压获取到的数据,并编码utf-8 4.利用jso ...

  4. 爆肝一周,用Python在物联网设备上写了个智能语音助手-阿里云智能语音交互

    基于HaaS云端一体框架,用Python打造HaaS EDU K1智能语音助手的过程中需要用到云端能力.本篇文章介绍如何开通阿里云智能语音交互,并创建配置语音识别及语音合成项目,获取Appkey.请参 ...

  5. python语音唤醒_Python实战教程:为女朋友打造一款智能语音闹钟

    Python实战教程:为女朋友打造一款智能语音闹钟 前言 最近学了一些物联网相关的技术,有点心血来潮,寻思自己可以做点什么,恰巧之前听说过一些树莓派的传闻,就想着做一款智能点的闹钟. 需要说明的是,在 ...

  6. Python开发智能语音机器人——小O同学

    这次项目开发能按部就班顺利完成,主要是靠队友成功在软件的前期设计阶段,需求分析和用例设计起到了重要的作用.当然,这次的开发过程中也遇到了很多的问题,有许多功能是书上没有学到的,也是跟队友们商量,上网搜 ...

  7. 树莓派智能家居-天气预报和实时温湿度监控

    上篇博文<树莓派智能家居-语音聊天机器人实现>实现了树莓派的语音聊天功能,在其基础上,实现语音获取天气预报和当前温湿度. 获取天气预报 目前有现成的天气预报API,直接调用即可,代码如下: ...

  8. 【奇巧淫技】python 助你每天早上八点自动发送天气预报邮件到QQ邮箱

    此博客仅为我业余记录文章所用,发布到此,仅供网友阅读参考,如有侵权,请通知我,我会删掉. 补充 有不少杠精小婊贝留言说本文章没有用,因为天气预报直接打开手机就可以收到了,为何要多此一举发送到邮箱呢!! ...

  9. 基于python和深度学习(语音识别、NLP)实现本地离线智能语音控制终端(带聊天功能和家居控制功能)

    首先,我们来捋一下一个好的智能控制终端需要什么功能: 1.得随叫随到,不需要的时候就休眠,省电又省心 2.得会听,听得懂人的需求 3.得会控制智能家居,实现人的需求 4.还得会说,更好的与人进行交流和 ...

最新文章

  1. 史上最伟大的20位程序员中,遗憾没有中国人
  2. ScrollView分栏视图分析
  3. 理解python并发编程_Python并发编程很简单
  4. 【转】两种方法教你在Ubuntu下轻松关闭触摸板(TinkPad)
  5. 我的年终奖是大饼+鸡汤,and you?
  6. 39 SD配置-销售凭证设置-定义计划行类别
  7. python随机发红包_python 微信红包随机金额
  8. 从图(Graph)到图卷积(Graph Convolution):漫谈图神经网络模型 (一)
  9. java uml eclipse_eclipse uml 工具
  10. python tkinter背景图片_如何在tkinter中有背景图像和按钮?
  11. SessionID的传送
  12. html实现好看的注册页面,html+css做一个好看的可翻转登录注册界面代码实例
  13. 基于ESP32CAM实现WebSocket服务器实时点灯
  14. 关于killer网卡在linux 2.6.11版本以上的驱动安装
  15. FPGA——sdram控制器1
  16. 图像识别的原理、过程、应用前景
  17. 微信小程序-微信支付
  18. 小公司做个网站多少钱,个人网站怎么制作
  19. 疯狂springboot终极讲义笔记(二)
  20. Python+Wind:用Pyautogui轻松下载Wind数据

热门文章

  1. python寻找完全平方数_少儿编程|Python小课堂 – 寻找aabb完全平方数
  2. 自动化测试——接口自动化——requests用法
  3. mysql 建模教程 pdf,PowerDesigner 15 系统分析与建模实战 PDF扫描版[50MB]
  4. CSS基础——盒子模型【学习笔记】
  5. C++递归删除非空目录所有文件
  6. 21天Jmeter打卡Day14 监听器之查看结果树+断言结果+聚合报告+图形结果+表格查看结果
  7. 真香 自从用了Charles,Fiddler已经被我彻底卸载了
  8. python初体验-hello world答案_Anaconda上的python3初体验
  9. abovedisplayskip无效_初学latex的模板,里面有错,哪位大神能不能帮忙看看啊?不甚感激!...
  10. 颜色和心理年龄测试软件,超准的色彩心理学:选8个颜色,就可以测出你的心理年龄...