Neural Amp Modeler 用 WaveNet 结构的网络模仿吉他音箱或效果器。训练出来的模型只对应一组固定的旋钮设置:动了任何一个旋钮,就得重新录音、重新训练。
把旋钮变成输入
我把旋钮位置作为条件输入加进网络,在每一层加上由旋钮值算出的偏置。旋钮数量不固定:设备有几个旋钮,一个模型就能覆盖这几个旋钮的全部连续取值。
和同时做缩放的 FiLM 条件化做了消融对比。在这个任务上,单独的加性偏置效果和 FiLM 相当,所以保留了更简单、计算更省的方案。
采集数据
学旋钮的模型需要大量不同旋钮位置下的录音。我做了一套电脑控制的装置,自动转动实体旋钮并逐个设置录音,采集过程可重复,也不用手动去拧。
在一台三个旋钮同时变化的真实模拟效果器上测试,听感上和硬件几乎分不出来。
在手机上跑
iOS App(Swift、AVFAudio、vDSP)实时运行完整的信号链:神经网络模型、基于脉冲响应的箱体模拟、混响、多段 EQ 和噪声门。长脉冲响应直接卷积在音频回调里太慢,所以参考论文实现了非均匀分块卷积,并分到多个核心上并行。