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 相关文章推荐
Win7下搭建python开发环境图文教程(安装Python、pip、解释器)
May 17 Python
python 获取网页编码方式实现代码
Mar 11 Python
浅谈Pandas中map, applymap and apply的区别
Apr 10 Python
Python实现基于POS算法的区块链
Aug 07 Python
python判断完全平方数的方法
Nov 13 Python
Linux下Pycharm、Anaconda环境配置及使用踩坑
Dec 19 Python
解决Python找不到ssl模块问题 No module named _ssl的方法
Apr 29 Python
Python实战之制作天气查询软件
May 14 Python
pytorch 在sequential中使用view来reshape的例子
Aug 20 Python
Python字典fromkeys()方法使用代码实例
Jul 20 Python
python实现测试工具(二)——简单的ui测试工具
Oct 19 Python
python获取字符串中的email
Mar 31 Python
用python基于appium模块开发一个自动收取能量的小助手
Python实现打乒乓小游戏
Python 类,对象,数据分类,函数参数传递详解
Sep 25 #Python
Python实现简单的俄罗斯方块游戏
Python实现滑雪小游戏
利用python实时刷新基金估值(摸鱼小工具)
Sep 15 #Python
Python极值整数的边界探讨分析
Sep 15 #Python
You might like
php中实现获取随机数组列表的自定义函数
2015/04/02 PHP
纯PHP代码实现支付宝批量付款
2015/12/24 PHP
php实现图片上传、剪切功能
2016/05/07 PHP
thinkphp3.x中display方法及show方法的用法实例
2016/05/19 PHP
PHP5.0 TIDY_PARSE_FILE缓冲区溢出漏洞的解决方案
2018/10/14 PHP
laravel框架邮箱认证实现方法详解
2019/11/22 PHP
iframe如何动态创建及释放其所占内存
2014/09/03 Javascript
javascript字符串函数汇总
2015/12/06 Javascript
Spring MVC中Ajax实现二级联动的简单实例
2016/07/06 Javascript
Bootstrap登陆注册页面开发教程
2016/07/12 Javascript
彻底学会Angular.js中的transclusion
2017/03/12 Javascript
了解JavaScript中的选择器
2019/05/24 Javascript
node.js域名解析实现方法详解
2019/11/05 Javascript
jstree中的checkbox默认选中和隐藏示例代码
2019/12/29 Javascript
小程序富文本提取图片可放大缩小
2020/05/26 Javascript
在Python3中初学者应会的一些基本的提升效率的小技巧
2015/03/31 Python
python从网络读取图片并直接进行处理的方法
2015/05/22 Python
python按综合、销量排序抓取100页的淘宝商品列表信息
2018/02/24 Python
python中将一个全部为int的list 转化为str的list方法
2018/04/09 Python
Python paramiko模块的使用示例
2018/04/11 Python
django删除表重建的实现方法
2019/08/28 Python
简单了解python中的与或非运算
2019/09/18 Python
Python3.7.0 Shell添加清屏快捷键的实现示例
2020/03/23 Python
利用python控制Autocad:pyautocad方式
2020/06/01 Python
Python学习之路安装pycharm的教程详解
2020/06/17 Python
Python自动发送和收取邮件的方法
2020/08/12 Python
Python调用REST API接口的几种方式汇总
2020/10/19 Python
HTML5是什么 HTML5是什么意思 HTML5简介
2012/10/26 HTML / CSS
MAC Cosmetics巴西官方网站:M·A·C彩妆
2019/04/18 全球购物
爱国卫生月实施方案
2014/02/21 职场文书
幼儿园毕业典礼主持词
2014/03/21 职场文书
2015年青年志愿者协会工作总结
2015/04/27 职场文书
盗窃案辩护词
2015/05/21 职场文书
2016秋季运动会开幕词
2016/03/04 职场文书
TV动画《间谍过家家》公开PV
2022/03/20 日漫
Nginx+Tomcat负载均衡多实例详解
2022/04/11 Servers