一、背景
今天对Hybrid Transformer Demucs代码进行解读,目标:明确图c中各个模块对应的代码具体在工程的哪个地方。解读的代码是开源工程中的htdemucs.py。
具体的paper解读看这篇文章。
二、代码解读
算法整体流程:图c其实是从下往上看的,时域信号(mixture):一方面经过左下的STFT变换到频域进行编码,另一方面直接进入右侧分支直接编码。时域编码和频域编码结束后进入一个由Transformer Encoder 组成的模块中进行时域和频域信息的交换。接着,时域和频域部分分别进行各自的解码。频域解码结束后利用ISTFT重新变换到时域,其结果和右侧的时域解码输出进行叠加得到最终结果,即分离后的人声、鼓声、Bass、其他。
2.1 频域输入
2.2 时域输入
2.3 时域和频域编码
2.4 时频域交互模块
2.5 时域和频域解码
2.6 频域解码还原为时域
2.7 最终输出
结论:初步确认了各个模块在代码中的位置,具体各个模块的代码还需进一步解读。(最近在写公众号,欢迎关注,一起见证我的成长,公众号名称:桂圆学AI)