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

python编写的语音天气预报

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

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)

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
# 一、项目介绍 **项目名称:天气预测和天气可视化** 天气预测和天气可视化是一个基于python机器学习(ml)的长春地区的天气预报项目,它实现了天气数据的爬取,预测和可视化。 项目结构如下: ![img](image/wps26.jpg) * 天气数据的来源 GetData文件使用python爬虫技术,爬取长春和全国的天气信息数据 爬取网站:http://tianqi.2345.com/wea_history/54161.htm ProcessDate文件对爬取的天气数据进行了预处理 几个CSV文件保存的是爬取后并经过处理的数据 * 天气数据的预测 GetModel文件通过训练预测模型来预测长春近一周的天气,该文件利用Joblib将模型保存到本地 Main文件是项目主文件,通过运行该文件即可运行整个项目,该文件前部分获取保存到本地的预测模型来进行预测,并将预测结果打印到控制台 * 天气数据的可视化 Main文件后部分实现了天气数据的可视化 # 二、详细介绍 本项目分为三个部分,即爬取和处理数据,数据预测(包含评价方法)和数据可视化 ## 1. 爬取和处理数据 数据爬取代码: ````py resq = requests.get(url, headers=headers, params=params) data = resq.json()["data"] # data frame df = pd.read_html(data)[0] ```` 即使用python爬取网站的json数据 ### **数据预处理:** 获取到的天气信息包括最高温,最低温都不是int格式的数字,通过对数据截取,将部分指标的数据变换为int类型 并对缺失值进行了处理 ````py my_imputer = SimpleImputer() imputed_X_train = pd.DataFrame(my_imputer.fit_transform(X_train)) imputed_X_valid = pd.DataFrame(my_imputer.transform(X_valid)) ```` 通过SimpleImputer ,可以将现实数据中缺失的值通过同一列的均值、中值、或者众数补充起来,本项目使用了SimpleImputer的fit_transform对缺失值进行填充 ## 2. 数据预测和模型评价方法 预测数据采用了机器学习算法——线性回归 模型使用过程: ### A. 提取数据 ````py 获取测试集、训练集、验证集 [X_train, X_valid, y_train, y_valid, X_test] = ProcessData.ProcessData() ```` 其中ProcessData()函数里使用了如下语句: ````py X_train, X_valid, y_train, y_valid = train_test_split(X, y, train_size=0.8, test_size=0.2, random_state=0) ```` train_test_split()是sklearn包的model_selection模块中提供的随机划分训练集和验证集的函数;使用train_test_split函数将完整的数据集和验证集以同等的比例分成2组不同的数据集和验证集 ### B. 训练模型 选择了随机树森林模型(randomforest),然后用fit来训练模型 ````py # 随机树森林模型 model = RandomForestRegressor(random_state=0, n_estimators=1001) # 训练模型 model.fit(X_train, y_train) ```` ### C. 根据数据预测 ````py # 最终预测结果 preds = model.predict(r[1]) -------- 该资源内项目源码是个人的毕设,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! <项目介绍> 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 --------
### 回答1: Unity AI助手语音天气播报是一款方便实用的手机应用软件,它能够实现智能语音天气播报的功能,帮助用户轻松了解当地天气信息。下载Unity AI助手语音天气播报非常简单,只需要在应用商店中搜索“Unity AI助手语音天气播报”,点击下载即可。安装完成后,打开应用,授权麦克风权限,即可使用语音指令查询天气,比如:“今天天气如何?”、“明天会下雨吗?”等等。通过语音播报天气情况,用户可以随时了解当地气温、空气质量、风力状况等天气信息,方便用户合理安排行程和出行计划。Unity AI助手语音天气播报也支持多语种播报,满足用户多种语言交流需求。总之,Unity AI助手语音天气播报是一款极具实用价值和便利性的手机应用软件,下载后可以方便地享受语音和 AI 技术带来的轻松愉快体验。 ### 回答2: Unity AI助手语音天气播报是一款基于Unity游戏引擎开发的人工智能语音助手应用。该应用可以自动获取用户所在的地理位置信息,并通过语音播报方式告知用户当前天气状况,包括温度、风速、降雨等预报情况,并提供相应的天气建议,如需要带伞或保暖等。 下载该应用首先需要在手机应用商店中搜索“Unity AI助手语音天气播报”,然后下载安装即可使用。在使用前需要授权应用获取位置信息和使用麦克风,以提供更准确的天气预报语音识别功能。 通过Unity AI助手语音天气播报,用户可以方便快捷地获取当前所在地或其它地区的天气信息,避免遇到突发天气状况时没有准备。同时,该应用也可以自定义提醒某一地区的天气状况,以方便用户及时做出相应的安排和决策。 总之,Unity AI助手语音天气播报是一款十分实用的语音助手应用,为用户提供了更智能、更便捷的天气预报服务。 ### 回答3: Unity AI助手是一款专门为Unity游戏开发者定制的开发工具。它提供了丰富的AI功能,让游戏开发者能够快速、便捷地实现各种AI智能。其中,Unity AI助手语音天气播报是该工具中一项非常实用的功能。 Unity AI助手语音天气播报可以实时获取当前的天气信息,并将其通过语音的形式播报出来。这项功能可以帮助游戏开发者更好地实现游戏的氛围营造,使得游戏更加真实、生动。 要下载Unity AI助手语音天气播报,首先需要在Unity官网上下载并安装Unity AI助手。该工具提供了详细的API文档和示例代码,开发者可参考这些文档和代码来实现自己的游戏功能。 在使用Unity AI助手语音天气播报时,开发者需要将其集成到游戏中,并设置相应的参数。例如,开发者可以设置语音播报语音人声、语速、音量等,以实现更好的效果。 总之,Unity AI助手语音天气播报是一项非常实用的功能,可以帮助游戏开发者实现更加真实、生动的游戏。如果你还没有尝试过这个功能,不妨去Unity官网下载并尝试一下。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值