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 相关文章推荐
Python3遍历目录树实现方法
May 22 Python
Python实现数据库编程方法详解
Jun 09 Python
Python 描述符(Descriptor)入门
Nov 20 Python
tensorflow: 查看 tensor详细数值方法
Jun 13 Python
Python实现快速计算词频功能示例
Jun 25 Python
将python文件打包成EXE应用程序的方法
May 22 Python
Python使用正则表达式分割字符串的实现方法
Jul 16 Python
Python numpy数组转置与轴变换
Nov 15 Python
python虚拟环境模块venv使用及示例
Mar 04 Python
解决django FileFIELD的编码问题
Mar 30 Python
Keras实现DenseNet结构操作
Jul 06 Python
Windows下pycharm安装第三方库失败(通用解决方案)
Sep 17 Python
用python基于appium模块开发一个自动收取能量的小助手
Python实现打乒乓小游戏
Python 类,对象,数据分类,函数参数传递详解
Sep 25 #Python
Python实现简单的俄罗斯方块游戏
Python实现滑雪小游戏
利用python实时刷新基金估值(摸鱼小工具)
Sep 15 #Python
Python极值整数的边界探讨分析
Sep 15 #Python
You might like
PHP 数组实例说明
2008/08/18 PHP
php中ob_get_length缓冲与获取缓冲长度实例
2014/11/20 PHP
php生成酷炫的四个字符验证码
2016/04/22 PHP
简单几行JS Code实现IE邮件转发新浪微博
2013/07/03 Javascript
在JS中如何调用JSP中的变量
2014/01/22 Javascript
jQuery自定义事件的简单实现代码
2014/01/27 Javascript
基于Jquery实现键盘按键监听
2014/05/11 Javascript
JavaScript避免内存泄露及内存管理技巧
2014/09/05 Javascript
javascript实现表单提交后,提交按钮不可用的方法
2015/04/18 Javascript
使用JavaScript和CSS实现文本隔行换色的方法
2015/11/04 Javascript
CSS或者JS实现鼠标悬停显示另一元素
2016/01/22 Javascript
jquery+css3实现会动的小圆圈效果
2016/01/27 Javascript
JavaScript地理位置信息API
2016/06/11 Javascript
JS简单实现获取元素的封装操作示例
2017/04/07 Javascript
JavaScript表单验证实现代码
2017/05/22 Javascript
浅谈原型对象的常用开发模式
2017/07/22 Javascript
Vuejs中使用markdown服务器端渲染的示例
2017/11/22 Javascript
详解.vue文件中style标签的几个标识符
2018/07/17 Javascript
在Vue mounted方法中使用data变量详解
2019/11/05 Javascript
JavaScript实现刮刮乐效果
2020/11/01 Javascript
详解Tensorflow数据读取有三种方式(next_batch)
2018/02/01 Python
python获取交互式ssh shell的方法
2019/02/14 Python
Pytorch 的损失函数Loss function使用详解
2020/01/02 Python
python爬虫可以爬什么
2020/06/16 Python
德国鞋子网上商店:Omoda.de
2017/03/31 全球购物
英文自我鉴定
2013/12/10 职场文书
酒店副总岗位职责
2013/12/24 职场文书
幼儿园小班植树节活动方案
2014/03/04 职场文书
考核工作实施方案
2014/03/30 职场文书
银行求职信范文
2014/05/26 职场文书
经济类毕业生求职信
2014/06/26 职场文书
普通党员整改措施
2014/10/24 职场文书
2015年服务员工作总结
2015/04/08 职场文书
2019旅游导游工作总结
2019/06/27 职场文书
JavaScript严格模式不支持八进制的问题讲解
2021/11/07 Javascript
python库Tsmoothie模块数据平滑化异常点抓取
2022/06/10 Python