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

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

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

研究:Magenta的微分?jǐn)?shù)字信號處理

Tensorflowers ? 來源:TensorFlow ? 2020-09-27 14:46 ? 次閱讀

簡介

Sounds of India 是一款獨特而有趣的交互式音樂體驗應(yīng)用,以印度傳統(tǒng)為靈感,并由機(jī)器學(xué)習(xí)提供支持。當(dāng)用戶在演唱印度歌曲時,瀏覽器中的機(jī)器學(xué)習(xí)模型會實時將他們通過移動設(shè)備上輸入的聲音轉(zhuǎn)換為各種印度古典樂器的聲音。

Sounds of India
https://soundsofindia.withgoogle.com/

完成整個體驗的開發(fā)過程僅需 12 周,您可了解開發(fā)者在使用 TensorFlow 生態(tài)系統(tǒng)時,如何快速地將模型從研究階段推進(jìn)到規(guī)模化生產(chǎn)。

研究:Magenta 的微分數(shù)字信號處理

Magenta 是 Google AI 中的一個開源研究項目,旨在探索機(jī)器學(xué)習(xí)可以有哪些創(chuàng)新使用。微分?jǐn)?shù)字信號處理 (Digital Signal Processing,DDSP) 是一個全新的開源庫,融合了現(xiàn)代機(jī)器學(xué)習(xí)與可解釋信號處理技術(shù)。

Magenta
https://magenta.tensorflow.org/

DDSP
https://magenta.tensorflow.org/ddsp

不同于訓(xùn)練純深度學(xué)習(xí)模型(如 WaveNet)去逐個渲染樣本的波形,我們改為訓(xùn)練輕量級模型,這些模型能夠向這些可微的 DSP 模塊中輸出隨時間變化的控制信號(因此,DDSP 中有一個額外的“D”),從而合成最終聲音。我們在 TensorFlow Keras 層的遞歸和卷積模型中整合了 DDSP,其有效生成音頻的速度為更大型自回歸模型的 1000 倍,而對模型參數(shù)和訓(xùn)練數(shù)據(jù)的需求僅為后者的百分之一。

WaveNet
https://deepmind.com/blog/article/wavenet-generative-model-raw-audio

DDSP 中一個有趣的應(yīng)用是音色轉(zhuǎn)換,即將用戶輸入的聲音轉(zhuǎn)換為樂器聲。先用目標(biāo)薩克斯對 DDSP 模型開展 15 分鐘的訓(xùn)練。然后,你可以演唱一段旋律,經(jīng)過訓(xùn)練的 DDSP 模型會將其重新渲染成薩克斯的聲音。我們已在 Sounds of India 中將這項技術(shù)應(yīng)用于三種印度古典樂器:Bansuri、Shehnai 和 Sarangi。

音色轉(zhuǎn)換
https://colab.sandbox.google.com/github/magenta/ddsp/blob/master/ddsp/colab/demos/timbre_transfer.ipynb#scrollTo=Go36QW9AS_CD

使用 TFX,TFJS 訓(xùn)練并部署到瀏覽器中

TFX

TensorFlow Extended (TFX)是用于生產(chǎn)機(jī)器學(xué)習(xí) (ML) 的端到端平臺,包括準(zhǔn)備數(shù)據(jù)、訓(xùn)練、驗證和在生產(chǎn)環(huán)境中部署模型。使用 TFX 訓(xùn)練模型(將用戶的聲音轉(zhuǎn)換為上述某種樂器聲),然后將這些模型轉(zhuǎn)換為 TensorFlow.js 格式,以部署在標(biāo)準(zhǔn)網(wǎng)絡(luò)瀏覽器中。

TensorFlow Extended (TFX)
https://tensorflow.google.cn/tfx/

TensorFlow.js
https://tensorflow.google.cn/js

通過部署到瀏覽器中,為用戶帶來與機(jī)器學(xué)習(xí)模型交互的無縫體驗:僅需點擊超鏈接,加載網(wǎng)站頁面。而無需安裝工作。在瀏覽器中運行客戶端,我們能夠直接在傳感器數(shù)據(jù)源處執(zhí)行推理,從而最大程度地減少延遲,降低與大型顯卡、CPU 和內(nèi)存相關(guān)的服務(wù)器成本。此外,應(yīng)用會將您的聲音用作輸入,因此用戶隱私十分重要。由于整個端到端的體驗都發(fā)生在客戶端和瀏覽器當(dāng)中,因此傳感器或麥克風(fēng)收集到的數(shù)據(jù)保留在用戶的設(shè)備上。

基于瀏覽器的機(jī)器學(xué)習(xí)模型需要進(jìn)行優(yōu)化以盡可能縮減其大小,從而降低所用帶寬。在這種情況下,每種樂器的理想超參數(shù)也大有不同。我們利用 TFX 對數(shù)百個模型進(jìn)行大規(guī)模訓(xùn)練和調(diào)試,確定每個樂器可用的最小模型尺寸。因此,我們能夠大幅降低其內(nèi)存占用。例如,在未對音質(zhì)產(chǎn)生明顯影響的情況下,Bansuri 樂器模型的磁盤占用量約降低至以前的二十分之一。

我們還可借助 TFX 在不同的模型架構(gòu)(GRU、CNN)、不同類型的輸入(響度、RMS 能量)和不同的樂器數(shù)據(jù)源上執(zhí)行快速迭代。我們每次都能夠快速有效地運行 TFX 流水線,生成具有所需特性的新模型。

TensorFlow.js

構(gòu)建 TensorFlow.js DDSP 模型需要達(dá)到嚴(yán)格的性能和模型質(zhì)量目標(biāo),所以具有獨特的挑戰(zhàn)性。模型需要高效執(zhí)行音色轉(zhuǎn)換,以便在移動設(shè)備上有效運行。同時,一旦模型質(zhì)量出現(xiàn)任何下降,便會導(dǎo)致音頻失真,進(jìn)而破壞用戶體驗。

我們首先探索了眾多的 TensorFlow.js 后端和模型架構(gòu)。WebGL 后端的優(yōu)化程度最高,而 WebAssembly 后端則可在低端手機(jī)上運行良好。我們采用了基于 Convnet 的 DDSP 模型,并利用 WebGL 后端,以滿足 DDSP 的計算需求。

WebGL 后端
https://github.com/tensorflow/tfjs/tree/master/tfjs-backend-webgl

WebAssembly 后端
https://github.com/tensorflow/tfjs/tree/master/tfjs-backend-wasm

為縮短模型下載時間。我們研究了模型的拓?fù)浣Y(jié)構(gòu),并使用 Fill/ZeroLike 算子壓縮了大量常數(shù)張量,從而將模型大小從 10MB 縮減到 300KB。

為使 TensorFlow.js 模型準(zhǔn)備就緒,以便在生產(chǎn)環(huán)境中將其大規(guī)模部署在設(shè)備上,我們還重點關(guān)注了以下三個主要領(lǐng)域:推理性能、內(nèi)存占用和數(shù)值穩(wěn)定性。

推理性能優(yōu)化

DDSP 模型中包括神經(jīng)網(wǎng)絡(luò)和信號合成器。合成器部分包含許多需要大量算力的信號處理算子。為提升模型在移動設(shè)備上的性能,我們使用特殊的 WebGL Shader 重新編寫了內(nèi)核,以便充分利用 GPU。例如,通過并行累積求和算子,推理時間可縮短 90%。

降低內(nèi)存占用

我們的目標(biāo)是盡可能在更多種類型的移動設(shè)備上運行模型。由于許多手機(jī)的 GPU 顯存有限,我們需要確保盡可能降低模型的內(nèi)存占用。通過處理中間張量并添加新標(biāo)記,我們能夠提早處理 GPU 紋理,從而實現(xiàn)這一目標(biāo)。通過這些方法,我們可以將顯存占用減少 60%。

數(shù)值穩(wěn)定性

DDSP 模型需要達(dá)到非常高的數(shù)值精度,才能生成動聽的音樂。這一點與常見的分類模型截然不同:在分類模型中,一定范圍內(nèi)的精度降低并不會影響最終的分類結(jié)果。我們在此體驗中使用的 DDSP 模型為生成模型。任何精度較低和不連續(xù)的音頻輸出都可輕易被我們敏感的耳朵發(fā)覺。使用 float16 WebGL 紋理時,我們遇到了數(shù)值穩(wěn)定性問題。因此,我們重新編寫了一些主要算子,以減少輸出結(jié)果的上溢和下溢。例如,在累積求和算子中,我們會確保在 Shader 內(nèi)以全浮點精度完成累積,并在將輸出結(jié)果寫入 float16 紋理前,運用模數(shù)計算來避免結(jié)果溢出。

動手嘗試!

您可使用手機(jī)訪問 g.co/SoundsofIndia,嘗試此體驗。如您愿意,請與我們分享您的結(jié)果。我們十分期待看到您用自己的聲音所創(chuàng)作的音樂。

如果您有興趣了解機(jī)器學(xué)習(xí)如何增強創(chuàng)造力與創(chuàng)新性,可瀏覽 Magenta 團(tuán)隊的博客,詳細(xì)了解該項目,并為他們的開源 GitHub 貢獻(xiàn)力量,也可查看 #MadeWithTFJS,從 TensorFlow.js 社區(qū)獲得更多瀏覽器端機(jī)器學(xué)習(xí)示例。如果您對使用 ML 最佳做法在生產(chǎn)環(huán)境中大規(guī)模訓(xùn)練并部署模型比較感興趣,請查看 Tensorflow Extended。

博客
https://magenta.tensorflow.org/blog

GitHub
https://github.com/magenta/magenta

#MadeWithTFJS
https://twitter.com/search?q=%23madewithtfjs&src=typed_query

致謝

本項目的實現(xiàn)離不開 Miguel de Andrés-Clavera、Yiling Liu、Aditya Mirchandani、KC Chung、Alap Bharadwaj、Kiattiyot (Boon) Panichprecha、Pittayathorn (Kim) Nomrak、Phatchara (Lek) Pongsakorntorn、Nattadet Chinthanathatset、Hieu Dang、Ann Yuan、Sandeep Gupta、Chong Li、Edwin Toh、Jesse Engel 的巨大努力,以及 Michelle Carney、Nida Zada、Doug Eck、Hannes Widsomer 和 Greg Mikels 提供的其他幫助。非常感謝 Tris Warkentin 和 Mitch Trott 的大力支持。


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

    關(guān)注

    15

    文章

    539

    瀏覽量

    45693
  • 機(jī)器學(xué)習(xí)

    關(guān)注

    66

    文章

    8306

    瀏覽量

    131848
  • tensorflow
    +關(guān)注

    關(guān)注

    13

    文章

    327

    瀏覽量

    60413

原文標(biāo)題:案例分享 | 輕量而高效,12 周落地一個趣味音樂交互!

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

收藏 人收藏

    評論

    相關(guān)推薦

    數(shù)字信號和模擬信號的特點及應(yīng)用

    引言 數(shù)字信號和模擬信號是兩種基本的信號類型。數(shù)字信號是由離散的數(shù)值組成的信號,通常用于數(shù)字設(shè)備
    的頭像 發(fā)表于 08-25 15:53 ?391次閱讀

    數(shù)字信號是什么信號的組合

    數(shù)字信號是一種由數(shù)字值序列組成的信號,它在通信、計算機(jī)、電子和自動化等領(lǐng)域具有廣泛的應(yīng)用。數(shù)字信號的組合涉及到許多方面,包括數(shù)字信號的產(chǎn)生、
    的頭像 發(fā)表于 08-11 10:47 ?431次閱讀

    數(shù)字信號包括哪些 數(shù)字信號的特點是什么

    數(shù)字信號是一種以數(shù)字形式表示的信號,它在現(xiàn)代通信和信息技術(shù)中扮演著重要的角色。 數(shù)字信號的類型 二進(jìn)制信號 :最基本的
    的頭像 發(fā)表于 08-11 10:44 ?831次閱讀

    數(shù)字信號處理與通信原理之間的關(guān)系

    ,數(shù)字信號處理技術(shù)起著至關(guān)重要的作用。數(shù)字信號處理研究如何使用數(shù)字計算技術(shù)對
    的頭像 發(fā)表于 08-09 09:35 ?317次閱讀

    模擬信號可以通過什么變成數(shù)字信號

    模擬信號數(shù)字信號信號處理領(lǐng)域的兩種基本類型。模擬信號是連續(xù)變化的信號,而
    的頭像 發(fā)表于 06-03 10:48 ?780次閱讀

    數(shù)字信號采集的基本原理有哪些

    引言 數(shù)字信號采集技術(shù)是將模擬信號轉(zhuǎn)換為數(shù)字信號的過程,廣泛應(yīng)用于通信、音頻處理、視頻處理、醫(yī)療設(shè)備等領(lǐng)域。
    的頭像 發(fā)表于 05-31 14:19 ?481次閱讀

    數(shù)字信號采集的主要步驟是什么

    數(shù)字信號采集是將模擬信號轉(zhuǎn)換為數(shù)字信號的過程,以便計算機(jī)或其他數(shù)字設(shè)備能夠處理和分析。這個過程對于許多應(yīng)用領(lǐng)域非常重要,如音頻
    的頭像 發(fā)表于 05-30 16:31 ?521次閱讀

    數(shù)字信號處理器的特點、作用及種類

    隨著信息技術(shù)的飛速發(fā)展,數(shù)字信號處理器(Digital Signal Processor,簡稱DSP)作為數(shù)字信號處理的核心設(shè)備,在通信、音視頻、自動控制等領(lǐng)域發(fā)揮著越來越重要的作用。
    的頭像 發(fā)表于 05-22 18:20 ?1856次閱讀

    數(shù)字信號處理信號與系統(tǒng)區(qū)別

    數(shù)字信號處理信號與系統(tǒng)是兩個很重要的概念。雖然它們都涉及到信號處理和分析,但在很多方面有著不同的特點和應(yīng)用。本文將詳細(xì)探討
    的頭像 發(fā)表于 01-18 09:30 ?2641次閱讀

    信號、系統(tǒng)和數(shù)字信號處理知識整理

    信號、系統(tǒng)和數(shù)字信號處理知識整理
    發(fā)表于 12-08 10:47 ?454次閱讀
    <b class='flag-5'>信號</b>、系統(tǒng)和<b class='flag-5'>數(shù)字信號</b><b class='flag-5'>處理</b>知識整理

    數(shù)字信號處理C語言的程序集

    電子發(fā)燒友網(wǎng)站提供《數(shù)字信號處理C語言的程序集.pdf》資料免費下載
    發(fā)表于 11-21 11:14 ?22次下載
    <b class='flag-5'>數(shù)字信號</b><b class='flag-5'>處理</b>C語言的程序集

    VLSI數(shù)字信號處理課件

    電子發(fā)燒友網(wǎng)站提供《VLSI數(shù)字信號處理課件.ppt》資料免費下載
    發(fā)表于 11-18 09:44 ?1次下載
    VLSI<b class='flag-5'>數(shù)字信號</b><b class='flag-5'>處理</b>課件

    數(shù)字信號處理真題:離散卷積(和)與連續(xù)卷積大相徑庭

    數(shù)字信號處理系列課程(信號與系統(tǒng)——數(shù)字信號處理——隨機(jī)信號分析——現(xiàn)代
    的頭像 發(fā)表于 11-14 10:53 ?491次閱讀
    <b class='flag-5'>數(shù)字信號</b><b class='flag-5'>處理</b>真題:離散卷積(和)與連續(xù)卷積大相徑庭

    車載系統(tǒng)和安全的數(shù)字信號處理

    電子發(fā)燒友網(wǎng)站提供《車載系統(tǒng)和安全的數(shù)字信號處理.pdf》資料免費下載
    發(fā)表于 10-20 10:54 ?0次下載
    車載系統(tǒng)和安全的<b class='flag-5'>數(shù)字信號</b><b class='flag-5'>處理</b>

    數(shù)字信號處理MATLAB版資料分享

    的核心內(nèi)容。如果僅僅用數(shù)字濾波器代替某個系統(tǒng)中的模擬濾波器,則還不能充分發(fā)揮數(shù)字技術(shù)的特長。事實上,對信號進(jìn)行調(diào)制,濾波,變換.增強、壓縮、檢測、估計、識別等,都是數(shù)字信號
    發(fā)表于 09-28 06:34