前情提要,相同的内容我也发布在了知乎上。
由于本人也参与过AI音频降噪的相关项目,所以在面试的过程中也有很多相关的问题。
这里提前吐槽一下,虽然Rnnoise这个模型效果不怎么好,但是这个方案相当于是这个领域的开辟的工程方案,所以有相当多的人会问。
我在GitHub也放了相同的内容,如果有同学是做相同方向的,同时也乐意整理和聚集这个方向的面经,欢迎大家多多push内容上去。具体的仓库地址:
git@github.com:fmbao/interview_ns.git
同时,我也会根据GitHub仓库中更新的内容,将之迁移过来,更新这篇知乎专栏的文章。
【问】Rnnoise中的基音计算模块的组成以及相关特征提取的方式
【答】
RNNoise超详细解析_qiuzelin_的博客-CSDN博客_rnnoise
有关Rnnoise的讲解: 在Rnnoise中,band struction 在其他论文中使用神经网络直接估计frequency bins需要的网络复杂度比较高。
作者为了避免这个问题,作者嘉定频谱包络足够平坦,进而可以使用比较粗糙的分辨率,此外,他没有直接计算频谱幅度,而是对理想临界带增益进行了估计
频带的划分选择和Opus codec使用的bark scale相同(实际上为了方便,文章作者直接就使用了Opus的pitch计算代码)
其中有关Opus的代码下载地址以及具体功能解释的网址是:
https://opus-codec.org
当然只要你愿意在网上搜也是可以看到很多有关Opus的文档的:
Opus从入门到精通(二):编解码器使用 - 掘金
还有写的非常详细的自己动手实现的版本:
Opus从入门到精通(三)手撸一个Opus编码程序_音视频_轻口味_InfoQ写作社区
【问】人耳对声音的敏感范围
【答】人耳对声音的敏感范围:1k-8kHz;人耳的能够听到的频率范围:20Hz-20kHz
【问】深度学习方案和传统音频降噪方案的差异
【答】深度学习降噪能够更好地应对非稳态噪声。
传统降噪算法主要是基于滤波理论,
深度学习降噪方案主要是基于TF域,时域降噪。
【问】GRU的权重是否共享
【答】GRU对每一帧的输入数据都是权重共享的
【问】BIGRU的具体实现
【答】具体实现在torch官网:
GRU — PyTorch 1.12 documentation
【问】IIR FIR滤波器
【答】有关这两个滤波器的实现:
数字信号处理:FIR滤波器和IIR滤波器 - 知乎
同时零逆战在这个博客中也讲述了比较详细的有关滤波器相关的描述;
语音信号处理——数字滤波器 - 凌逆战 - 博客园