九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
樹莓派 python 百度語(yǔ)音控制 gpio 控制開關(guān)燈 | | URl


1、安裝

Python2安裝GPIO庫(kù)需要輸入命令:

Python
1
2
sudo apt-get install python-dev
sudo apt-get install python-rpi.gpio

Python3安裝GPIO庫(kù)需要輸入命令:

Python
1
2
sudo apt-get install python-dev
sudo apt-get install python3-rpi.gpio

2 測(cè)試gpio

建立一個(gè)測(cè)試文件,test.py

然后運(yùn)行之:  sudo python test.py

注意:首先要sudo 要有管理員權(quán)限才能控制io口.其次你的連線得注意一下,下面gpio.high是代表11口輸出高電平,大概不到3.3的電壓,而且電流也比較小,一般而言是用作繼電器或者放大電路中的信號(hào)元.

 

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
# -*- coding: utf-8 -*-    
import RPi.GPIO as GPIO    
import time    
# BOARD編號(hào)方式,基于插座引腳編號(hào)    
GPIO.setmode(GPIO.BOARD)    
# 輸出模式    
GPIO.setup(11, GPIO.OUT)    
    
while True:    
    GPIO.output(11, GPIO.HIGH)    
    time.sleep(1)    
    GPIO.output(11, GPIO.LOW)    
    time.sleep(1)

如果你能出現(xiàn)燈光閃爍,那么就算是成功拉,

 

 

3.語(yǔ)音部分

主要部分請(qǐng)參照這文章,還有之前有很多可以

然后在其中加入判斷就可以了

注意”開門后面的逗號(hào)要中文編碼下的逗號(hào)”

Python
1
2
3
if(cmp(duihua,'開門,')==0):
    print "識(shí)別開門"
    GPIO.output(11, GPIO.LOW)

Python
1
2
3
if(cmp(duihua,'關(guān)門,')==0):
    print "識(shí)別關(guān)門"
    GPIO.output(11, GPIO.HIGH)

注意在開頭要加上下面的申明.

Python
1
2
3
4
5
6
7
# -*- coding: utf-8 -*-    
import RPi.GPIO as GPIO    
import time    
# BOARD編號(hào)方式,基于插座引腳編號(hào)    
GPIO.setmode(GPIO.BOARD)    
# 輸出模式    
GPIO.setup(11, GPIO.OUT)

 

4.樹莓派下源代碼

說(shuō)明:環(huán)境挺麻煩,請(qǐng)看前面給出的鏈接,然后需要將建立文件夾:yuyinduihua 放在/home/pi 下,因?yàn)橄旅嬗惺褂媒^對(duì)路徑的地方,.需要調(diào)整.

有可能出錯(cuò)的地方是百度語(yǔ)音的token需要自己粘帖上去..這個(gè)有點(diǎn)懶的改了.

.就是在這里后面tok的一串?dāng)?shù)字是他的識(shí)別碼,過(guò)一段時(shí)間就會(huì)更換,失效,所以需要自己輸出token函數(shù)的內(nèi)容,然后再粘帖過(guò)去,,希望還是需要多學(xué)習(xí)一下之前幾篇關(guān)于百度語(yǔ)音的才能控制自如.

Python
1
url = "http://tsn.baidu.com/text2audio?tex="+dic_json['text']+"&lan=zh&per=0&pit=1&spd=7&cuid=7519663&ctp=1&tok=24.ece6cfa6b5821f481deceef114da892e.2592000.1467287744.282335-7519663"

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
# -*- coding: utf-8 -*-
#from pyaudio import PyAudio, paInt16
import numpy as np
from datetime import datetime
import wave
import time
import urllib, urllib2, pycurl
import base64
import json
import os
import sys
import RPi.GPIO as GPIO
import time
# BOARD編號(hào)方式,基于插座引腳編號(hào)
GPIO.setmode(GPIO.BOARD)
# 輸出模式
GPIO.setup(11, GPIO.OUT)
reload(sys)
sys.setdefaultencoding( "utf-8" )
save_count = 0
save_buffer = []
t = 0
sum = 0
time_flag = 0
flag_num = 0
filename = '2.wav'
duihua = '1'
def getHtml(url):
    page = urllib.urlopen(url)
    html = page.read()
    return html
def get_token():
    apiKey = "Ll0c53MSac6GBOtpg22ZSGAU"
    secretKey = "44c8af396038a24e34936227d4a19dc2"
    auth_url = "https://openapi.baidu.com/oauth/2.0/token?grant_type=client_credentials&client_id=" + apiKey + "&client_secret=" + secretKey;
    res = urllib2.urlopen(auth_url)
    json_data = res.read()
    return json.loads(json_data)['access_token']
def dump_res(buf):
    global duihua
    print "字符串類型"
    print (buf)
    a = eval(buf)
    print type(a)
    if a['err_msg']=='success.':
        #print a['result'][0]#終于搞定了,在這里可以輸出,返回的語(yǔ)句
        duihua = a['result'][0]
        print duihua
def use_cloud(token):
    fp = wave.open(filename, 'rb')
    nf = fp.getnframes()
    f_len = nf * 2
    audio_data = fp.readframes(nf)
    cuid = "7519663" #產(chǎn)品id
    srv_url = 'http://vop.baidu.com/server_api' + '?cuid=' + cuid + '&token=' + token
    http_header = [
        'Content-Type: audio/pcm; rate=8000',
        'Content-Length: %d' % f_len
    ]
    c = pycurl.Curl()
    c.setopt(pycurl.URL, str(srv_url)) #curl doesn't support unicode
    #c.setopt(c.RETURNTRANSFER, 1)
    c.setopt(c.HTTPHEADER, http_header)   #must be list, not dict
    c.setopt(c.POST, 1)
    c.setopt(c.CONNECTTIMEOUT, 30)
    c.setopt(c.TIMEOUT, 30)
    c.setopt(c.WRITEFUNCTION, dump_res)
    c.setopt(c.POSTFIELDS, audio_data)
    c.setopt(c.POSTFIELDSIZE, f_len)
    c.perform() #pycurl.perform() has no return val
# 將data中的數(shù)據(jù)保存到名為filename的WAV文件中
def save_wave_file(filename, data):
    wf = wave.open(filename, 'wb')
    wf.setnchannels(1)
    wf.setsampwidth(2)
    wf.setframerate(SAMPLING_RATE)
    wf.writeframes("".join(data))
    wf.close()
NUM_SAMPLES = 2000      # pyAudio內(nèi)部緩存的塊的大小
SAMPLING_RATE = 8000    # 取樣頻率
LEVEL = 1500            # 聲音保存的閾值
COUNT_NUM = 20          # NUM_SAMPLES個(gè)取樣之內(nèi)出現(xiàn)COUNT_NUM個(gè)大于LEVEL的取樣則記錄聲音
SAVE_LENGTH = 8         # 聲音記錄的最小長(zhǎng)度:SAVE_LENGTH * NUM_SAMPLES 個(gè)取樣
token = get_token()
key = '05ba411481c8cfa61b91124ef7389767'
api = 'http://www.tuling123.com/openapi/api?key=' + key + '&info='
while(True):
    print "kaishi"
    os.system('arecord -D "plughw:1,0" -f S16_LE -d 3 -r 8000 /home/pi/yuyinduihua/2.wav')
    use_cloud(token)
    print "輸入內(nèi)容"
    print duihua
    ############
    #語(yǔ)音識(shí)別進(jìn)行開門的設(shè)置#
    ############
    if(cmp(duihua,'開門,')==0):
         print "識(shí)別開門"
         GPIO.output(11, GPIO.LOW)
    info = duihua
    duihua = ""
    request = api + info
    response = getHtml(request)
    dic_json = json.loads(response)
    #print '機(jī)器人: '.decode('utf-8') + dic_json['text']
    #huida = ' '.decode('utf-8') + dic_json['text']
    a = dic_json['text']
    print type(a)
    unicodestring = a
    # 將Unicode轉(zhuǎn)化為普通Python字符串:"encode"
    utf8string = unicodestring.encode("utf-8")
    print type(utf8string)
    print str(a)
    url = "http://tsn.baidu.com/text2audio?tex="+dic_json['text']+"&lan=zh&per=0&pit=1&spd=7&cuid=7519663&ctp=1&tok=24.ece6cfa6b5821f481deceef114da892e.2592000.1467287744.282335-7519663"
    os.system('mpg123 "%s"'%(url))
    print "wait..1s"
    time.sleep(1)

 

 


本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
python語(yǔ)音通話
Python—requests模塊詳解
微信公眾平臺(tái)開發(fā)(八) 自定義菜單功能開發(fā)
Python調(diào)用API接口的幾種方式
微信自定義菜單創(chuàng)建
PHP調(diào)用微信JSSDK接口 選擇相冊(cè)及拍照、圖片上傳
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服