python实现智能语音天气预报

前言

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。

作者: 飞奔的帅帅

PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取

http://note.youdao.com/noteshare?id=3054cce4add8a909e784ad934f956cef

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

1、获取天气数据

  • 输入要查询天气的城市
  • 利用urllib模块向中华万年历天气api接口请求天气数据
  • 利用gzip解压获取到的数据,并编码utf-8
  • 利用json转化成python识别的数据,返回为天气预报数据复杂形式的字典(字典中的字典)

2、输出当天天气数据

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

3,语音播报当天天气

  • 创建要输出的语音文本(weather_forecast_txt)
  • 利用百度的语音合成模块AipSpeech,合成语音文件
  • 利用playsound模块播放语音

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

  • 创建未来几天高低温数据的字典
  • 利用matplotlib模块,图形化温度变化趋势

5、代码

  1 #导入必要模块
  2 import urllib.parse
  3 import urllib.request
  4 import gzip
  5 import json
  6 import playsound
  7 from aip import AipSpeech
  8 import matplotlib.pyplot as plt
  9 import re
 10 #设置参数,图片显示中文字符,否则乱码
 11 plt.rcParams[‘font.sans-serif‘]=[‘SimHei‘]
 12 #定义获取天气数据函数
 13 def Get_weather_data():
 14   print(‘------天气查询------‘)
 15   city_name = input(‘请输入要查询的城市名称:‘)
 16   url = ‘http://wthrcdn.etouch.cn/weather_mini?city=‘ + urllib.parse.quote(city_name)
 17   weather_data = urllib.request.urlopen(url).read()
 18   # 读取网页数据
 19   weather_data = gzip.decompress(weather_data).decode(‘utf-8‘)
 20   # #解压网页数据
 21   weather_dict = json.loads(weather_data)
 22   return weather_dict
 23 #定义当天天气输出格式
 24 def Show_weather(weather_data):
 25   weather_dict = weather_data
 26   if weather_dict.get(‘desc‘) == ‘invilad-citykey‘:
 27     print(‘你输入的城市有误或未收录天气,请重新输入...‘)
 28   elif weather_dict.get(‘desc‘) == ‘OK‘:
 29     forecast = weather_dict.get(‘data‘).get(‘forecast‘)
 30     print(‘日期:‘, forecast[0].get(‘date‘))
 31     print(‘城市:‘, weather_dict.get(‘data‘).get(‘city‘))
 32     print(‘天气:‘, forecast[0].get(‘type‘))
 33     print(‘温度:‘, weather_dict.get(‘data‘).get(‘wendu‘) + ‘℃ ‘)
 34     print(‘高温:‘, forecast[0].get(‘high‘))
 35     print(‘低温:‘, forecast[0].get(‘low‘))
 36     print(‘风级:‘, forecast[0].get(‘fengli‘).split(‘<‘)[2].split(‘]‘)[0])
 37     print(‘风向:‘, forecast[0].get(‘fengxiang‘))
 38     weather_forecast_txt = ‘您好,您所在的城市%s,‘  39                 ‘天气%s,‘  40                 ‘当前温度%s,‘  41                 ‘今天最高温度%s,‘  42                 ‘最低温度%s,‘  43                 ‘风级%s,‘  44                 ‘温馨提示:%s‘ %  45                 (
 46                   weather_dict.get(‘data‘).get(‘city‘),
 47                   forecast[0].get(‘type‘),
 48                   weather_dict.get(‘data‘).get(‘wendu‘),
 49                   forecast[0].get(‘high‘),
 50                   forecast[0].get(‘low‘),
 51                   forecast[0].get(‘fengli‘).split(‘<‘)[2].split(‘]‘)[0],
 52                   weather_dict.get(‘data‘).get(‘ganmao‘)
 53                 )
 54     return weather_forecast_txt,forecast
 55 #定义语音播报今天天气状况
 56 def Voice_broadcast(weather_forcast_txt):
 57   weather_forecast_txt = weather_forcast_txt
 58   APP_ID = 你的百度语音APP_ID
 59   API_KEY = 你的百度语音API_KEY
 60   SECRET_KEY = 你的百度语音SECRET_KEY
 61   client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)
 62   print(‘语音提醒:‘, weather_forecast_txt)
 63   #百度语音合成
 64   result = client.synthesis(weather_forecast_txt, ‘zh‘, 1, {‘vol‘: 5})
 65   if not isinstance(result, dict):
 66     with open(‘sound2.mp3‘, ‘wb‘) as f:
 67       f.write(result)
 68       f.close()
 69   #playsound模块播放语音
 70   playsound.playsound(r‘C:\Users\ban\Desktop\bsy\sound2.mp3‘)
 71 #未来四天天气变化图
 72 def Future_weather_states(forecast):
 73   future_forecast = forecast
 74   dict={}
 75   #获取未来四天天气状况
 76   for i in range(5):
 77     data = []
 78     date=future_forecast[i][‘date‘]
 79     date = int(re.findall(‘\d+‘,date)[0])
 80     data.append(int(re.findall(‘\d+‘,future_forecast[i][‘high‘])[0]))
 81     data.append(int(re.findall(‘\d+‘, future_forecast[i][‘low‘])[0]))
 82     data.append(future_forecast[i][‘type‘])
 83     dict[date] = data
 84   data_list = sorted(dict.items())
 85   date=[]
 86   high_temperature = []
 87   low_temperature = []
 88   for each in data_list:
 89     date.append(each[0])
 90     high_temperature.append(each[1][0])
 91     low_temperature.append(each[1][1])
 92   fig = plt.plot(date,high_temperature,‘r‘,date,low_temperature,‘b‘)
 93   plt.xlabel(‘日期‘)
 94   plt.ylabel(‘℃‘)
 95   plt.legend([‘高温‘,‘低温‘])
 96   plt.xticks(date)
 97   plt.title(‘最近几天温度变化趋势‘)
 98   plt.show()
 99 #主函数
100 if __name__==‘__main__‘:
101   weather_data = Get_weather_data()
102   weather_forecast_txt, forecast = Show_weather(weather_data)
103   Future_weather_states(forecast)
104   Voice_broadcast(weather_forecast_txt)

6、最终效果

以上这篇python实现智能语音天气预报就是小编分享给大家的全部内容了,希望能给大家一个参考

原文地址:https://www.cnblogs.com/Qqun821460695/p/12016471.html

时间: 2024-11-10 23:39:07

python实现智能语音天气预报的相关文章

python写的的语音天气预报

最近犯懒,但这么长时间没点成果实在过意不去.朋友研究树莓派,前几天帮他写个语音天气预报的程序.就让我用来凑个数吧. #coding=utf-8import urllib2,json,subprocess,time '''使用云聚数据的接口获取天气数据,接口文档:    实时天气接口:http://www.36wu.com/Service/Details/1    生活气象指数:http://www.36wu.com/Service/Details/1?cid=5 需要安装espeak''' de

Android开发笔记(一百零八)智能语音

智能语音技术 如今越来越多的app用到了语音播报功能,例如地图导航.天气预报.文字阅读.口语训练等等.语音技术主要分两块,一块是语音转文字,即语音识别:另一块是文字转语音,即语音合成. 对中文来说,和语音播报相关的一个技术是汉字转拼音,想想看,拼音本身就是音节拼读的标记,每个音节对应一段音频,那么一句的拼音便能用一连串的音频流合成而来.汉字转拼音的说明参见<Android开发笔记(八十三)多语言支持>. 语音合成通常也简称为TTS,即TextToSpeech(从文本到语言).语音合成技术把文字

智能语音录制程序

一个变态程序的窥私欲:智能语音录制程序——窃听神器(源码放送!) 1. 我这人从小有个坏毛病,就是喜欢偷窥别人隐私.当然,在道德上,我时刻要求自己做一名正人君子,只不过是心理上有这癖好罢了.所以我从小就对窃听.窃视.黑客技术.破解技术等疯狂着迷!实际上这也是我走上程序员之路的一个重要原因! 或许正如弗洛伊德所说的那样,潜意识里面暗藏的原始欲望,是我们一切行为背后的真正动因.就像不可一世的希特勒和他野心勃勃的奋斗一样,归根到底只是因为他是一个自卑的抖S. 2. 今天说的这个事呢还要从两年前说起.那

如何优雅的用Python玩转语音聊天机器人

一名极客运维人员,走在脑洞大开的路上.... Python聊天机器人:可以感应人是否存在,识别语音,通过图灵API语音回答 -------------------------上图镇楼---------------------------- [详细攻略] 所需硬件: 树莓派B+ 人体红外线感应模块 内置麦克风摄像头(实测树莓派免驱淘宝链接) 申请API: 百度语音api 图灵api 语音聊天机器人实现原理:当有人来到跟前时-->触发聊天功能,开始以每2s检测录制语音-->通过百度语音api合成文

一场由度秘掀起的智能语音连接O2O大战正在爆发

提到O2O,日前刘旷刚刚在微信朋友圈发布的一条针对百度世界大会的评论引发了好友们的纷纷点赞,我在评论中这样写道:“唱衰O2O的罪魁祸首就是美国资本家,他们先是掏空中国股市.打压中国互联网公司,而后制造舆论唱衰中国的O2O,企图破坏李克强总理提出的互联网+经济战略,我相信只要百度以及中国千千万万的创业者脚踏实地做好连接人与服务,不过度迷恋资本,中国定能实现在互联网+时代超越美国.” 三人成虎,人言可畏呐!美国资本家最擅长的就是制造舆论,引导大批没有主见的中国网民.于是,各种O2O寒冬论谣言四起,而

转:IT巨头纷纷“卡位” 智能语音成人机交互入口必争之地

http://www.cs.com.cn/xwzx/hwxx/201707/t20170712_5368595.html 随着物联网的迅速发展,作为重要接口的智能语音技术已成为国内外IT巨头的必争之地.上周,阿里推出了自己的首款智能音箱产品,百度宣布收购美国语 音交互技术公司,而此前,亚马逊.谷歌.苹果.微软等硅谷巨头早已纷纷布局.有机构预计,未来几年智能语音行业将呈现爆发式增长.一场以智能音箱为终端的 物联网接口大战正如火如荼地展开. 物联网接口之争 随着人工智能从高冷的"黑科技"走

智能语音人机交互产业链及关键技术分析

人机交互是一门计算机科学,主要研究关于设计.评价和实现供人们使用的交互计算系统以及相关现象的科学.人机交互的发展经历了以下几个阶段:手工作业阶段.作业控制语言与交互命令语言阶段.图形用户界面(GUI)阶段.网络用户界面,目前已经发展到多通道.多媒体的智能人机交互阶段.其中,语音人机交互是当前多通道.多媒体智能人机交互的主要方式.特别是苹果Siri.科大讯飞语点的出现,让智能语音人机交互技术实现了新的跨越,得到了社会各界的广泛关注. 一.智能语音人机交互产业发展现状 什么是智能语音人机交互技术?简

科大讯飞2014公布会看点二:智能语音装进车载车机!

一直以来,汽车行业的科技创新不胜枚举.早前福特引入SYNC车载多媒体通讯娱乐系统,使得车载声控成为现实:全新一代雪佛兰科鲁兹全面升级MyLink智能车载互联系统,具备语音识别能力:丰田汽车在新款车型中陆续增加语音对话型系统"Agent". 纵观汽车行业的未来发展,车企厂商越来越重视人机交互体验,动口不动手的驾车生活离我们已不再遥远.8月20日下午,科大讯飞将在北京国家会议中心举行以"语音点亮生活"的主题公布会,用语音技术升级车载车机的智能化体验,让语音交互在汽车应用

科大讯飞2014发布会看点二:智能语音装进车载车机!

一直以来,汽车行业的科技创新不胜枚举.早前福特引入SYNC车载多媒体通讯娱乐系统,使得车载声控成为现实:全新一代雪佛兰科鲁兹全面升级MyLink智能车载互联系统,具备语音识别能力:丰田汽车在新款车型中陆续加入语音对话型系统"Agent". 纵观汽车行业的未来发展,车企厂商越来越重视人机交互体验,动口不动手的驾车生活离我们已不再遥远.8月20日下午,科大讯飞将在北京国家会议中心举行以"语音点亮生活"的主题发布会,用语音技术升级车载车机的智能化体验,让语音交互在汽车应用