一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何使用樹(shù)莓派和Python制作語(yǔ)音控制的冰箱

454398 ? 來(lái)源:工程師吳畏 ? 2019-07-31 09:24 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

安裝Python庫(kù)和配置音頻

在我們運(yùn)行Python程序之前,我們需要安裝兩個(gè)庫(kù):語(yǔ)音識(shí)別和PyAudio。要安裝這兩個(gè)庫(kù),需要在終端窗口中運(yùn)行以下兩個(gè)命令:

$ sudo pip install SpeechRecognition

$ sudo pip install PyAudio

如果您在安裝PyAudio時(shí)遇到問(wèn)題,可以使用以下系列安裝它說(shuō)明:

$ sudo apt-get install git

$ sudo git clone http://people.csail.mit.edu/hubert/git/pyaudio.git

$ sudo apt-get install libportaudio0 libportaudio2 libportaudiocpp0 portaudio19-dev

$ sudo apt-get install python-dev

$ cd pyaudio

$ sudo python setup.py install

一旦安裝了這兩個(gè)庫(kù),您就需要禁用Raspberry Pi上的板載音頻驅(qū)動(dòng)程序,因?yàn)樗赡軙?huì)干擾PyAudio。為此,首先打開(kāi)一個(gè)新終端并運(yùn)行以下命令:

$ cd /etc/modprobe.d

$ sudo nano alsa-blacklist.conf

Nano是終端的簡(jiǎn)單文本編輯器,加載時(shí)只需要輸入一行:

blacklist snd_bcm2835

按Ctrl + X退出nano并使用文件名alsa-blacklist.conf保存文件。這個(gè)簡(jiǎn)單的文件禁用了Raspberry Pi的Broadcom音頻系統(tǒng),因此Pi上唯一可用的音頻系統(tǒng)是USB聲卡。

語(yǔ)音控制冰箱列表如何工作

Python腳本首先導(dǎo)入語(yǔ)音識(shí)別模塊,該模塊用于將口語(yǔ)單詞轉(zhuǎn)換為字符串。導(dǎo)入模塊后,我們創(chuàng)建一個(gè)對(duì)象r,它是一個(gè)語(yǔ)音識(shí)別器對(duì)象,用于記錄麥克風(fēng)的音頻,然后請(qǐng)求轉(zhuǎn)換。在定義了語(yǔ)音識(shí)別對(duì)象之后,我們還定義了變量,包括項(xiàng)目列表,命令,當(dāng)前項(xiàng)目以及包含已解析命令的數(shù)組。

import speech_recognition as sr

r = sr.Recognizer()

items = dict()

command = “”

item = “”

初始配置完成后,下一個(gè)要執(zhí)行的代碼塊就是主循環(huán)。循環(huán)中的第一個(gè)任務(wù)是通過(guò)打印單詞“Speak”通知用戶發(fā)言,然后創(chuàng)建一個(gè)名為“audio”的音頻對(duì)象,它保存我們的麥克風(fēng)流。

while(1):

with sr.Microphone() as source:

print(“Speak:”)

audio = r.listen(source)

當(dāng)麥克風(fēng)檢測(cè)到聲音并完成錄制時(shí)(當(dāng)聲級(jí)低于閾值時(shí)錄制停止),它會(huì)將錄制的音頻傳遞給識(shí)別器對(duì)象。執(zhí)行此操作后,r將使用Google服務(wù)嘗試將音頻轉(zhuǎn)換為句子,然后將其傳遞給名為speechString的變量。所有這些代碼都在try/except塊中完成,以防音頻被理解或服務(wù)不可用。收到的字符串也被解析為prasedCommands,其中分隔符是空格。因此,如果說(shuō)“添加培根”這個(gè)詞,結(jié)果將是parsedCommands [0]將是“add”而parsedCommands [1]將是“bacon”。

try:

speechString =r.recognize_google(audio)

parsedCommands = speechString.split(“ ”)

except sr.UnknownValueError:

print(“Could not understand audio”)

except sr.RequestError as e:

print(“Could not request results; {0}”.format(e))

if(len(parsedCommands) 》 0):

command = parsedCommands[0]

if(len(parsedCommands) 》 1):

item = parsedCommands[1]

現(xiàn)在我們擁有我們解析的命令和項(xiàng)目,我們可以將它們添加到我們的項(xiàng)目列表中。但是,為了保持清潔,我們會(huì)執(zhí)行以下幾項(xiàng)檢查:

如果該項(xiàng)目已存在且已添加,則增加項(xiàng)目值

如果該項(xiàng)目不存在且添加了該項(xiàng)目,則將該項(xiàng)目添加到列表中

如果該項(xiàng)目已存在且已刪除,則如果總計(jì)大于1則減去1

/li》

如果該項(xiàng)目已存在,則說(shuō)明已刪除,并且只剩下項(xiàng)目,刪除項(xiàng)目

如果該項(xiàng)目不存在,忽略命令

if(command == “add”):

if item in items:

items[item] = str(int(items[item]) + 1)

else:

items[item] = str(1)

print(item + “ added”)

if(command == “remove”):

if item in items:

if(int(items[item]) 》 1):

items[item] = str(int(items[item]) - 1)

else:

try:

items.pop(item, None)

except:

pass

print(item + “ removed”)

這個(gè)簡(jiǎn)單腳本中的最后一個(gè)命令是“display”,它將變量項(xiàng)的內(nèi)容打印到顯示中。

if(command == “display”):

print(items)

完整代碼

import speech_recognition as sr

r = sr.Recognizer()

items = dict()

command = “”

item = “”

while(1):

with sr.Microphone() as source:

print(“Speak:”)

audio = r.listen(source)

try:

speechString =r.recognize_google(audio)

parsedCommands = speechString.split(“ ”)

except sr.UnknownValueError:

print(“Could not understand audio”)

except sr.RequestError as e:

print(“Could not request results; {0}”.format(e))

if(len(parsedCommands) 》 0):

command = parsedCommands[0]

if(len(parsedCommands) 》 1):

item = parsedCommands[1]

if(command == “add”):

if item in items:

items[item] = str(int(items[item]) + 1)

else:

items[item] = str(1)

print(item + “ added”)

if(command == “remove”):

if item in items:

if(int(items[item]) 》 1):

items[item] = str(int(items[item]) - 1)

else:

try:

items.pop(item, None)

except:

pass

print(item + “ removed”)

if(command == “display”):

print(items)

command = “”

item = “”

days = “”

parsedCommands.clear()

此項(xiàng)目以Raspberry Pi為中心,除麥克風(fēng)和顯示器外不需要任何電路或硬件。雖然可以使用普通的顯示器或電視顯示器,但它對(duì)于安裝來(lái)說(shuō)并不是很實(shí)用,因此在這個(gè)項(xiàng)目中,我得到了一個(gè)小型的3.5英寸Raspberry Pi顯示器,分辨率為480x320。雖然這對(duì)于正常使用而言太小,但它非常適合命令行工作,如果通過(guò)網(wǎng)絡(luò)編程和使用此Pi(使用SSH),則可以從任何具有Internet連接的PC上運(yùn)行Python程序。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4827

    瀏覽量

    86763
  • 樹(shù)莓派
    +關(guān)注

    關(guān)注

    121

    文章

    2009

    瀏覽量

    107481
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    樹(shù)莓5上開(kāi)啟YOLO姿態(tài)估計(jì)識(shí)別之旅!

    AIHat+上|如何編寫(xiě)自定義Python代碼YOLO姿態(tài)估計(jì)在樹(shù)莓AIHat+上|編寫(xiě)自定義Python代碼今天是第二部分:樹(shù)莓
    的頭像 發(fā)表于 07-18 15:31 ?72次閱讀
    在<b class='flag-5'>樹(shù)莓</b><b class='flag-5'>派</b>5上開(kāi)啟YOLO姿態(tài)估計(jì)識(shí)別之旅!

    樹(shù)莓5上使用YOLO進(jìn)行物體和動(dòng)物識(shí)別-入門(mén)指南

    AIHat+上|如何編寫(xiě)自定義Python代碼YOLO姿態(tài)估計(jì)在樹(shù)莓AIHat+上|編寫(xiě)自定義Python代碼今天是第一部分:在樹(shù)莓
    的頭像 發(fā)表于 07-17 17:16 ?144次閱讀
    在<b class='flag-5'>樹(shù)莓</b><b class='flag-5'>派</b>5上使用YOLO進(jìn)行物體和動(dòng)物識(shí)別-入門(mén)指南

    樹(shù)莓分類器:用樹(shù)莓識(shí)別不同型號(hào)的樹(shù)莓!

    在本教程系列的第一部分中,您將學(xué)習(xí)如何使用樹(shù)莓AI攝像頭來(lái)檢測(cè)不同的樹(shù)莓型號(hào)。本系列由DavidPlowman創(chuàng)建,他是樹(shù)莓
    的頭像 發(fā)表于 06-13 16:39 ?420次閱讀
    <b class='flag-5'>樹(shù)莓</b><b class='flag-5'>派</b>分類器:用<b class='flag-5'>樹(shù)莓</b><b class='flag-5'>派</b>識(shí)別不同型號(hào)的<b class='flag-5'>樹(shù)莓</b><b class='flag-5'>派</b>!

    使用 Betaflight 和樹(shù)莓實(shí)現(xiàn) FPV 無(wú)人機(jī)自主飛行!

    開(kāi)始利用Betaflight飛行控制器、簡(jiǎn)單的10個(gè)Python文件和樹(shù)莓,為你的FPV戰(zhàn)斗無(wú)人機(jī)構(gòu)建自己的自動(dòng)駕駛儀。FPV無(wú)人機(jī)搭載樹(shù)莓
    的頭像 發(fā)表于 06-07 08:32 ?581次閱讀
    使用 Betaflight 和<b class='flag-5'>樹(shù)莓</b><b class='flag-5'>派</b>實(shí)現(xiàn) FPV 無(wú)人機(jī)自主飛行!

    樹(shù)莓“揪出”家里的耗電怪獸!

    在本應(yīng)用中,我們將使用樹(shù)莓設(shè)置一個(gè)CE電流監(jiān)測(cè)器,并通過(guò)網(wǎng)頁(yè)界面顯示電路的電流讀數(shù)。本項(xiàng)目使用的組件硬件組件樹(shù)莓2ModelBx112通道20安培電流監(jiān)測(cè)
    的頭像 發(fā)表于 06-04 15:33 ?720次閱讀
    用<b class='flag-5'>樹(shù)莓</b><b class='flag-5'>派</b>“揪出”家里的耗電怪獸!

    樹(shù)莓4 打造專屬流媒體控制臺(tái)!

    樹(shù)莓體驗(yàn)DIY智能科技!如今市面上有各種各樣的流媒體控制臺(tái),但購(gòu)買(mǎi)現(xiàn)成的哪有自己從零開(kāi)始制作的有趣呢?至少,這似乎是樹(shù)莓
    的頭像 發(fā)表于 05-11 08:33 ?195次閱讀
    用 <b class='flag-5'>樹(shù)莓</b><b class='flag-5'>派</b>4 打造專屬流媒體<b class='flag-5'>控制</b>臺(tái)!

    deepin 23+樹(shù)莓讓小車(chē)動(dòng)起來(lái)

    deepin 23 +樹(shù)莓還有啥新玩法? ? ? 前言 繼我們之前發(fā)布的樹(shù)莓運(yùn)行 deepin 23 系統(tǒng)教程后,此次我們將深入探索如何借助樹(shù)莓
    的頭像 發(fā)表于 02-12 09:12 ?767次閱讀
    deepin 23+<b class='flag-5'>樹(shù)莓</b><b class='flag-5'>派</b>讓小車(chē)動(dòng)起來(lái)

    GPIO在樹(shù)莓中的應(yīng)用

    直接控制和讀取外部硬件設(shè)備的狀態(tài)。 1. GPIO簡(jiǎn)介 GPIO是樹(shù)莓派上用于與外部世界交互的一組引腳。這些引腳可以被配置為輸入或輸出模式,從而實(shí)現(xiàn)對(duì)外部設(shè)備的控制和數(shù)據(jù)讀取。樹(shù)莓
    的頭像 發(fā)表于 01-09 09:41 ?847次閱讀

    使用樹(shù)莓實(shí)現(xiàn)遠(yuǎn)程控制的技巧

    樹(shù)莓是一款功能強(qiáng)大的微型計(jì)算機(jī),其體積小巧、價(jià)格低廉,非常適合用于各種DIY項(xiàng)目。其中,遠(yuǎn)程控制樹(shù)莓應(yīng)用中非常受歡迎的一個(gè)領(lǐng)域。通過(guò)遠(yuǎn)
    的頭像 發(fā)表于 11-11 11:37 ?1411次閱讀

    樹(shù)莓開(kāi)發(fā)的最佳編程語(yǔ)言選擇

    應(yīng)用。 1. Python 優(yōu)勢(shì): 易學(xué)易用: Python以其簡(jiǎn)潔的語(yǔ)法和強(qiáng)大的功能而聞名,非常適合初學(xué)者。 廣泛的庫(kù)支持: Python擁有大量的庫(kù),如GPIO Zero、PiGPIO等,這些庫(kù)使得
    的頭像 發(fā)表于 11-11 11:34 ?2045次閱讀

    樹(shù)莓gpio有什么用,樹(shù)莓gpio接口及編程方法

    /Output,通用輸入/輸出)是樹(shù)莓提供的一組可編程的引腳,是樹(shù)莓與外部世界進(jìn)行交互的重要橋梁。通過(guò)GPIO,用戶可以控制外部電路,讀
    的頭像 發(fā)表于 10-22 18:09 ?2685次閱讀

    什么是樹(shù)莓?樹(shù)莓是什么架構(gòu)的

    什么是樹(shù)莓 樹(shù)莓(Raspberry Pi,簡(jiǎn)寫(xiě)為RPi,別名為RasPi/RPI)是由英國(guó)“Raspberry Pi 慈善基金會(huì)”開(kāi)發(fā)的一款為學(xué)習(xí)計(jì)算機(jī)編程教育而設(shè)計(jì)的微型電腦。
    的頭像 發(fā)表于 10-22 17:33 ?5851次閱讀

    樹(shù)莓網(wǎng)關(guān):物聯(lián)網(wǎng)應(yīng)用的新標(biāo)桿

    的特點(diǎn)是體積小巧(大約信用卡大?。?,但功能齊全,足以支持多種計(jì)算任務(wù)。 樹(shù)莓經(jīng)常被用作物聯(lián)網(wǎng)網(wǎng)關(guān),收集設(shè)備數(shù)據(jù),然后將數(shù)據(jù)上傳云平臺(tái),并還可以用來(lái)接收來(lái)自云端的控制指令,控制其他連接
    的頭像 發(fā)表于 10-09 16:44 ?836次閱讀
    類<b class='flag-5'>樹(shù)莓</b><b class='flag-5'>派</b>網(wǎng)關(guān):物聯(lián)網(wǎng)應(yīng)用的新標(biāo)桿

    樹(shù)莓和單片機(jī)的優(yōu)缺點(diǎn)是什么

    )接口,樹(shù)莓可以連接各種傳感器、執(zhí)行器和其他外圍設(shè)備。 易于編程 :樹(shù)莓支持多種編程語(yǔ)言,如Python、C++、Java等,使得
    的頭像 發(fā)表于 08-30 18:21 ?2903次閱讀

    樹(shù)莓的功能用途是什么

    、科研、工業(yè)控制、物聯(lián)網(wǎng)、多媒體播放、家庭自動(dòng)化等領(lǐng)域。 樹(shù)莓(Raspberry Pi)是一種小型、低成本的單板計(jì)算機(jī),由英國(guó)的Raspberry Pi基金會(huì)開(kāi)發(fā),其功能和用途非常廣泛。以下是
    的頭像 發(fā)表于 08-30 18:01 ?4623次閱讀