Audio Super Resolution with Neural Networks

Audio Super Resolution with Neural Networks

论文:Audio Super Resolution with Neural Networks
代码: Github

CV方向的超分辨研究已经非常多了,但是音频方向的超分辨研究却相对较少。作者的这篇文章就是开山之作,已经发表在ICLR2017上,从项目主页的Demo来看,效果还不错。但是作者也指出了几个问题:

  • 如果想把这个模型用在自己的数据上,需要多搜集一些自己的数据训练,意思就是换个数据集可能就不好使了,毕竟每个数据集有一些差别
  • 作者的低分辨率音频是通过低通滤波下采样得到的,所以对于不同的低通滤波方式,算法产生的效果差别就很大。如果是你自己的低分辨率音频,你根本不知道这个音频是哪种低通滤波产生的,所以效果可能会打折扣
  • 如果是用人声训练出来的模型,应用到钢琴,音乐上,效果就会很差

总体思想

输入低分辨率的音频时间序列,训练一个Encoder-Decoder模型,输出高分辨率的音频时间序列。思路和CV的超分辨其实差不多。就是在低分辨率音频信号中插入高分辨细节。

网络结构如下:


网络结构图

左边输入的是原始低分辨率的音频信号,通过B个下采样的Blocks(每次下采样,feature map维度减半,滤波器大小翻倍),然后再通过B个上采样Blocks(每次上采样,feature map维度扩大一倍,滤波器大小减小一半)。底层特征通常对应wavelet-style features, 高层特征对应phonemes。每个Block的结构如下:


Block

其中,上采样的Block和下采样对应的Block还使用Skip Connection。上采样的DimShuffle是借鉴Subpixel shuffling layer。

还有,作者输入的音频信号到底是以什么样的形式输入的?
结合源代码和论文发现,作者首先把一段音频时间序列(就是一维数组,每个数组元素代表时间维度上的幅值,这里有个介绍音频信号的入门文章)进行下采样(下采样方式:先进行8阶切比雪夫滤波器滤波,然后降采样,然后插值上采样。这样就保证了低分辨率音频序列和高分辨长度一致。总之和图像数据超分辨的处理方式差不多),这样就得到了低分辨音频序列,而高分辨音频序列就是下采样之前的序列。这样就有了训练样本对,整个模型就可以训练起来了。


实验结果

下图是作者的实验结果,最左边是参考的频谱图,左二是输入,左三是插值算法的结果,左四是作者的结果。可以看出,作者的方法确实较好的恢复了高频信息。


实验结果

总结

  • 根据SNR,LSD两个评价指标来看,效果不错。不过在领域迁移方面,以及降采样方式适应方面,效果不好。应用场景十分受限
  • 可以实时,处理1s的音频只需要0.11s。而且不同于seq2seq任务,超分辨不需要等所有上下文输完才进行处理
  • 作者实验发现,skip connection,residual connection很重要

读完这篇论文的整体感觉就是很简单粗暴,就像超分辨的开山之作一样,也许好用的方法总是简单的!最起码,在事后看起来是那么简单!

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 简书上的人最少,就在这祝福你们长长久久。爱情是两个人的事,很欣赏你们的这份勇气。 我知道有人会不理解,...
    奥罗拉拉拉阅读 510评论 0 1
  • 这是安徒生著名的童话之一,丑小鸭自出生起就饱受来自母亲、兄弟姐妹甚至全世界的恶意,后被逐出家门,孤零零地在充满凶险...
    关念阅读 2,392评论 2 5
  • 麦子熟了的时侯 麦子熟了的时侯 是我品尝幸福的时光 那一捆捆沉甸甸的麦穗 香甜了一代一代人的希望 在麦子熟了的田间...
    李家长安阅读 446评论 0 1

友情链接更多精彩内容