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

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

3天內不再提示

如何使用TensorFlow Lite快速構建移動端聲音分類應用

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

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

測非法砍伐活動
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 可用于訓練您自己的聲音分類模型,并可導出 TensorFlow Lite (TFLite) 格式模型。然后,您可以將 TFLite 模型集成到移動應用或物聯(lián)網設備。這是快速運行聲音分類的簡便方式,分類之后,您可以在 Python 中探索構建生產模型,再將其導出到 TFLite。

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

模型架構

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

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

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

使用您自己的數據集訓練模型

使用您自己的數據集訓練聲音分類模型有如下兩種方式:

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

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

使用 Teachable Machine 訓練模型

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

下面是訓練模型的步驟:

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

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

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

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

以 TFLite 格式導出模型

使用 Python 訓練模型

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

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 聲音分類模型訓練完成后,您便可將其放到此 Android 示例應用中試用。只需按照以下步驟操作: 1. 從 GitHub 克隆示例應用:

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

4. 構建應用并將其部署到 Android 設備上。現(xiàn)在,您就可以實時對聲音分類啦!

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

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

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


2. 開始從設備的麥克風捕獲實時音頻,并實時分類:

soundClassifier.start()

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

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

未來計劃

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

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

致謝

此項目由 Google 內部的多個團隊聯(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

責任編輯:xj

原文標題:使用 TensorFlow Lite 快速構建移動端聲音分類應用

文章出處:【微信公眾號:TensorFlow】歡迎添加關注!文章轉載請注明出處。

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

    關注

    66

    文章

    8325

    瀏覽量

    132219
  • 移動端
    +關注

    關注

    0

    文章

    39

    瀏覽量

    4357
  • tensorflow
    +關注

    關注

    13

    文章

    328

    瀏覽量

    60452
  • TensorFlow Lite
    +關注

    關注

    0

    文章

    26

    瀏覽量

    588

原文標題:使用 TensorFlow Lite 快速構建移動端聲音分類應用

文章出處:【微信號:tensorflowers,微信公眾號:Tensorflowers】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

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

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

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

    電子發(fā)燒友網站提供《快速部署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

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

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

    利用TensorFlow實現(xiàn)基于深度神經網絡的文本分類模型

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

    TensorFlow是什么?TensorFlow怎么用?

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

    tensorflow和pytorch哪個好

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

    tensorflow簡單的模型訓練

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

    keras模型轉tensorflow session

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

    如何在TensorFlow構建并訓練CNN模型

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

    基于神經網絡的呼吸音分類算法

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

    OpenHarmony 移植:build lite 編譯構建過程

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

    如何使用TensorFlow構建機器學習模型

    在這篇文章中,我將逐步講解如何使用 TensorFlow 創(chuàng)建一個簡單的機器學習模型。
    的頭像 發(fā)表于 01-08 09:25 ?874次閱讀
    如何使用<b class='flag-5'>TensorFlow</b><b class='flag-5'>構建</b>機器學習模型

    【飛騰派4G版免費試用】第四章:部署模型到飛騰派的嘗試

    使用; 使用 C++ 將 TensorFlow Lite 移植到飛騰派,分別在 PC 和飛騰派上使用 sample/image_label 進行測試; 開發(fā)基于 TensorFlow
    發(fā)表于 12-20 21:10

    基于CW32的智能語音分類垃圾桶設計

    基于CW32的智能語音分類垃圾桶設計
    的頭像 發(fā)表于 11-06 16:51 ?1003次閱讀
    基于CW32的智能語<b class='flag-5'>音分類</b>垃圾桶設計

    PyTorch與TensorFlow的優(yōu)點和缺點

    轉變?yōu)殚_源。作為一個到端平臺,它提供從基本算術運算到神經網絡部署的一切。其適應性體現(xiàn)在與CPU、GPU、TPU、移動
    的頭像 發(fā)表于 10-30 09:56 ?933次閱讀
    PyTorch與<b class='flag-5'>TensorFlow</b>的優(yōu)點和缺點