1. 程式人生 > >獲取網頁內容,呼叫語音控制元件

獲取網頁內容,呼叫語音控制元件

安裝pip,這是一個包含很多python外掛的庫

wget https://bootstrap.pypa.io/get-pip.py --no-check-certificate
sudo python get-pip.py

安裝python外掛

安裝pyttsx

sudo pip install pyttsx

安裝requests

sudo pip install requests

File: voice.py


#coding:utf-8  #支援漢字,coding宣告語句必須放在檔案首

#引用檔案
import sys
import pyttsx
import time
import threading
import v0  #引用a.py,不能是數字名的檔案,會直接載入py檔案裡的內容,如果有print,會直接執行
#支援漢語
reload(sys)
sys.setdefaultencoding('utf8')

air=v0.getA();#會執行函式裡的print
#print(air)

s=15#延遲秒數
print 'start'

#延遲函式
def timer(x):
        t=0
while t<s: time.sleep(x) t=t+1 print t print 'end' #語音函式 def action(str,ra): engine = pyttsx.init() rate = engine.getProperty('rate') engine.setProperty('rate', rate-ra) engine.say(str) engine.runAndWait() print
str def Tr(): #多執行緒 t=threading.Thread(target=action,args=('現在'+air+'---------我愛你,柏霖',10)) #傳遞引數 t1=threading.Thread(target=timer,args=(1,)) t.setDaemon(True)#在後臺執行 #t1.setDaemon(True) #延遲函式必須在前端呼叫,持續佔用記憶體,否則該程式會被釋放 t.start() t1.start()

File: v0.py


#coding:utf-8
import requests
import re
def getA():
#引數
        post_param = {}
#用get方式傳送dt給url,取消ssl驗證
        return_data = requests.get("http://www.air-level.com/air/yichang/",data =post_param, verify = False)
#獲取網頁返回的原始碼
        text=return_data.text
#正則擷取指定內容
        result0 = re.findall('.*<h2>(.*)</h2>.*',text)
        result1 = re.findall('.*<span class="aqi-bg aqi-level-5">(.*)</span>.*',text)
#列印
        #print result0[0]
        #for x in result1:
        #    print x
        return result0[0]+result1[0]
#getA()


微控制器上面可能缺少”text to speak”軟體,需要安裝espeak

aptitude是一個軟體庫,可以線上安裝很多東西,而且可以在控制檯實現視窗化,可以玩掃雷

sudo aptitude install espeak libespeak-dev gespeaker -y

播放語音

espeak -vzh “你好”

更新庫

sudo aptitude  full-upgrade