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网络编程学习笔记(一)
Jun 09 Python
python简单实现旋转图片的方法
May 30 Python
简单讲解Python中的字符串与字符串的输入输出
Mar 13 Python
详解Python的Django框架中manage命令的使用与扩展
Apr 11 Python
pandas DataFrame实现几列数据合并成为新的一列方法
Jun 08 Python
Python小游戏之300行代码实现俄罗斯方块
Jan 04 Python
python实现转盘效果 python实现轮盘抽奖游戏
Jan 22 Python
详解Python 函数如何重载?
Apr 23 Python
python实现的按要求生成手机号功能示例
Oct 08 Python
Python3 shelve对象持久存储原理详解
Mar 23 Python
Python网页解析器使用实例详解
May 30 Python
弄清Pytorch显存的分配机制
Dec 10 Python
用python基于appium模块开发一个自动收取能量的小助手
Python实现打乒乓小游戏
Python 类,对象,数据分类,函数参数传递详解
Sep 25 #Python
Python实现简单的俄罗斯方块游戏
Python实现滑雪小游戏
利用python实时刷新基金估值(摸鱼小工具)
Sep 15 #Python
Python极值整数的边界探讨分析
Sep 15 #Python
You might like
Symfony2函数用法实例分析
2016/03/18 PHP
php时间计算相关问题小结
2016/05/09 PHP
PHP记录和读取JSON格式日志文件
2016/07/07 PHP
php使用redis的几种常见操作方式和用法示例
2020/02/20 PHP
ExtJs 3.1 XmlTreeLoader Example Error
2010/02/09 Javascript
javascript window.opener的用法分析
2010/04/07 Javascript
jQuery1.6 使用方法二
2011/11/23 Javascript
jquery的ajax()函数传值中文乱码解决方法介绍
2012/11/08 Javascript
jquery $.trim()去除字符串空格的实现方法【附图例】
2016/03/30 Javascript
利用JavaScript实现拖拽改变元素大小
2016/12/14 Javascript
JS异步文件分片断点上传的实现思路
2016/12/25 Javascript
jQuery实现checkbox的简单操作
2017/11/18 jQuery
浅谈angular4实际项目搭建总结
2017/12/01 Javascript
微信小程序项目实践之九宫格实现及item跳转功能
2018/07/19 Javascript
Vue实现兄弟组件间的联动效果
2020/01/21 Javascript
vue 路由懒加载中给 Webpack Chunks 命名的方法
2020/04/24 Javascript
python简单文本处理的方法
2015/07/10 Python
python批量制作雷达图的实现方法
2016/07/26 Python
python机器学习库常用汇总
2017/11/15 Python
python3调用R的示例代码
2018/02/23 Python
Python异常处理操作实例详解
2018/08/28 Python
运用Python的webbrowser实现定时打开特定网页
2019/02/21 Python
python实战串口助手_解决8串口多个发送的问题
2019/06/12 Python
python2使用bs4爬取腾讯社招过程解析
2019/08/14 Python
Pytorch中accuracy和loss的计算知识点总结
2019/09/10 Python
深入浅析Python 中的sklearn模型选择
2019/10/12 Python
Python函数式编程实例详解
2020/01/17 Python
深入分析python 排序
2020/08/24 Python
python+selenium实现12306模拟登录的步骤
2021/01/21 Python
CSS3属性box-shadow使用指南
2014/12/09 HTML / CSS
集体婚礼策划方案
2014/02/22 职场文书
2015年师德师风自我评价范文
2015/03/05 职场文书
被委托人身份证明
2015/08/07 职场文书
怎样写工作总结啊!
2019/06/18 职场文书
python 网络编程要点总结
2021/06/18 Python
Python编写nmap扫描工具
2021/07/21 Python