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

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

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

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

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

簡介

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

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

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

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

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

Magenta
https://magenta.tensorflow.org/

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

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

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

DDSP 中一個(gè)有趣的應(yīng)用是音色轉(zhuǎn)換,即將用戶輸入的聲音轉(zhuǎn)換為樂器聲。先用目標(biāo)薩克斯對(duì) DDSP 模型開展 15 分鐘的訓(xùn)練。然后,你可以演唱一段旋律,經(jīng)過訓(xùn)練的 DDSP 模型會(huì)將其重新渲染成薩克斯的聲音。我們已在 Sounds of India 中將這項(xiàng)技術(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) 的端到端平臺(tái),包括準(zhǔn)備數(shù)據(jù)、訓(xùn)練、驗(yà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í)模型交互的無縫體驗(yàn):僅需點(diǎn)擊超鏈接,加載網(wǎng)站頁面。而無需安裝工作。在瀏覽器中運(yùn)行客戶端,我們能夠直接在傳感器數(shù)據(jù)源處執(zhí)行推理,從而最大程度地減少延遲,降低與大型顯卡、CPU 和內(nèi)存相關(guān)的服務(wù)器成本。此外,應(yīng)用會(huì)將您的聲音用作輸入,因此用戶隱私十分重要。由于整個(gè)端到端的體驗(yàn)都發(fā)生在客戶端和瀏覽器當(dāng)中,因此傳感器或麥克風(fēng)收集到的數(shù)據(jù)保留在用戶的設(shè)備上。

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

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

TensorFlow.js

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

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

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

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

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

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

推理性能優(yōu)化

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

降低內(nèi)存占用

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

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

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

動(dòng)手嘗試!

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

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

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

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

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

致謝

本項(xiàng)目的實(shí)現(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)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴

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

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

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    adc與數(shù)字信號(hào)處理的關(guān)系

    在現(xiàn)代電子系統(tǒng)中,模擬信號(hào)數(shù)字信號(hào)之間的轉(zhuǎn)換是至關(guān)重要的。模數(shù)轉(zhuǎn)換器(ADC)和數(shù)字信號(hào)處理(DSP)是實(shí)現(xiàn)這一轉(zhuǎn)換的關(guān)鍵技術(shù)。 1. ADC的基本概念 模數(shù)轉(zhuǎn)換器(ADC)是一種將
    的頭像 發(fā)表于 10-31 10:50 ?358次閱讀

    數(shù)字信號(hào)和模擬信號(hào)的特點(diǎn)及應(yīng)用

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

    數(shù)字信號(hào)是電壓還是電流的

    數(shù)字信號(hào)是一種電信號(hào),它表示信息的方式是離散的,即信號(hào)的取值是離散的,而不是連續(xù)的。數(shù)字信號(hào)可以是電壓信號(hào),也可以是電流
    的頭像 發(fā)表于 08-11 10:56 ?1170次閱讀

    數(shù)字信號(hào)是離散的還是連續(xù)的

    的。這些數(shù)字值可以是二進(jìn)制數(shù)、十進(jìn)制數(shù)或其他形式的數(shù)字。數(shù)字信號(hào)的特點(diǎn)是離散的,即在時(shí)間上和幅度上都是離散的。數(shù)字信號(hào)的產(chǎn)生、傳輸和處理都需
    的頭像 發(fā)表于 08-11 10:49 ?1909次閱讀

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

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

    數(shù)字信號(hào)包括哪些 數(shù)字信號(hào)的特點(diǎn)是什么

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

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

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

    數(shù)字信號(hào)處理三大變換關(guān)系包括什么

    數(shù)字信號(hào)處理是電子工程和信息科學(xué)領(lǐng)域的一個(gè)重要分支,它涉及到對(duì)信號(hào)進(jìn)行分析、處理和轉(zhuǎn)換的方法。數(shù)字信號(hào)
    的頭像 發(fā)表于 08-09 09:33 ?1148次閱讀

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

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

    數(shù)字信號(hào)采集系統(tǒng)有哪些功能

    數(shù)字信號(hào)采集系統(tǒng)(Digital Signal Acquisition System)是一種用于采集、處理和分析模擬信號(hào)的電子設(shè)備。它廣泛應(yīng)用于各種領(lǐng)域,如通信、醫(yī)療、工業(yè)自動(dòng)化、科研等。本文將詳細(xì)
    的頭像 發(fā)表于 05-31 14:26 ?1030次閱讀

    數(shù)字信號(hào)采集器的作用是什么 數(shù)字信號(hào)采集器的特點(diǎn)

    數(shù)字信號(hào)采集器(Digital Signal Recorder,簡稱DSR)是一種用于采集、記錄和分析模擬信號(hào)的電子設(shè)備。它廣泛應(yīng)用于各種領(lǐng)域,如科學(xué)研究、工業(yè)生產(chǎn)、通信、醫(yī)療、交通等。本文將詳細(xì)
    的頭像 發(fā)表于 05-31 14:25 ?1841次閱讀

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

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

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

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

    數(shù)字信號(hào)處理器的特點(diǎn)、作用及種類

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

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

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