前段时间一直没找到实习,在漫无目的的乱逛之下,投了字节跳动的音频工程师实习岗。本人研究生方向为音频异常事件的检测,主要是对环境声进行分析,不包括语音和音乐。看牛客上很少有音频这方面的试题和面经,就记录一下,方便后人吧。
一面的时候,面试官主要问的是项目上的细节问题,主要有以下问题:
1、描述一下你简历上做的项目(两个项目都是基于字典学习的音频异常事件的检测)
2、字典是怎么创建的(这部分回答了KSVD算法)
3、人耳听觉范围(20-20khz)
4、你们音频的采样率是多少(16k),那你们信号的最大频率范围就是8k对吗?对
5、那么,人格能听到20k的范围,但是你们检测的范围还差了12k,是不是就已经丢失了12k的听觉范围?这个问题你想过吗?(还真没想过,难道是我记错了?支支吾吾了好久,没答出来,最后他提醒说,人耳的听觉不是线性的,所以看上去差了这么多,其实是差不多的,丢失的也是不重要的信息,恍然大悟)
6、介绍一下MFCC和刚刚说到的短时能量谱(这个还是记得的)
7、说说为什么要用短时的能量?(因为是分帧,要计算帧能量)
8、分多少帧?(一般在10几到30左右)
9、那好,如果是20帧的话,就是50毫秒为一帧,为什么要取这个值呢?(答案:因为不能取太大,太大了这一帧就不是短时平稳的了,我们要对平稳信号进行分析,也不能取太小,要最少包含声音的一个半周期)
10、那也就是说,一秒取20帧的话,一个周期最少是多少赫兹?(这个问题卡了我好久,没打上来,一时没转过弯,一直想的是f=1/T,怎么都觉得不对,后来在面试官的提醒下,转过来了,就是20赫兹)
11、知道octive吗(不是的是不是octive,确实不知道)
12、知道dBfs吗(确实不知道)
13、那好,那你们采集音频的时候,那个音频有要求吧,声音大小?(那是的,不能太小到听不见,也不能太大到畸变)
14、那你们用什么来衡量声音的大小?幅值?还是?(用dB是可行的合理的)
15、那dB怎么算呢?(20logA)
16、你说的这个公式就是dBfs,dB有很多种不同的表示的(学到了)
17、你刚刚说MFCC,得到特征了以后呢?
18、为什么要加窗?(为了将很长一段信号分段处理)
19、一般加什么窗?(汉明窗,海宁窗等等)
20、为什么不加矩形窗(因为矩形窗进行FFT变换后是Sa函数,拖尾很长,收敛很慢,会对信号产生干扰)
21、你还有什么问题要问我?(这个岗位的职责?答3A,主要对语音信号进行AEC,ANS,AGC,处理,异常事件检测也有用)
这样一面就通过了,然后在房间里等待二面,二面发挥不太好
1、介绍一下你的项目(都是基于字典学习进行异常事件的检测方面的)
2、详细介绍一下训练字典的过程
3、要是输入信号数量特别大,100万个怎么办,你说的256维字典包含不了所有的帧特征怎么办
4、那可以放大字典维度,512,1024都可以
5、那要是就是特别大,有的特征就是没被包含到字典里面呢?(给我问傻了,我说多次迭代,重构误差缩小)
6、那要是字典里就是有特征没被包含进去呢,那稀疏表示的时候不就不准确了吗?(我真没想过这个哎,问倒我了)
7、得到字典以后,稀疏表示怎么做呢?
8、不是仿真不就没有逆吗?(我回答,奇异值分解可以做的吧,不对,然后我只能说,我只知道MATLAB里面的pinv函数不就是吗,面试官答,pinv其实已经帮你做了好多别的工作了)
9、你还有什么问题问我吗(依然是岗位职责,这个岗位主要还是对语音进行处理的)
结束,感觉二面回答的不好,还是对自己的项目没有熟稔于心吧,第一次面这种技术岗,就当是锻炼了,以后再加油吧
全部评论
(5) 回帖