千家信息网

Python如何实现天气语音播报小助手

发表于:2024-09-21 作者:千家信息网编辑
千家信息网最后更新 2024年09月21日,这篇文章主要介绍了Python如何实现天气语音播报小助手,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。环境安装:Python3.6、p
千家信息网最后更新 2024年09月21日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)

效果如下:

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

感谢你能够认真阅读完这篇文章,希望小编分享的"Python如何实现天气语音播报小助手"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!

天气 语音 风向 温度 篇文章 高考 助手 两个 情况 时间 之间 内容 图片 效果 文字 有时候 条件 状况 范围 语句 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 数据库管理软件开发 保健院网络安全工作实施方案 文本数据库查找问题 高速路服务器关闭了能停车吗 pythonjson数据库 网络安全形势分析 网络安全知识教育学习体会 网络技术对社交的影响事例 四川省南充软件开发公司 数据库事务的开启方式 免费软件开发怎么做 这软件开发的成熟不成熟 fstp服务器怎么搭建 路由设置虚拟服务器 软件开发有限公司售后 培训机构网络技术教学 2003服务器怎么变成c盘 宁德新能源软件开发工程师 移动通信网络技术的主要问题 海尔日日顺供应链软件开发待遇 数据库比较两个值大小 杭州惠康互联网科技有限公司 首届国家网络安全宣传周启动在哪 免费代理服务器的地址 网络安全软件费用财务入账 王者荣耀我的服务器管理 php查询本地数据库慢 三线城市学什么网络技术好 珠海臻高网络技术有限公司 临河app软件开发培训课程
0