Python天气语音播报小助手


Posted in Python onSeptember 25, 2021

导语​

马上就要迎来国庆小长假了~激不激动,兴不兴奋!​

Python天气语音播报小助手

那今年国庆:天气怎么样?能不能出门逛街?能不能出去旅游?

……

来来来,木木子为你整理好啦!​​这个假期,你那里的天气如何?

Python天气语音播报小助手

Python天气语音播报小助手

正文

旅游出门就要挑个好的天气!下雨天哪儿哪儿都不舒服。

今天小编带大家写一款Python天气语音播报小助手!

环境安装:Python3.6、pycharm2021、及自带的模块等。

pip install -i https://pypi.douban.com/simple/ requests 
 
pip install -i https://pypi.douban.com/simple/ opencv-python

​主要分为三大部分:

(1)获取每日天气情况:

def get_weather():
    url = 'http://www.weather.com.cn/weather/101290101.shtml'
    response = requests.get(url)
    response.encoding = 'utf-8'
    response = response.text  # 获取页面
    html = etree.HTML(response)
    day_weather = '天气状况:' + html.xpath('//*[@id="7d"]/ul/li[1]/p[1]/text()')[0] + '\n'  # 获取天气,白天的天气
    high = html.xpath('//*[@id="7d"]/ul/li[1]/p[2]/span/text()')
    low = html.xpath('//*[@id="7d"]/ul/li[1]/p[2]/i/text()')  # 获取对应的两个温度
    # 因为页面在晚上会有小变化,所以使用条件语句,来排除因变化引起的bug
    if high == []:
        day_temperature = '室外温度:' + low[0] + '\n'
    else:
        day_temperature = '室外温度:' + low[0].replace('℃', '') + '~' + high[0] + '℃\n'  # 获取温度
    # 获取两个风向
    wind_1 = html.xpath('//*[@id="7d"]/ul/li[1]/p[3]/em/span[1]/@title')
    wind_2 = html.xpath('//*[@id="7d"]/ul/li[1]/p[3]/em/span[2]/@title')
    # 因为有时候,会出现两个风向是同一个风向的情况,所以使用条件语句排除
    if wind_2 == []:
        wind = wind_1[0] + '\n'
    elif wind_1[0] == wind_2[0]:
        wind = wind_1[0] + '\n'
    else:
        wind = wind_1[0] + '转' + wind_2[0] + '\n'
    # 因为风级有时候会出现“<",语音的时候会认为是爱心符号,所以使用替换,改为文字”低于“
    wind_3 = html.xpath('//*[@id="7d"]/ul/li[1]/p[3]/i/text()')[0].replace('<', '低于').replace('>', '高于')
    day_wind = '风向情况:' + wind + wind_3 + '\n'  # 获取风向及风级
    return day_weather, day_temperature, day_wind

(2)获取播报的高考时间:

def get_time():
    a = datetime.datetime.now()  # 实施时间
    y = str(a.year)
    m = str(a.month)
    d = str(a.day)  # 转换为字符串,便于打印
    time = y + '年' + m + '月' + d + '日' + '\n'
    b = datetime.datetime(2021, 6, 7)  # 自己设置的高考时间
    count_down = (b - a).days  # 高考倒计时
    return time, count_down

(3)设置播报每日鸡汤文字:

def get_content():
    url = 'http://open.iciba.com/dsapi/'  # 网上找的API
    response = requests.get(url=url)
    json_s = json.loads(response.text)
    jitang = json_s.get("content") + '\n'  # 每日鸡汤
    translation = json_s.get("note") + '\n'  # 中文翻译
    image_url = json_s.get("fenxiang_img")  # 图片链接
    return jitang, translation, image_url

(4)语音小助手依次顺序播报:

def main():
    time, count_down = get_time()
    day_weather, day_temperature, day_wind = get_weather()
    jitang, translation, image_url = get_content()
    count_down = '距离高考还有{}天,你准备好了吗?'.format(count_down) + '\n'
    a = '下面为您播报今日天气状况\n'
    b = '每日一句\n'
    time = '今天是' + time
    weather = day_weather + day_temperature + day_wind
    content = jitang + translation
    text = time + count_down + a + weather + b + content  # 语音内容
    voice = pyttsx3.init()  # 初始化
    # rate = voice.getProperty('rate')
    voice.setProperty('rate', 150)  # 语速,范围在0-200之间
    voice.setProperty('volume', 1.0)  # 范围在0.0-1.0之间
    voice.say(text)  # 语音内容
    voice.runAndWait()
    cap = cv2.VideoCapture(image_url)  # 展示图片
    if(cap.isOpened()):
        ret, img = cap.read()
        my_image = cv2.resize(img, dsize=None, fx=0.5, fy=0.5)
        cv2.imshow("You will succeed in the end", my_image)
        cv2.waitKey()
    print(time, weather, content)

效果如下:

Python天气语音播报小助手

​其实是语音播报的,but这只能截图效果将就着看叭~哈哈哈!!!

Python天气语音播报小助手

总结

好啦!这是一款实时播报、高考、天气预报、每日鸡汤的三合一语音智能小助手!想拥有嘛?

记得三连哦~mua 你们的支持是我最大的动力!

Python天气语音播报小助手

到此这篇关于Python天气语音播报小助手的文章就介绍到这了,更多相关Python 语音播报 内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python中解析JSON并同时进行自定义编码处理实例
Feb 08 Python
Windows和Linux下使用Python访问SqlServer的方法介绍
Mar 10 Python
python3实现全角和半角字符转换的方法示例
Sep 21 Python
浅谈python jieba分词模块的基本用法
Nov 09 Python
Python+树莓派+YOLO打造一款人工智能照相机
Jan 02 Python
python实现图书馆研习室自动预约功能
Apr 27 Python
把pandas转换int型为str型的方法
Jan 29 Python
如何使用PyCharm将代码上传到GitHub上(图文详解)
Apr 27 Python
Python高并发和多线程有什么关系
Nov 14 Python
python实现web邮箱扫描的示例(附源码)
Mar 30 Python
Python Matplotlib绘制条形图的全过程
Oct 24 Python
pandas进行数据输入和输出的方法详解
Mar 23 Python
用python基于appium模块开发一个自动收取能量的小助手
Python实现打乒乓小游戏
Python 类,对象,数据分类,函数参数传递详解
Sep 25 #Python
Python实现简单的俄罗斯方块游戏
Python实现滑雪小游戏
利用python实时刷新基金估值(摸鱼小工具)
Sep 15 #Python
Python极值整数的边界探讨分析
Sep 15 #Python
You might like
php 取得瑞年与平年的天数的代码
2009/08/10 PHP
PHP使用ob_start生成html页面的方法
2014/11/07 PHP
PHP递归复制、移动目录的自定义函数分享
2014/11/18 PHP
php版微信自动获取收货地址api用法示例
2016/09/22 PHP
设为首页加入收藏兼容360/火狐/谷歌/IE等主流浏览器的代码
2013/03/26 Javascript
js实现向右横向滑出的二级菜单效果
2015/08/27 Javascript
jQuery学习心得总结(必看篇)
2016/06/10 Javascript
vue.js+boostrap项目实践(案例详解)
2016/09/21 Javascript
JS两种类型的表单提交方法实例分析
2016/11/28 Javascript
jquery 标签 隔若干行加空白或者加虚线的方法
2016/12/07 Javascript
js封装tab标签页实例分享
2016/12/19 Javascript
js实现二级导航功能
2017/03/03 Javascript
在原生不支持的旧环境中添加兼容的Object.keys实现方法
2017/09/11 Javascript
详解浏览器缓存和webpack缓存配置
2018/07/06 Javascript
JavaScript函数式编程(Functional Programming)组合函数(Composition)用法分析
2019/05/22 Javascript
原生JavaScript实现日历功能代码实例(无引用Jq)
2019/09/23 Javascript
vue 动态生成拓扑图的示例
2021/01/03 Vue.js
Python爬虫框架Scrapy实例代码
2018/03/04 Python
解决Python获取字典dict中不存在的值时出错问题
2018/10/17 Python
pandas读取CSV文件时查看修改各列的数据类型格式
2019/07/07 Python
flask应用部署到服务器的方法
2019/07/12 Python
python 模拟创建seafile 目录操作示例
2019/09/26 Python
jupyter notebook中美观显示矩阵实例
2020/04/17 Python
python 使用csv模块读写csv格式文件的示例
2020/12/02 Python
S’well Bottle保温杯官网:绝缘不锈钢水瓶
2018/05/09 全球购物
职业生涯规划书的格式
2013/12/29 职场文书
竞争上岗演讲稿
2014/01/05 职场文书
机关保密承诺书
2014/06/03 职场文书
化工专业自荐书
2014/06/16 职场文书
湖南省召开党的群众路线教育实践活动总结大会报告
2014/10/21 职场文书
2015年收银员个人工作总结
2015/04/01 职场文书
员工担保书范本
2015/09/22 职场文书
Python实战之大鱼吃小鱼游戏的实现
2022/04/01 Python
PostgreSQL并行计算算法及参数强制并行度设置方法
2022/04/06 PostgreSQL
SQL Server携程核心系统无感迁移到MySQL实战
2022/06/01 SQL Server
HTML5中的DOCUMENT.VISIBILITYSTATE属性详解
2023/05/07 HTML / CSS