洋红.js是一个新的JavaScript套件,带有一个简单的API,用于使用洋红模型生成音乐和艺术。因为它是建立在TensorFlow.js公司,它通过WebGL加速在浏览器中运行。开始于goo.gl/代理/js或者阅读下面的更多信息!
这是我们用它制作的一个简单演示,它播放了源源不断的音乐VAE样品:
介绍
在过去的2年里,Magenta项目一直致力于闭合机器学习研究人员、创意开发人员和传统艺术家之间的循环,以实现并增强所有使用机器学习的人的创意潜力。
在这段时间里,对于我们这些致力于谷歌大脑团队一直以来,关注我们与开发人员社区的联系会产生工具和经验,从而弥合我们的研究与最终用户之间的差距。有了JavaScript,我们看到了一个巨大的机会,可以为这些开发人员提供构建ML增强的创造性界面所需的工具。
近年来,由于浏览器的改进,JavaScript已经成为一种更加强大和重要的语言,WebGL加速了线性代数包,如TensorFlow.js公司,由诸如电子和渐进式Web应用程序和代码共享网站,如代码笔.io.
我们之前在共享TensorFlow.js实现时探讨了模型的开放JavaScript API的潜力音乐VAE一些非常有天赋的开发人员潜在循环,旋律混音器、和搅拌搅拌机。这些应用程序让我们非常兴奋,所以我们决定专注于一个更完整的JavaScript套件,我们称之为洋红.js.
@洋红/音乐
作为该套件的一部分,我们推出的第一个软件包是@洋红色/音乐其中包括许多基于笔记的音乐模型的实现,如MusicVAE、MelodyRNN、DrumsRNN和ImprovRNN。
为了让您尽可能容易地开始,我们还将在goo.gl/magenta/js-checkpoints网站以及允许使用单行代码自动加载它们的配置文件:
因为推理在本地运行,所以权重必须传输到客户端浏览器。因此,这些模型是根据检查点的大小进行训练的,有时为了达到合理的包大小,会牺牲准确性。
示例
为了测试API,我们两人尝试构建我们的第一网络应用程序。
为了演示从中随机生成三重奏是多么简单音乐VAE,我写了下面的片段,你可以把它粘贴到一个空的.html格式
文件,在你的浏览器中打开,你会听到一个永无止境的三重奏流。
<html>
<头部>
<!-- 加载@洋红色/音乐-->
<脚本型钢混凝土="https://cdn.jsdeliver.net/npm网址/@洋红/音乐@1.0.0"></script>
<!-- 将代码放在下面的脚本标记中。您还可以使用外部.js文件-->
<脚本>
//通过加载所需的检查点来实例化模型。
常数 模型 = 新的 毫米.音乐VAE(
'https://storage.googleapis.com/download.magenta.tensorflow.org/' +
'tfjs_checkpoints/music_vae/trio_4bar_lokl_small_q1');
常数 运动员 = 新的 毫米.玩家();
常数 开始 = () => {
文件.按Id获取元素("开始").风格.显示 = "没有人";
//在用户操作上恢复AudioContext以启用音频。
毫米.玩家.语气.上下文.简历();
模型.初始化()。然后(
//无休止地采样并回放结果。
功能 示例和播放() {
返回 模型.样品(1)
.然后((样品) => 运动员.开始(样品[0]))
.然后(示例和播放);
})};
</script>
</头>
<body><按钮 标识=“开始” onclick(单击)=“启动()”>起点</按钮></body>
</html>
然而,我随后发现了一个(不合理地弃用)HTML元素,名为天棚
我忍不住。结果是“无尽的三重奏”页面顶部的演示。对不起的!
由于完整的16巴三重奏模型的重量总计为880MB,我将该模型的一个小型版本训练为4巴序列,并将每个重量量化为8位,从而将总重量减少到不到18MB。不幸的是,这意味着三人组不会像全模型样本,但我认为它们仍然引人注目,有时真的很好!
我制作了一个通过和弦即兴创作的模型的小演示。它有时会出错!这里没有什么特别之处,因为这只是一个和弦调节的旋律LSTM,但界面使它很容易处理不同的进行曲。
构建基块
当然,有更多可用的模型和无限的创意互动可能性,这就是更广泛的洋红社区的用武之地。例如,洋红贡献者Tero Parviainen公司他帮助开发了Magenta.js,已经构建了一系列非常激动人心的应用程序。一个例子是潜在周期它使用ImprovRNN和MusicVAE来产生一种有趣的冥想互动:
玩更多Tero的作品,了解他在中使用Magenta.js进行建筑的经验他的博客帖子.
接下来是什么?
我们希望你能帮助我们回答这个问题!现在核心库已经可用,我们将继续添加模型,但我们需要您的帮助,使其尽可能适用于您梦想中的各种应用程序。
请为回购并使用洋红标记codepen.io并在我们的讨论列表.如果你使用某人的Magenta.js应用程序制作一些很棒的音乐,也可以与我们分享!
我们迫不及待地想知道你会怎么做。
如何引用
如果您扩展或使用此工作,请引用纸张介绍地点:
@进料{洋红色,title={Magenta.js:通过深度学习增强创造力的JavaScript API},作者={Adam Roberts和Curtis Hawthorne和Ian Simon},年份={2018年},booktitle={音乐机器学习联合研讨会(ICML)}}