www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當前位置:首頁 > 工業(yè)控制 > 電路設(shè)計項目集錦
[導讀]想象一下,一個廚師在準備沙拉或做面團的時候正在烹飪一些東西,現(xiàn)在他/她可能需要調(diào)整爐子上的加熱。在這種情況下,語音控制的爐子/烤箱對廚師/廚師來說非常有用。在任何情況下,用戶的雙手都在忙著做事情是利用語音控制應(yīng)用程序的最佳方案。

Edge AI智能爐子,可以通過語音命令和交互式語音反饋UI(如Alexa)操作,無需互聯(lián)網(wǎng)連接。

想象一下,一個廚師在準備沙拉或做面團的時候正在烹飪一些東西,現(xiàn)在他/她可能需要調(diào)整爐子上的加熱。在這種情況下,語音控制的爐子/烤箱對廚師/廚師來說非常有用。在任何情況下,用戶的雙手都在忙著做事情是利用語音控制應(yīng)用程序的最佳方案。

不幸的是,現(xiàn)有的解決方案是連接的解決方案,比如Alexa或谷歌云連接烤箱之類的東西。但是,為什么要讓他們知道你做什么,什么時候做呢?此外,用戶需要為設(shè)備設(shè)置wifi連接并下載另一個應(yīng)用程序!這對許多用戶來說是一個很大的否定。

這是我的解決方案:邊緣人工智能語音控制爐,實現(xiàn)Picovoice。人工智能生成的語音識別模型和PSoC 6單片機。開箱即用!

這不是“物聯(lián)網(wǎng)”,而是“物外互聯(lián)網(wǎng)”,所以它仍然是一個物聯(lián)網(wǎng)(雙關(guān)語)。

特性

?聲控點火/火焰激活

?聲控火焰/加熱調(diào)節(jié)

?語音控制烹飪/燃燒器定時器設(shè)置

?交互式語音反饋UI確認

?語音控制關(guān)機

?邊緣人工智能語音識別,無云連接

?自然語言多命令操作

硬件

這些硬件用于建造這個項目:

PSoC?6 62S2 Wi-Fi BT先鋒套件(CY8CKIT-062S2-43012)

這是PSoC?62雙核MCU CY8C624ABZI-S2D44 (150-MHz Arm Cortex-M4和100-MHz Arm Cortex-M0+內(nèi)核)的開發(fā)板,具有2MB閃存。它的功能強大到可以在沒有互聯(lián)網(wǎng)連接的情況下運行語音識別人工智能

物聯(lián)網(wǎng)傳感擴展套件(CY8CKIT-028-SENSE)

物聯(lián)網(wǎng)感測擴展套件是一個可與先鋒套件一起使用的附加(屏蔽)板,該板具有用于音頻輸入的模擬/數(shù)字麥克風和用于音頻輸出的音頻編解碼器,這是本項目所需的

語音回放模塊

我最初的目標是使用物聯(lián)網(wǎng)感知套件的音頻編解碼器來播放語音UI消息,并在PSoC6上使用2MB閃存來存儲波文件。不幸的是,我無法使用Modustoolbox中提供的I2S音頻演示代碼。這就是為什么我決定使用我去年做的一個項目,它可以存儲多達1000個獨立的mp3格式的音頻信息,最長可達40分鐘。

這里是詳細的項目:倒計時語音計時器和起火器

它是使用費米子錄音/播放模塊,DFRobot甲蟲板和3瓦封閉式揚聲器。

我已經(jīng)更改了原始固件(附在下面),因此該模塊可以接收從PSoC 6發(fā)送的串行消息,并相應(yīng)地播放適當?shù)囊纛l消息。

權(quán)力SupplyModule

該模塊由LM7809線性穩(wěn)壓器和輸出5伏的DC-DC降壓轉(zhuǎn)換器模塊組成。我已經(jīng)使用9 Vdc輸出為PSoC6先鋒供電。Buck轉(zhuǎn)換器的5 Vdc用于為伺服電機和語音回放模塊提供足夠的電源。

金屬齒輪伺服電機

本項目采用了兩臺金屬齒輪伺服電機。其中一個伺服電機控制(燃料)氣體流量閥部分打開是必要的。當燃燒器需要關(guān)閉時,這個伺服電機可以完全關(guān)閉閥門。另一個伺服電機拉動點火桿產(chǎn)生火花點火。

便攜式煤氣爐

便攜式燃氣灶是一個小型的單燃燒器爐子,內(nèi)置peizo點火器,起動機和氣體流量調(diào)節(jié)閥。我選擇這個爐子是為了便于原型設(shè)計,因為它很容易把整個設(shè)置放在我的電腦附近,用一個小爐子來開發(fā)固件。當然,這個項目可以擴展到更大的,多燃燒器的爐子設(shè)置。

硬件建設(shè)

就像任何快速和低預(yù)算的原型一樣,我已經(jīng)用強力膠,熱熔膠,電纜扎帶和跳線組裝了硬件。主要目標是減少成本、時間和精力。

所有的部件按照這個示意圖連接:

其中一個伺服電機被超級粘在氣體調(diào)節(jié)閥上,像這樣:

另一個伺服電機是螺紋到peizo點火火花發(fā)電機杠桿這樣:

這就是串口TX線是如何在不修改Dev工具包的情況下被黑掉的:

所有部件用扎帶固定在一塊硬板上。跳線用于連接所有硬件部件。

modstoolbox編程&構(gòu)建語音AI模型

Modustoolbox

要對PSoC6先鋒套件進行編程,請下載并安裝Modustoolbox(MTB) SDK。我使用的是MTB 2.4版本,這個項目應(yīng)該避免使用MTB 2.1版本之前的任何版本。

安裝MTB后,您可能會遇到一些困難。確保在工具中添加路徑以使MTB正常工作。

以下是英飛凌的安裝指南,解釋了這個安裝過程:- modusool安裝指南

安裝了Modustoolbox(MTB)之后,讓我們首先開始進行語音識別演示。

運行MTB并單擊“快速開始”菜單中的“新建應(yīng)用程序”:

確保您的互聯(lián)網(wǎng)連接處于活動狀態(tài),因為這個過程將從Github下載示例應(yīng)用程序演示

從board Support Package菜單中選擇合適的平臺(PSoC 6)和正確的板(CY8CKIT-062S2-43012)

下一個。選擇Voice模板應(yīng)用,勾選demo項目“Picovoice E2E語音識別demo”,單擊“創(chuàng)建”

現(xiàn)在,打開Picovoice E2E語音識別演示代碼中的main.c文件。找到接受Picovoice訪問密鑰的線路,我們稍后會回到這里

保持MTB在后臺運行并打開web瀏覽器應(yīng)用程序,是時候使用Picovoice了。

Picovoice

Picovoice是構(gòu)建語音識別模型并在不同平臺上實現(xiàn)的最直觀的方法之一。簡單地說,你只需要輸入喚醒詞和語音到意圖詞,然后建立平臺特定的語音識別模型。一旦模型生成,下載并在您的嵌入式開發(fā)項目中實現(xiàn)語音識別模型。

以下步驟將解釋這一過程:

步驟0:創(chuàng)建一個新帳戶并登錄。此頁面將出現(xiàn)

步驟1:訪問鍵和UUID(唯一標識符)

首先點擊“Show AccessKey”,它將提供一個唯一的字符串,復(fù)制這個字符串并將其保存在一個文本文件中。這個訪問鍵在代碼中是必需的。

訪問鍵看起來像這樣(這是一個虛擬字符串):

該字符串必須在“ ”之間,并以;像這樣在代碼中:

為了制作語音識別模型,還需要一個信息,那就是設(shè)備UUID(在這種情況下是PSoC 6 (mcu)先鋒套件的UUID)。

復(fù)制Access Key字符串并粘貼/插入到之前像這樣打開的MTB演示代碼中:

現(xiàn)在,選擇演示項目并單擊構(gòu)建按鈕(錘子圖標)。

同時,構(gòu)建過程正在進行(需要一些時間),將PSoC6先鋒套件(+ IoT Sense Kit連接在其上)與USB電纜連接到計算機。

一旦構(gòu)建完成,點擊Green Play圖標來顯示代碼,確保選擇正確的程序員

Picovoice_E2E_Voice_Recognition_Program (KitProg3_MiniProg4)

現(xiàn)在,打開一個串口終端應(yīng)用程序,如Putty或TeraTerm,選擇正確的串口(例如:COM5),波特率115200

然后大聲說“嘿,皮科”

您應(yīng)該在串行監(jiān)視器上獲得響應(yīng),其中包含PSoC6先鋒套件的UUID,類似于以下內(nèi)容(十六進制數(shù)):

這個UUID將需要在Picovoice Console中創(chuàng)建語音識別模型。

現(xiàn)在。我們回到Picovoice控制臺。

步驟2:喚醒話語

Picovoice喚醒字是一個特殊的觸發(fā)字,它將激活設(shè)備。我要用這個詞:Hey Stove作為喚醒詞,因為這是一個語音控制的爐子。

轉(zhuǎn)到Picovoice控制臺的Porcupine選項

?類型短語:嘿,爐子

?選擇語言:英語

?選擇平臺:ARM Cortex-M

?選擇單板:PSoC6

?輸入之前的UUID/唯一標識符(十六進制數(shù))

接下來,單擊火車喚醒詞,在幾秒鐘內(nèi)你的喚醒詞訓練模型將準備好。下載訓練好的模型

您將得到一個下載的壓縮文件夾,將其解壓縮并使用任何文本編輯器(記事本)打開pv_porcupine_parms .h文件。這是喚醒詞模型,一個十六進制數(shù)的大數(shù)組。

稍后將詳細說明這一點。

步驟3:語音到意圖模型

喚醒詞“嘿,爐子”將激活設(shè)備,但它不會執(zhí)行任何爐子操作。我想打開爐子,關(guān)掉爐子,換煤氣/火焰,設(shè)置烹飪計時器等。我打算用我的爐子做一些事情。這就是需要語音到意圖引擎的地方。

Picovoice Rhino Speech-to-Intent引擎可以提取多個語音命令,這些命令可以用于執(zhí)行不同的操作。

轉(zhuǎn)到Picovoice控制臺的Rhino選項

型號名稱:聲控爐

選擇模板:空

然后點擊Create Context,這將帶你進入一個新頁面,在那里完成了實際的語音到意圖模型“編碼”。

這里是一個快速概述的意圖,槽和微語音宏:-

意圖

意圖是您希望通過語音控制執(zhí)行的某些操作。把它們看作語法中使用的動詞。意圖有表達方式,這與帶有動詞的句子的英語語法非常相似。

意圖表達=動作(做某事)+主語/賓語(關(guān)于某事)

這個語音控制爐有4個單獨的意圖:

?點火:在爐子上點火

?停止燃燒:停止燃燒

?設(shè)置火焰:通過調(diào)節(jié)氣體來改變火焰

?SetTimer:設(shè)置一個烹飪定時器,當時間過去時關(guān)閉火

每個意圖都有它自己的表達式,你必須鍵入它。表達式應(yīng)該是這樣的:

一開始可能看起來有點混亂,但你最終會明白的(別擔心)。

槽是意圖中的變量。槽可以容納表示不同變量的多個元素,或者一個變量的不同名稱

把它想象成英語語法中的主語/賓語,需要在其上執(zhí)行動作。

例如,如果我們想設(shè)置一個烹飪計時器,時間將根據(jù)命令的不同而不同。

?把計時器設(shè)為一分鐘

?把計時器調(diào)到三分鐘

?把計時器調(diào)到五分鐘

?插槽=行動中的變量(通常)

語音到意圖引擎可以提取這些差異。

當在表達式中使用時,Slot前面會有$符號

Picovoice有一些內(nèi)置插槽,比如pv。百分比,它可以直接從用戶意圖中提取百分比值。

宏完全用于具有相同含義(意圖)的不同單詞。它相當于英語語法中的同義詞。

在表達式中使用宏時,宏的前面會有@符號

宏=動詞的同義詞

例如:Start可以說成turn on/power up/enable/activate這些詞中的任意一個。

那么,你是怎么把這些東西組合在一起的呢?

首先,想想人類表達特定意圖的“同一件事”的所有可能方式。然后在Macros中列出所有動詞/名詞,在Slots中列出所有變量,并為意圖創(chuàng)建如下表達式:

如果語音識別模型能夠檢測到各種具有相同意圖的人類短語,那么它將會更好地工作。正確列出宏元素和更好的表達是成功的關(guān)鍵。

步驟4:訓練模型

當所有的intent, Slots, Macros都完成后,點擊右下角的“Train”:

選擇如下:

型號平臺:ARM Cortex-M

單板類型:PSoC6

唯一標識符(UUID):即十六進制數(shù)

然后點擊訓練“語音控制爐”為ARM Cortex-M

解壓縮下載的文件。

然后打開“Voice-Controlled-Stove_en_cortexm_v2_1_0.h”文件

文件中有一個十六進制數(shù)字的大數(shù)組,這是語音到意圖模型。

步驟5:在模塊工具箱中編輯main.c和param.h

現(xiàn)在,回到modstoolbox。復(fù)制這里附加的main.c代碼。

從Picovoice E2E語音識別演示的main.c中替換整個原始演示代碼

接下來,編輯param.h,將喚醒詞模型的數(shù)組和語音包含到意圖模型的數(shù)組中。這兩個模型(喚醒詞+從語音到意圖)被組合到param.h中。

我將修改后的param.h附在下面。復(fù)制它的內(nèi)容并替換param.h的原始內(nèi)容,以避免任何混淆。

如果你想了解代碼是如何工作的,請閱讀它。代碼中有大量的注釋解釋了大多數(shù)事情

最后,點擊錘子圖標來構(gòu)建和綠色播放按鈕圖標來將固件flash到PSoC6 mcu中,如前所述(見步驟1)。

準備播放語音的音頻文件

Step1:我使用了文字轉(zhuǎn)語音服務(wù)來進行音頻反饋。

第二步:當演講播放時,我用Audacity錄制了聲音。選擇Windows WASPAPI和源作為耳機/揚聲器,然后單擊Record圖標以在計算機中捕獲音頻播放。

第三步:錄音后,將音頻分割成多個mp3文件。要分離音頻的每個片段(每個數(shù)字的聲音),用鼠標選擇該部分,然后使用快捷鍵Ctrl+C(復(fù)制),Ctrl+N(新建),Ctrl+V(粘貼)該音頻片段。對每個音頻段重復(fù)此步驟。

第四步:進入Files >導出為MP3,選擇48 kbps的質(zhì)量,重命名為FILE0000.MP3, FILE0001.MP3, FILE0002.MP3,直到FILE0100.MP3

(所有的音頻文件都附在下面,你可以跳過第1-4步,只需按照第5步下載并復(fù)制文件)

第五步:語音模塊用USB C線連接到電腦,16mb閃存盤出現(xiàn)。第一次使用時需要格式化(FAT)。接下來,將所有mp3文件復(fù)制到語音模塊閃存驅(qū)動器中的DF_REC目錄。

您可以放置最多1000個MP3文件,總音頻長度為40分鐘@ 48kbps。更高采樣頻率的歌曲/音頻將工作,但音頻長度將減少,由于較大的文件大小

音頻回放是如何工作的?

連接PSoC6單片機的串行TX和甲蟲板單片機的串行RX,實現(xiàn)半雙工串行通信。PSoC6 mcu簡單地發(fā)送printf(“一些數(shù)字”),它被傳輸?shù)郊紫x板的mcu。根據(jù)從PSoC6 mcu接收到的數(shù)字,甲蟲板mcu將向語音播放模塊發(fā)送命令,播放代表該數(shù)字的mp3文件。

例如:printf("040")命令將播放0040.mp3文件。看看我的這個項目,它詳細地解釋了這一點

設(shè)備操作

為了理解設(shè)備操作,讓我們看一下所有的PSoC6應(yīng)用資源(PSoC6 mcu內(nèi)部硬件)

應(yīng)用程序資源

根據(jù)用戶的語音命令,這些資源中的一些將激活某些模塊來控制伺服器,啟用定時器,向語音播放模塊發(fā)送打印消息等。

兩個PWM模塊將產(chǎn)生50 Hz的PWM信號。通過調(diào)整這些信號的占空比,控制兩個伺服電機

LPTIMER將測量烹飪計時器功能激活時所經(jīng)過的時間

UART TX將發(fā)送printf()消息到甲蟲板播放mp3文件

當檢測到喚醒字時,GPIO將驅(qū)動PSoC6 Pioneer Kit板上的綠色LED。當檢測到語音意圖時,藍色LED將發(fā)光。

下面是一些語音命令和硬件交互的例子:

當然,這些并不是唯一的語音命令。例如:

“嘿,爐子,打開燃燒器”也可以這樣說:

氣體/火焰調(diào)節(jié)限制

氣體或火焰可以調(diào)整為10%至100%之間的任何值,步進5%。也就是說,10% 15% 20% 25% .......100%

以下是一些有效的語音命令示例:

對于任何不能被5整除的值,默認氣體閥設(shè)置為30%

定時器設(shè)置約束

烹飪時間定時器可設(shè):1分鐘、2分鐘、3分鐘、5分鐘、10分鐘、15分鐘、20分鐘、25分鐘、30分鐘

當然,可以通過編輯main.c代碼來添加或多或少的選項。

以下是一些有效的定時器設(shè)置語音命令:

現(xiàn)有的定時器設(shè)置可以被新的定時器設(shè)置命令覆蓋。對于上面沒有列出的任何分鐘值,默認計時器設(shè)置為一分鐘。

結(jié)論

我用有限的預(yù)算(大約50美元的額外硬件)+ PSoC6先鋒套件(由英飛凌提供)和Picovoice開發(fā)者帳戶(由Picovoice免費提供)制作了這個項目。但如果有人想把它變成一種產(chǎn)品,可能會增加更多的功能。

本文編譯自hackster.io

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀
關(guān)閉