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

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

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

如何使用TensorFlow Lite快速構(gòu)建移動端聲音分類應(yīng)用

Tensorflowers ? 來源:TensorFlow ? 作者:Khanh LeViet ? 2020-12-17 16:40 ? 次閱讀

聲音分類是機器學(xué)習(xí)任務(wù)中的一項,您向機器學(xué)習(xí)模型輸入一些聲音將其分類成預(yù)定義的類別,例如犬吠聲、汽車鳴笛聲等。目前,已有許多聲音分類應(yīng)用,檢測非法砍伐活動、檢測座頭鯨的聲音以更好地了解它們的自然行為。

測非法砍伐活動
https://v.youku.com/v_show/id_XMzQ4MTUxOTIxNg==.html?spm=a2hzp.8253869.0.0

檢測座頭鯨的聲音
https://ai.googleblog.com/2018/10/acoustic-detection-of-humpback-whales.html

我們很高興地宣布,現(xiàn)在 Teachable Machine 可用于訓(xùn)練您自己的聲音分類模型,并可導(dǎo)出 TensorFlow Lite (TFLite) 格式模型。然后,您可以將 TFLite 模型集成到移動應(yīng)用或物聯(lián)網(wǎng)設(shè)備。這是快速運行聲音分類的簡便方式,分類之后,您可以在 Python 中探索構(gòu)建生產(chǎn)模型,再將其導(dǎo)出到 TFLite。

Teachable Machine
https://teachablemachine.withgoogle.com/

模型架構(gòu)

Teachable Machine 使用小型卷積模型對 1 秒音頻樣本進行分類。如上圖所示,模型接收聲譜圖(通過傅里葉變換獲取的聲音的 2D 時頻表示形式)。它首先會處理具有連續(xù)二維卷積層和最大池化層的聲譜圖。模型以多個全連接層結(jié)束,這些層與隨機 dropout 層交錯,用于減少訓(xùn)練過程中的過擬合。模型的最終輸出是一個概率分?jǐn)?shù)數(shù)組,要訓(xùn)練模型識別的每個聲音類都有一個概率分?jǐn)?shù)。

在 Python 中使用此方式訓(xùn)練您自己的聲音分類模型,請查看此教程。

教程
https://tensorflow.google.cn/tutorials/audio/simple_audio

使用您自己的數(shù)據(jù)集訓(xùn)練模型

使用您自己的數(shù)據(jù)集訓(xùn)練聲音分類模型有如下兩種方式:

簡單方式:連一行代碼都不需要寫,使用 Teachable Machine 收集訓(xùn)練數(shù)據(jù),并且全部在瀏覽器中訓(xùn)練模型。這種方式適用于想通過交互方式快速構(gòu)建原型的用戶。

穩(wěn)健方式:提前錄制要用作訓(xùn)練數(shù)據(jù)集的聲音,然后使用 Python 訓(xùn)練并認(rèn)真地評估模型。當(dāng)然,這種方法的自動化以及可重復(fù)性也高于簡單方式。

使用 Teachable Machine 訓(xùn)練模型

Teachable Machine 是一款可用于創(chuàng)建訓(xùn)練數(shù)據(jù)集和訓(xùn)練多種機器學(xué)習(xí)模型的 GUI 工具,包括圖像分類、姿態(tài)分類和聲音分類。Teachable Machine 底層使用 TensorFlow.js 訓(xùn)練機器學(xué)習(xí)模型。您可以將訓(xùn)練的模型導(dǎo)出為 TensorFlow.js 格式,以在網(wǎng)絡(luò)瀏覽器中使用,或者導(dǎo)出為 TensorFlow Lite 格式,以在移動應(yīng)用或物聯(lián)網(wǎng)設(shè)備中使用。

下面是訓(xùn)練模型的步驟:

前往 Teachable Machine(https://teachablemachine.withgoogle.com)網(wǎng)站

創(chuàng)建一個音頻項目

為您想要識別的每個類別錄制一些聲音片段。每個類別只需要 8 秒的聲音

開始訓(xùn)練。完成后,您就可以在實時音頻源上測試您的模型

以 TFLite 格式導(dǎo)出模型

使用 Python 訓(xùn)練模型

如果錄音長達(dá)幾個小時或者有數(shù)十個類別,則在網(wǎng)絡(luò)瀏覽器上訓(xùn)練聲音分類可能耗時很長。在這種情況下,您可以提前收集訓(xùn)練數(shù)據(jù)集,將它們轉(zhuǎn)換成 WAV 格式,然后使用此 Colab Notebook(包括將模型轉(zhuǎn)換成 TFLite 格式的步驟)訓(xùn)練聲音分類。Google Colab 提供免費的 GPU,幫助您大幅提升模型訓(xùn)練的速度。

Notebook
https://colab.research.google.com/github/tensorflow/tfjs-models/blob/master/speech-commands/training/browser-fft/training_custom_audio_model_in_python.ipynb

通過 TF Lite 將模型部署到 Android

在 TensorFlow Lite 聲音分類模型訓(xùn)練完成后,您便可將其放到此 Android 示例應(yīng)用中試用。只需按照以下步驟操作: 1. 從 GitHub 克隆示例應(yīng)用:

git clone https://github.com/tensorflow/examples.git 2. 將聲音分類 Android 應(yīng)用導(dǎo)入 Android Studio。您可以在 lite/examples/sound_classification/android 文件夾中找到它。 3. 將模型(soundclassifier.tflite 和 labels.txt)添加到 src/main/assets 文件夾中,替換其中已有的示例模型。

4. 構(gòu)建應(yīng)用并將其部署到 Android 設(shè)備上?,F(xiàn)在,您就可以實時對聲音分類啦!

要將該模型集成到您自己的應(yīng)用中,您可以將 SoundClassifier.kt 類從示例應(yīng)用和已經(jīng)訓(xùn)練的 TFLite 復(fù)制到您的應(yīng)用。然后,您可以按如下方式使用該模型:

1. 從 Activity或 Fragment類初始化 SoundClassifier實例。

var soundClassifier: SoundClassifier soundClassifier = SoundClassifier(context).also { it.lifecycleOwner = context }


2. 開始從設(shè)備的麥克風(fēng)捕獲實時音頻,并實時分類:

soundClassifier.start()

3. 作為可讀類名稱的映射接收實時分類結(jié)果,以及當(dāng)前聲音屬于每個特定類別的概率。

let labelName = soundClassifier.labelList[0] // e.g. "Clap" soundClassifier.probabilities.observe(this) { resultMap -> let probability = result[labelName] // e.g. 0.7 }

未來計劃

我們正在開發(fā) iOS 版本的示例應(yīng)用,它將于幾周后發(fā)布。我們還會擴展 TensorFlow Lite Model Maker 以簡化 Python 中聲音分類的訓(xùn)練。敬請期待!

Model Maker
https://tensorflow.google.cn/lite/guide/model_maker

致謝

此項目由 Google 內(nèi)部的多個團隊聯(lián)合開發(fā)。特別感謝:

Google Research:Shanqing Cai、Lisie Lillianfeld

TensorFlow 團隊:Tian Lin

Teachable Machine 團隊:Gautam Bose、Jonas Jongejan

Android 團隊:Saryong Kang、Daniel Galpin、Jean-Michel Trivi、Don Turner

責(zé)任編輯:xj

原文標(biāo)題:使用 TensorFlow Lite 快速構(gòu)建移動端聲音分類應(yīng)用

文章出處:【微信公眾號:TensorFlow】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

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

    關(guān)注

    66

    文章

    8438

    瀏覽量

    132989
  • 移動端
    +關(guān)注

    關(guān)注

    0

    文章

    42

    瀏覽量

    4435
  • tensorflow
    +關(guān)注

    關(guān)注

    13

    文章

    329

    瀏覽量

    60605
  • TensorFlow Lite
    +關(guān)注

    關(guān)注

    0

    文章

    26

    瀏覽量

    645

原文標(biāo)題:使用 TensorFlow Lite 快速構(gòu)建移動端聲音分類應(yīng)用

文章出處:【微信號:tensorflowers,微信公眾號:Tensorflowers】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    用TAS5711把一路聲音分到兩路輸出,為什么在GDE生成的數(shù)組寫進去對應(yīng)的寄存器,濾波器并不起作用?

    我用TAS5711 ,把一路聲音分到兩路輸出,我想使用這個芯片做兩路分頻,想用CH1 的BQ1做濾波器。我軟件上初始化聲音出來了,但是我不知道為什么在GDE 生成的數(shù)組寫進去對應(yīng)的寄存器,濾波器
    發(fā)表于 10-16 06:18

    快速部署Tensorflow和TFLITE模型在Jacinto7 Soc

    電子發(fā)燒友網(wǎng)站提供《快速部署Tensorflow和TFLITE模型在Jacinto7 Soc.pdf》資料免費下載
    發(fā)表于 09-27 11:41 ?0次下載
    <b class='flag-5'>快速</b>部署<b class='flag-5'>Tensorflow</b>和TFLITE模型在Jacinto7 Soc

    芯盾時代設(shè)備指紋技術(shù)如何助力移動安全

    隨著移動互聯(lián)網(wǎng)的快速發(fā)展,移動安全風(fēng)險頻發(fā)。設(shè)備指紋技術(shù)憑借高精度的設(shè)備識別能力,能夠幫助企業(yè)提升移動
    的頭像 發(fā)表于 08-28 09:41 ?592次閱讀

    第四章:在 PC 交叉編譯 aarch64 的 tensorflow 開發(fā)環(huán)境并測試

    本文介紹了在 PC 交叉編譯 aarch64 平臺的 tensorflow 庫而非 tensorflow lite 的心酸過程。
    的頭像 發(fā)表于 08-25 11:38 ?1340次閱讀
    第四章:在 PC 交叉編譯 aarch64 的 <b class='flag-5'>tensorflow</b> 開發(fā)環(huán)境并測試

    MESH-LITE子節(jié)點如何連接父節(jié)點?

    在探索MESH-LITE組網(wǎng)時發(fā)現(xiàn)下面這句話: “ESP-MESH-LITE 正式開始構(gòu)建網(wǎng)絡(luò)前,必須確保網(wǎng)絡(luò)中所有節(jié)點具有相同的配置(見 esp_mesh_lite_config_t
    發(fā)表于 07-19 07:19

    利用TensorFlow實現(xiàn)基于深度神經(jīng)網(wǎng)絡(luò)的文本分類模型

    要利用TensorFlow實現(xiàn)一個基于深度神經(jīng)網(wǎng)絡(luò)(DNN)的文本分類模型,我們首先需要明確幾個關(guān)鍵步驟:數(shù)據(jù)預(yù)處理、模型構(gòu)建、模型訓(xùn)練、模型評估與調(diào)優(yōu),以及最終的模型部署(盡管在本文中,我們將重點放在前四個步驟上)。下面,我將
    的頭像 發(fā)表于 07-12 16:39 ?938次閱讀

    TensorFlow是什么?TensorFlow怎么用?

    TensorFlow是由Google開發(fā)的一個開源深度學(xué)習(xí)框架,它允許開發(fā)者方便地構(gòu)建、訓(xùn)練和部署各種復(fù)雜的機器學(xué)習(xí)模型。TensorFlow憑借其高效的計算性能、靈活的架構(gòu)以及豐富的工具和庫,在學(xué)
    的頭像 發(fā)表于 07-12 16:38 ?791次閱讀

    tensorflow和pytorch哪個好

    :2015年由Google Brain團隊發(fā)布。 語言支持 :主要使用Python,也支持C++、Java等。 設(shè)計哲學(xué) :TensorFlow是一個的機器學(xué)習(xí)平臺,支持從研究到生產(chǎn)的所有階段
    的頭像 發(fā)表于 07-05 09:42 ?758次閱讀

    tensorflow簡單的模型訓(xùn)練

    TensorFlow開始,然后介紹如何構(gòu)建和訓(xùn)練一個簡單的神經(jīng)網(wǎng)絡(luò)模型。 1. 安裝TensorFlow 首先,我們需要安裝TensorFlow。T
    的頭像 發(fā)表于 07-05 09:38 ?764次閱讀

    keras模型轉(zhuǎn)tensorflow session

    在這篇文章中,我們將討論如何將Keras模型轉(zhuǎn)換為TensorFlow session。 Keras和TensorFlow簡介 Keras是一個高級神經(jīng)網(wǎng)絡(luò)API,它提供了一種簡單、快速的方式來
    的頭像 發(fā)表于 07-05 09:36 ?589次閱讀

    如何在TensorFlow構(gòu)建并訓(xùn)練CNN模型

    TensorFlow構(gòu)建并訓(xùn)練一個卷積神經(jīng)網(wǎng)絡(luò)(CNN)模型是一個涉及多個步驟的過程,包括數(shù)據(jù)預(yù)處理、模型設(shè)計、編譯、訓(xùn)練以及評估。下面,我將詳細(xì)闡述這些步驟,并附上一個完整的代碼示例。
    的頭像 發(fā)表于 07-04 11:47 ?1042次閱讀

    TensorFlow的定義和使用方法

    數(shù)據(jù)流圖,從而簡化機器學(xué)習(xí)模型的構(gòu)建、訓(xùn)練和部署。自2015年11月開源以來,TensorFlow迅速成為數(shù)據(jù)科學(xué)家、軟件開發(fā)者以及教育工作者廣泛使用的工具,廣泛應(yīng)用于圖像識別、自然語言處理、推薦系統(tǒng)等多個領(lǐng)域。本文將深入解讀Tenso
    的頭像 發(fā)表于 07-02 14:14 ?871次閱讀

    基于神經(jīng)網(wǎng)絡(luò)的呼吸音分類算法

    架構(gòu)以的方式進行訓(xùn)練,以同時檢測呼吸周期中的噪聲,并將肺部聲音分為幾個類別,如:正常、喘息、爆裂或喘息和爆裂。換句話說,我們的模型它本身決定了它應(yīng)該使用什么信息以及從什么時間點進行呼吸
    發(fā)表于 05-31 12:05

    后摩智能助力中國移動構(gòu)建算力網(wǎng)絡(luò)

    后摩智能助力中國移動構(gòu)建算力網(wǎng)絡(luò),MWC展示邊大模型運行成果
    的頭像 發(fā)表于 03-14 14:48 ?658次閱讀
    后摩智能助力中國<b class='flag-5'>移動</b><b class='flag-5'>構(gòu)建</b>算力網(wǎng)絡(luò)

    OpenHarmony 移植:build lite 編譯構(gòu)建過程

    這些疑惑,會對 build lite 編譯構(gòu)建過程有個更深入的理解。 1、產(chǎn)品解決方案代碼是如何被調(diào)用編譯的 在文件 buildliteBUILD.gn 配置文件中的構(gòu)建目標(biāo) //build/
    的頭像 發(fā)表于 02-19 16:19 ?1002次閱讀