0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

研究:Magenta的微分数字信号处理

Tensorflowers ? 来源:TensorFlow ? 2020-09-27 14:46 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

简介

Sounds of India 是一款独特而有趣的交互式音乐体验应用,以印度传统为灵感,并由机器学习提供支持。当用户在演唱印度歌曲时,浏览器中的机器学习模型会实时将他们通过移动设备上输入的声音转换为各种印度古典乐器的声音。

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

完成整个体验的开发过程仅需 12 周,您可了解开发者在使用 TensorFlow 生态系统时,如何快速地将模型从研究阶段推进到规模化生产。

研究:Magenta 的微分数字信号处理

Magenta 是 Google AI 中的一个开源研究项目,旨在探索机器学习可以有哪些创新使用。微分数字信号处理 (Digital Signal Processing,DDSP) 是一个全新的开源库,融合了现代机器学习与可解释信号处理技术。

Magenta
https://magenta.tensorflow.org/

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

不同于训练纯深度学习模型(如 WaveNet)去逐个渲染样本的波形,我们改为训练轻量级模型,这些模型能够向这些可微的 DSP 模块中输出随时间变化的控制信号(因此,DDSP 中有一个额外的“D”),从而合成最终声音。我们在 TensorFlow Keras 层的递归和卷积模型中整合了 DDSP,其有效生成音频的速度为更大型自回归模型的 1000 倍,而对模型参数和训练数据的需求仅为后者的百分之一。

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

DDSP 中一个有趣的应用是音色转换,即将用户输入的声音转换为乐器声。先用目标萨克斯对 DDSP 模型开展 15 分钟的训练。然后,你可以演唱一段旋律,经过训练的 DDSP 模型会将其重新渲染成萨克斯的声音。我们已在 Sounds of India 中将这项技术应用于三种印度古典乐器:Bansuri、Shehnai 和 Sarangi。

音色转换
https://colab.sandbox.google.com/github/magenta/ddsp/blob/master/ddsp/colab/demos/timbre_transfer.ipynb#scrollTo=Go36QW9AS_CD

使用 TFX,TFJS 训练并部署到浏览器中

TFX

TensorFlow Extended (TFX)是用于生产机器学习 (ML) 的端到端平台,包括准备数据、训练、验证和在生产环境中部署模型。使用 TFX 训练模型(将用户的声音转换为上述某种乐器声),然后将这些模型转换为 TensorFlow.js 格式,以部署在标准网络浏览器中。

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

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

通过部署到浏览器中,为用户带来与机器学习模型交互的无缝体验:仅需点击超链接,加载网站页面。而无需安装工作。在浏览器中运行客户端,我们能够直接在传感器数据源处执行推理,从而最大程度地减少延迟,降低与大型显卡、CPU 和内存相关的服务器成本。此外,应用会将您的声音用作输入,因此用户隐私十分重要。由于整个端到端的体验都发生在客户端和浏览器当中,因此传感器或麦克风收集到的数据保留在用户的设备上。

基于浏览器的机器学习模型需要进行优化以尽可能缩减其大小,从而降低所用带宽。在这种情况下,每种乐器的理想超参数也大有不同。我们利用 TFX 对数百个模型进行大规模训练和调试,确定每个乐器可用的最小模型尺寸。因此,我们能够大幅降低其内存占用。例如,在未对音质产生明显影响的情况下,Bansuri 乐器模型的磁盘占用量约降低至以前的二十分之一。

我们还可借助 TFX 在不同的模型架构(GRU、CNN)、不同类型的输入(响度、RMS 能量)和不同的乐器数据源上执行快速迭代。我们每次都能够快速有效地运行 TFX 流水线,生成具有所需特性的新模型。

TensorFlow.js

构建 TensorFlow.js DDSP 模型需要达到严格的性能和模型质量目标,所以具有独特的挑战性。模型需要高效执行音色转换,以便在移动设备上有效运行。同时,一旦模型质量出现任何下降,便会导致音频失真,进而破坏用户体验。

我们首先探索了众多的 TensorFlow.js 后端和模型架构。WebGL 后端的优化程度最高,而 WebAssembly 后端则可在低端手机上运行良好。我们采用了基于 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

为缩短模型下载时间。我们研究了模型的拓扑结构,并使用 Fill/ZeroLike 算子压缩了大量常数张量,从而将模型大小从 10MB 缩减到 300KB。

为使 TensorFlow.js 模型准备就绪,以便在生产环境中将其大规模部署在设备上,我们还重点关注了以下三个主要领域:推理性能、内存占用和数值稳定性。

推理性能优化

DDSP 模型中包括神经网络和信号合成器。合成器部分包含许多需要大量算力的信号处理算子。为提升模型在移动设备上的性能,我们使用特殊的 WebGL Shader 重新编写了内核,以便充分利用 GPU。例如,通过并行累积求和算子,推理时间可缩短 90%。

降低内存占用

我们的目标是尽可能在更多种类型的移动设备上运行模型。由于许多手机的 GPU 显存有限,我们需要确保尽可能降低模型的内存占用。通过处理中间张量并添加新标记,我们能够提早处理 GPU 纹理,从而实现这一目标。通过这些方法,我们可以将显存占用减少 60%。

数值稳定性

DDSP 模型需要达到非常高的数值精度,才能生成动听的音乐。这一点与常见的分类模型截然不同:在分类模型中,一定范围内的精度降低并不会影响最终的分类结果。我们在此体验中使用的 DDSP 模型为生成模型。任何精度较低和不连续的音频输出都可轻易被我们敏感的耳朵发觉。使用 float16 WebGL 纹理时,我们遇到了数值稳定性问题。因此,我们重新编写了一些主要算子,以减少输出结果的上溢和下溢。例如,在累积求和算子中,我们会确保在 Shader 内以全浮点精度完成累积,并在将输出结果写入 float16 纹理前,运用模数计算来避免结果溢出。

动手尝试!

您可使用手机访问 g.co/SoundsofIndia,尝试此体验。如您愿意,请与我们分享您的结果。我们十分期待看到您用自己的声音所创作的音乐。

如果您有兴趣了解机器学习如何增强创造力与创新性,可浏览 Magenta 团队的博客,详细了解该项目,并为他们的开源 GitHub 贡献力量,也可查看 #MadeWithTFJS,从 TensorFlow.js 社区获得更多浏览器端机器学习示例。如果您对使用 ML 最佳做法在生产环境中大规模训练并部署模型比较感兴趣,请查看 Tensorflow Extended。

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

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

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

致谢

本项目的实现离不开 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 的大力支持。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数字信号处理

    关注

    16

    文章

    567

    浏览量

    46852
  • 机器学习
    +关注

    关注

    66

    文章

    8513

    浏览量

    135107
  • tensorflow
    +关注

    关注

    13

    文章

    330

    浏览量

    61305

原文标题:案例分享 | 轻量而高效,12 周落地一个趣味音乐交互!

文章出处:【微信号:tensorflowers,微信公众号:Tensorflowers】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    数字信号处理的基本组成及其特点?

    数字信号处理 是指将事物的运动变化转变为一串数字,并用计算的方法从中提取有用的信息,以满足我们实际应用的需求。 数字信号处理是利用
    的头像 发表于 06-18 09:02 ?362次阅读
    <b class='flag-5'>数字信号</b><b class='flag-5'>处理</b>的基本组成及其特点?

    STM32数字示波器源码+数字信号处理教程、配套实例

    STM32数字示波器源码+数字信号处理教程、配套实例 部分截图:
    发表于 05-28 21:25

    进群免费领FPGA学习资料!数字信号处理、傅里叶变换与FPGA开发等

    进群免费领FPGA学习资料啦!小编整理了数字信号处理、傅里叶变换与FPGA开发等FPGA必看资料,需要的小伙伴可以加小助手(微信:elecfans123)或进 QQ 群:913501156 群免费领
    发表于 04-07 16:41

    数字信号调制的优势与挑战

    数字信号调制的优势 1. 抗干扰能力强 数字信号调制的主要优势之一是其出色的抗干扰能力。数字信号可以通过纠错码来检测和纠正传输过程中的错误,这使得数字信号在面对噪声和干扰时更加鲁棒。
    的头像 发表于 01-21 09:44 ?762次阅读

    MPU与数字信号处理的关系

    数字化时代,微处理器单元(MPU)和数字信号处理(DSP)技术已经成为实现复杂计算和数据处理任务的关键技术。MPU作为计算机系统的大脑,负
    的头像 发表于 01-08 09:29 ?747次阅读

    数字信号处理中的衰减器角色 影响衰减器性能的因素分析

    数字信号处理中的衰减器角色 在数字信号处理(DSP)中,衰减器扮演着至关重要的角色。它主要用于调整信号的功率或强度,以适应不同的传输距离和接
    的头像 发表于 12-10 09:23 ?1312次阅读

    数模转换器在数字信号处理中的应用

    在现代电子系统中,数字信号处理(DSP)技术扮演着至关重要的角色。数字信号处理涉及将模拟信号转换为数字信
    的头像 发表于 11-25 16:15 ?1710次阅读

    磁编码器与数字信号处理的关系

    ,从而得到位置信息。磁编码器广泛应用于工业自动化、机器人技术、航空航天等领域,因其高精度、高可靠性和抗干扰能力而受到青睐。 数字信号处理(Digital Signal Processing,DSP)是指对数字信号进行分析、变换、
    的头像 发表于 11-23 09:23 ?900次阅读

    adc与数字信号处理的关系

    在现代电子系统中,模拟信号数字信号之间的转换是至关重要的。模数转换器(ADC)和数字信号处理(DSP)是实现这一转换的关键技术。 1. ADC的基本概念 模数转换器(ADC)是一种将
    的头像 发表于 10-31 10:50 ?1090次阅读

    TMS320C5517数字信号处理器的功耗估算

    电子发烧友网站提供《TMS320C5517数字信号处理器的功耗估算.pdf》资料免费下载
    发表于 10-12 11:42 ?0次下载
    TMS320C5517<b class='flag-5'>数字信号</b><b class='flag-5'>处理</b>器的功耗估算

    TMS320C6745浮点数字信号处理器技术简介

    电子发烧友网站提供《TMS320C6745浮点数字信号处理器技术简介.pdf》资料免费下载
    发表于 10-09 09:34 ?0次下载
    TMS320C6745浮点<b class='flag-5'>数字信号</b><b class='flag-5'>处理</b>器技术简介

    重新驱动数字信号

    电子发烧友网站提供《重新驱动数字信号.pdf》资料免费下载
    发表于 09-21 11:40 ?0次下载
    重新驱动<b class='flag-5'>数字信号</b>

    启用或禁用数字信号

    电子发烧友网站提供《启用或禁用数字信号.pdf》资料免费下载
    发表于 09-18 14:50 ?0次下载
    启用或禁用<b class='flag-5'>数字信号</b>

    数字信号和模拟信号的特点及应用

    引言 数字信号和模拟信号是两种基本的信号类型。数字信号是由离散的数值组成的信号,通常用于数字设备
    的头像 发表于 08-25 15:53 ?3193次阅读

    为什么数字信号抗干扰能力强

    数字信号之所以具有强抗干扰能力,主要归因于其独特的信号特性和处理机制。以下是对此的介绍: 1. 信号特性 离散性 :数字信号是离散的,其幅度
    的头像 发表于 08-22 11:01 ?3201次阅读