獲取網頁內容,呼叫語音控制元件
阿新 • • 發佈:2019-01-08
安裝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