資料介紹
描述
介紹
在這個項目中,我圍繞一個訓(xùn)練識別單詞left 、right 、up和down的模型構(gòu)建了一個應(yīng)用程序。它所做的只是捕獲和處理音頻,將其輸入 TensorFlow Lite 模型,然后在 OLED 顯示器上顯示輸出。我將介紹如何使用 i.MXR1010 評估套件在邊緣設(shè)置和進行機器學(xué)習(xí)。
設(shè)置開發(fā)環(huán)境
任何機器學(xué)習(xí)和嵌入式電子項目都需要許多硬件和軟件才能使用。我正在使用 MacOS 進行開發(fā)。由于 Nvidia GPU 不支持 MacOS,所以我使用 Linux 桌面進行訓(xùn)練和模型生成。
安裝 MCUExpresso IDE

下載 SDK 后,我們需要將下載的包拖放到 MCUExpresso IDE Installed SDKs區(qū)域,如下所示(紅色框)。

我們可以從 Quickstart Panel > New Project 創(chuàng)建一個新項目,它會顯示一個向?qū)?,我們可以在其中選擇 IMXRT1010 作為開發(fā)板。我們可以使用此向?qū)渲盟璧尿?qū)動程序/組件,如下所示。添加/刪除驅(qū)動程序和其他組件可以在此期間完成。發(fā)展。由于我們將使用 TensorFlow C++ 庫,所以我選擇了C++ Project 。

為微控制器安裝 TensorFlow Lite
用于微控制器的 TensorFlow Lite 能夠生成包含所有必要源文件的獨立項目。我的 MCUXpresso IDE 工作區(qū)位于 ~/Documents/MCUXpressoIDE_11.1.0/workspace/。您可能需要根據(jù)您的目錄結(jié)構(gòu)更改路徑。我們還需要制作3.82 或更高版本。MacOS Catalina 上捆綁的make版本為 3.81。我們可以使用安裝所需的版本
brew install make
并且可以使用gmake命令運行它。
cd ~
git clone https://github.com/tensorflow/tensorflow.git
cd tensorflow
gmake -f tensorflow/lite/micro/tools/make/Makefile generate_projects
cp -r tensorflow/lite/micro/tools/make/gen/osx_x86_64/prj/micro_speech/make/* ~/Documents/MCUXpressoIDE_11.1.0/workspace/IMXRT1010_Speech_Recognition/source
復(fù)制后,我們將擁有 TensorFlow C++ 庫以及其他一些用于音頻處理的第三方庫。我們需要使用Quickstart Panel > Edit Project Settings > C/C++ build > Settings > MCU C++ Compiler > Includes為不屬于 SDK 的庫(在下面的屏幕截圖中突出顯示)設(shè)置包含路徑。

應(yīng)用程序?qū)⒉东@的音頻數(shù)據(jù)保存在運行時創(chuàng)建的緩沖區(qū)中,因此我們需要將默認堆大小(僅 2KB)調(diào)整為 14 KB。此外,一些緩沖區(qū)數(shù)據(jù)需要是不可緩存的。我們可以利用 i.MXRT1010 的FlexRAM功能。堆棧/堆大小和不可緩存數(shù)據(jù)可以使用Quickstart Panel > Edit Project Settings > C/C++ build > Settings > MCU C++ Linker > Managed Linker Script進行配置。

i.MXRT1010 具有有限的 128 KB 內(nèi)存,分為 32 KB 庫。由于內(nèi)存溢出,編譯失敗。
section `.heap' will not fit in region `SRAM_DTC'
arm-none-eabi/bin/ld: region `SRAM_DTC' overflowed by 15920 bytes
Memory region Used Size Region Size %age Used
BOARD_FLASH: 215432 B 16 MB 1.28%
SRAM_DTC: 48688 B 32 KB 148.58%
SRAM_ITC: 0 GB 32 KB 0.00%
SRAM_OC: 0 GB 32 KB 0.00%
NCACHE_REGION: 4748 B 32 KB 14.49%
多虧了FlexRAM ,我們可以使用下面的代碼配置變量聲明以選擇內(nèi)存庫。__DATA(RAM3)用于告訴編譯器將大約 16 KB 的變量g_audio_capture_buffer保存到 FlexRAM 的 OCRAM 部分 (SRAM_OC) 中。
__DATA(RAM3) int16_t g_audio_capture_buffer[kAudioCaptureBufferSize];
編譯后,我們可以在下面看到內(nèi)存分配的編譯器輸出。
Memory region Used Size Region Size %age Used
BOARD_FLASH: 231432 B 16 MB 1.38%
SRAM_DTC: 32688 B 32 KB 99.76%
SRAM_ITC: 0 GB 32 KB 0.00%
SRAM_OC: 16000 B 32 KB 48.83%
NCACHE_REGION: 4748 B 32 KB 14.49%
訓(xùn)練數(shù)據(jù)集和模型生成
我們使用的模型是使用 TensorFlow Simple Audio Recognition 腳本訓(xùn)練的,這是一個示例腳本,旨在演示如何使用 TensorFlow 構(gòu)建和訓(xùn)練音頻識別模型。該模型在帶有 eGPU(Nvidia 1080 Ti)的 Linux 桌面上進行了訓(xùn)練,其中包含“上”、“下”、“左”、“右”四個詞。數(shù)據(jù)集中的其他詞被用作“未知”。將創(chuàng)建的模型轉(zhuǎn)換為 TensorFlow Lite 模型,并將轉(zhuǎn)換后的模型轉(zhuǎn)換為 C 數(shù)組文件,以便與推理代碼一起部署。TensorFlow Lite Micro SDK 用于在設(shè)備上運行推理。卷積神經(jīng)網(wǎng)絡(luò)用于模型創(chuàng)建。
設(shè)備端推理
使用帶有增強型直接內(nèi)存訪問 (eDMA) 控制器的同步音頻接口 (SAI) 捕獲音頻。該過程首先為給定的時間片生成快速傅立葉變換 (FFT),在本例中為 30 ms 的捕獲音頻數(shù)據(jù)。TensorFlow Lite 模型不接收原始音頻樣本數(shù)據(jù)。相反,它適用于頻譜圖,頻譜圖是由頻率信息切片組成的二維數(shù)組,每個切片取自不同的時間窗口。我們可以將頻譜圖視為輸入模型進行推理的圖像數(shù)據(jù)。OLED 顯示器通過 I2C 連接到 i.MXRT1010 EVK。The
預(yù)測的單詞顯示在 OLED 顯示屏上。
構(gòu)建和調(diào)試
可以分別使用 MCUExpresso IDE Quickstart Panel > Build和Quickstart Panel > Debug來構(gòu)建和調(diào)試項目。使用菜單ConfigTools > Pins將 UART 引腳配置為在調(diào)試期間重定向打印。

在 MacOS 上可以使用以下命令查看調(diào)試打?。?/font>
screen /dev/cu.usbmodem14202 115200
板載 LED 也配置為在推理時閃爍。
演示視頻
現(xiàn)場演示如下。它并不完美,但有效。
改進范圍
如果使用 8 位量化模型,可以提高推理率。目前,TensorFlow Lite Micro SDK 中缺少一些操作,這些操作不允許將 Conv 2D 轉(zhuǎn)換為量化版本。目前,由于音頻數(shù)據(jù)中的口音或噪音,有時會漏掉一些單詞。如果使用遷移學(xué)習(xí)使用更多自己的語音數(shù)據(jù)進行訓(xùn)練,則可以提高模型的準確性。此外,板載麥克風(fēng)數(shù)據(jù)有一些噪音,可以使用某些設(shè)置進行修復(fù),或者可以使用外部數(shù)字麥克風(fēng)以獲得更好的性能。
此應(yīng)用程序的 MCUExpresso 項目可以在代碼部分提到的 Github 存儲庫中找到。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
- Helping Finger开源硬件1次下载
- 颜色循环开源硬件0次下载
- 循环大师开源硬件0次下载
- BsFrance氦气开源硬件0次下载
- Ada SensorTile开源硬件0次下载
- Meeseeks盒子开源硬件0次下载
- 鱼牙开源硬件4次下载
- 开源硬件-警灯0次下载
- AirBits开源硬件0次下载
- 可识别额外乘客设备的开源硬件0次下载
- 音箱开源硬件分享3次下载
- HBus开源硬件0次下载
- 门铃开源硬件0次下载
- 开源硬件之语音控制LED0次下载
- 主流的开源硬件有哪些详细资料说明0次下载
- 用小安派开源硬件制作一个桌面天气站1103次阅读
- 寻找开源硬件成功的触发器816次阅读
- 当语音控制和语音接口开始渗透到所有消费类边缘设备1854次阅读
- dfrobot语音识别控制板 介绍3323次阅读
- 源创通信BPI-M1+ 开源硬件开发板介绍2913次阅读
- 语音识别系统功能_语音识别系统的应用5774次阅读
- 语音识别芯片的原理_语音识别芯片有哪些5396次阅读
- 利用语音识别技术和嵌入式系统交叉研究是语音识别的一个重要研究方向1577次阅读
- 语音识别技术的发展历程,语音识别是如何工作的?语音识别资料概述10529次阅读
- 三大主流开源硬件对比:Arduino vs BeagleBone vs Raspberry Pi6758次阅读
- 语音识别技术是什么_语音识别技术应用领域介绍16710次阅读
- 从应用、算法、芯片角度了解语音识别技术7932次阅读
- 开源硬件究竟有多“Open”?看完这个你就清楚了7244次阅读
- 语音识别技术原理全面解析12919次阅读
- 语音识别技术的应用及发展2368次阅读
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
- 1.06 MB | 532次下載 | 免費
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費
- 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
- 6.40 MB | 227次下載 | 免費
- 6迪文DGUS開發(fā)指南
- 31.67 MB | 194次下載 | 免費
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費
- 8FP5207XR-G1中文應(yīng)用手冊
- 1.09 MB | 178次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33566次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關(guān)電源設(shè)計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅(qū)動電路設(shè)計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537798次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191187次下載 | 免費
- 7十天學(xué)會AVR單片機與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論