RM新时代网站-首页

電子發(fā)燒友App

硬聲App

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

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

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>TinyML:使用合成數(shù)據(jù)的永遠(yuǎn)在線的音頻分類器

TinyML:使用合成數(shù)據(jù)的永遠(yuǎn)在線的音頻分類器

2023-07-13 | zip | 0.00 MB | 次下載 | 免費(fèi)

資料介紹

描述

TinyML是一項(xiàng)尖端技術(shù),它通過支持創(chuàng)建可在微控制器等小型設(shè)備上運(yùn)行的超緊湊、低功耗機(jī)器學(xué)習(xí)模型,徹底改變了機(jī)器學(xué)習(xí)領(lǐng)域。

深度學(xué)習(xí)最流行的應(yīng)用之一是音頻分類,涉及對聲音進(jìn)行分類并預(yù)測其各自類別的任務(wù)。這類問題有很多實(shí)際應(yīng)用,例如通過對音樂片段進(jìn)行分類來識(shí)別音樂的流派,或者通過對簡短的話語進(jìn)行分類來根據(jù)他們的聲音識(shí)別各個(gè)說話者。借助生成式 AI 和文本轉(zhuǎn)語音技術(shù),我們現(xiàn)在可以使用合成數(shù)據(jù)來訓(xùn)練這些模型以識(shí)別特定模式,例如您的名字。通過使用合成數(shù)據(jù),我們可以創(chuàng)建高度真實(shí)和多樣化的數(shù)據(jù)集,這些數(shù)據(jù)集可用于以更高效和更具成本效益的方式訓(xùn)練機(jī)器學(xué)習(xí)模型。

該項(xiàng)目旨在演示如何開發(fā)可以區(qū)分未知、背景噪音人名類別的音頻分類系統(tǒng)。為實(shí)現(xiàn)這一目標(biāo),我們將使用Edge Impulse平臺(tái)來訓(xùn)練我們的模型,然后將其部署到邊緣設(shè)備,例如 Arduino Nicla Voice。

用于音頻信號處理的機(jī)器學(xué)習(xí)管道

圖中所示的音頻處理管道是使用機(jī)器學(xué)習(xí)技術(shù)分析音頻數(shù)據(jù)的常用方法。通過使用快速傅立葉變換 (FFT) 從音頻數(shù)據(jù)中提取頻域特征,可以訓(xùn)練機(jī)器學(xué)習(xí)模型來執(zhí)行語音識(shí)別、音樂分類或音頻分割等任務(wù)。

poYBAGSBMoGAODSlAACNFA8xkaQ454.jpg
音頻處理管道
?

總體而言,此圖說明了使用機(jī)器學(xué)習(xí)處理音頻數(shù)據(jù)所涉及的基本步驟,包括數(shù)據(jù)預(yù)處理、特征提取、模型訓(xùn)練和模型推理。

讓我們開始吧!

數(shù)據(jù)集生成

要根據(jù)不同的類別對音頻進(jìn)行分類,您需要收集一些未知類、背景噪聲類和名稱類的樣本 WAV 文件。這將使系統(tǒng)能夠區(qū)分這三個(gè)類別。

機(jī)器學(xué)習(xí)模型的數(shù)據(jù)集生成流程圖,該模型使用Google TensorFlow Speech Command數(shù)據(jù)集、AudioLDM文本轉(zhuǎn)音頻生成工具和Piper文本轉(zhuǎn)語音技術(shù)生成未知、背景噪聲和人名類,可以概括如下:

pYYBAGSBMoSASBF4AABqAVSRSpc862.jpg
?
  • 下載Google TensorFlow Speech Command 數(shù)據(jù)集,其中包含大量音頻樣本,以及每個(gè)樣本的類標(biāo)簽,用于標(biāo)識(shí)聲音的類型。這些文件可以作為代表未知類的單獨(dú)類添加到數(shù)據(jù)集中。
  • 利用ChatGPT背景噪音類別生成不同的文本提示。
  • 生成文本提示后,我們將它們發(fā)送到將文本轉(zhuǎn)換為音頻的模塊。AudioLDM文本轉(zhuǎn)音頻生成工具 cat 生成大量音頻文件。這些文件可以作為表示背景噪聲的單獨(dú)類添加到數(shù)據(jù)集中。
  • 使用Piper文本轉(zhuǎn)語音技術(shù)生成包含人名的音頻文件。這些文件可以作為一個(gè)單獨(dú)的類添加到數(shù)據(jù)集中,代表人或您要分類的其他詞。

使用 Text to speech 技術(shù)生成高質(zhì)量的語音數(shù)據(jù) - Piper

文本轉(zhuǎn)語音 (TTS) 是一種尖端的語音合成技術(shù),可以將書面文本發(fā)聲成具有人聲的可聽語音。TTS 的一個(gè)示例是Michael Hansen開發(fā)的Piper,它可用于從文本輸入生成語音數(shù)據(jù)。

從 Github 存儲(chǔ)庫下載 Piper TTS 的預(yù)編譯二進(jìn)制包。您可以使用 wget 命令通過在終端中運(yùn)行以下命令來下載程序包:

wget https://github.com/rhasspy/piper/releases/download/v0.0.2/piper_amd64.tar.gz

這將下載適用于 AMD64 架構(gòu)的 Piper TTS 二進(jìn)制包。如果您在 Raspberry Pi 或 Nvidia Jetson 等設(shè)備上使用不同的架構(gòu),例如 ARM64,您應(yīng)該從piper的 github 存儲(chǔ)庫下載適當(dāng)?shù)陌姹尽?/font> 提取 tar.gz 文件。

下載英文語言模型,在終端中運(yùn)行以下命令:

wget https://github.com/rhasspy/piper/releases/download/v0.0.2/voice-en-us-ryan-high.tar.gz

提取您下載的語言模型的 tar.gz 文件。您可以使用以下命令進(jìn)行提?。?/font>

tar -zxvf voice-en-us-ryan-high.tar.gz

使用以下代碼片段通過 Piper TTS 生成 WAV 音頻文件。將model_path變量替換為您下載的語言模型的路徑,并將text變量替換為您要轉(zhuǎn)換為語音的文本。該代碼將在輸出目錄中生成 904 個(gè)音頻文件,每個(gè)文件都有不同的揚(yáng)聲器。

import subprocess
text = "Your name"
model_path = "./en-us-libritts-high.onnx"
for i in range(0, 904):
    output_file = f'./output/{i}.wav'
    cmd = f'echo "{text}" | ./piper/piper --model {model_path} --output_file                {output_file} --speaker {i}'
    subprocess.run(cmd, shell=True, check=True)

此外,您還可以使用為您準(zhǔn)備的 Google Colab 筆記本。該筆記本包含使用Piper TTS生成音頻文件的所有必要步驟和代碼。

poYBAGSBMoiARx4BAAS6mnW2EQI908.png
谷歌 Colab 筆記本
?

您可以通過提供給您的鏈接訪問筆記本

默認(rèn)運(yùn)行時(shí)使用 CPU,但您可以將運(yùn)行時(shí)更改為 GPU。

poYBAGSBMo2AfLVVAARt5E1l_M4985.png
?

為了在筆記本上使用 GPU,請選擇運(yùn)行時(shí) > 更改運(yùn)行時(shí)類型菜單,然后將硬件加速器下拉菜單設(shè)置為 GPU

pYYBAGSBMpKAMJz9AAOXNA1w6NY250.png
?

Piper TTS 無需 GPU 即可運(yùn)行,而AudioLDM文本到音頻生成工具需要 GPU 激活。以下是通過AudioLDM生成音頻的步驟。

使用 AudioLDM 生成高質(zhì)量的合成音頻數(shù)據(jù)集

要從文本生成音頻文件,下一步涉及使用名為AudioLDM的文本到音頻生成工具。該工具利用潛在擴(kuò)散模型從文本生成高質(zhì)量音頻。要使用 AudioLDM,您需要一臺(tái)配備強(qiáng)大 GPU 的獨(dú)立計(jì)算機(jī)。

要使用文本提示生成音頻文件,您有兩種選擇:您可以在自己的計(jì)算機(jī)上使用 GPU 安裝 audioldm,或者使用我為您準(zhǔn)備的Google Colab 。

首先,您需要通過運(yùn)行以下命令使用 pip 安裝 PyTorch

pip3 install torch==2.0.0

接下來,您可以通過運(yùn)行命令來安裝 audioldm 包

pip3 install audioldm

安裝必要的包后,您可以使用 GitHub 部分中提供的代碼片段從文本提示生成音頻文件。為此,只需運(yùn)行命令

python3 generate.py

這將啟動(dòng)生成過程,您應(yīng)該會(huì)看到類似于以下內(nèi)容的輸出:

genereated: A hammer is hitting a wooden surface
genereated: A noise of nature
genereated: The sound of waves crashing on the shore
genereated: A thunderstorm in the distance
genereated: Traffic noise on a busy street
genereated: The hum of an air conditioning unit
genereated: Birds chirping in the morning
genereated: The sound of a train passing by

一旦收集了 wav 音頻樣本,就可以將它們輸入神經(jīng)網(wǎng)絡(luò)以啟動(dòng)訓(xùn)練過程。

就這樣。現(xiàn)在我們可以簡單地將這些 wav 文件上傳到Edge Impulse Studio以訓(xùn)練我們的模型。

使用 Edge Impulse 平臺(tái)進(jìn)行模型訓(xùn)練

對于模型訓(xùn)練、測試和部署,可以使用Edge Impulse Studio平臺(tái)。它是一個(gè)幾乎不提供代碼解決方案的 TinyML 框架,您無需具備良好的機(jī)器學(xué)習(xí)專業(yè)知識(shí)即可構(gòu)建您的 TinyML 模型。

首先,創(chuàng)建一個(gè)帳戶并登錄。然后創(chuàng)建一個(gè)新項(xiàng)目。將樣本加載到 Edge Impulse 中的最簡單方法是使用上傳數(shù)據(jù)選項(xiàng)。

選擇數(shù)據(jù)采集選項(xiàng)卡并選擇上傳數(shù)據(jù)選項(xiàng),將出現(xiàn)以下窗口。

pYYBAGSBMpaAGFpQAADZ2luL6w8448.png
?

確保在標(biāo)簽選項(xiàng)下,您在輸入標(biāo)簽選項(xiàng)下提到了標(biāo)簽名稱上傳您的 wav 文件。

對上傳其他班級的音頻樣本重復(fù)相同的過程。您應(yīng)該確保每個(gè)音頻樣本都被正確標(biāo)記并分組到各自的類別中,以避免在訓(xùn)練期間出現(xiàn)任何混淆。

poYBAGSBMpqAO8VzAAL-u-_NJYM486.png
?

我總共收集了 1 小時(shí) 19 秒的數(shù)據(jù),這些數(shù)據(jù)可以分為三個(gè)不同的類別。

  • 未知類
  • 背景噪音等級
  • Shakhizat班(我的名字)

一旦你設(shè)置了所有的類并且對你的數(shù)據(jù)集感到滿意,就可以訓(xùn)練模型了。在左側(cè)導(dǎo)航菜單中導(dǎo)航至 Impulse Design。

poYBAGSBMpyAJNlHAAHaSHGsaLI029.png
?

選擇Add a processing block并添加Audio(Syntiant) ,因?yàn)樗浅_m合基于Syntiant NDP120 Neural Decision Processor 的人聲應(yīng)用。它會(huì)嘗試將音頻轉(zhuǎn)換成某種基于時(shí)間和頻率特征的特征,這將有助于我們進(jìn)行分類。然后選擇添加學(xué)習(xí)塊并添加分類。

最后,點(diǎn)擊Save Impulse 。

然后導(dǎo)航到Syntiant 在此步驟中,您將從輸入數(shù)據(jù)生成特征。特征是分類算法用來對音頻進(jìn)行分類的獨(dú)特屬性。

pYYBAGSBMqGAVmawAAHcGJy5MW0591.png
?

將特征提取器設(shè)置為log-bin(NDP120/200) ,然后單擊保存參數(shù)

poYBAGSBMqSAC6KEAAFpmosd1_o660.png
?

接下來,單擊生成特征并使用特征資源管理器檢查生成的特征。每個(gè)數(shù)據(jù)樣本將根據(jù)其標(biāo)簽在圖中著色。

使用完功能瀏覽器后,單擊左側(cè)導(dǎo)航菜單中的分類器項(xiàng)。

pYYBAGSBMqeAYyhgAABou4cU57U379.png
?

對于此項(xiàng)目,訓(xùn)練周期數(shù)設(shè)置為200 ,學(xué)習(xí)率設(shè)置為0.0005 。

該模型具有以下結(jié)構(gòu):

pYYBAGSBMqqAbPQQAAES0NRwzkE197.png
?

接下來,單擊Start training以訓(xùn)練機(jī)器學(xué)習(xí)模型,這可能需要一些時(shí)間才能完成,具體取決于數(shù)據(jù)集的大小。

訓(xùn)練完成后,Edge Impulse Studio 將顯示模型的性能、混淆矩陣、特征資源管理器和設(shè)備上的性能細(xì)節(jié)。

poYBAGSBMqyAZPYDAAF9pqQzh9s091.png
?

對我來說,準(zhǔn)確率為 96.2%,損失為 0.12。訓(xùn)練集的準(zhǔn)確性非常好。

您可能會(huì)看到以下日志消息:

| | Total MACs: 284736                                                                                   | | Total Cycles: 24762 (time=0.0011515066964285713s @ 21.504 MHz)                                       | | Total Parameter Count: 948                                                                           | | Total Parameter Memory: 1.4375 KB out of 640.0 KB on the NDP120_B0 device.                           | | Estimated Model Energy/Inference at 0.9V: 5.56237 (uJ)

信息很重要,因?yàn)樗砻髂P偷膬?nèi)存效率以及它是否可以部署在 Arduino Nicla Voice 等資源有限的設(shè)備上。

一旦您對模型的性能感到滿意,就可以將它部署到您的 Arduino Nicla Voice 中了。為此,單擊 Edge Impulse Studio 中的 Deployment 菜單項(xiàng),然后單擊 Arduino Nicla Voice 按鈕。

pYYBAGSBMrCAOUkVAAITRVG3D4Q981.png
?

選擇模型后,單擊構(gòu)建。

?

打開 Arduino IDE 串行監(jiān)視器。將波特率設(shè)置為 115200。如果一切正常,您應(yīng)該會(huì)看到以下內(nèi)容:

?

如您所見,我們的模型表現(xiàn)非常好。盡管有一些錯(cuò)誤分類,但我覺得它的結(jié)果非常棒。該系統(tǒng)能夠?qū)⒚總€(gè)說出的詞分類為“未知”類別。此外,它還能將口語單詞“我的名字”正確識(shí)別為已知單詞,并將其分配到適當(dāng)?shù)念悇e。另一方面,系統(tǒng)將背景中的噪音識(shí)別為噪音類別并相應(yīng)地分配。

總之,該項(xiàng)目演示了如何使用 Edge Impulse 平臺(tái)構(gòu)建音頻分類系統(tǒng)并將其部署在 Arduino Nicla Voice 等邊緣設(shè)備上。通過使用包含未知聲音、背景噪聲和人名的多樣化數(shù)據(jù)集來訓(xùn)練模型,我們可以創(chuàng)建一個(gè)強(qiáng)大的系統(tǒng),可以實(shí)時(shí)準(zhǔn)確地對音頻樣本進(jìn)行分類。

我已經(jīng)讓公眾可以訪問一個(gè)項(xiàng)目。有關(guān)此項(xiàng)目的更多詳細(xì)信息,請?jiān)L問 Edge Impulse。并且可以通過此鏈接訪問它。

感謝您的閱讀!如果您有興趣了解有關(guān)音頻識(shí)別中機(jī)器學(xué)習(xí)的更多信息,我強(qiáng)烈建議您查看下面這篇文章中提到的參考資料

參考


下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
  2. 1.06 MB  |  532次下載  |  免費(fèi)
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費(fèi)
  5. 3TC358743XBG評估板參考手冊
  6. 1.36 MB  |  330次下載  |  免費(fèi)
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費(fèi)
  9. 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費(fèi)
  11. 6迪文DGUS開發(fā)指南
  12. 31.67 MB  |  194次下載  |  免費(fèi)
  13. 7元宇宙底層硬件系列報(bào)告
  14. 13.42 MB  |  182次下載  |  免費(fèi)
  15. 8FP5207XR-G1中文應(yīng)用手冊
  16. 1.09 MB  |  178次下載  |  免費(fèi)

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費(fèi)
  3. 2555集成電路應(yīng)用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費(fèi)
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費(fèi)
  7. 4開關(guān)電源設(shè)計(jì)實(shí)例指南
  8. 未知  |  21549次下載  |  免費(fèi)
  9. 5電氣工程師手冊免費(fèi)下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費(fèi)
  11. 6數(shù)字電路基礎(chǔ)pdf(下載)
  12. 未知  |  13750次下載  |  免費(fèi)
  13. 7電子制作實(shí)例集錦 下載
  14. 未知  |  8113次下載  |  免費(fèi)
  15. 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費(fèi)

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費(fèi)
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537798次下載  |  免費(fèi)
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費(fèi)
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費(fèi)
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費(fèi)
  11. 6電路仿真軟件multisim 10.0免費(fèi)下載
  12. 340992  |  191187次下載  |  免費(fèi)
  13. 7十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費(fèi)
  15. 8proe5.0野火版下載(中文版免費(fèi)下載)
  16. 未知  |  138040次下載  |  免費(fèi)
RM新时代网站-首页