用Python写一个“离线语音提示器”来提醒我们别忘记了时间

   日期:2024-01-17     浏览:50    评论:0    

前言

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。

 

环境:

Win7系统,外网未连接,主机接有返听音箱。

准备:

这里明显要用语音合成,既然是离线状态,肯定没法调用百度AI之类的接口。装一个离线语音包又有点兴师动众,所以干脆我们就用微软自带的Speech SDK吧。注意,很多Ghost版的系统,可能去掉了这块功能,需要重新安装。经过上网学习,我们发现只需安装pyttsx3这个库。

思路:

把所有的铃声,放到一个列表里。然后遍历列表,找到当前时间对应的下一个打铃的时间。然后判读相差的“分”数(并没有精确到秒,只是是大致提醒),调用语音合成输出。

 

编码:

import datetime,time
import pyttsx3

engine = pyttsx3.init()
ringTimes=["8:30","9:00","11:00","14:00","14:30","15:30",
"15:55","16:20","17:20"]


def alarmTime():
    currTime=datetime.datetime.now()
    h,m,s=currTime.hour,currTime.minute,currTime.second
    for t in ringTimes:
        t2=int(t.split(':')[0])*60+int(t.split(':')[1])
        t1=h*60+m
        if t1<t2 and t2-t1<=30 and m%5==0:
            tip="距离下一个铃声还有不到%d分钟" % (t2-t1)
            print(tip)
            engine.say(tip)
            engine.runAndWait()
            break
while True:
    alarmTime()
    time.sleep(60)

 

效果:

效果就是铃声前N分钟,每隔m分钟,比如铃声前半小时每5分钟提示一次。这些,都可以自由修改。于是就听到我们预想的播报啦。

你也可以适当修改一下生成的语言语速:

 

后记:

写这些小玩意,实际是Python比较专长的东西。毕竟有很多现成的库可以直接调用,写起来也非常简单,只需要简单组织一下逻辑就好。例如每隔一分钟去查询是不是5的倍数的分,然后大致的提醒我们,这就足够了。

 

 
 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服