python|【注意】国庆假期出游(首先关注这一点,很重要!!语音播报小助手你的贴心小管家!)

导语? 【python|【注意】国庆假期出游(首先关注这一点,很重要!!语音播报小助手你的贴心小管家!)】马上就要迎来国庆小长假了~激不激动,兴不兴奋python|【注意】国庆假期出游(首先关注这一点,很重要!!语音播报小助手你的贴心小管家!)
文章图片
!?
python|【注意】国庆假期出游(首先关注这一点,很重要!!语音播报小助手你的贴心小管家!)
文章图片
?
python|【注意】国庆假期出游(首先关注这一点,很重要!!语音播报小助手你的贴心小管家!)
文章图片
那今年国庆:天气怎么样?能不能出门逛街?能不能出去旅游?
……
来来来,木木子为你整理好啦!??这个假期,你那里的天气如何?
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

python|【注意】国庆假期出游(首先关注这一点,很重要!!语音播报小助手你的贴心小管家!)
文章图片
(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

python|【注意】国庆假期出游(首先关注这一点,很重要!!语音播报小助手你的贴心小管家!)
文章图片
(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|【注意】国庆假期出游(首先关注这一点,很重要!!语音播报小助手你的贴心小管家!)
文章图片
效果如下:
python|【注意】国庆假期出游(首先关注这一点,很重要!!语音播报小助手你的贴心小管家!)
文章图片

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

总结 好啦!这是一款实时播报、高考、天气预报、每日鸡汤的三合一语音智能小助手!想拥有嘛?
如需完整的项目源码+全部的素材老规矩源码基地见:#私信小编06#或者点击蓝色字体即可免费获取打包的源码!
记得三连哦~mua 你们的支持是我最大的动力!
python|【注意】国庆假期出游(首先关注这一点,很重要!!语音播报小助手你的贴心小管家!)
文章图片

    推荐阅读