在 Google I/O 大會(huì)上我們分享了一套教程,幫大家在音頻方面使用機(jī)器學(xué)習(xí)。在這篇文章中,您可找到一些相關(guān)資源,幫助開發(fā)與自定義應(yīng)用的音頻分類模型,以及激發(fā)靈感的真實(shí)案例。
音頻機(jī)器學(xué)習(xí)
“聲音”和“音頻“兩詞有時(shí)候會(huì)被混用,但是兩者有一點(diǎn)本質(zhì)上的區(qū)別,即聲音是你聽見的內(nèi)容,而音頻則是聲音的電子表現(xiàn)形式。這就是為什么我們討論機(jī)器學(xué)習(xí)的時(shí)候使用“音頻”一詞的原由。
音頻機(jī)器學(xué)習(xí)可用于:
理解語(yǔ)音
識(shí)別樂器
對(duì)事件分類(例如:識(shí)別鳥的種類)
檢測(cè)音高
生成音樂
本文我們將重點(diǎn)關(guān)注”音頻事件分類“,這是一種常見需求,在現(xiàn)實(shí)生活中的應(yīng)用非常多。例如 NOAA 創(chuàng)建了座頭鯨聲波探測(cè)器,再如倫敦動(dòng)物學(xué)會(huì)使用音頻識(shí)別來保護(hù)野生動(dòng)物。
座頭鯨聲波探測(cè)器
https://www.blog.google/technology/ai/pattern-radio-whale-songs/
您現(xiàn)在就可以前往 TensorFlow Hub 體驗(yàn)多種音頻事件分類模型(YAMNet、鯨魚探測(cè))。
TensorFlow Hub
https://hub.tensorflow.google.cn
YAMNet
https://hub.tensorflow.google.cn/google/yamnet/1
鯨魚探測(cè)
https://hub.tensorflow.google.cn/google/humpback_whale/1
音頻識(shí)別也完全能夠在設(shè)備端運(yùn)行。例如,Android 擁有一項(xiàng)聲音通知功能,此功能可在您身邊出現(xiàn)重要聲音時(shí)推送通知。這項(xiàng)功能還可以檢測(cè)設(shè)備正在播放哪種音樂,甚至還可以通過一個(gè)基于機(jī)器學(xué)習(xí)的音頻錄制器來記錄設(shè)備上的對(duì)話。
聲音通知
https://blog.google/products/android/new-sound-notifications-on-android/
正在播放哪種音樂
https://blog.google/products/pixel/on-device-ai-with-pixel4/
音頻錄制器
https://ai.googleblog.com/2019/12/the-on-device-machine-learning-behind.html
如何在自己的應(yīng)用中使用這些模型?
如何根據(jù)自己的音頻用例自定義這些模型?
部署設(shè)備端機(jī)器學(xué)習(xí)模型
想象一下,如果您已經(jīng)擁有一個(gè)音頻分類模型(例如從 TF-Hub 獲取的預(yù)訓(xùn)練模型),您會(huì)怎樣在移動(dòng)應(yīng)用上使用該模型?為了幫助您將音頻分類集成到應(yīng)用中,我們創(chuàng)建了 TensorFlow Lite Task Library。音頻分類器組件現(xiàn)已發(fā)布,您只需幾行代碼即可將音頻分類模型添加到您的應(yīng)用之中:
音頻分類器
https://tensorflow.google.cn/lite/inference_with_metadata/task_library/audio_classifier
// Initialization
val classifier = AudioClassifier.createFromFile(this, modelPath)
// Start recording
val record = classifier.createAudioRecord()
record.startRecording()
// Load latest audio samples
val tensor = classifier.createInputTensorAudio()
tensor.load(record);
// Run inference
val output = classifier.classify(tensor)
該庫(kù)負(fù)責(zé)將音頻分類模型加載到內(nèi)存,以使用適當(dāng)?shù)哪P?a target="_blank">規(guī)格(采樣率、比特率)和分類方法創(chuàng)建音頻錄制器,并獲取模型推理結(jié)果。您可以點(diǎn)擊此處查看完整示例并獲取靈感。
此處
https://github.com/tensorflow/examples/tree/master/lite/examples/sound_classification/android
自定義模型
如果您需要識(shí)別的音頻事件未包含在預(yù)訓(xùn)練模型提供的集合中,應(yīng)該怎么辦?或者您需要細(xì)化事件類別,又該如何?在以上情況下,您可以使用一項(xiàng)名為遷移學(xué)習(xí)的技術(shù)對(duì)模型進(jìn)行微調(diào)。
遷移學(xué)習(xí)
https://developers.google.com/machine-learning/glossary#transfer-learning
這一流程十分常規(guī),您無需成為機(jī)器學(xué)習(xí)方面的專家也能做到。在此過程中,您可以使用 Model Maker 來助您一臂之力。
Model Maker
https://tensorflow.google.cn/lite/guide/model_maker
spec = audio_classifier.YamNetSpec()
data = audio_classifier.DataLoader.from_folder(spec, DATA_DIR)
train_data, validation_data = data.split(0.8)
model = audio_classifier.create(train_data, spec, validation_data)
model.export(models_path)
您可以點(diǎn)擊此處查看完整代碼。輸出模型可使用 Task Library 直接加載。另外,Model Maker 不僅能夠自定義音頻模型,還可以自定義圖像、文本以及推薦系統(tǒng)的模型。
此處
https://tensorflow.google.cn/lite/tutorials/model_maker_audio_classification
總結(jié)
音頻機(jī)器學(xué)習(xí)是一個(gè)令人興奮的領(lǐng)域,具備許多可能性,同時(shí)支持不少新功能。借助 TensorFlow Lite Task Library 等工具,在設(shè)備端使用機(jī)器學(xué)習(xí) 變得越來越簡(jiǎn)單便捷。有了 Model Maker,無需領(lǐng)域?qū)I(yè)知識(shí)也可進(jìn)行自定義。
您可以在我們有關(guān)設(shè)備端機(jī)器學(xué)習(xí)的新網(wǎng)站中了解詳情(點(diǎn)擊此處可前往音頻路徑)。您將找到教程、代碼 等相關(guān)資源,這些資源不僅包括如何處理音頻相關(guān)的任務(wù),還包括圖像(分類、目標(biāo)檢測(cè))以及文本(分類、實(shí)體提取、問答)等。
設(shè)備端機(jī)器學(xué)習(xí)
https://developers.google.com/learn/topics/on-device-ml
此處
https://developers.google.com/learn/pathways/on-device-ml-5
您還可以在社交網(wǎng)絡(luò)帖子中添加 #TensorFlow 標(biāo)簽,與我們分享您在項(xiàng)目中創(chuàng)建的內(nèi)容,或者將其提交參加 TensorFlow Community Spotlight 計(jì)劃。如果有任何疑問,歡迎在 discuss.tensorflow.google.cn 上提問。
discuss.tensorflow.google.cn
https://discuss.tensorflow.google.cn/
責(zé)任編輯:haq
-
音頻
+關(guān)注
關(guān)注
29文章
2884瀏覽量
81657 -
機(jī)器學(xué)習(xí)
+關(guān)注
關(guān)注
66文章
8424瀏覽量
132765
原文標(biāo)題:如何輕松部署設(shè)備端音頻機(jī)器學(xué)習(xí)?
文章出處:【微信號(hào):tensorflowers,微信公眾號(hào):Tensorflowers】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論