10行代码完成Python语音播报天气模块,Python文字转语音+爬虫获取天气情况

项目拆解

Python语音播报天气= 天气信息 + 文字转语音

利用爬虫获取天气信息

由于是简单的获取天气信息,因此不需要复杂的爬虫框架,基本的【request库】就够用了,此外,我们还需要将获取到的天气信息(Json数据)转换为Python字典,便于后续的使用。
所需要的Python库如下:

import requests
import json

获取天气的API接口(网址)如下:

url = 'https://www.tianqiapi.com/api/?version=v6&appid=【应用ID】&appsecret=【应用密钥】&city=【城市(汉字)】'

以上url不可以直接使用,需要提供对应的【appid】和【appsecret】以及需要查询城市的汉字名称。【appid】和【appsecret】可以自行申请,如果嫌麻烦也可以选择直接用源文件代码里的。

【文末提供代码源文件下载方式】

利用input输入城市名称,并将url和输入的城市名称链接到一起,然后利用request.get()发出请求并取得响应即可得到对应城市天气情况的Json数据。

city_name = input("请输入查询的城市:(汉字)")
url = url + city_name
response = requests.get(url)
json_data = response.text

利用json.loads()将Json数据转换为Python字典,并利用字典中的数据组成一段对天气的文字描述:

weather_dict = json.loads(json_data)
say = "当前位置:" + weather_dict['city'] + "," \
    + "今天是:" + weather_dict['date'] + weather_dict['week'] + "," \
    + "当前温度:" + weather_dict['tem'] + "摄氏度" + "," \
    + "当前天气:" + weather_dict['wea'] + "," \
    + "风速:" + weather_dict['win_speed'] + "," \
    + "风力:" + weather_dict['win_meter'] + "," \
    + "空气质量:" + weather_dict['air_level'] + "," \
    + "建议:" + weather_dict['air_tips']

这样我们就得到了对应城市天气的文字描述。

Python文字转语音

【pyttsx3】是Python中的文本到语音转换库。
首先我们引入pyttsx3库。

import pyttsx3

如果没有这个库的,可以直接在windows命令行里使用如下命令安装:

pip install pyttsx3

安装后如果出现如下报错:【No module named ‘pywintypes’】,不要先尝试装这个模块(该模块需手动安装),重启一下你的Python环境试一试,实在不行再选择手动装这个模块。

安装好pyttsx3库后,先初始化语音引擎

engine = pyttsx3.init()

设置语速、音量、语音合成器

# 设置语速
engine.setProperty('rate', 110)
# 设置音量
engine.setProperty('volume', 1.0)
# 设置语音合成器
engine.setProperty('voice', "3")

将字符串利用say()函数朗读出来

engine.say(say)

等待程序读完上面的播报信息后再结束

engine.runAndWait()

【代码源文件】可通过公众号【DoNot996】回复【Python语音天气】免费获取下载链接,代码附详细注释和天气API的【应用ID】和【应用密钥】配好环境可直接运行,感谢支持。

猜你喜欢

转载自blog.csdn.net/Online_exspiravit/article/details/127623170