DangoNet3,团子全新可控源分离架构
团子AI · 2023-07-05 预告
DangoNet3,团子全新可控源分离架构

我们很荣幸的向您介绍团子AI自研的最先进的分离架构——DangoNet3,它更加可控、稳定;更加理解音乐,不会把乐器当成人声消除——音质与听感相较上一代也全面增强。

在搭载了上一代架构(DangoNet2)的8.0算法的研发中,我们坚信“只要给AI无限的数据,AI就会越来越好”,因此我们准备了大量的数据进行训练,但经过几个月的实验,我们发现AI是有 “极限”的,超越AI的极限,无论怎样学习,它都只能“边学边忘”。这让AI只能在某个“子方向”上优化,而不是“什么都会的全才”。

处于“极限”的AI往往只能优化一个方向——简单举例我们发现AI提取出来的伴奏经常会丢失吉他音色,因为吉他本身在部分音域和人声很相似,AI容易将他们混淆,而解决方法就是让AI学习过程中加入更多的吉他资料,来让AI理解吉他的构成,并在未来的提取中减少这样的错误。聪明的你可能想到,如果容易“混淆”二胡,那我再多训练一些二胡、容易混淆“提琴”,那么就多训练一些提琴……

“哪里不会点哪里”,看起来很美好?

但实际上这只是理想状态,AI的拟合能力会产生极限,超过极限AI就像是“跷跷板”,如果我们让它在意某一个地方,那么它就会忽视另一个地方,如果让AI对吉他更好,那可能小提琴就“拉胯”了……

为此,我们的8.0系列算法甚至被推迟,最后我们的解决方案也并不好看——我们被迫减少了训练数据,这的确有效果,总比什么都忘了强,尽管如此,它仍然强于7代的算法,所以我们发布了这个“并不太完美”的8代算法。

但在8.0发布的兴奋背后,也有一个无法回避的事实,那就是我们已经触及了AI的“天花板”。 无论增加多少数据,或者增加AI的“脑容量”(参数),也是不可能突破这个天花板的,AI的学习能力已经“到头了”。

一个AI的诞生需要两部分协力——网络架构和模型,网络架构就是“大脑”,而模型则是要“学习的内容”,这两样缺一不可。8.0我们自研的DangoNet2架构已经说明训练数据目前已经足够甚至超额了,所以我们接下来需要重新思考并优化团子的“大脑”。

受到最近ChatGPT和LoRA架构的一些启示,经过大量的实验,我们成功研发了一种“可控架构”,简单地说,我们将原有的独立大型神经网络拆分为多个“子网络”,每个网络做不同的事情且只做好自己那部分,经过依次的研发和训练,我们最终得到一个比上一代更加稳定、可控的架构。

DangoNet3 可控架构

这种架构可以非常有效的提升AI的“学习能力”,你可以理解为原来是一个人做各种事情,它要记住很多东西,它很忙并且最后可能负载太高记不住忘掉,现在是多人分工、每个人只需要专注的做好自己的那一部分,像是“团队协作”一般——我们将提取任务分成了四个模块:

🤖注意力模块

负责标记歌曲中的目标位置。它不需要“提取”,只需要告诉其他网络目标出现的时间区域。这样的好处是,首先它可以减少计算量也可以保护伴奏:我们可以在人声出现的位置开启提取能力,无人声位置不提取同时还能保护伴奏不会破坏;其次,它只需要在其中标注人声“位置”,而如何“提取”这些人声并不是这个架构需要考虑的事情,这样它的就可以全心全意地只处理一件事,而不是既要“寻找”又要“提取”,这可以减少学习任务的难度,来得到相比“什么都做”的AI更好的效果。

尽管在9代算法中它已经定型,但这个模块未来仍有提升的潜力——我们可以接收用户在编辑器中的反馈标记,比如某个区域的人声非常难以消除,用户可以框选并标记给我们,我们在内部测试中也可以标记一些困难样本,而学习了大量“困难”标记,这个模块也会自行预测一首歌内“比较难提取”的部位,进一步的,我们可以训练一个“困难提取AI”,它可以不用考虑音质损耗,而是专门的专注清理难以消除的人声残留,来做到简单歌曲用简单模型提取,困难歌曲用困难模型提取,这一切都可以全自动化🤖🤖

🤖乐器保护模块、人声提取模块

该两组模块用来提取歌曲中的伴奏人声,乐器保护模块用来“督促”人声提取模块保护乐器不会被意外删除,两组模块相辅相成,达到了1+1>2的效果。

🤖WMIR模块

这也是团子8.0中就已经出现的特色结构。 它不是用来“提取”或“删除”内容,而是用来“恢复”内容。 以伴奏的提取为例,市面上其他算法基本来自于论文或比赛, 这些“学院派”的提取架构只考虑一个叫“SDR”的指标,并用较高的“SDR”分数来赢得比赛中的头牌。“SDR”我们可以理解为提取出的伴奏和真实的原始伴奏有“多么相似”,分数越高越接近真实伴奏—— 它听起来非常不错对吧,只要我们将SDR分数无限的提高,提取出的伴奏就无限的接近原始伴奏。

然而并非如此,SDR本身也有很多缺陷,在一个波形中,低频的变化会更加容易改变波形的形状——这导致SDR对“低频”更为敏感、权重更高。而超低频(如0Hz~100Hz)的准确度甚至是人耳难以辨识的。 以人声为例,人声的超低频位置基本上没有太多可用信息,甚至可能是只是录制设备的底噪而已。 无意义的预测这些噪声可以提高“SDR”分数的贡献,但无法真正改善听感。 简单来说,一个提取出来的伴奏听起来“高频沉闷或不自然”,可能会比听起来“自然响亮”的伴奏SDR分数更高,这仅仅是前者的无意义的超低频更准确。

这代表着,“SDR”尽管有一定参考作用,但它并不能代表全部,可能过低的SDR一定代表着提取出的内容很糟糕,但相似的SDR并不能代表其中就比另一个强。一味的追求SDR分数并不会真正的带来听感上的改进。所谓的“音质”,除了数学上的有限量化,还需要类似“心理声学”一般的复杂的评估才能得到。所以我们从8.0开始就不再使用SDR作为指标(虽然8.0/9.0的架构还是一定程度上增加了SDR的分数),而是转向我们内部的指标来提供“实打实”的听觉上的音质提升。

低频噪声除了有助于识别一些人类“辅音”发音外,基本没有任何信息,但它却占了SDR准确性的很大一部分
Demucs和MDX-NET等类似端到端输出的架构,由于没有MASK的“约束”,输出时会非常“奔放”。它们拥有很多“棋盘伪影”和“上采样伪影”,就像图片中这样的杂音线条,经常出现在歌曲中比较安静的位置,它们不属于“歌曲”本身的内容,而是因为AI的缺陷“添油加醋”添加上去的副产物。它听起来像是高频的“滋滋滋”电流声一样,但这些架构仍然可以得到较高的SDR分数——尽管这些伪影会严重影响听觉体验
audio-thumbnail
算法B
0:00
/0:30
audio-thumbnail
算法A
0:00
/0:30

上面的两个人声提取结果(出自比较老的架构ConvTasnet和Open-Unmix,并非团子产物,出处),他们的“SDR”都是一模一样的,但是你觉得哪个“听起来”更舒服更好呢?

我们独家研发的WMIR架构就是为此而生的——市面的其他算法只考虑如何“删除”人声,或者提高“SDR分数”,而从音乐中删掉人声、剩下的伴奏“破洞发闷”、“乐器丢失”、“音量忽大忽小”、“充斥伪影”这些问题并没有人关心,团子相比之下更考虑音质和听感,我们提取出的产物是实打实拿来用的,而不是为了竞赛或指标准备的。

经过我们的大量训练和调教,WMIR架构可以像是人耳一样感知并修复伴奏中“不自然”的位置,做到“不但会提取,而且能修复”,如果说8.0系列的WMIR架构是新秀登场,那么9.0系列中的新一代WMIR架构则是“熟练老手”,8.0中只有“保守”算法应用了WMIR架构,但WMIR的加入也导致它修复时可能意外的把人声重新“填补”回来,这就导致了人声残留问题,而在9.0的架构中,WMIR架构与其他模块分离,有效的避免了这个问题,我们可以将WMIR应用到全部的算法当中,而不用考虑人声残留问题。

9.0中恢复的能力更加激进,能从音乐中找到被人声掩盖的特小乐器声音并恢复回来,同时新增了“能量感知”模块,不同的词语和发音方法,会让人在唱歌时声音会“忽大忽小”,想象成一块“木板”,我们从木板中扣掉人声的形状,剩下的伴奏也会“凹凸不平”,听起来就像是有一种“闪烁发闷感”,音量忽大忽小非常让人不舒服,9.0的感知模块可以像是“水泥”一样将这些凹陷部位抹平,来达到自然舒适的听觉(甚至加入了这个模块反而降低了SDR分数,我们猜测是因为这些“水泥”的相位可能和原曲不对齐,但人耳是无法识别相位信息的,所以尽管降低了SDR,但显著的提升了听觉体验)

audio-thumbnail
1 1
0:00
/0:11
audio-thumbnail
1 2
0:00
/0:11

上方为开源架构 Demucs4 的提取产物,下方为团子9.0 WMIR 修复模块的产物

基于这些架构的组合,我们成功研发出了9.0系列的算法,他解决了我们数个问题——拟合能力问题、顽固人声难以清理问题、AI学习的上限问题、删除人声和保护乐器不能兼得的问题……

架构问题我们解决后,另一个问题也出现了——新的架构相比上一代又多了几千万参数量,这代表着计算难度、时间和成本进一步提升,我们甚至考虑为了成本不得不砍掉一部分的架构——不过我们经过大量的优化,将整个架构的计算时间压缩到比8.0还要快,并且全部架构都没有砍掉也几乎没有性能损耗。这表明我们未来的下一代算法(比如10.0)仍然有进一步“堆料”的空间,我们还可以进一步“免费的”提升参数量😇

以上就是团子9.0系列架构的全部内容,它就是我们8.0架构的“完全体”,我们从去年9月份一直到今年的2月份,耗时将近半年时间才研发出8.0系列架构,但是因为种种原因它还无法令我们“满意”,而9代算法则是团子的完美之作,基于9代的架构“可玩性”非常丰富,我们暂时不需要考虑“天花板”问题了,在国内外一众软件/架构的对比中,我们对团子的性能非常满意,而基于这些“可玩性”,未来团子还可以进一步的提升性能寻找优化空间,敬请期待!