1. 程式人生 > 實用技巧 >用Python寫一個“離線語音提示器”來提醒我們別忘記了時間

用Python寫一個“離線語音提示器”來提醒我們別忘記了時間

前言

本文的文字及圖片來源於網路,僅供學習、交流使用,不具有任何商業用途,版權歸原作者所有,如有問題請及時聯絡我們以作處理。

環境:

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的倍數的分,然後大致的提醒我們,這就足夠了。