電子發(fā)燒友App

硬聲App

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

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

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

TinyML:使用合成數據的永遠在線(xiàn)的音頻分類(lèi)器

2023-07-13 | zip | 0.00 MB | 次下載 | 免費

資料介紹

描述

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

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

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

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

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

poYBAGSBMoGAODSlAACNFA8xkaQ454.jpg
音頻處理管道
?

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

讓我們開(kāi)始吧!

數據集生成

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

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

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

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

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

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

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

這將下載適用于 AMD64 架構的 Piper TTS 二進(jìn)制包。如果您在 Raspberry Pi 或 Nvidia Jetson 等設備上使用不同的架構,例如 ARM64,您應該從piper的 github 存儲庫下載適當的版本。 提取 tar.gz 文件。

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

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

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

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

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

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)

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

poYBAGSBMoiARx4BAAS6mnW2EQI908.png
谷歌 Colab 筆記本
?

您可以通過(guò)提供給您的鏈接訪(fǎng)問(wèn)筆記本。

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

poYBAGSBMo2AfLVVAARt5E1l_M4985.png
?

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

pYYBAGSBMpKAMJz9AAOXNA1w6NY250.png
?

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

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

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

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

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

pip3 install torch==2.0.0

接下來(lái),您可以通過(guò)運行命令來(lái)安裝 audioldm 包

pip3 install audioldm

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

python3 generate.py

這將啟動(dòng)生成過(guò)程,您應該會(huì )看到類(lè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)訓練過(guò)程。

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

使用 Edge Impulse 平臺進(jìn)行模型訓練

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

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

選擇數據采集選項卡并選擇上傳數據選項,將出現以下窗口。

pYYBAGSBMpaAGFpQAADZ2luL6w8448.png
?

確保在標簽選項下,您在輸入標簽選項下提到了標簽名稱(chēng)。上傳您的 wav 文件。

對上傳其他班級的音頻樣本重復相同的過(guò)程。您應該確保每個(gè)音頻樣本都被正確標記并分組到各自的類(lèi)別中,以避免在訓練期間出現任何混淆。

poYBAGSBMpqAO8VzAAL-u-_NJYM486.png
?

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

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

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

poYBAGSBMpyAJNlHAAHaSHGsaLI029.png
?

選擇Add a processing block并添加Audio(Syntiant) ,因為它非常適合基于Syntiant NDP120 Neural Decision Processor 的人聲應用。它會(huì )嘗試將音頻轉換成某種基于時(shí)間和頻率特征的特征,這將有助于我們進(jìn)行分類(lèi)。然后選擇添加學(xué)習塊并添加分類(lèi)。

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

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

pYYBAGSBMqGAVmawAAHcGJy5MW0591.png
?

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

poYBAGSBMqSAC6KEAAFpmosd1_o660.png
?

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

使用完功能瀏覽器后,單擊左側導航菜單中的分類(lèi)器項。

pYYBAGSBMqeAYyhgAABou4cU57U379.png
?

對于此項目,訓練周期數設置為200 ,學(xué)習率設置為0.0005 。

該模型具有以下結構:

pYYBAGSBMqqAbPQQAAES0NRwzkE197.png
?

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

訓練完成后,Edge Impulse Studio 將顯示模型的性能、混淆矩陣、特征資源管理器和設備上的性能細節。

poYBAGSBMqyAZPYDAAF9pqQzh9s091.png
?

對我來(lái)說(shuō),準確率為 96.2%,損失為 0.12。訓練集的準確性非常好。

您可能會(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)

信息很重要,因為它表明模型的內存效率以及它是否可以部署在 Arduino Nicla Voice 等資源有限的設備上。

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

pYYBAGSBMrCAOUkVAAITRVG3D4Q981.png
?

選擇模型后,單擊構建。

?

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

?

如您所見(jiàn),我們的模型表現非常好。盡管有一些錯誤分類(lèi),但我覺(jué)得它的結果非常棒。該系統能夠將每個(gè)說(shuō)出的詞分類(lèi)為“未知”類(lèi)別。此外,它還能將口語(yǔ)單詞“我的名字”正確識別為已知單詞,并將其分配到適當的類(lèi)別。另一方面,系統將背景中的噪音識別為噪音類(lèi)別并相應地分配。

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

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

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

參考


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

評論

查看更多

下載排行

本周

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

本月

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

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉中文版)
  4. 78.1 MB  |  537798次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191187次下載  |  免費
  13. 7十天學(xué)會(huì )AVR單片機與C語(yǔ)言視頻教程 下載
  14. 158M  |  183279次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138040次下載  |  免費
亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看